●  BOOKING NEW PROJECTS

INDEPENDENT DESIGN & BUILD STUDIO

BHOPAL → WORLDWIDE

A live medical tourism platform, fixed from the inside.

MedTreeva connects international patients with doctors, hospitals and treatment packages in India. Its live Next.js platform was working against the team that runs it, so I fixed it from the inside and shipped the work in three phases.

Client
MedTreeva
Market
India · international patients
Year
2026
Timeline
Six weeks · three phases
Made with
Next.js, React, TypeScript, MongoDB, Material UI, Tailwind CSS, CKEditor 5, PM2, Nginx on DigitalOcean
Phase 01Workflow

Inside a live codebase, not a blank page.

Before touching anything, I set the project up locally with a full copy of the database, so every change could be tested against real content. The first finding explained most of the frustration: the live site was running an older build of the editor, which is why bold was the only formatting that worked.

I then took over deployments with a scoped server user. Every phase went on its own feature branch and into a pull request that the client's tech lead reviewed and merged. I built it on the server, restarted it and checked it live on desktop and phone before calling it done.

Diagram of the MedTreeva deployment workflow, from local testing to a reviewed pull request and a live check.
How every change shipped: local copy, feature branch, reviewed pull request, server build, live check.
Phase 02Editor and typography

An editor the content team can actually use.

The full editor went into every admin section: font size and colour, highlight, links, images, media, tables, lists, find and replace, and source view. On the full-page doctor and hospital editors the link box was opening off screen. It now opens where you are typing.

Most of the remaining complaints turned out to be display problems, not editor bugs, so I fixed them once in the shared stylesheet: real spacing between paragraphs, a six-level heading scale, quotes and checklists that render, one darker text colour across cards and body copy, and light text kept light on dark sections. Every existing page improved without anyone re-editing it.

MedTreeva treatment page showing the corrected heading scale, numbered lists and a styled quote.
Headings, lists, quotes and spacing, fixed at the source so every treatment page benefits.
Phase 03Doctor directory

A directory that helps a patient choose.

The doctors page was rebuilt around how a patient narrows down: a search hero with the popular specialties one tap away, then filters for specialty, country, city and years of experience. Country became a row of flags in the sidebar, and India opens first, chosen from where the content actually is, so the page never loads empty.

Each card now answers the first questions up front: rating, review count, verified badge, city and qualification tags, all editable per doctor from the admin. After every few doctors, an enquiry form catches the patient who can't decide and puts them in touch with a care coordinator.

MedTreeva doctor directory with search, a flag country filter, doctor cards with ratings and an inline enquiry form.
Search first, filters that match the question, cards that answer it, and a way in for the undecided.
Phase 04Treatments and profiles

One pattern across every directory.

Treatments got the same search hero, filter sidebar and flag selector as doctors, so the two directories read as one site instead of two.

On a doctor's profile, the information panel with qualifications, languages and treatments now stays in view while you read the full story. The hospital header was rebuilt so it holds its shape anywhere: the photo sits in a fixed 4:3 frame, long addresses can't push the layout apart, and it moves from two columns on desktop to one on a phone.

MedTreeva treatments directory and a doctor profile page with a sticky information sidebar.
The treatments directory, and a doctor profile with its information panel kept in view.
Phase 05New feature

The right doctors and packages on every treatment.

The client wanted control over who and what appears on each treatment page, so I added it to the treatment editor: two searchable pickers, one for related doctors and one for related packages. The treatment page shows the picks. If nothing is picked, it falls back to the automatic list by treatment type, so no page ever goes blank and nothing existing changed.

The tech lead asked for test cases on future pull requests, so this one shipped with ten written cases covering the pickers, saving, the page override, the fallback and the other modules.

MedTreeva treatment page with related packages and related doctors chosen from the admin.
Picked in the admin, shown on the page, with an automatic fallback.
Phase 06Across screens

Built for the phone in a patient's hand.

Most patients first meet MedTreeva on a phone, so every change was checked at phone width before it went live. Doctor cards keep a square photo with rounded corners, search sits right at the top of each directory, and profiles and treatment pages read cleanly from top to bottom.

Five phone screens of the MedTreeva website.
Home, doctors, treatments, a treatment page and a doctor profile at phone width.
Phase 07Live

Live, and kept fast as the content grew.

All three phases are live on medtreeva.com. Once the team started linking doctors and packages across nearly every treatment, two admin lists began timing out because they loaded the full page content of every linked record. I trimmed those queries to fetch only what the lists show, and they load normally again.

The site now carries 101 doctors and more than 130 treatment pages on the improved editor and stylesheet, all run by the client's own team.

MedTreeva homepage on desktop and phone.
MedTreeva, live at medtreeva.com.

Visit the live site

What shipped

  • Local setup on a full copy of the database, so every change was tested against real content
  • Full CKEditor 5 toolbar in every admin section, with the link box fixed on full-page editors
  • Shared stylesheet fix: paragraph spacing, six-level heading scale, quotes, checklists and one text colour
  • Doctor directory with search, specialty, flag country selector, city and experience filters
  • Doctor cards with rating, reviews, verified badge and qualification tags, editable per doctor in the admin
  • Enquiry form inside the doctor list for undecided patients
  • Treatments directory on the same search and filter pattern
  • Doctor profile information panel that stays in view
  • Hospital header in a fixed 4:3 frame that holds its shape on any screen
  • Related doctors and packages pickers in the treatment editor, with an automatic fallback
  • Ten written test cases on the feature pull request
  • Admin list queries trimmed to stop timeouts

Next case study

Crushed Helmet Creations

See all work