I built the design system behind a custom eCommerce ERP and still run it. One source of truth that maps 1:1 to production Vue.js, plus a contribution model that works beyond the core team.
Want the full architecture, token tables and governance model? Read the detailed write-up.
A custom eCommerce ERP with a 30,000-SKU catalog, and nothing shared underneath it. Designers improvised screen by screen. Engineers rebuilt the same components in every module.
Tokens were defined in two places. Intent got lost at handoff, and nobody could see the drift building up. There was no canonical anything to point at.
Four published Figma libraries. Each one depends only on the layer beneath it, so dependencies run in one direction and never sideways.
Underneath sits a three-layer token architecture. Primitives hold raw values. Semantic tokens describe intent, and component tokens tie that intent to a specific UI role. Light, dark and density all resolve through the same names, so a mode never needs its own forked library.
I built (vibe-coded) two Figma plugins to make drift visible. Both are still in daily use.
Clusters near-duplicate components by structure and meaning, with side-by-side diffs. An audit that used to take days takes minutes.
Audits files for detached instances, hardcoded colours and deprecated components, then exports a ranked triage report. Read out weekly in design review.
Contribution model. Any designer or engineer outside the core team can propose and build a component. Nothing ships without passing four gates: accessibility, tokens-only consistency, documentation, and implementation parity against the Vue build.
Props, states and tokens map 1:1 to Vue.js. A discrepancy is a bug in the component, not a handoff debate.
Naming is the contract between design and code. I locked it before the first component and it hasn't changed since.
Light/dark and density resolve through semantic names. A brand change moves through the token layers without touching the library graph.
WCAG 2.2 AA is baked into the tokens, components and patterns. A failing colour pair doesn't exist in the semantic set, so nobody can reach for one by accident.
Adoption and design debt get read out every week. Flat or rising debt means the contribution model is leaking somewhere.
250+ components across web and mobile, all of it in production. Started from nothing and it is still growing.
Maintenance is the job. Debt is triaged weekly and the contribution model absorbs work from outside the core team.
You can't fix drift you can't see. The plugins earned their keep faster than any component did.Principle carried forward · HikeOn ERP