Clinic platform + CMS/Endovascular clinic/2026live
Dr. Amjad
A clinic platform with a bespoke medical CMS, where SEO metadata and JSON-LD live in the database models rather than being bolted on afterwards.
RoleFull stack developerTimeline3 weeks
- Sector
- Healthcare
- Built in
- 3 weeks
- Editable by
- Clinic staff
- Admin auth
- NextAuth, role-based
SEO metadata and JSON-LD are fields on the content model, not template logic. Staff edit a treatment; its structured data updates with it, because there is no second place to forget.



The brief
An endovascular clinic with the usual medical-practice website problem: slow, outdated, impossible for staff to change. It needed to build trust before a first visit, be editable by the clinic itself, and rank for local medical searches.
What was actually hard
Three weeks, and the CMS could not be a generic page builder. Treatments, services, team members and posts are different shapes with different SEO requirements. Bolting schema markup on at the template layer means it goes stale the first time a nurse edits a page, so it had to be part of the data model itself.
Decisions
What I decided,
and why.
- 01
SEO and JSON-LD live in the model
Title, description, keywords and structured data are fields on the content itself, not template guesswork. When staff update a treatment page, its schema markup updates with it, so there is no separate step to forget.
- 02
A schema per content type
Treatments, services, team members and blog posts each got their own shape rather than being forced through one generic page type. It costs more up front and is why staff can actually maintain it.
- 03
Four fields, not eight
Patients were dropping off on the booking form. Halving the fields and adding a progress indicator addressed it. In healthcare every extra field has a real cost, because the person filling it in is already anxious.
- 04
Tracked the taps that matter
WhatsApp and call taps are tracked as conversions. For a clinic those are the actual outcome. A form submission is the minority path.
Where it stands
Live, with the clinic managing all of its own content. Built and shipped in three weeks.
Built with
- Next.js · React 19
- TypeScript
- Prisma ORM
- MySQL
- NextAuth.js
- Tailwind v4
- Framer Motion
- Radix UI
Need one of these,
under your name?
Most of what I build reaches the end client with somebody else's logo on it. If that is the arrangement you want, say so in the first message.