My studio, and the place where the technical work and the business outcome are the same conversation. I take independent practices from a dead brochure site to a channel that books their calendar.
Three products in one codebase
The marketing site — services, pricing, resources, training, and local landing pages, with an MDX blog behind it.
The client portal — role-separated workspaces behind Supabase auth. Providers get onboarding, audits, approvals, progress and messaging; admin gets clients, users, employees, tasks, reminders and dashboards. Stripe handles billing, Resend handles transactional email, PostHog covers product analytics.
Six free tools — a HIPAA compliance checker, a healthcare SEO grader, a local SEO analyzer, an AI content grader, a medical schema generator, and a patient acquisition calculator. They exist as a top-of-funnel channel: the tool answers a real question for free, and the practices that want the answer implemented know where to find me.
81 pages and 25 API routes total.
Why build the back office at all
Running four clients on spreadsheets and memory does not survive past two. CRM, onboarding, contracts, invoicing and time tracking exist because I needed them to, and building them meant I ship against my own software every week — which is a considerably harsher review than any client gives you.
Why it matters
Owning both halves means I see the whole loop: what I ship, what it earns, and what breaks six months later when nobody is watching. That is a different discipline from shipping a feature and moving on.