Next.js and Sanity platform for Global Health Opulence, a premium medical-tourism operator connecting patients with accredited hospitals, treatments, and doctors across international destinations, with location-aware, AI-assisted search.
Visit the live site: globalhealthopulence.com →
Stack
The Problem
Medical tourism is an information and trust business before it is anything else. A patient deciding to fly abroad for surgery needs to compare treatments, hospital accreditations, individual doctors, destination logistics, and indicative costs before they will fill in a single form. The operator, in turn, has to publish and continuously update all of that across dozens of procedures and several destination countries. Global Health Opulence was working against a brochure-style site that the team could not update without a developer, had no on-site search, did not adapt to where a visitor was travelling from, and rendered slowly enough to leak conversions on the paid traffic the business depends on. The catalogue of treatments, hospitals, and doctors lived in documents and spreadsheets rather than anything the website could query.
The Result
A fully CMS-driven platform where the operations team publishes treatments, hospitals, doctors, and destinations themselves through Sanity, with the public site server-rendered on Next.js and revalidated through ISR so changes go live without a deploy. An AI search layer powered by Gemini turns a vague intent like "knee replacement abroad" into the right treatment and destination, personalised by the visitor's detected country so cost comparisons and travel framing are relevant from the first screen. Programmatic landing pages back the campaign funnels. Live at globalhealthopulence.com, with the content model, search, and SEO programme expanding as the catalogue grows.
Measurable outcomes
Content management
Before
Developer required for every change
After
Team publishes independently in Sanity
Catalogue depth
Before
Documents and spreadsheets
After
Treatments, hospitals, doctors, destinations, all CMS-managed
On-site search
Before
None
After
AI semantic search, location-aware
Rendering
Before
Client-rendered, slow first paint
After
Server-rendered with ISR on the edge
What we built
Approach
Sanity is the single source of truth for the catalogue. Every treatment, hospital, doctor, destination, procedure, care package, and blog post is a typed document the operations team edits in Sanity Studio, served at /admin. The public site is Next.js 16 with the App Router: pages are React Server Components that fetch content through GROQ at request or build time and render on Vercel's edge. Content changes do not require a deploy. A publish in Sanity fires a webhook to /api/revalidate, and incremental static regeneration swaps the affected pages in place, so the team's edits are live within seconds while the site keeps the performance profile of static rendering. The search experience is a Gemini call behind /api/search: the model receives a system prompt plus a context summary of the catalogue and the visitor's detected country, and returns structured suggestions that map a loose query onto real treatments and destinations, with cost framing tailored to where the patient is travelling from. Enquiries run through a server route to Nodemailer, delivering to the operator's inbox without a third party holding patient interest data. Deployment is a git push to Vercel.
Full technical report
The full write-up includes architecture diagrams, technology selection rationale, implementation phases, and lessons learned. Available for qualified enquiries.