Case study · 2026 · Panchkula, India

Documents before code.

A public website in two full languages, a patient portal, a staff console, a back office and a growth engine — built in sixteen days of recorded history on top of a month of written strategy, and rebuilt once from scratch along the way.

Systems designService designBrand identityReliability architecture
Overview02

Booking tools assume you are a salon. Clinic software assumes you are a hospital.

Neither assumes a centre where the assessment decides what happens next, where no plan begins until the patient understands it, and where a therapist should never deliver a session nobody paid for.

So three rules were enforced in code rather than in staff training: no plan without a signed assessment, no sale without recorded understanding, no delivery without payment. The third one came from a sentence written on paper long before any software existed — people get treatment and pay later — and the commercial flow was redesigned around it.

Role
Brand, product, systems, engineering
Period covered
Jun – Aug 2026
Languages
Two in full, five in part
Status
Live in production, with real patients
Database models, 29 enums42

the ontology from the strategy documents, implemented exactly

58

pages and routes

111

URLs in the sitemap

3

independent payment-confirmation paths

0

rounded corners, shadows, spinners or emoji

01 · The constitution03

Eleven documents, written between the first build and the second.

The governing rule is in the repository's own README: where this code and those documents disagree, the documents win.

Who we are

Vision & positioning

Avoid technology as the differentiator. The patient wants someone who understands the problem and gives a clear plan.

Brand & identity

Belief, purpose, personality, voice, standard, promise.

Space redesign

The physical environment, planned alongside the software.

How we work

Patient journey

Eight stages. No treatment begins until the patient understands the plan.

Operational standards

Six auditable standards, each with required actions, do-nots and escalation. If an activity is not documented, it is considered not performed.

What we sell

Service architecture

Domain → Capability → Delivery pattern → Offering → Programme → Site. This ontology is the database schema, not a diagram of it.

Master service universe

Every conceivable service across twenty-one domains, with regulatory context and risk matrices.

Catalogue design

Sell the recovery programme, not the individual therapy. The customer buys the transformation.

The deliberate exclusions were constitutional: several common treatments are excluded by name in the seed data, decided on paper first. Differentiation by refusal is harder to copy than a feature list.

02 · The incident04

A patient paid ₹400 and got nothing.

After go-live, a real payment produced no confirmation, no message, no appointment and no database row. The centre had the money and no record. Nothing alerted anyone — it was found by looking.

Before
Turning a paid booking into records ran inside a single five-second database transaction, with two helpers inside it each opening their own connection to a pooler in another region.
What forced it
The obvious diagnosis was a missing payment webhook. Clean, plausible, and wrong — the logs said the transaction had taken 6,698ms against a 5,000ms ceiling. A webhook would have hit the same wall.
The decision
Move the numbering outside the transaction, raise the ceiling — twenty minutes of work. Then redesign so no single path is load-bearing: a browser redirect, a server-to-server webhook, and a sweep that asks the payment provider directly every ten minutes, all funnelling into one idempotent function.
What it changed
A rule that now governs everything: a booking that has been paid for must never be undone by something else failing. Notifications and calendar sync never throw — they record their own failure and are retried by the sweep.

The lesson the project recorded from this is not about transactions. It is verify, do not reason. The first diagnosis was arrived at by thinking about the system instead of reading what the system said.

The patient's booking was recovered by hand.

03 · Pivots05

Six of them, and the two I'm least comfortable with are the useful ones.

  1. The whole first build, discarded

    A working system existed. It printed credentials on its login page, showed one price and billed another on every package, and let a phone number alone reach somebody else's clinical record. It was baselined in version control, not erased, and rebuilt from a fresh schema.

  2. Payment at the centre → paid in advance

    An explicit early decision was reversed: a hold expires in fifteen minutes and counts as occupied, and the appointment is created only after server-side verification. Not confirmed until paid, made literally true.

  3. Waiver → what to expect

    A legally accurate consent page with five red warning blocks read like a company expecting a dispute. Same protections, restated as things a patient would want to know. Red blocks to zero — and a stronger legal position, because a document people actually read is better evidence of informed consent.

  4. Review incentive → policy-safe split

    A discount for a five-star review screenshot was designed, then found to breach the review platform's policy outright. Buying stars would have been the first dishonest thing on the whole site.

  5. Affiliate commissions → community partners

    Built one day, rebuilt the next. A discounted assessment is a less serious one, and paying per booking pays for fakeable bookings. Now the customer pays in full and earns credit toward a programme; the partner earns on attendance only, and their dashboard shows counts and money owed and no patient details at all.

  6. Sign-in, three generations

    Matching on email address locked out exactly the people who needed it. The final shape starts a sign-up for an unknown identity on the patient door, refuses rather than links a phone number that already has a record, and creates nothing at all on the staff door.

The affiliate rebuild is the one I would point at. It was wrong in a way I could not see until I said it out loud — and what makes “community partnership, not referral commission” honest rather than a euphemism is that a partner who never learns anything about a patient cannot influence clinical judgement.

04 · Brand as system constraint06

The guideline is the token. There is nothing to remember.

The distinguishing move on this project: the brand is implemented as system constraints, not as guidance a designer is asked to follow.

Brand guidelineWhat it became in the system
Square cornersEvery radius token set to zero — a stray rounded class is a no-op
No shadowsEvery shadow token set to none
A fixed spacing scaleSix values, and no others available
Reading measureProse never exceeds 680px, verified in the browser
Ground rhythmTwo grounds alternate; three identical ones in a row is forbidden
Red means clinical riskA semantic token, reserved — never a delete button, never an overdue payment
No spinnersCount of spin animations in the shipped stylesheet: zero

The build log records the system winning an argument with its own author: hunting a suspected brand violation in the markup, I found the token config had already set that radius to zero and the class was doing nothing. A rule enforced by the system does not require anybody to remember it at four on a Friday afternoon.

The waiting state is three petals brightening in sequence — opacity only, resting at 0.22 rather than 0 so that someone who has asked for reduced motion still gets feedback. There is no percentage and no time estimate, because a made-up number would be the first dishonest figure on the site.

Diluting red is how clinical software becomes unsafe.

05 · Where it stands07

Live, with real patients and real money.

Where it stands
  • In production, in two full languages, with roughly ten thousand words of clinical content written in Hindi
  • A deliberate register shift from literary to spoken Hindi, with a count-guard rule so a list only substitutes when the item counts match
  • Three payment-confirmation paths, a one-way calendar mirror with a drift-detecting sweep, and an automated messaging assistant with an emergency-phrase guard tested in three scripts
  • A second door at /lifestyle for people who have not decided anything is wrong yet
  • Navigation cut from seven items to five; refusing service redesigned to require two people
Still open
  • The display typeface is on a trial licence, recorded as a known gap by the guidelines themselves
  • Several finished features deliberately switched off pending credentials or decisions
  • The abandoned directions are kept in the record rather than deleted — per-practitioner calendars, a superseded credit model, an enum whose name no longer matches its label

One enum in the live database still carries the old commission-era name. Renaming a live enum is not worth the risk, so every human-readable label changed and the stored value did not. That is the kind of decision that never appears in a portfolio and is most of what the job actually is.


If an activity is not documented, it is considered not performed.

Operational Standards v1.0, written before the rebuild

Where wellness begins.

Nirmalkaya · Panchkula, Haryana · 2026

Brand, product, engineering and operational documentation by me, with an AI collaborator writing most of the code under constraints I set. Written from the project's own build log and decision log. No metrics, testimonials or business results are claimed, because none are documented.

All case studiesNirmalkayaThe illustrated documentWork with me

B-SIDEOff the record