WhollySoftware
Back to blogDesign

Building a Design System That Survives Contact With Real Product Work

Wholly Software TeamNovember 14, 20246 min read
Building a Design System That Survives Contact With Real Product Work

Our first attempt at a design system for a client, a scheduling platform for a multi-location clinic group, was a beautiful Figma library with forty components and a token sheet. It fell apart in the second sprint, when engineering hit a booking table that needed a row state our component list had never anticipated: appointment pending insurance verification. Nobody had designed for it, so someone improvised a yellow badge that matched nothing else in the product.

That taught us the real failure mode of design systems: they're built for the states designers imagine, not the states the product actually produces. Now, before we lock a component's variants, we ask engineering and support to list every edge case they've had to hack around in the last release. Half of what ends up in v1 of a system comes from that list, not from the pattern library we started with.

We also stopped trying to make the system exhaustive before shipping it. Early on we'd spend weeks documenting components nobody used yet, like a five-state toggle for a feature still in discovery. Now we ship a smaller system with a clear contribution process, and we let real screens pull new components into it as they're needed, reviewed by whoever owns the system that week.

The hardest discipline is saying no to one-off variants. A checkout flow for a retail client wanted a button that was 90% our primary button but with a different corner radius for 'brand reasons.' We pushed back and lost that argument twice before winning it the third time by showing the maintenance cost in hours, not opinions. Design systems survive on the strength of their no, not their yes.

What actually keeps a system alive past year one is ownership with teeth: a rotating design-and-engineering pair who can reject a merge that introduces a new spacing value outside the scale. Without that enforcement, drift creeps back in within a quarter, and you're back to auditing screens by hand to find the components that quietly stopped matching the library.

Design SystemsComponent LibrariesProcess
Building a Design System That Survives Contact With Real Product Work — Wholly Software