When to Build a Design System—and When Not To | Devin Gray
Skip to content
Back to all insights
Technical Leadership
Fractional Technical Leadership guide

When to Build a Design System—and When Not To

Jul 22, 2026
10 min
Share:

Use this decision framework to determine whether repeated interface work justifies a design system, a component library, or a smaller shared foundation.

Build a design system when coordination has become a product problem

The question is not whether consistent interfaces are good. The question is whether the cost of repeated decisions, divergent implementation, and fragmented ownership is large enough to justify a maintained system.

My perspective comes from component-library work for PayPal and a Storybook implementation for HUM Nutrition. Those environments reinforced that a design system earns its value through repeated use. It should reduce a recurring delivery problem—not exist as a showcase project beside the product.

This framework helps a team decide whether it needs a full design-system program, a shared component library, a smaller token foundation, or simply clearer conventions. You can also use the design-system decision scorecard during a planning workshop.

Distinguish the system from the component library

A component library is implemented interface code: buttons, inputs, navigation, dialogs, layout primitives, and other reusable pieces.

A design system is broader. It connects:

  • visual and interaction principles;
  • design tokens;
  • accessible component behavior;
  • design assets and coded components;
  • content and usage guidance;
  • contribution and review rules;
  • versioning, release, and support;
  • ownership and product adoption.

A team may need shared components without needing a formal design-system program. Calling every reusable button a system can create process before the underlying coordination problem exists.

Start by naming the actual gap. Is the problem duplicated code, inconsistent design decisions, inaccessible states, slow review, unreliable releases, or unclear ownership? Different problems require different investments.

Look for repeated signals across products and teams

A design system becomes more valuable as repetition and coordination increase.

Strong signals include:

  • multiple products implement the same interaction differently;
  • several teams maintain near-duplicate components;
  • accessibility defects recur across common controls;
  • designers recreate foundational patterns in each file;
  • product work regularly stalls on already-solved interface decisions;
  • brand or behavior changes require many manual updates;
  • shared patterns have enough usage to reveal stable requirements;
  • onboarding requires tribal knowledge about common states;
  • teams cannot tell which component or pattern is current.

One signal alone may not justify a program. A cluster of these signals suggests the organization is already paying for a design system—it is simply paying through duplication, inconsistency, and coordination.

Count concrete examples. “Our UI feels inconsistent” is a starting observation. “Four teams maintain five date pickers with different keyboard behavior” is evidence that can guide scope.

Recognize when a full system is premature

A design system is usually a weak first investment when:

  • one small team owns one narrow product;
  • the product direction or brand is changing rapidly;
  • interface patterns have not repeated enough to stabilize;
  • there is no committed owner for maintenance;
  • delivery problems primarily come from unclear product decisions;
  • the organization cannot support adoption and migration;
  • a framework or existing library already satisfies most needs;
  • success is defined as launching documentation rather than improving product work.

Premature standardization can freeze uncertain decisions and move work into a new repository without reducing it.

In that situation, begin with a lighter foundation: a small token set, a few accessible primitives, documented conventions, and an inventory of repeated patterns. Let product work reveal which abstractions deserve permanence.

Calculate the current coordination cost

Estimate the cost of the problem before estimating the system.

Review a representative period and record:

  • hours spent rebuilding common controls;
  • defects caused by inconsistent behavior;
  • accessibility remediation repeated across products;
  • design and engineering review spent resolving established patterns;
  • maintenance required when brand or platform rules change;
  • time new contributors spend locating the correct implementation;
  • delays caused by unclear ownership or incompatible versions.

Avoid turning every inconvenience into a dollar figure. Some evidence is better expressed as frequency, risk, or cycle time. The purpose is to establish a baseline the investment could realistically improve.

Then estimate the operating cost of the proposed system:

  • discovery and pattern inventory;
  • design and engineering implementation;
  • testing and accessibility review;
  • documentation and examples;
  • package, design-library, and release tooling;
  • product migration;
  • contribution review;
  • ongoing support and governance.

The system is worthwhile when it can reduce meaningful repeated cost or risk and the organization can sustain the operating model.

Choose the smallest useful level of investment

There are several valid outcomes.

Shared conventions

