An AI-powered patient recovery and retention system for medical spas. Three layers of automation that turn dormant patient databases into recurring revenue.
Role
Solo — Design, Architecture, Dev
Timeline
2 months
Stack
Next.js · Node · PostgreSQL · Anthropic API
Status
Live — noelx.co
01 — The Problem
Med spas are hemorrhaging revenue from patients who already walked in the door.
Medical spas generating $1M–$3M/year have 500+ patients in their database. At any given time, 150+ of those patients have lapsed — 90+ days since their last visit. These aren't lost leads. They already paid, already liked the service, and already gave their contact info. They just drifted away.
Marketing agencies charge $3K–$5K/month and deliver "leads" hidden behind vanity metrics. Generic CRM platforms require the owner to do the marketing themselves. Manual front desk outreach happens for two weeks after a slow month, then stops.
The core insight: the patients are already in the database. The spa already paid to acquire them. What's missing isn't leads or ads — it's infrastructure that automatically catches, recovers, and retains patients without anyone lifting a finger.
02 — Strategic Positioning
Infrastructure, not agency.
The initial concept was a reactivation service — "we'll get your lapsed patients back." One function, evaluated monthly on a number. This is the agency model. It creates a fragile relationship: every month is a performance review.
The reframe: NoelX is infrastructure the practice runs on — like their PMS or payment processor. Nobody cancels Stripe because it "only processed 30 payments this month." This decision cascaded through every other product decision — pricing ($2,997/month justified as always-on infrastructure), guarantees (operational, not performance-based), and churn prevention (infrastructure doesn't get monthly performance reviews).
Backlog Recovery
Reactivates patients who have already lapsed (90+ days). Works through the entire dormant database in months 1–4. Immediate, visible ROI that justifies the price from day one.
Lapse Interception
Every month, patients cross the 90-day threshold. The system catches them automatically within days of lapsing — before they find another provider. Prevents the lapsed pool from rebuilding.
Post-Visit Retention
After a patient visits, the system sends follow-ups: satisfaction check, rebooking nudge, next-treatment reminder based on specific treatment cadence. Reduces churn at the source.
03 — Key Design Decisions
Key Design Decisions
Dashboard: Bento Grid with Revenue Hero
Med spa owners are non-technical and time-pressed. They log in asking one question: 'Is NoelX making me money?' The answer must be obvious within 2 seconds.
Asymmetric bento grid layout. Revenue hero card dominates row 1 at 3x the size of supporting elements. Monthly AI-generated narrative summary explains performance in plain language. Progressive disclosure — aggregate metrics on homepage, campaign detail on click, full conversation on drill-down.
The ResultThe owner sees revenue impact first, trend context second, real-time activity third. No information overload. The dashboard builds confidence, not anxiety.

Light Mode over Dark Theme
Initial build used a dark theme (Carbon Amber — charcoal with gold accents). After evaluating against reference products, the aesthetic felt like a developer tool, not a wellness business dashboard.
Shifted to light mode with warm neutrals (off-white #F9F8F6, warm gray borders, charcoal text). Retained the amber accent sparingly for active states and key CTAs. The ICP is a 35–55 year old med spa owner, not a SaaS engineer.
The ResultThe dashboard conveys premium-but-approachable. Amber works as a highlight, not a wash. Matches the $3K/month price point expectation.

Campaign Approval Workflow
TCPA compliance requires the spa to have legal defensibility over every message sent. The AI generates message templates, but the spa needs to approve them.
Built a campaign approval view showing sample messages with real merge fields populated (patient first name + last initial, treatment type, spa name). The owner sees exactly what the final message looks like before anything sends.
The ResultThree purposes in one screen: legal defensibility, client confidence (no black box), and quality control for tone matching. Compliance becomes a trust-building feature, not a friction point.

Three-Layer Architecture as Lifecycle Infrastructure
The obvious MVP is a one-shot reactivation blast — send a campaign to every lapsed patient and see who books. Early validation showed this works once. Practices running a single reactivation campaign get a spike in week one, then revert to baseline within 60 days. One-time recovery doesn't prevent the next cohort from lapsing.
Three-layer architecture: Backlog Recovery reactivates patients already lapsed — immediate ROI, targeting the 150+ dormant patients already in the database. Lapse Interception catches patients before they cross the 90-day threshold — automated, running continuously as new patients age. Post-Visit Retention follows up after every appointment — satisfaction check, rebooking prompt, next-treatment recommendation. Each layer activates as the previous one saturates.
The ResultNoelX is always doing work, not responding to commands. A practice running for six months has Layer 1 winding down, Layer 2 running continuously, and Layer 3 building a retention habit after every visit. Churn from 'we've already recovered everyone' becomes structurally impossible — the system is always ahead of the next cohort. The three-layer design is what makes the $3K/month infrastructure pricing defensible: it's not a campaign spend, it's a system that compounds.

04 — The Solution
A 10-module system designed, architected, and built from zero.
NoelX isn't a Figma prototype. It's a production system with real business logic, real compliance infrastructure, real AI pipelines, and real payment processing. 25 routes compiled, zero TypeScript errors. 10 modules covering everything from CSV upload and audit to Stripe subscriptions and dunning.
01 / 06
Dashboard Overview
Revenue hero card, bento grid layout, AI-generated monthly narrative
Campaign Detail
Message template review with populated merge fields
Patient Conversation
Real-time patient interactions with classification badges
Activity Feed
Guided setup flow with CSV upload and data quality report
Reports
Two-tier classification pipeline with confidence scores
Marketing Site
Conversion-focused landing page with RetentionScore lead magnet
The atoms behind these screens
Every screen above is built from a documented system — warm neutrals, an amber brand, six classification roles, a dark sidebar anchoring a light canvas. See it in full.
05 — AI Integration
Two-tier classification with a de-identification pipeline.
When a patient replies to an outreach message, the system classifies intent and routes the response. This is the core AI capability: understanding whether a patient is interested, has booked, has a question, wants to opt out, isn't interested, or needs human review.
Before any text reaches the AI, patient names are stripped and replaced with [PATIENT]. No phone numbers or identifiers in API calls. No PHI reaches the model — only anonymous text strings. De-identification has zero impact on classification quality, validated during development.
Classification Pipeline
De-identify
Patient reply arrives via Twilio webhook. Names stripped, replaced with [PATIENT]. No PHI leaves the system.
Primary Classification
Sonnet classifies into 6 categories using structured prompt with campaign context. Fast, cost-effective for high volume.
Escalation
If confidence < 0.85, Opus runs a second opinion. If both models disagree, the reply enters the human review queue.
06 — Design Under Constraint
Three compliance frameworks shaped every interaction.
Healthcare communication operates in a regulated environment. Every design decision passed through three filters simultaneously: TCPA (telecommunications law), HIPAA (healthcare data privacy), and Twilio A2P 10DLC (carrier registration). Compliance wasn't a checkbox — it was a design material.
Liability Architecture
The med spa is the sender, NoelX is the tool. Dedicated local numbers per spa. Double opt-in required. Quiet hours enforced (8am–9pm). Opt-out language in first message of every sequence.
Data Minimization
Store only: first name, last name, phone, email, last visit date, treatment category. No diagnosis codes, SSNs, insurance, or clinical notes. Patient names displayed as First Name + Last Initial throughout the dashboard.
Carrier Registration
Full business profile and campaign registration with Twilio. Public consent page at noelx.co/consent. Three rounds of submission and revision before carrier approval.
07 — Outcome & Reflection
Shipped. Live. Learning.
NoelX is live at noelx.co. The complete system — 10 modules, 25 API routes, AI classification pipeline, Stripe billing, Twilio SMS, HIPAA-compliant infrastructure — was designed, architected, and built solo. Currently in early customer acquisition.
The distance between "I designed this" and "I designed, architected, and built this from zero to production" is the differentiator. Most designers show screens. This is a complete product lifecycle: problem identification → strategic positioning → system design → full-stack implementation → live deployment.
0
System modules
0
API routes
0
TypeScript errors
0
Gross margin at scale
What I'd do differently
Integrate directly with PMS APIs (Zenoti, Boulevard) instead of CSV uploads — the manual refresh creates unnecessary friction.
Build the design system as a shared component library from day one rather than extracting patterns after the fact.
Conduct more structured user testing with actual med spa owners during the dashboard design phase rather than relying on competitive analysis.
Next Project
Clovr
Trade Promotion & Deduction Recovery Platform



