Meridian Dental
A marketing site, patient portal, AI booking assistant, and admin console for solo dental practices, designed as a productised package a practice can buy off the shelf.
Next.js 16
React 19
Tailwind CSS 4
shadcn/ui
Supabase
Resend
Gemini AI
FullCalendar

Overview
Meridian Dental is a complete web presence and lightweight operations console for a solo dental practice. The public side is a polished marketing site with services, team, contact, and a booking wizard. Behind it sits a patient portal, an AI assistant that answers questions and books appointments, and an admin console where the practice manages everything. I built it as a sellable product, a one-time site plus a monthly plan, rather than a one-off client site. It's deliberately scoped to sit in front of a practice's existing patient-management system instead of trying to replace it.
The Problem
Solo dental practices usually face a bad choice. They can get a nice-looking brochure website that does nothing beyond list a phone number, or they can pay for heavy practice-management software that handles records but does nothing to help patients actually book or get questions answered online. Nobody was offering the in-between: a site that looks professional, lets patients self-serve, answers the routine questions, and gives the dentist a simple place to manage it all, without a six-figure software contract.
My Role & Approach
I designed and built the entire thing solo, both the product thinking and the engineering. A lot of the work was deciding what not to build. The product intentionally avoids competing with established practice-management systems and instead focuses on the front door: booking, patient communication, and a small operations console. That discipline kept the scope shippable and the value proposition clear enough to put a price on.
Tech Stack
Key Features
Gallery


Challenges & Solutions
The most important engineering problem was double-booking. Two patients hitting "confirm" on the same slot at the same moment is a classic race condition, and checking availability in application code never fully closes the gap. I solved it in Postgres with a GiST exclusion constraint, so the database itself atomically refuses any overlapping booking for the same dentist. The conflict becomes impossible, not just unlikely. A separate availability endpoint feeds the booking wizard so impossible times are greyed out up front, which means patients rarely hit the error in the first place.
The AI assistant was the other interesting piece. A chatbot for a medical practice can't be allowed to make things up. I grounded it in the practice's own business document so its answers come from real, editable content the dentist controls, and I gave it a small set of tools rather than letting it free-form. It can book, send a message, or surface a page, and nothing else. The dentist edits the knowledge document directly from the admin console, so the assistant stays current without a developer in the loop.
Outcome
Meridian Dental is a working, demo-ready product. A practice can see their site, a patient can book through the AI assistant or the wizard, and the booking lands in an admin calendar in real time, with database-level protection against scheduling conflicts. It's packaged as a repeatable offering rather than a bespoke build, which makes it both a portfolio piece and a genuine commercial template.
Have a similar product problem?
Share the current product, the outcome you need, and the constraints already in the way. I will use that to define a sensible first milestone.
Web application development services