← Back to work

Vela Health

A single diabetes app rebuilt as a token-based platform any clinic can brand and launch as its own.

1
Platform
12
Months to build
8
Hours to MCP-ready
0
Brands possible
Role
Product Designer
Team
1 Product Owner · 1 UX Researcher · 1 Product Designer
Timeline
2 months

Plug & Play

Ready to deploy

Brand & Customize

Make it yours

MCP-Native

Machine-readable handoff

Ship Faster

Go live in weeks

Vela Health platform cover: one plug-and-play app rebranded as three different white-labeled healthcare products

Problem

One diabetes app, unlimited brands

A diabetes-specific app, with no brief for how customization should work. It needed to become a disease-agnostic platform any clinic could re-skin and deploy, with brand changes handled as configuration instead of a rebuild for every client.

Research

Component forking doesn't scale past a handful of clients.

Before locking the architecture, I used Copilot to research how multi-tenant and white-label products structure theming, and the clearest finding was what doesn't work: forking a component per client breaks down fast, since every rebrand becomes a dev project and clinical logic drifts out of sync across forks. The system had to resolve at configuration time, not build time.

Design Principles

01

Build once, configure everywhere

One platform, unlimited brand configurations. Every new brand is a token change, not a pull request, and nothing client-specific ever forks into its own codebase.

02

Protect the logic layer

Primitive and semantic tokens can be overridden per client; the clinical logic and data structure beneath them never can, no matter how the surface looks.

03

Configuration over code

If a client-specific need can be solved with a token, it's not a development ticket. The system has to be legible enough that an engineer can configure a new brand on their own, without a screen-by-screen walkthrough.

The Architecture

Not a component library. A three-tier token system.

Primitive tokens feed semantic tokens, which feed component tokens. Override the primitive layer with a new brand color or type scale, and every component downstream updates correctly, because nothing below the semantic layer is ever hardcoded.

Primitive → Semantic → Component

BaseBrand / PrimaryCards / Category
Neutral 50Brand / SecondaryCards / Prescription
CoralBrand / AccentAlerts / Warning

Switch the brand: only the row tied to Brand / Primary updates. Everything else stays put, because nothing below the semantic layer is ever hardcoded to a single client's palette.

Primitive token layer in Figma: 17 base values for color and neutrals
Semantic token layer: Brand, Surface, and Icon roles mapped to primitives
Component token layer: 149 components, including the Symptoms Log cards, built on the semantic layer

Platform Architecture

The token system was only half the leverage. The other half was making it machine-readable.

A token architecture is only as fast as the handoff behind it. Every screen was named, componentized, and token-mapped to be MCP-friendly, so Figma's MCP server could expose accurate design context directly into engineers' own tools instead of redlines and screenshots.

1 working day1 hour

to make 80+ existing screens MCP-ready

That retrofit (fixing naming, structure, and token application across the existing screen set) used to be a recurring cost every time the screen set changed. Once I could put Figma AI Agents on it, it became a one-time investment instead of a permanent tax on every design change.

01

Design in Figma

Screens and components built on the token system from the start.

02

Made MCP-ready

I used Figma AI Agents to retrofit naming, structure, and token application for machine-readability.

03

Pulled via MCP

Developers connect to the file's MCP server directly from their own tools, instead of manual redlining.

04

Shipped faster, more accurately

Fewer translation errors between design intent and implementation.

I used Figma Make for a similar kind of leverage earlier in the process: fast UI iteration, most visibly in the twenty severity-indicator explorations in the deep dive below.

Exploration

The Symptoms Log Flow

Problem statement

Symptom tracking didn't exist in the original product. This flow was designed from scratch, starting from one open question: what does a patient actually need to capture, and what does a clinician need to receive on the other end? Research surfaced four groups pulling on this feature from different directions: patients tracking a single chronic condition, patients managing several at once, caregivers coordinating care, and HCPs consuming the data downstream. Each opens the flow for a different reason, with a different definition of "done."

Brainstorming

Early research, before a single screen existed.

Why do we need this feature?

  • Good for predictive/proactive healthcare: early detection, first stage awareness
  • Flag red flags + warning signs
  • Track progress of chronic illnesses or active diagnoses
  • Help HCPs make more accurate diagnoses with detailed symptom logs + patient history

What do they gain at the end of it?

  • A summarised symptom report to share with their HCP
  • Patient report: simpler terminology, self-awareness, additional info
  • HCP report: advanced pattern finding, medical terminology, diagnosis support

What are they using it for?

  • Tracking progress + identifying patterns
  • Becoming more self-aware and health-literate
  • A better sense of how much, how long, and where
  • A more accurate sense of their own pain and bodies

Why would they revisit?

  • Easy knowledge transfer while switching HCPs or caregivers
  • Tracking multiple diagnoses
  • Chronic illness + recurring HCP visits
  • Managing multiple HCPs

