Design system drift is not a discipline problem. It is a structural one. Two teams maintain the same component in two places, Figma and code, and they diverge. Nathan Curtis documented the fix in his 2023 piece 'Components as Data,' and Southleft, a design systems consultancy founded by TJ Petri (now at Figma), built a working proof-of-concept on top of it. The concept is called a design system contract: a single JSON or YAML file per component that describes what that component is, its variants, tokens, allowed content, and behavior. Neither Figma nor code owns the component. The contract does.

Both the Figma library and the production code are generated from that contract automatically. A checker then compares all three and reports exactly where they have stopped matching. JSON and YAML are not arbitrary choices here. Unlike markdown, they are structured and deterministic: same file in, same answer out, every single time. A paragraph can be interpreted differently by different readers. A labeled field either matches or it does not. The one rule that makes the whole system work is absolute: Figma and code are never allowed to update each other directly. Every change goes into the contract first, gets reviewed, and both sides rebuild from it.

The reason this matters now is AI. Southleft ran an A/B test. An AI given a design system without a contract scored 69 out of 100. It invented nonexistent variants, hard-coded hex values instead of tokens, and restyled components to its own taste, all while producing output that looked correct. The same AI given the contract as its input scored 95. The contract does not explain the system to the AI, it constrains it. With agentic tooling accelerating how fast components get generated, drift no longer accumulates over weeks. It accumulates in seconds. Read Curtis's original piece for the theoretical foundation, then open the Southleft browser playground at ds-contracts-playground.pages.dev and break something on purpose. That is when the architecture becomes obvious.

[READ ORIGINAL →]