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.
: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.

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.
| Practice | Why it matters |
|---|---|
| Changelog per release | Teams can upgrade with confidence |
| Live examples | Docs never drift from the code |
| Clear ownership | Someone 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.
Enjoyed this? Let's talk.
Talk to me