What changed
- Sync
- Four teams hand-updating tokens; platforms drifting apartOne commit in the token repo, and every consuming platform updates without anyone touching code
- Reach
- A platform-agnostic token API: Android, web and Figma already build on it, and reaching iOS or connected TV is an implementation task, not a system change
- Structure
- Four-tier token hierarchy: consistency enforced by structure, not by coordination
What I took from it
Infrastructure work is design leadership work. This design system is not a Figma file but a running service, so I had to understand APIs, CI pipelines, and token architecture. Not to become an engineer, but because design decisions embedded in infrastructure carry further than design decisions documented in Figma.
The other lesson: choosing a standard format mattered more than building a clever custom one. It means the system can outlast the person who built it.
I would not hand this architecture to another company as a template. It answers one organisation: no design team, engineering outside the company, product managers and product owners setting direction. Somewhere with its own platform team would be right to build something simpler. What travels is the question rather than the answer, which is what this organisation can actually hold.
Read the full case study (8 min)
The problem
Change the radius on a card at Bibel TV, and that isn't a five-minute edit. Development sits with an external agency, so it's an estimate in hours and a slot in a sprint. Small changes were not small.
That cost existed because each of the four platforms — iOS, Android, web, connected TV — kept its own copy of every design decision: Kotlin values, Swift constants, CSS variables, Figma styles. Change a color in one place and four teams had to catch it in four others. In practice, three fell behind every time, and the platforms drifted apart. The design system was a Figma library people referenced, with nothing enforcing that the reference stayed true.
There was also a budget reality underneath all of it: no platform-engineering team to own design infrastructure. If the Head of Design didn't build it, nobody would.
The architecture
The other options each failed somewhere. A Figma-only library breaks at scale through copy-paste drift. Per-platform token sets give flexibility but make every change an N-times job. A Storybook system handles web and ignores native. Manual sync holds only as long as one person stays perfectly consistent.
What I built is a Git-based token repository that builds to a live API the platforms consume directly.
One Git repo holds the tokens, versioned and reviewed like any other code. A four-tier hierarchy keeps them sane, running from primitives (OKLCH colours, spacing, type) through semantic and component to the page and view tokens a product team works in. Style Dictionary builds platform-specific outputs from that single definition. An automation layer distributes every committed change to the platform endpoints and the Figma plugin.
The top two tiers are the part a purist would question. Component and page-or-view tokens introduce no new values at all; they alias downward to semantic and primitives. That redundancy is deliberate. Each is a place the company can reach in and change a component's spacing or type size, or border radius across the board, without going through the agency that owns the code. Read as a taxonomy it is redundant. Read as a control surface it is the whole point, and it is the first step toward server-driven UI for the streaming section of the app.
The agency backed it, which I did not take for granted. The architecture takes billable change work away from them and they were enthusiastic anyway.
How it works in practice
Change a token
A designer or engineer opens a pull request against the token repo. Standard review, approve, merge.
Style Dictionary builds
CI runs Style Dictionary, generating platform-specific token files from the single source definition.
Sync runs automatically
Automation workflows push the built tokens to the platform endpoints and the Figma plugin. No manual step.
Platforms pick it up
The Android app reads the API on launch and stores tokens locally. The web build pulls the same tokens into Storybook. Figma updates through the plugin. None of it needs a new code deploy.
The decisions that mattered
The repo is the source, not Figma
This flips the usual dependency. Normally Figma is the design source and each platform keeps its own copy. Here the repo is the source and Figma is a consumer, so design can change without engineering retouching every platform by hand.
A standard token format
I used the Design Tokens Community Group format rather than inventing one. New tools will read it natively, and a new hire does not have to learn a proprietary system.
Design owned the architecture
Token infrastructure is usually platform-engineering work. Owning it meant I could decide the color space, the spacing scale, and the naming semantics without negotiation, but it also meant learning style dictionaries, API endpoints, and automation workflows.
Because the system is a deployed service and not a document, it opens the door to server-driven UI: change a token on the server, and any platform already wired to it picks up the change on next launch — no rebuild, no ticket. Adjust a color for a campaign or fix a contrast issue without shipping a build.
Want to know how I got the agency that bills for every UI tweak to back a system built to make most of those tweaks free, or why two of the four token tiers were built to add nothing at all? Get in touch.