Design system

Four greys in production, and nobody decided on any of them.

Without a system every screen is a fresh set of decisions. Two teams build the same modal twice, slightly differently, and the product slowly stops looking like one product. The cost isn't taste. It's the time you lose every month.

What we find

The inventory is always worse than anyone expects.

  • Two teams built the same component twice.
  • Design and code have drifted and nobody knows which is correct.
  • Every new screen restarts an old argument about spacing.
  • You already have a system, and adoption is close to zero.

What you get

Built from your product, then used on it.

We inventory what's actually shipped first. Then one value per decision, documented with the reasoning behind it, and we build real screens with the system before handing it over. A system that hasn't been used on real work isn't finished, it's a proposal.

  • Inventory every component, color and spacing value in production
  • Settle one value per decision, with the reasoning written down
  • Build the token set and the component library
  • Bake accessibility in rather than retrofitting it later
  • Design real screens with it, to prove it holds
  • Name an owner and a migration order before we leave

How it runs

Inventory, decide, build, hand over.

  1. Inventory

    Everything in production. Expect it to be worse than you think.

  2. Decide

    One value per decision, reasoning written down.

  3. Build

    Tokens, components, docs, then real screens made from them.

  4. Hand over an owner

    Migration sequenced, with a name against it.