From System Creation to System Repair — Automated

How we reduced design system setup from 160 hours to 24 hours and maintenance from 7 hours/sprint to 15 minutes—with a self-healing repair engine.

Role

Product Engineer

Timeline

6 months

Platform

Figma Plugin

Impact

70% time reduction

The project itself :

Context

Design systems break faster than teams can fix them

Context

Design systems break faster than teams can fix them

After working with 50+ design teams over 15 years, I observed a consistent pattern: teams spend 2–4 weeks setting up a design system, use it for 3–6 months, then it degrades into chaos. Variables become detached, naming drifts, styles orphan. The only solutions were starting over or manual audits taking 40+ hours.

160+

160+

Hours eliminated from manual system work

60%

60%

Reduction in repetitive system maintenance work

7hr

7hr

From 2–3 weeks → under 7 hours

Typical Issues Found After 6 Months (162 total)

Detached Variables
124
Orphaned Styles
10
Naming Issues
28

Real data from auditing a Series B SaaS company's design system. 124 detached variables meant designers were manually overriding values instead of using the system.

All about the user :

Hypothesis

Maintenance is harder than creation—and more valuable to solve

Maintenance is harder than creation—and more valuable to solve

If we built a system that could detect and repair broken design systems automatically, teams could:

→ Recover legacy systems

Fix existing broken systems instead of rebuilding from scratch

→ Prevent future degradation

Run repair checks regularly to catch issues early

→ Enable faster setup

Generate systems knowing repair is available

→ Reduce manual work

Eliminate 40-hour manual audit cycles

The bet: Every tool focuses on creation (scaffolding, generation). No one solves the harder problem of systematic maintenance. If we could automate repair, we'd unlock a 10x time savings and enable teams that currently can't maintain systems.

The project itself :

Core Solution

Designing a reliable way to convert interfaces between RTL and LTR without breaking layouts

The Design System Repair Engine

The only tool that systematically detects and repairs broken Figma variables at scale

This isn't a "nice to have" feature—it's the core value proposition. Without automated repair, teams are stuck in an endless cycle of manual fixes.

1. Deep File Scan (4.2s avg)

Traverse all pages, frames, and components. Build dependency graph. Match patterns against W3C token standards.

→ Scanned 247 components

→ Found 1,847 token references

→ Built dependency tree

2. Issue Detection

Classify problems: detached variables, naming violations, orphaned styles, missing references.

124

124

Detached vars

28

28

Naming issues

10

10

Orphaned

3. Preview Mode (Non-Destructive)

Show all proposed changes. User reviews and approves. This was critical for trust and adoption.

Design Decision: Early versions auto-applied fixes. Beta testers rejected it. Added preview mode → adoption increased 3x.

4. Automated Repair (3.1s avg)

Re-link variables, normalize naming, remove orphans, generate audit report.

158/162

158/162

97% success rate. 4 issues required manual review (complex nested dependencies).

All about the user :

Measured Impact

85% time reduction with quantifiable ROI

Setup Time: Manual vs. Baseline

Result: 136 hours saved per setup = $12,240 at $90/hr blended rate

Maintenance Hours Per Sprint (6-Sprint Comparison)

95% reduction in ongoing system maintenance (6.5 hrs → 0.25 hrs per sprint)

design-system
Colors
#3D82F6, Blue-500, primary, brand-blue
Aa
Typography
14px, 0.875rem, small, body-sm
Spacing
16px, 1rem, md, 4
Elevation
shadow-sm, drop-shadow, card-shadow
4 issues detectedAction required
design-system
Colors
color.primary.500
Aa
Typography
typography.body.sm
Spacing
space.4
Elevation
shadow.sm
0 issues detectedSystem aligned

The clear version :

Key Decisions

What we built — and what we deliberately didn’t

✓ Built: Preview Mode (Non-Destructive)

Why: Early beta feedback showed designers wouldn't trust auto-fixes without seeing changes first. Adoption went from 30% to 90% after adding this.

Tradeoff: Added 2 weeks to dev timeline, but essential for trust.

✓ Built: W3C Token Standard Compliance

Why: Teams wanted predictable, dev-friendly token names for CSS variables. Enforcing kebab-case and semantic naming reduced handoff errors by ~70%.

Tradeoff: Less flexibility in naming, but teams valued consistency over customization.

✗ Cut: AI-Powered Suggestions

Why: Initially planned LLM-based token naming suggestions. Abandoned after testing showed it added complexity without clear value. Rule-based system was 10x faster and more predictable.

Learning: Not every problem needs AI. Deterministic systems are better for structured tasks.

✗ Cut: Continuous Monitoring

Why: Wanted real-time alerts when system health degraded. But Figma plugin API limitations and resource constraints made this infeasible for v1.

Future: Moved to v2 roadmap. Current workaround: teams run manual scans weekly.

The project schematically :

Validation

12 teams, 6 weeks, clear signal

Usage Metrics

158

158

Avg issues detected per scan

97%

97%

Successful variable reassignment across systems

4s

4s

Full system scan and repair completed in 4 seconds

8/10

8/10

Validated across 12 teams in 6 weeks

✓ Built: Preview Mode (Non-Destructive)

Why: Early beta feedback showed designers wouldn't trust auto-fixes without seeing changes first. Adoption went from 30% to 90% after adding this.

Tradeoff: Added 2 weeks to dev timeline, but essential for trust.

✓ Built: W3C Token Standard Compliance

Why: Teams wanted predictable, dev-friendly token names for CSS variables. Enforcing kebab-case and semantic naming reduced handoff errors by ~70%.

Tradeoff: Less flexibility in naming, but teams valued consistency over customization.

✗ Cut: AI-Powered Suggestions

Why: Initially planned LLM-based token naming suggestions. Abandoned after testing showed it added complexity without clear value. Rule-based system was 10x faster and more predictable.

Learning: Not every problem needs AI. Deterministic systems are better for structured tasks.

✗ Cut: Continuous Monitoring

Why: Wanted real-time alerts when system health degraded. But Figma plugin API limitations and resource constraints made this infeasible for v1.

Future: Moved to v2 roadmap. Current workaround: teams run manual scans weekly.

Qualitative Feedback

"Preview mode is genius. I trust it because I see what it's doing."

— Senior UX Designer, Krishaweb

The clear version :

Reflection

Three things I'd do differently

1. Start with repair, not generation

I initially built token generation first because it seemed like the "core feature." But beta users cared more about fixing their existing systems. I should have validated the repair engine first—it's the actual differentiator.

Lesson: Build the unique value prop first, even if it feels like a "secondary" feature.

2. Preview mode should have been v1, not v1.2

Users rejected auto-fixes immediately. Adding preview later required refactoring the entire repair flow. If I'd included it from day one based on trust concerns, would have saved 3 weeks of rework.

Lesson: When dealing with design files (people's work), trust > automation speed.

3. Measure time savings earlier

I had anecdotal "this saves time" feedback but didn't quantify it until week 4. The 85% time reduction stat became our strongest marketing message. Should have instrumented this from beta day 1.

Lesson: Quantify value early. It clarifies roadmap priorities and selling points.

Validated product-market fit in maintenance tooling

Baseline proved that design system maintenance is a bigger pain point than creation. By focusing on the repair engine as the core differentiator, we:

→ 25+ figma community users

→ Reduced setup time by 85% (160 hrs → 24 hrs)

→ Achieved 90% adoption rate among beta teams

→ Cut maintenance from 7 hrs/sprint to 15 minutes (95% reduction)

Create a free website with Framer, the website builder loved by startups, designers and agencies.