frontend

Design Systems Are Not Optional Anymore

Thoughts from the intersection of code, craft, people, and progress.

They’re the foundation, not the finishing touch.

Once a product and team reach a certain size, inconsistency stops being charming and starts becoming expensive. A design system gives people shared foundations for making decisions, provided it is treated as an evolving product rather than a finished gallery of buttons.

The revealing moment for a shared component is not its launch. It is six months later, when a team with a deadline decides whether using it is genuinely easier than inventing another version.

I have learned to be suspicious of advice that only works in a tidy example. Real projects come with history, deadlines, uneven confidence and requirements that move while you are looking at them.

Consistency is a conversation

A design system is often described as a collection of components, which is true in the same way that a kitchen is a collection of cupboards. The useful part is how people use it together and what decisions it helps them avoid repeating.

The strongest systems make the preferred path the easy path. They explain intent, show real examples, expose sensible constraints and leave a clear route for exceptions. A component without that context is only a reusable shape.

Consistency should reduce decision fatigue, not reduce thought.

Good systems do not remove judgement. They preserve attention for the decisions that genuinely need it.

There will always be exceptions. The trick is to make them deliberate exceptions rather than habits nobody remembers choosing.