Use when one team needs clearer decisions but has limited reusable code. Document typography, spacing, interaction principles, accessibility expectations, and preferred implementation patterns.

Tokens and primitives

Use when visual foundations repeat but product components remain fluid. Centralize color, type, spacing, focus, elevation, and a small set of layout or interaction primitives.

Component library

Use when coded patterns repeat across a product or several teams. Provide tested components, stable APIs, examples, and versioning without creating a large governance program.

Design system

Use when multiple disciplines and products need a shared language, assets, implementation, contribution path, and accountable ownership.

Choose the level that solves today’s recurring problem while leaving a credible path to grow.

Start with high-leverage patterns, not maximum coverage

Inventory the product and prioritize patterns using:

  1. frequency of use;
  2. number of teams or products affected;
  3. user risk when behavior is wrong;
  4. current inconsistency;
  5. likelihood that requirements are stable;
  6. effort to adopt.

Foundational controls and states often provide more value than visually impressive composite components. Buttons, fields, focus behavior, validation, typography, spacing, and layout rules affect many journeys.

Do not begin by rebuilding every interface. Select a small first set, use it in real product work, and revise the API from adoption evidence.

Storybook or another component workbench can make states visible and reviewable, but the tool is not the system. A catalog without product adoption, tests, guidance, or ownership is only a catalog.

Design ownership and contribution before scaling

Every shared pattern needs accountable owners for design, implementation, accessibility, documentation, and release decisions. These roles may be held by a small cross-functional group, but they cannot be implicit.

Define:

  • how teams request a pattern or change;
  • what evidence supports adding it;
  • how design and code stay aligned;
  • required states, tests, and accessibility checks;
  • versioning and deprecation;
  • how breaking changes are communicated;
  • how product teams migrate;
  • expected response and support boundaries.

Governance should make the common path faster. If contribution requires a long committee process for every small correction, teams will route around the system.

Allow experimentation outside the shared layer. A new product pattern should prove its usefulness before it becomes a commitment for every consumer.

Measure adoption and product outcomes

Component count is not a useful outcome by itself. Measure whether the system changes repeated work.

Potential signals include:

  • adoption by product, flow, or component;
  • reduction in duplicate implementations;
  • time from design decision to product release;
  • recurring accessibility and interaction defects;
  • migration progress and blocked consumers;
  • contribution and support volume;
  • time required to implement a shared change;
  • product-team confidence in the documented path.

Pair quantitative signals with structured feedback. Low adoption may indicate missing requirements, poor documentation, difficult APIs, incompatible release practices, or a system solving the wrong problem.

Set an evaluation window before expanding scope. Continue when the first investment demonstrates use and improves the baseline. Narrow or stop when maintenance exceeds the value it creates.

Use the decision scorecard

The downloadable scorecard covers:

  • repeated patterns;
  • number of teams and products;
  • inconsistency and accessibility risk;
  • duplicated maintenance;
  • pattern stability;
  • ownership capacity;
  • adoption willingness;
  • existing-library fit;
  • migration capacity;
  • measurable baseline.

Score each factor with evidence and notes. The total should support discussion, not make the decision automatically. A high repetition score cannot compensate for the absence of ownership, and a low current scale may still justify accessible shared primitives.

Make the decision reversible

A team does not need to choose between “nothing” and a permanent enterprise program.

Run a bounded pilot:

  1. identify two or three high-leverage patterns;
  2. define owners and intended consumers;
  3. implement design, code, states, tests, and guidance;
  4. adopt them in real product work;
  5. measure maintenance, defects, and delivery feedback;
  6. decide whether to expand, revise, or stop.

This approach creates evidence without forcing every product into an unproven abstraction.

The best design-system decision is not the most ambitious one. It is the smallest maintained investment that makes repeated product work more consistent, accessible, and economical.

Tags
Design SystemsStorybookFrontend ArchitectureTechnical StrategyComponent Libraries

Put the thinking to work

Turn this idea into a practical next step.

Start with a small tool, prompt pack, or worksheet. If your situation needs more than a template, bring me the messy version.

Browse all free tools

Want the next useful field note?

Get practical decisions for websites, content systems, UGC, and technical delivery.

No spam. Unsubscribe at any time.

Discussion

Related Posts

GRAY.dev

© 2026 Devin Gray. All rights reserved.