Compendium · bonus edition
Five field guides in one volume: audit, handoff survival, pilot-first proof, 100-day execution, and design-dev collaboration. Diagnose. Orient. Prove. Execute. Collaborate.
Start here
Five field guides I give product teams separately. Combined here as a bonus: the full path from UI chaos to a system that scales, governs, and ships.
Who this is for: design, engineering, and product leaders at companies with roughly 20 to 200 people, multiple UI surfaces, and no dedicated design systems team (or one person doing three jobs).
What you get:
Use Print → Save as PDF. Margins: None. Enable background graphics. Expect ~70+ pages. Each part opens with a divider so you can share sections individually if needed.
I led Aurora at Nord/NordVPN (dozens of teams, millions of users) and have spent 16+ years where Figma meets the repo. These guides are the honest sequence I run in paid audits and foundations sprints.
Contents
Work through the parts in order for a full engagement arc: diagnose, orient, prove, execute, collaborate. Or jump to the part that matches where you are stuck today.
Part I
Part II
Part III
Part IV
Part V
Suggested path: Part I if you need a baseline score. Part II if leadership asks "what is a design system?" Part III if you have funded work but no DS budget. Part IV when you are ready to run the quarter. Part V when design and engineering keep missing each other.
Part I
Score where you are across six lenses. Turn reds and yellows into a prioritized roadmap.
00 · How to use this
This is the same diagnostic I use in paid engagements to find where a product's UI is drifting, and what it's costing. It works whether you have a mature system or none at all.
Go lens by lens. For each item, rate it honestly using the traffic-light scale below. Don't agonize, your gut read is usually right. When you're done, count your reds and yellows: that's your prioritized backlog.
Anything red in Governance or Tokens is almost always where you're losing the most time. Components and parity drift downstream of these two, fix the foundations first.
Inconsistency is a tax you pay in rework, slow velocity, and slow onboarding, every sprint.
The foundation. Without layered tokens, theming and consistency fall apart.
color-action, surface) that components consume.A design token isn't "a color variable." Two layers, primitive and semantic, are what let the whole system flex from one place. Skip the semantic layer and every theme change becomes a manual hunt-and-replace.
One governed set beats ten drifting copies.
Seven button variants across three codebases is the symptom everyone recognizes. The cure isn't more components, it's one canonical set, complete states, and naming both design and engineering trust.
If Figma and production disagree, the system isn't real.
This is the seam I live in. Figma and the repo. When design intent survives handoff, teams stop rebuilding the same patterns and start shipping consistently.
If it's not documented, it doesn't scale.
Docs are how a system survives team changes. If "how we build UI here" lives in Slack threads, every new hire slows the whole team down.
The #1 reason systems die. Boring, and decisive.
Most systems don't die from missing components. They die from no owner, no process, no versioning. Governance isn't bureaucracy, it's the small set of rules that keeps a system alive without a full-time babysitter.
Bake it into the system, not bolt it on later.
Accessibility and quality are cheapest when they live in the system. Build them into tokens and components once, and every screen inherits them for free.
Where automation and clear workflow let one senior cover more ground.
AI doesn't replace the senior judgment, it deletes the boring 80%. Migrating components, generating docs, wiring tokens, swapping mismatched instances. Used well, one person ships like a team.
Score tally worksheet
Fill this in as you work through the checklist. The lens with the most reds is usually where to start.
| Lens | 🟢 | 🟡 | 🔴 | Top gap / note |
|---|---|---|---|---|
| 01 Design tokens | ||||
| 02 Components | ||||
| 03 Design ↔ code parity | ||||
| 04 Documentation | ||||
| 05 Governance & ownership | ||||
| 06 Accessibility & quality | ||||
| + Bonus: workflow & AI | ||||
| Total (40 checks) |
Most reds in Tokens or Governance? Fix foundations first. Mostly yellows? You're closer than you think, a focused sprint closes the gaps.
07 · Reading your score
Tally Green / Yellow / Red across all 40 checks, then find yourself below. The point isn't a grade, it's knowing what to fix first.
Your system is in good shape. The risk now is drift as you scale, governance and a light ongoing partner keep it healthy.
Real pieces are in place, but gaps (usually governance, parity, or docs) are quietly slowing teams down. A focused Foundations Sprint closes them fast.
The cracks are showing and getting more expensive every sprint. An audit maps exactly where you're losing time and what to fix first.
You don't have a real system yet, and the tax is high. Start with tokens and a core component set: the highest-ROI fixes are usually obvious once you score them.
Group your reds by lens. Sequence the fixes: foundations (tokens) → core components → parity → docs → governance. Most teams get a usable system in weeks, not a year.
Part II
Readiness gates, build order, adoption, governance, and the worksheets that keep systems alive in production.
01 · Start here
You don't need another Pinterest board of component screenshots. You need a path that survives contact with engineering, product pressure, and the next reorg.
This playbook is for product teams (roughly 20, 200 people) who:
I've led design systems at enterprise scale (Aurora used by dozens of teams and millions of users) and spent 16+ years in the seam between Figma and the repo. This guide is what I wish every team had before they spent six months on a library nobody adopted.
40-Point Audit = score where you are today. 100-Day Playbook = day-by-day execution timeline. This guide = the decisions, worksheets, and failure modes that determine whether your system survives handoff.
Read straight through once. Then use the worksheets with your design, engineering, and product leads.
02 · The inconsistency tax
Every squad that reinvents buttons, form layouts, and spacing is paying a tax. It shows up as hours, not line items.
The tax compounds in four places:
Fixing problems gets exponentially more expensive the later you catch them. A spacing mistake caught in design costs an hour. In code, a day. After release, a sprint (or a rollback).
A design system isn't decoration. It's infrastructure that turns one good decision into a hundred correct implementations. Without it, you're paying the tax every sprint.
Most teams don't need permission to feel the pain. They need a shared picture of what it's costing and a sequence that doesn't require stopping the roadmap for a year.
03 · Three things teams confuse
Teams argue for months about "building a design system" when they mean three different things. Name it clearly.
A library without governance becomes shelfware: impressive in a demo, bypassed in production. A system without code connection becomes a PDF engineers ignore.
Practical test: Can a new engineer build a compliant screen on day one without Slack archaeology? If not, you have pieces of a system, not a system.
Public systems use different words (patterns, regions, modules). Pick names that fit your team and stick to them. Alignment beats perfection.
04 · The readiness gate
Starting too early creates process drag. Starting too late cements debt. Five green lights, three red flags.
Green lights (consider formalizing):
Red flags (stay lightweight for now):
If you're in the red zone: organize tokens and top 10 components informally. Document decisions in comments. Revisit the gate in one quarter.
05 · The six-layer stack
Think stack, not shopping list. Upper layers depend on lower ones. Skip a layer and the stack wobbles.
Squads usually ask for Layer 3. The expensive bugs live in Layers 4, 6. Patterns (configuration flows, data tables, settings wizards) are where teams bleed time, not another button variant.
06 · Pain map worksheet
Interview design, engineering, and product. Rate each area 1 (fine) to 5 (major pain). Highest totals = your starting point.
| Area | What to ask | 1, 5 |
|---|---|---|
| Workflow | Where does design → dev handoff stall? How often do engineers re-ask for assets? | |
| Assets | Can people find and trust reusable components? How many button variants exist in production? | |
| Communication | Do PM, design, and eng share the same words for UI decisions? | |
| Product / user | Do inconsistencies drive support tickets or user confusion? | |
| Culture | Does leadership fund consistency? Is the system seen as "design only"? |
Do 3, 5 short interviews, then a team pulse. Qualitative stories + numeric scores convince leadership faster than either alone.
07 · Dual inventory method
Screenshots show what users see. The repo shows what ships. You need both.
Visual pass (half a day):
Technical pass (with an eng partner, half a day):
#hex, arbitrary px) bypassing tokens| Item | Locations | Visual match? | Code match? | Priority |
|---|---|---|---|---|
| Primary button | ||||
| Text field | ||||
| Page heading | ||||
| Nav pattern |
Prioritize by: frequency in product × fix effort × user impact. Not everything gets fixed in sprint one.
08 · 30-day starter sprint
Pair system work with active product delivery. Visible wins beat big-bang launches.
Pain map + dual inventory. Name one eng champion and one product ally. Pick one live feature to improve (checkout, settings, onboarding).
Spacing (5, 7 steps), color (base → semantic aliases), typography (UI vs long-form). Export to JSON. One source both design and code can reference.
Button, text field, form label, card. All states (hover, focus, disabled, error). Wire to tokens. Ship in the chosen feature.
Before/after on the feature. Rough hours saved. Demo in eng standup. Document do's/don'ts for what you shipped.
Don't pause the roadmap. Replace UI in a live flow while you build the library. Leadership funds what ships, not what sits in Figma.
09 · Build order that sticks
Teams that jump to 40 components before tokens almost always drift within two quarters. This order holds.
space-section, space-inline), not isolated pixel picks per component.surface-raised). Never attach hex directly to components.For EU products: plan logical CSS (margin-inline), RTL tokens, and typography that tolerates German copy expansion (~30%) from day one.
10 · Winning the room
"Consistency" doesn't open wallets. Hours saved, tickets avoided, and faster shipping do.
15-minute ROI exercise:
Direction beats precision. You're proving the shape of the benefit, not winning a finance audit.
| Stakeholder | Lead with | Avoid |
|---|---|---|
| Engineering | Less rework, copy-paste components, fewer review loops | Pixel-polish arguments |
| Product | Guardrails for safe exploration, faster discovery | "Everything through design" |
| Executive | ROI, risk reduction (a11y, brand), onboarding speed | Component counts |
| Sales / marketing | Demo matches shipped product | Abstract design theory |
Pair system work with an active OKR when possible: "We improved checkout and shipped a reusable form pattern."
11 · Adoption beats assets
I've seen teams spend a year on components only to hear "the design system failed" because only designers knew it existed.
Adoption playbook:
Consumption and contribution are different strategies. Design for the 95% who consume. Make using the system faster than bypassing it.
Figma is the map. Users touch production. Live examples in Storybook beat static spec PDFs. When designers join PRs for component edge cases, handoff stops being a cliff.
12 · Governance without police
When governance is unclear, squads duplicate components and use one-off hex values. That's not rebellion. It's rational.
Hybrid model (works for most scale-ups):
Publish a one-page ownership map: who to ask, how to contribute, expected review time. Transparency beats more process.
Deprecation done right: announce → provide migration path → maintain for 1, 2 release cycles → remove. Old patterns clutter libraries and confuse AI tools.
13 · Measure outcomes
"We have 400 components" is not a win. Tie the system to product outcomes leadership already cares about.
Metrics that survive budget reviews:
Align system goals to active product OKRs each quarter. Example: "Standardize billing forms → 25% fewer billing support tickets → WCAG 2.2 AA on all form components."
Establish baselines before you claim impact. A one-question pulse in Slack after each release beats an annual survey nobody fills out.
14 · Five ways systems die
Most failures are predictable. Spot your team in this list early.
Start small. Iterate in public. Pair with product work. Celebrate one squad adoption win per month.
15 · AI guardrails
One prompt can generate a dozen plausible screens that all disagree with each other. Without guardrails, AI adds entropy.
Make your system machine-readable:
color.action.primary, not blue-500)AI accelerates production. It doesn't replace intent. Designers who strengthen systems thinking, ethical constraints, and cross-functional collaboration become more valuable, not less.
I placed 1st at the Into Design Systems AI Hackathon 2026 with a Figma plugin that smart-swaps mismatched components. The system was the constraint that made AI reliable.
16 · 90-day roadmap worksheet
Fill this in with your leads after the pain map and dual inventory. One theme per month.
| Month | Theme | Ship in product | System output | Owner |
|---|---|---|---|---|
| Month 1 | Foundations | One high-traffic flow updated | Tokens + button + input | |
| Month 2 | Expand | Second flow or dark mode | +6 components, Storybook live | |
| Month 3 | Patterns | Settings or table pattern | Governance doc + champions |
Need a day-by-day version? See my 100-Day Playbook. Need a health score? See the 40-Point Audit.
Part III
Prove value on funded product work before you pitch for a permanent design systems team.
01 · Start here
You do not need permission to start. You need a funded flow, three weeks, and something shipped that a product lead will defend in a steering meeting.
This playbook is for design and engineering leaders at product companies (roughly 20, 200 people) who:
If you need readiness gates, build order, adoption rituals, and governance models, read my Survive Handoff playbook first. That guide answers what to build and in what order.
This guide answers a different question: how do you prove the system on real product work before anyone funds a dedicated team?
Networks do not greenlight a series from a slide deck. They greenlight it from one episode. Your design system pilot is that episode: real characters (components), real dialogue (patterns), real stakes (a shipping date).
I led Aurora at Nord/NordVPN (dozens of teams, millions of users). Every time we scaled, proof on a live product beat a prettier roadmap.
02 · The Make System Use System trap
The default corporate playbook fails in the same order every time. You have probably seen it.
Call it the Make System Use System fantasy: if we just make a really good system, people will use it. Duh!
It ignores three realities:
Ship on funded product work first. Extract the system from what you built. Ask for scale-up with evidence, not vaporware.
03 · Hitch to moving work
A pilot without product pressure is a side project. Side projects do not survive the next reorg.
Look for inflection-point work that already has budget, a sponsor, and a deadline:
Your ask to the product lead is not "help me build a design system." It is: "Let us standardize this flow so your team ships faster and your launch date holds."
Reframe the conversation around schedule risk, not consistency theater. Velocity-measured teams fund what protects their roadmap.
Scan the quarterly roadmap. Mark anything with a named exec sponsor and a hard date. Score those candidates with the Pilot Scorecard on the next page. Highest score wins.
DACH replatform waves are ideal Raiders hosts: funded engineering motion, visible UI drift, and leadership already paying for the refactor.
04 · Pilot Scorecard worksheet
Eight factors, scored 0, 10 each. Highest total goes first. Run this live with PM and engineering in the room.
| Factor | What you're scoring | 0, 10 |
|---|---|---|
| Components needed | How many system components does this pilot force you to build or harden? | |
| Patterns needed | Forms, tables, empty states, navigation: does this flow exercise real patterns? | |
| Business value | Revenue, retention, compliance, or cost savings tied to this work? | |
| Technical feasibility | Can your team ship here without waiting on a platform rewrite? | |
| Team receptiveness | Will the host squad pair with you, or fight every PR? | |
| Scope clarity | Are boundaries written down, or does "refresh the app" mean everything? | |
| Independence | Can you progress without blocked dependencies on other teams? | |
| Publicity potential | Will leadership notice when this ships? Visible wins unlock the next pilot. |
Disagreement on scores is data. A 3 on receptiveness tells you to pick a different host or change the pilot type.
I ship a blank scorecard in every audit readout. It is the bridge from diagnostic to funded pilot.
05 · Five pilot types
Not every host squad wants a design system embedded in their sprint. Pick the type that fits the work and the room.
New to piloting? Open with Raiders or Perimeter. Do not improve UX during a Raiders refactor. Consistency first. Polish later.
06 · The Measuring Spoon Cycle
The system is not the textbook. It is the margin notes from real builds.
Think of a well-worn measuring spoon in a kitchen: forged from daily use, shaped by what you actually cook. Your design system should grow the same way.
Apply the three-times rule before you systematize a snowflake: if three squads need the same pattern, promote it. If one team needed it once, leave it local.
Curate your org's best internal components. Do not invent a tenth button variant when nine already exist in production. Abstract from what teams already love (the IKEA effect).
07 · Connected npm vs copy-paste
How product teams consume your system predicts whether pilots stick or drift within a quarter.
npm install @yourco/system. Teams pull updates. You can deprecate, changelog, and test before they feel pain.Audit question I ask on every diagnostic: "How do squads consume your system today?" Copy-paste is a red flag. Connected consumption is a green flag.
Pilots fail quietly when extraction stops at Figma. The proof point leadership remembers is merged code in a product repo, importing a package version they can point to in a release note.
At Nord scale, connected distribution was the difference between a library people admired and a library people shipped.
08 · Three concurrent pilots
Multichannel orgs that run pilots sequentially often wait 18 months to learn the web components do not fit mobile or marketing.
If you ship across web app, marketing site, and mobile (or admin + customer-facing), plan three concurrent pilots with a small dedicated system team (even 2, 3 people):
Run the same Pilot Scorecard for each channel. Expect different winners. That is the point.
Token architecture gaps show up when marketing needs display type your app never used. Navigation patterns diverge. Running three pilots surfaces shared primitives faster than any abstract audit workshop.
Sequential single pilots are fine for single-surface startups. For 20, 200 person product companies with multiple UIs, parallel pilots are cheaper than a false start.
Minimum viable design system after pilot one: three components teams can import Monday morning. Not a catalog. A wedge.
09 · Hot Potato beats handoff
Pilots die in the gap between "design approved" and "engineering started." Hot Potato closes that gap.
The workflow is simple: designer and engineer work in the same session (virtual counts). The engineer drives implementation early. Work passes back and forth like a hot potato, same day.
This is the studio wedge in one ritual: design intent survives handoff because handoff barely exists.
Half-day workshop: one real component, one engineer, one designer, merged by end of day. Document the session as the template for every future pilot.
Still running waterfall comps? Pair this with my Design × Development Collaboration guide.
10 · Flow week / Systems week
Alternate weeks. Product delivery, then extraction. WordPress teams figured this out years ago; it still works.
Embedded team ships product UI on the pilot host. Feature pressure is on. System work is limited to what the flow needs today.
Extract, document, version, and test. No feature pressure. Promote snowflakes that passed the three-times rule. Write the changelog entry.
Without protected Systems weeks, extraction gets sacrificed every sprint. The library stays a side project.
11 · The store, not the catalog
Nobody walks into a Lego store asking for a 2×4 brick in #C91A09. They walk in for a kit they can build this weekend.
Most reference sites are parts warehouses: 47 button variants, alphabetized. Pilots need a store: assembled products teams can ship from.
Structure your docs around what squads actually build:
Components live inside those products, not at the top level. A PM browsing your site should recognize their roadmap, not a design textbook.
After each pilot ships, add one new "product" to the store. Slack the link to the host squad's channel. Proof plus discoverability beats another all-hands slide.
12 · Pilot planning worksheet
Fill this before you embed. One row per week. Share it with the host PM so scope stays honest.
| Week | Pilot type | Host squad / flow | Ship in product | Extract to system | Owner |
|---|---|---|---|---|---|
| Week 1 | Hot Potato on first component | Token pass + v0.1.0 publish | |||
| Week 2 | Core flow screens in host repo | +2 components, Storybook entry | |||
| Week 3 | Host squad merges pilot PR | Pattern doc + store recipe | |||
| Week 4 | Demo to leadership sponsor | Scorecard re-run for next host |
Need a day-by-day build plan after the pilot proves out? See my 100-Day Playbook.
13 · Prove it, then pitch
The second funding conversation should open with a merged PR, not a Figma link.
What leadership needs to see after pilot one:
What to ask for next:
Run the 40-Point Audit before pilot two if you need an objective health baseline. Reds become the extraction backlog.
Part IV
Day-by-day sequencing from alignment through foundations, connection, and adoption.
00 · How to use this guide
This is the sequencing I run in paid engagements, compressed into a plan your team can execute internally or with a senior partner.
Who it's for: product companies with ~20-200 people, a real web product (often app + marketing site), a small design team, and engineers rebuilding the same UI patterns. You have leadership buy-in, or you're the leader making the case.
Who it's not for: pre-revenue startups with no product yet, teams that want "cheap screens" instead of a system, or orgs where engineering won't touch a shared component library.
How to read it: Phase 1 is non-negotiable. Phase 2 is where most of the build happens. Phase 3 makes the system real in production. Phase 4 is adoption: without it, you built shelfware.
Run the 40-Point Design System Audit on day 1. Your reds become the backlog. This guide tells you the order to fix them.
What's new in this edition: pilot scorecard and Measuring Spoon extraction (proof before scale), connected npm delivery (not copy-paste), patterns and six-area coverage, Hot Potato collaboration, canon vs expanded governance, docs as a store, and AI guardrails. Deeper context lives in the full compendium.
Time commitment: plan for 0.5-1 FTE dedicated to the system (design engineer, or design + eng pair), plus ~2-4 hours/week from a sponsor in leadership. Squads keep shipping features; the system earns its place by removing rework.
100 working days ≈ 20 calendar weeks at 5 days/week. Adjust pace if you're part-time on the system. Sequence stays the same.
01 · Why 100 days works
Most "design system projects" stall because they start in the wrong place, ship components nobody uses, or never assign an owner. One hundred days forces the right sequence.
I've led systems at enterprise scale (dozens of teams, millions of users on Aurora) and in fast-moving scale-ups. The pattern is consistent: tokens first, core components second, parity third, adoption last. Skip a step and you pay the inconsistency tax again within two quarters.
One hundred days is not arbitrary. It maps to what a focused team can actually deliver:
A mediocre system that's adopted beats a beautiful one that's ignored. I build for adoption from day one: pilot squads, visible milestones, governance before the library is "complete."
Skip the "build the whole system, then convince people" trap. Hitch to funded product work in Phase 1, extract components as you ship (Measuring Spoon Cycle), and prove value before you ask for a permanent team.
On one product, a single consistency fix cut reclamations ~90%. No full redesign. Same component, same behavior, everywhere. That's what a system is for: operations and revenue, not a Figma trophy case.
If you need less: stop after Phase 2 with a usable foundation. If you need more: extend Phase 3 into a full rollout. The phases still hold.
02 · Before day 1
The system won't survive politics. Sort sponsorship and access before you tokenize a single color.
1. Executive sponsor. One leader (Head of Design, VP Eng, or CPO) who will defend system time against feature pressure. They don't need to run it. They need to unblock it.
2. System owner (named). Even 20% of one person's role. "Everyone owns it" means no one owns it. The owner runs office hours, triages contributions, and keeps the roadmap visible.
3. Design + engineering pair. At least one designer and one engineer with authority to change the shared library and merge to main. A system in Figma alone is a draft.
4. Access. Figma org/libraries (edit), repo + Storybook (write), staging environment, analytics if you track UI errors.
5. Scope boundary. Pick 1-2 surfaces for the first pilot (e.g. settings area + onboarding). Not the whole product. Hitch to work that already has budget: rebrand, replatform, or a funded feature migration beats a sandbox library.
6. Pilot host scored. Run the Pilot Scorecard (page 5) on 3-5 candidate flows before you commit. Highest score wins. Politics becomes sequence.
7. Working agreement. Weekly 30-min sync. Review turnaround: 48h for async feedback. Slack/Teams channel named and archived. Decision log location chosen.
Sponsor confirmed · Owner named · Design + eng contacts assigned · Figma + repo access granted · Pilot surface chosen and scorecard completed · Kickoff scheduled · Audit checklist printed
03 · Pilot-first proof
The system is the notes in the margin, not the textbook. Extract from real shipping UI; don't invent components in a vacuum.
The Measuring Spoon Cycle: make product UI on a pilot → extract what repeats → reuse on the next product → repeat. Your 100-day plan is one long Measuring Spoon loop, not a big-bang library launch.
Hitch to moving work. Replatforms, rebrands, and merger integrations already have executive attention. Embed there. Don't build a parallel "design system project" that competes for the same engineers.
Five pilot types (pick what fits your politics):
Pilot Scorecard (score each candidate 0-10; sum and sort):
| Factor | What you're scoring | 0-10 |
|---|---|---|
| Components needed | How much of the system will this exercise force you to build? | |
| Patterns needed | Flows, not just atoms (forms, tables, settings) | |
| Business value | Revenue, retention, or exec visibility | |
| Feasibility | Tech stack, access, timeline realism | |
| Receptiveness | Will the host squad actually use what you extract? | |
| Scope clarity | Bounded surface vs endless "platform" | |
| Independence | Can you ship without blocking on other teams? | |
| Publicity | Will leadership see the win? |
Run up to three pilots concurrently (app, marketing, logged-out). One pilot's components rarely fit the second channel. Sequential hero projects teach slower.
Full pilot playbook: Pilot-First guide
04 · The four-phase map
Each phase has a single outcome. Don't start the next until the current one is demonstrably done.
Audit complete. Stakeholders aligned. Charter signed. Backlog prioritized. Cost of inconsistency estimated.
Primitive + semantic tokens in Figma and code. 15-20 core components with full states. Storybook started.
Figma↔code parity on core set. Docs site or Storybook docs complete. Pilot surface migrated. Token pipeline automated.
2+ squads shipping on system only. Governance rituals running. Deprecation plan for legacy patterns. Owner trained.
You can answer yes to all five: (1) one governed version of each core component in production, (2) tokens are the source of truth in Figma and code, (3) a new engineer built a screen from docs alone, (4) governance owner and RFC process exist, (5) leadership can see adoption metrics.
Detailed week plans start on page 6. Token and component references on pages 8-9.
You cannot fix what you haven't measured. Phase 1 is audit, inventory, and alignment. No component building yet.
| Day | Focus | Deliverable |
|---|---|---|
| 1-2 | Kickoff + access | Charter doc: goal, scope, roles, rituals. Baseline screenshots of pilot surface. |
| 3-5 | Run 40-point audit | Score all lenses. Count button/input/card variants in Figma + code. |
| 6-7 | Code + Figma inventory | Spreadsheet: component name, locations, drift notes, owner squad. |
| 8-9 | Stakeholder interviews | 3-5 short calls: designers, eng leads, PM. Pain in their words. |
| 10 | ROI framing | Estimate rework hours/month, onboarding drag, user-facing inconsistency cost. |
| 11-12 | Pilot Scorecard + roadmap | Score 3-5 candidate hosts. Sort high to low. Assign Phase 2-4 work to top pilot. |
| 13 | Readout prep | Executive summary (1 page). Top 3 priorities highlighted. |
| 14 | Live readout | Design + eng in the room. Decisions logged. Phase 2 kickoff date set. |
Leadership has seen the audit. Pilot surface is agreed. Token + core component work is scheduled with named owners. No open debate about whether you need a system.
Five weeks of build. Work in vertical slices: one component fully done (Figma + code + Storybook) before starting the next. No "Figma complete, code later."
Week 3 (days 15-19): Token architecture. Primitive palette, semantic aliases, spacing/radius/type scales. Figma variables published. Export pipeline to CSS/Tailwind stub.
Week 4 (days 20-24): Tier 1 components: Button, Link, Icon, Text styles. All states in Figma + React. Storybook stories live.
Week 5 (days 25-31): Form controls: Input, Textarea, Select, Checkbox, Radio, Switch, Label, Field error. Keyboard + focus on every control.
Week 6 (days 32-38): Feedback + layout: Alert, Badge, Card, Divider, Stack/Grid primitives, Skeleton.
Week 7 (days 39-45): Overlays: Modal, Tooltip, Popover, Tabs. Focus trap on Modal. Reduced-motion respected.
Week 8 (days 46-49): Midpoint review with squads. Fix parity gaps. Deprecate obvious duplicates in pilot surface.
Figma component on tokens · all states · code matches Figma · TypeScript props · Storybook docs · WCAG AA contrast · keyboard accessible · usage note (when to use / when not)
07 · Token architecture
Primitives hold raw values. Semantics hold intent. Components never reference primitives directly.
color-blue-500: #3b5bdb
color-gray-900: #111827
space-4: 1rem
radius-md: 0.625rem
color-action: color-blue-500
color-surface: color-gray-900
space-inline-md: space-4
radius-control: radius-md
Naming convention: {category}-{role}-{variant?}. Examples: color-text-primary, color-border-subtle, font-size-body, elevation-overlay.
Export path: Figma variables → JSON (Tokens Studio or native) → Style Dictionary → CSS custom properties / Tailwind theme extension. One pipeline, two consumers.
Theming: light/dark switches re-point semantics only. color-surface maps to different primitives per theme. Components unchanged.
Define color-text-on-action and color-action as a verified pair (4.5:1 minimum). Test both themes before you ship Button.
08 · Component priority tiers
Tier 1 unlocks 80% of screens. Tier 2 covers forms and feedback. Tier 3 is product-specific. Don't build Tier 3 until Tier 1 is adopted.
States checklist (every interactive component): default · hover · focus-visible · active · disabled · loading (if async) · error (if input) · empty (if container)
Figma structure: one library file per tier during build; merge to single published library at day 45. Component properties mirror code props (variant, size, disabled).
If it's in Figma, it's in Storybook. If it's in Storybook, it matches Figma within 2px spacing tolerance. Code Connect or equivalent links them for designers browsing the repo.
Three Times Is a Pattern: don't add to the system until a third squad needs the same thing. Snowflakes stay in the expanded universe until the pattern proves out.
09 · Patterns & the six-area model
Mature systems cover six interlocking areas. Squads ask for buttons; the expensive bugs live in regions, content, and flows.
Patterns to prioritize in Phase 3 (after Tier 1 adoption): settings panel, data table with sort/filter, empty states, onboarding wizard. These are "products" in your docs, not loose buttons.
Lead your reference site with recipes and flows (checkout, settings, onboarding). Nest components inside what teams actually build. Nobody walks into a store to buy loose bricks.
10 · Phase 2 week-by-week
| Days | Build focus | Review checkpoint |
|---|---|---|
| 15-19 | Token spec + Figma variables + CSS export | Design + eng sign-off on naming doc |
| 20-24 | Button, Link, Icon, typography utilities | Demo: 3 button variants in Storybook + Figma |
| 25-31 | Full form control set | Accessibility pass: keyboard-only form completion |
| 32-38 | Alert, Badge, Card, layout primitives | Designer builds a settings card in Figma from library only |
| 39-45 | Modal, Tooltip, Tabs | Focus trap test on Modal. Screen reader spot check. |
| 46-49 | Buffer + parity fixes + publish library v0.1 | Midpoint readout: squad leads see live Storybook |
Async rhythm: Mon/Tue build · Wed WIP Loom to channel · Thu review comments · Fri merge + changelog entry.
Phase 3 turns a library into a system: automated token sync, complete documentation, and a real product surface running on governed components only.
Token pipeline (days 50-56): CI job exports Figma variables on merge. Style Dictionary builds CSS + Tailwind + JSON. PR fails if token drift detected.
Documentation (days 57-63): Storybook docs per component plus 2-3 pattern recipes (settings, table, onboarding). Products first, components nested inside. Optional: docs site if you need search and onboarding paths.
Tier 3 components (days 64-70): Data table and navigation for your product. Build only what the pilot surface needs.
Pilot migration (days 71-77): One squad rebuilds the pilot surface (e.g. settings) using system components only. Track: lines of custom CSS removed, components imported, time to ship vs. baseline.
Pilot surface is in production on system components. Docs answer "how do I build X?" without Slack. Token export is automated, not manual copy-paste.
12 · Connected delivery
Bootstrap is a download. Your design system should be a versioned package product teams import. Copy-paste drifts on day one.
Connected means:
npm install @your-org/design-system (or internal registry equivalent)Week 50-52 checklist:
Figma is the map. Users touch production. When designers join PRs for component edge cases, handoff stops being a cliff. Connected delivery makes that possible.
Speaks both Figma and the repo: tokens in variables, components in a package, docs that show live imports.
13 · Phase 3 week-by-week
| Days | Focus | Deliverable |
|---|---|---|
| 50-52 | Package + token CI | npm package v0.1 + automated token export |
| 53-56 | Code Connect / Figma links | Core components linked in Figma |
| 57-60 | Storybook + pattern recipes | Tier 1-2 documented + 1 flow recipe page |
| 61-63 | Onboarding doc | "Build your first screen" guide for new hires |
| 64-67 | Table + nav (if needed) | Tier 3 components for pilot surface |
| 68-70 | Deprecation markers | Legacy components tagged in code + Figma |
| 71-74 | Pilot squad sprint | Feature branch using system only |
| 75-77 | Merge + measure | Production deploy + before/after metrics |
On one project, Lighthouse went 34 → 77 partly from system discipline: fewer one-off components, less CSS chaos. Performance is a design-system outcome whether your roadmap admits it or not.
Building is the easy part. Phase 4 is rollout, rituals, and making sure the system doesn't rot when the initiative ends.
Squad rollout (days 78-88): Squads 2 and 3 migrate one feature each. Name one design + one eng champion per squad. Office hours twice weekly for 30 min. Capture questions → doc updates same week.
Governance live (days 89-94): RFC template for new patterns. PR review checklist for design QA. Changelog published every release. Owner runs triage.
Enablement (days 95-97): 60-min handover session: how to contribute, how to request components, how to deprecate. Record it.
Close (days 98-100): Metrics review with sponsor. 90-day backlog for Tier 3 gaps. Decision: fractional partner, hire, or internal owner only.
At least two squads shipped production features on the system. Governance RFC merged at least once. Owner can run the next quarter without you.
15 · Governance starter kit
Most systems die from no owner and no process. This is the minimum viable governance. Copy it.
Roles
Canon vs expanded universe
Flow week / Systems week (alternate if embedded in product teams):
Without explicit alternation, system work loses every sprint planning fight. Calendar it with the eng manager.
RFC template (one page)
Rituals
PR checklist (design QA)
16 · Hot Potato & collaboration rhythm
Design intent survives handoff when handoff barely exists. Hot Potato beats comp-to-Jira-to-sprint every time.
Hot Potato process: designer and engineer in the same session (virtual counts). Engineer drives implementation early. Design explores inside real constraints. Pass work back and forth the same day.
Run it in Phase 2: pick one Tier 1 component. One designer, one engineer, shipped by end of day. Record the session as the pattern for squads.
Five collaboration rituals to institutionalize by Phase 4:
Front-end engineering is the hinge. A design engineer (or senior FE with systems taste) translates design language into durable code. Without someone in the seam, you get beautiful Figma and chaotic production.
Deeper teamwork guide: Design × Development Collaboration
17 · Phase 4 week-by-week
| Days | Focus | Deliverable |
|---|---|---|
| 78-80 | Rollout kickoff | Squad migration briefs + deadlines |
| 81-85 | Squad 2 migration | One feature live on system components |
| 86-88 | Squad 3 migration | Second feature live |
| 89-91 | Governance docs published | RFC + PR checklist in repo |
| 92-94 | First external RFC merged | Changelog entry + comms to org |
| 95-97 | Enablement session | Recording + onboarding path updated |
| 98-99 | Metrics review | Before/after deck for sponsor |
| 100 | Handover | 90-day backlog + owner sign-off |
18 · Success metrics worksheet
Measure whether squads ship faster and happier. Component counts and doc page views are vanity metrics unless teams feel relief.
| Metric | Day 1 | Day 50 | Day 100 | Target |
|---|---|---|---|---|
| Button variants in production | 1 | |||
| Core components at Figma↔code parity | 15-20 | |||
| % pilot surface on system components | 100% | |||
| Squads shipped on system (count) | 2-3 | |||
| Hours/week rework on UI patterns | ↓ 50%+ | |||
| New hire: time to first screen (hours) | ↓ 40%+ | |||
| Slack questions "which component?" / week | → 0 | |||
| Hardcoded hex values in pilot surface | 0 | |||
| Package imports in product repos (count) | 2+ apps | |||
| Squad leads report "relief" (Y/N interviews) | Yes | |||
| WCAG AA failures on core components | 0 |
Align one system metric to an active product OKR each quarter. Example: "Standardize billing forms → fewer support tickets → WCAG 2.2 AA on all form components."
Design and eng agree on what "done" means. PMs reference the system in specs. Legacy components have owners and deprecation dates. Nobody says "just this once" without an RFC. New hires build a screen from docs in week one.
19 · Ten ways systems fail
If you recognize your team below, fix the process before you add another component.
It doesn't have to be this way. Most failures are governance and sequencing, not talent.
20 · AI guardrails
One prompt can generate a dozen plausible screens that all disagree. Without guardrails, AI adds entropy. Machine-readable tokens are the moat.
Make your system AI-readable by day 77:
color.action.primary, not blue-500)AI accelerates production. It doesn't replace intent. Designers who strengthen systems thinking, ethical constraints, and cross-functional collaboration become more valuable, not less.
I placed 1st at the Into Design Systems AI Hackathon 2026 with a Figma plugin that smart-swaps mismatched components. The system was the constraint that made AI reliable.
Add an "AI usage" section to your docs: which components are safe for codegen, which patterns need human review, how to prompt with semantic tokens.
21 · Master 100-day checklist
| ✓ | Checkpoint | Phase |
|---|---|---|
| Pilot Scorecard completed; host squad committed | 1 | |
| Audit complete, readout done, ROI estimated | 1 | |
| Sponsor + owner named in writing | 1 | |
| Pilot surface chosen and baselined | 1 | |
| Primitive + semantic tokens in Figma and code | 2 | |
| Tier 1 components shipped with full states | 2 | |
| Tier 2 form controls + overlays complete | 2 | |
| Storybook live with core stories | 2 | |
| npm (or internal) package published; 1+ app imports it | 3 | |
| Token export automated in CI | 3 | |
| Docs: components + 1 pattern recipe (store IA) | 3 | |
| Pilot surface migrated and in production | 3 | |
| 2+ squads shipped features on system | 4 | |
| Champions named in 2+ squads | 4 | |
| Hot Potato session run; rhythm documented | 4 | |
| Canon vs expanded tiers published | 4 | |
| RFC + PR checklist published | 4 | |
| AI guardrails section in docs | 4 | |
| Enablement recorded; owner trained | 4 | |
| Day 100 metrics reviewed with sponsor | 4 |
Part V
Rituals, roles, and trust across the handoff seam. Where design engineering pays off.
00 · The cost of the seam
Design and engineering sit on opposite sides of the same user problem. When they don't share a language, you pay twice: once in rework, again in morale.
Most teams describe the pain as technical. "Figma doesn't match production." "Engineers rebuild everything." "We need better specs." True, and incomplete. Underneath is a teamwork gap: two groups with different definitions of "done," different incentives, and no one whose job is to hold the center.
The symptoms look like UI problems. The cause is often collaboration:
Inconsistency isn't a polish problem. It's an operations problem that happens to look like UI. You pay in rework, slow onboarding, support load, and sometimes lost revenue. Quick hacks compound; so do systems. Pick the compounding you want.
This guide is for Heads of Design, engineering leaders, and design engineers building the bridge. Pair it with the 40-Point Audit to score where collaboration is breaking today.
01 · People before tooling
New tools arrive every quarter. The teams that improve are the ones that fix how they work together first.
I've seen orgs buy design-system platforms, Figma plugins, and AI assistants while the same three engineers rebuild the same button. The tool wasn't the bottleneck. Trust was.
What actually moves the needle:
At Nord, with Aurora used by dozens of teams and millions of users, the hard part was never drawing components. It was governance: keeping dozens of designers and engineers building the same thing. Small teams can wing consistency. At scale, consistency is an engineering problem with a design surface.
Collaboration infrastructure (rituals, a design engineer, a governed system) is not overhead. It's how you stop paying the same tax every sprint.
02 · What design engineers do for teams
A design engineer lives in the seam so your designers and feature engineers don't have to fight there.
For design teams, they make constraints visible early: what composes cleanly, what needs a new pattern, what will break accessibility. Design intent survives handoff because someone validates it in code, not in a comment thread two weeks later.
For engineering teams, they remove guesswork: governed components, typed props, Storybook examples. Less "is this pixel supposed to be 12 or 16?" More ship.
For leadership, they turn UI chaos into a plan: audit, roadmap, adoption metrics. One senior person with systems thinking and craft, not a ticket ping-pong between departments.
Design throws files. Eng interprets. PM mediates. Rework every sprint. Hiring filters miss the hybrid role for months.
Shared library in Figma and repo. Reviews at the system layer. "Done" means the same thing. Velocity goes up as entropy goes down.
Hiring this role is hard because it contradicts how companies hire. Contracting or fractional design engineering is often how teams get moving while the req stays open.
03 · A shared language
When design and eng argue about hex codes, they're arguing about ownership. Semantic tokens end the fight.
A shared language has three layers:
color-action, not #3b5bdb. Intent both sides can reference in critique and code review.When everyone uses the same words, meetings shrink. Designers don't defend pixels; they reference semantics. Engineers don't improvise; they import from the library. PMs can write specs that mean something to both sides.
Pick your last five shipped screens. Could an engineer rebuild each from Storybook and Figma alone, without Slack? If not, you don't have a shared language yet. You have habits.
Building the language is work. Maintaining it is teamwork. That's why governance and a named owner matter as much as the first token file.
04 · Five collaboration rituals
These five rituals fix most design-dev friction I've seen in 16+ years. None require new software.
Start with rituals 1 and 2 in week one. Add the rest as the library grows. Rituals fail when they're optional. Put them on calendars, assign a facilitator, measure attendance.
05 · Roles and healthy boundaries
Collaboration breaks when everyone does everyone's job, or nobody does the glue work.
| Role | Owns | Does not own |
|---|---|---|
| Product designer | User flows, composition, UX quality on features | Production implementation, system governance |
| Feature engineer | Feature logic, integration, shipping | Inventing one-off UI patterns |
| Design engineer | System components, tokens, parity, docs, adoption | Every feature screen, PM work |
| System owner | Roadmap, RFC triage, releases, metrics | Solo-building in a cave |
| Design + eng leads | Prioritization, conflict escalation, protecting system time | Micromanaging component APIs |
The design engineer is not "extra design" or "extra eng." They're the connective tissue. Underfund that role and both departments pay the tax forever.
Feature teams compose systems. The system team governs primitives. When a feature needs a new pattern, RFC first. No rogue buttons because the sprint was tight.
06 · When design and eng disagree
Friction is normal. Unresolved friction becomes drift.
Often means the design skipped composition constraints. Fix: design engineer breaks the screen into system parts live. If a gap is real, RFC a new pattern with eng estimate before the sprint commits.
Often means handoff was a file drop with no pairing. Fix: pair review ritual. Define acceptable deltas (spacing within token step, not arbitrary px).
One-offs become permanent. Fix: time-boxed exception with deprecation ticket, or compose from existing variants. Design engineer says no when the cost compounds.
Usually true when the library is incomplete or docs are stale. Fix: measure time-to-ship on system vs. one-off screens. Invest in missing Tier 1 components, not blame.
Escalate to design + eng leads only when RFC-level decisions stall. Escalation should be rare if rituals run weekly.
07 · Trust at scale
When everyone knew everyone, hallway alignment worked. Past ~40 people, you need structure.
Trust at scale comes from predictability:
I led design systems where contributors spanned continents. What held it together wasn't charisma. It was office hours, written decisions, and a design engineer who showed up in both Figma and the repo every week.
Teams ship inconsistent UI when saying "that's not in the system" feels like career risk. Leaders set tone: consistency is quality, not bureaucracy.
08 · ROI: where money hides
Leadership funds collaboration when you speak in rework avoided, not in "better Figma."
Four cost buckets (estimate monthly, conservative):
| Bucket | What to measure | Your estimate |
|---|---|---|
| Rework | Eng + design hours redoing UI that diverged from intent | |
| Onboarding | Extra days for new hires to ship first consistent screen | |
| Support / quality | Tickets tied to confusing or inconsistent UI | |
| Opportunity | Features delayed because UI work ballooned |
ROI math (simple): (monthly tax × months) vs. investment in audit + foundations + fractional partner. Most teams I audit underestimate rework by half because it's spread across squads.
~90% drop in reclamations after one consistency fix (Flyeralarm). Lighthouse 34 → 77 partly from system discipline. Dozens of teams on Aurora where governance mattered more than library beauty. These are operations wins, not design awards.
Collaboration ROI is rarely a single headline number. It's compound: fewer arguments, faster reviews, fewer production bugs, calmer teams. Track leading indicators weekly; lagging revenue shows up later.
09 · Proof from the field
Different companies, same teamwork lesson: alignment pays.
Pattern 1: Consistency fixes revenue. On one product, unifying inconsistent UI patterns cut reclamations ~90%. Same action, same component, same behavior. Users stopped making avoidable mistakes. Support dropped. Nobody had put that on the roadmap slide; it showed up anyway.
Pattern 2: Scale needs governance, not more designers. At enterprise scale, the fight is keeping 40+ contributors from forking the library. Weekly syncs, RFCs, and a design engineer in the repo beat another design hire who only works in Figma.
Pattern 3: Performance follows discipline. Lighthouse 34 → 77 on one project. Part of that was fewer one-off components and less CSS chaos. Performance is a design-system outcome when collaboration keeps production tidy.
None of these required a bigger agency retainer. They required someone in the seam, rituals that stuck, and leadership that protected system time.
10 · AI and the human factor
AI doesn't replace design-dev collaboration. It deletes the grunt work that eats the time you need for it.
What agents handle well: token diffs, doc stubs, component inventories, migration PRs, parity checks. What they don't own: tradeoffs, brand judgment, adoption politics, saying no to a one-off that will haunt you for six quarters.
We won 1st place at the Into Design Systems AI Hackathon 2026 with SwapWizard, a plugin that smart-swaps mismatched components. The lesson: point AI at tedious high-volume work; free seniors for the conversations that build trust.
Collaboration + AI workflow:
Bad collaboration with AI lets the agent invent the product. Good collaboration lets the team spend meeting time on taste, scope, and adoption, not renaming layers.
11 · Anti-patterns
Figma link in Jira with no walkthrough. Fix: pair review ritual.
Building components no squad asked for. Fix: pilot with one squad week 3.
Storybook with no Figma counterpart. Designers disengage. Fix: bilingual owner.
"Eng always breaks it." Fix: shared definition of done; system PR reviews.
New platform every quarter. Fix: run the five rituals for 30 days first.
100 components, 3 adopted. Fix: adoption % per squad, not component count.
It doesn't have to be this way. Most failures are sequencing and teamwork, not talent.
12 · 30-day collaboration sprint
A minimal program to prove collaboration ROI before a full system build.
| Week | Actions | Success signal |
|---|---|---|
| 1 | Run 40-point audit. Name sponsor + owner. Start weekly sync. | Shared backlog doc exists |
| 2 | Pair review on one real feature. Document "done" checklist. | Design + eng sign same checklist |
| 3 | Ship one Tier 1 component (Button) in Figma + code + Storybook. | Squad uses it in a PR |
| 4 | Office hours + monthly show-and-tell. Estimate rework hours saved. | Leadership readout with numbers |
If week 4 shows adoption on one component and fewer Slack questions, you've proved the model. Scale into the 100-day system playbook.
What to do next
I help DACH and EU product teams turn UI chaos into systems that scale, govern, and ship. Start with the part that hurts most, then book a consult if you want help running it.
Fixed-scope diagnostic (Part I in depth) with prioritized roadmap and readout call. Fee credited toward a build.
Tokens, core components, docs starter, and Figma↔code connection. Parts II to IV compressed into a multi-week engagement.
Ongoing governance and design engineering so the system stays healthy as you grow.
16+ years · Nord/NordVPN design systems (dozens of teams, millions of users on Aurora) · React/TypeScript · 1st place, Into Design Systems AI Hackathon 2026
I'll give you two or three concrete observations on your situation. No pitch deck.
Get a free consultation → · christophhellmuth.com · post@christophhellmuth.com
© Christoph Hellmuth · Compendium bonus edition · Free to share with attribution · Not for resale
Individual guides: 40-Point Audit · Survive Handoff · Pilot-First · 100-Day · Collaboration