Keeping the system alive
A design system has to outlive the people who made it. Here that was not abstract. Turnover was high and new designers and engineers kept arriving, so I treated the system as a living product with two internal customers, not a file I handed off and forgot.
Documentation carried most of that weight. Zeroheight was the single source of truth, and I kept it current as the product grew, so someone joining on a Monday could find a component, its states, and the reasoning behind it without asking around. Under constant turnover, good documentation was the difference between the system compounding and the system rotting.
Governance stayed light because the team was small, so it came down to a clear owner and a clear bar. I stewarded what went in: a new pattern earned its place by showing up more than once and fitting the brand and accessibility rules already set, and anything that stopped working got deprecated instead of left to linger. Keeping the design files and the React implementation in sync, sprint by sprint, stopped the documented system and the shipped product from drifting apart.
Over time the system grew with the company. As new surfaces and needs appeared, I extended the same foundation instead of starting new islands, and revisited earlier decisions when reality proved them wrong. The goal was never a finished library. It was a system that stayed useful, consistent, and cheap to build on while the product and the team kept changing around it.