Case Study - A 36-Ticket Reskin Sequenced So It Never Blocked on Itself

A full-platform design overhaul, sequenced foundation-first across six phases, that shipped the highest-visibility screens fast without rushing the two where a rendering bug actually costs a patient something.

Client
Metabolic Health Platform
Year
Service
Design Systems & Product Craft

A 36-ticket, six-phase reskin, sequenced so a full-platform design overhaul shipped without ever blocking on itself — and produced a component library a second product could consume from day one.

Overview

A new design needed to land across every screen in the patient app at the same time a second, sibling product was about to need the same visual language and component set. Reskinning one app's screens one at a time, with no shared foundation, would have meant redoing the same work again within the year.

The problem

A design-system rebuild has an unforgiving dependency order: tokens and theming before any component, primitives before any page reskin, the app shell before individual pages — but the business needed checkout and the dashboard done fast, not last. Getting the sequencing wrong either means starting over halfway through, or shipping a foundation so rushed that the second consuming product inherits its shortcuts. Layered on top: accessibility and dark mode weren't cosmetic add-ons scheduled at the end — in a health product, a patient reading their own lab results needs contrast, focus states, and screen-reader semantics to actually work, not just look plausible in a demo.

Why it took a physician-engineer

The sequencing decisions on which screens got reskinned earliest were product and clinical judgment, not just backlog triage. The assessment viewer and the lab-scheduling flow — the two screens where a patient is reading their own health data or making a decision about their own blood draw — were treated as their own dedicated tickets with explicit acceptance criteria for data correctness, while lower-stakes screens could tolerate a looser bar. The same judgment shows up in what was explicitly scoped out: no backend changes, no CMS schema changes, no new features — the reskin stayed a reskin, so a purely visual initiative didn't quietly become a scope-creeping rewrite of systems that were already working correctly.

Approach

The sequencing was foundation-first, deliberately: shared component library and design tokens landed before any component work, since every later ticket depended on it; primitives — buttons, inputs, form controls, overlays, navigation — were built and parallelized across developers once the foundation existed; the app shell was reskinned before individual pages, so page-level work happened inside the correct chrome instead of needing a second pass later.

Dark mode, accessibility, and motion were each their own dedicated, gating tickets in the final phase — rather than acceptance-criteria line items scattered across 30 separate page tickets where they'd be easy to skip under deadline pressure.

The library was structured from the start as a package a second, sibling product could consume — not something to extract later. That decision shaped implementation discipline throughout: components built generic enough to serve two products, not just tuned to this one app's exact needs.

Under the hood

React, TypeScript, and Vite, with Tailwind for the design-token and theming layer and Storybook as the component-development and documentation environment for the shared library. Every one of the 36 tickets specified type, phase, size estimate, and explicit dependencies, with a documented in-scope/out-of-scope split and checkable acceptance criteria — sized deliberately to transpose directly into a single sprint story. Dark mode, accessibility, and motion were each their own dedicated, gating tickets in the final phase rather than scattered line items.

  • 0→1 execution
  • Design systems engineering
  • Accessibility (WCAG-aligned)
  • Cross-product component architecture
  • Scope discipline on a regulated health product
Tickets, fully scoped with dependencies
36
Sequenced phases, foundation first
6
Products sharing one component library
2

Outcome

The reskin delivered full platform coverage — every screen from checkout through lab scheduling to the assessment viewer — against the new design, with a shared component library structured for immediate reuse by a second product rather than a one-off visual pass that would need to be redone. The highest-visibility, most time-pressured screens didn't have to wait for the full backlog to clear, while the highest-stakes screens still got dedicated correctness scrutiny rather than being rushed through on the same timeline as lower-risk pages.

More case studies

Deciding Where AI Supports a Clinician — and Where It Doesn’t

Clinical decision support for clinicians, education for members, and no unsupervised AI judgment in between — a deliberate line drawn feature by feature, and built into the architecture rather than left to policy.

Read more

Building a Clinical Product Inside the EHR, Not Around It

A clinician workspace, member app and AI layer built on top of Healthie — with the EHR kept as the system of record, configured so the two never fight, and its quirks found before they became duplicate patients and lost labs.

Read more

Tell us about your project

Our offices

  • Portland
    220 NW 8th Ave
    97209, Portland, Oregon