Who is using it?

  • Primary: people with chronic illnesses, recurring conditions
  • Secondary: caregivers, families of patients
  • Tertiary: HCPs consuming logs and data for care optimisation

Wireframing the flow

The first build assumed one symptom per session: locate it on a body map, name it, rate its severity and duration, attach a photo, add notes, confirm. Twelve screens, one continuous decision. It made sense on paper, with clean steps and a clear ending, and it held up in early wireframes. It broke the moment we designed for the patients who actually needed this feature most: people logging more than one symptom at a time.

Wireframe 1: symptom log entry point with current and previous symptoms1 / 12
Wireframe 2: locating the symptom on a body map2 / 12
Wireframe 3: searching for the symptom by name3 / 12
Wireframe 4: symptom search results list4 / 12
Wireframe 5: selecting a symptom reveals a severity selector inline5 / 12
Wireframe 6: severity and duration selection6 / 12
Wireframe 7: confirmed symptom, severity, and duration7 / 12
Wireframe 8: add supporting photos, empty state8 / 12
Wireframe 9: add supporting photos, one attached9 / 12
Wireframe 10: add notes describing the issue10 / 12
Wireframe 11: full symptom report summary before submitting11 / 12
Wireframe 12: symptom logged confirmation with HCP scheduling12 / 12

Scroll to see the full flow

Symptom severity selection: UI iterations

Severity needed to be quick to log and instantly legible, both to a patient mid-flare-up and to a clinician scanning a history later. That ruled out anything that needed a legend. Twenty explorations moved through bar charts, stacked lines, single accent marks, and an emotion-based scale, before converging on one continuous control: drag once, see the whole range.

MildModerateSevereVery Severe

What we tried for mild

Mild
Mild
Mild
Mild

One track explored an entirely different vocabulary: severity as a feeling, not a measurement, before we decided a clinical scale needed clinical language.

The final version

This version shipped as the foundation, not the finish line. The structural limitation got flagged explicitly rather than patched over, and a colleague took the research, the component system, and these screens to redesign the flow for multiple symptoms.

Solution

Three moments where the system shows up for the person using it, not just the brand selling it.

Intuitive dashboard

Tailored to each patient, built to surface what actually needs attention.

Notifications prioritizing what needs attention

Clarity over confusion

Clear prioritization of what can't be delayed versus what can wait.

Track your trends

Synchronized data across the app, with trends and analysis across symptoms, vitals, and diagnoses.

Validation

What this proves, and what it doesn't yet.

Validated

  • The four-user-type breakdown (patients managing one condition, patients managing several, caregivers, HCPs) came from real research into who actually opens this flow and why.
  • The architectural limitation itself was validated through implementation: the single-symptom flow was actually built before the structural gap surfaced. That's a finding, not a hunch.

Not yet validated

No formal usability testing with real patients or clinicians happened on this build.

The lowest-common-denominator decision, designing for the least tech-literate user across three very different user types, was never validated with real users. That's the honest limitation of this work, and the first thing I'd do before shipping it wider.

Business Impact

One system, sold to every client without a bespoke build.

The token architecture isn't just a design pattern. It's the difference between a services business and a product business: a new client is a configuration exercise, not a development project. That's what makes a plug-and-play platform sellable at scale to hospitals and clinics that all want to look like themselves, not like Vela Health.

Per-client deployment
A configuration exercise, not a development project
Time to market per client
Days to weeks, not months

Reflection

Systems thinking over screen thinking

Building a token architecture that protected clinical logic while enabling unlimited brand customization taught me that the best design systems are invisible: they create freedom without creating chaos.

Finding the real problem mid-process

The symptom flow brief was simple. The real problem was structural, not visual. Identifying that a single-symptom flow couldn't serve chronic patients, and articulating why, was more valuable than any screen I designed.

Engineering leverage is a design decision too

The naming and structure discipline that made the token system clean was the same discipline that made it MCP-ready. That 'boring' hygiene work is what turned into an 8x speedup once I pointed Figma AI Agents at it. Leverage compounds when the underlying system is actually structured well.

Designing without user access

The lowest-common-denominator decision, designing for the least tech-literate user across three very different user types, was never validated with real users. That's the honest limitation of this work, and the first thing I'd fix.

Also worth seeing

Signal

Read the case study

An autonomous AI agent that investigates markets in real time — designed and built full-stack in a one-week hackathon sprint.

  • Agentic AI
  • LLM Orchestration
  • Full-stack build

Still here?

If this is the kind of work you want on your team, let's talk.

I'm always up for a conversation about design, emerging tech, or building things that don't exist yet.

or email me at

Currently in Bengaluru (IST) · open to remote-first roles, and to being somewhere else

See more work