I have built design systems at a bank, a fashion retailer, a proptech startup and my own product. The component libraries look broadly similar. What determines whether they succeed has almost nothing to do with them.

The systems that worked had a small number of people who cared, a versioning and release story nobody had to think about, and composition as the default — primitives that combine, rather than a giant configurable component with nineteen props for the one screen that needed a variant.

A design system is an agreement. The code is just where you write it down.

The ones that struggled struggled socially: no owner, or an owner too far from the product teams, or a governance process so heavy that shipping a button felt like filing a permit. Teams then quietly forked it, and within a year you had three systems and no system.

So now the first thing I ask is not what the tokens should be. It is who is going to say no, and how quickly a product team can get an answer.