A design system that lasts

Tokens, components and documentation: how to build a design system your team will still be happy with in two years.

· 2 min read

Most design systems don't fail because of bad components. They fail because nobody trusts them: the tokens drift, the docs go stale, and teams quietly fork what they need. Here's what keeps a system healthy for the long run.

Start with tokens, not components

Colours, spacing, radii and type sizes are decisions. Give each one a name and a single source of truth, and every component built on top inherits consistency for free.

app/globals.css
:root {
  --primary: oklch(0.56 0.22 263);
  --radius: 0.875rem;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
}

When the brand colour changes, you change one line — not three hundred.

Components are a contract

A component's props are a promise to every team that uses it. Keep the surface small, name things after what they do rather than how they look, and treat breaking changes like the expensive events they are.

A dashboard built from a shared component library
One component library, many products — consistency comes from shared tokens.

Documentation is part of the product

If it isn't documented, it doesn't exist. Every component page should answer three questions: when to use it, when not to use it, and what it looks like in real context.

PracticeWhy it matters
Changelog per releaseTeams can upgrade with confidence
Live examplesDocs never drift from the code
Clear ownershipSomeone is accountable for decisions

Measure adoption

A system nobody uses is just a folder. Track how many screens use system components, which ones get forked, and why. The forks tell you exactly what to build next.