Every team builds a component library eventually. Most of them rot. Buttons drift, tokens fork, and within a year every squad has its own slightly-wrong copy of the date picker.
The failure mode is treating the system as a side project. Systems survive when they have a roadmap, users, and someone whose job depends on them.
Run it like a product
We gave the design system a product manager, a changelog, and semver. Breaking changes ship with codemods. Adoption is tracked like a KPI.
It sounds heavy. It's the opposite — because the alternative is every product team paying the maintenance tax individually, forever.