J B

Menu

← All work

/

Chapter II — Building systems that scale

Company-wide design systems: the foundation an entire product family inherits.

Two company-wide design systems, built from opposite starting points. Quill at Fufild from nothing, and a system at Comply365 rebuilt from a legacy platform that reused almost nothing. This is how each was built, and what the two taught me about when to create and when to consolidate.

Role

Design system architect & owner

Company

Fufild, Comply365

Platform

Web · iOS · Android

Timeline

2021 – 2026

Scope

Tokens · Components · Docs · Governance

The challenge

One product had no system, no palette and no components. The other had years of interface with no reuse, where the same element existed in a dozen slightly different forms.

The approach

Tokens first at Fufild. Audit first at Comply365. Both ended in patterns that decide how every page gets built.

The outcome

Two company-wide systems: 160 components, 90+ tokens, and the patterns that decide how every page gets built.

01

Fufild · from scratch

Nothing existed yet, so the system came first.

No palette, no components, no product. Building the system and the first screens at the same time meant every decision had to be reusable before it was final.

How it started

I started with tokens: primitives first, then semantics. The color palette and type were locked early, because everything built afterward would inherit them. Getting those wrong later means rebuilding everything above them. The system became Quill.

Then the components I knew every page would need: navbar, toolbar, buttons, segmented controls, toggles, input fields. I built them from scratch rather than starting from Material Design or Human Interface Guidelines. I wanted a Fufild toggle and a Fufild button, not a themed copy of someone else's.

How it grew

Tokens before anything

Primitives, then semantics. Palette and type settled before a single component existed.

Components from scratch

Navbar, toolbar, buttons, segmented controls, toggles, inputs. Built, not borrowed.

Patterns found in the work

Designing complex pages surfaced components that would recur. I built each one the moment I recognized it, so the next page already had it. That became the practice: 100+ components and 90+ tokens, with 15 to 20 patterns.

02

Quill · one system, three products

One system, a mobile app and two desktop portals.

Fufild was never one product. Quill had to serve a React Native app for employees and two web portals for managers and employers, without collapsing into a lowest common denominator.

The hard part

Primitives stayed shared across everything. Semantics were defined separately for each platform, so a surface, an action or a state could mean the right thing on mobile and on web without duplicating the palette underneath.

Then every component had to be classified: does this work everywhere, or does it belong to one platform? Buttons, inputs, toggles and segmented controls were universal. Navigation, toolbars and touch-specific patterns were not, and pretending otherwise would have made both platforms worse.

How it was split

Shared primitives

One palette, one type scale, one spacing system underneath every product.

Semantics per platform

Separate semantic layers for mobile and web, so the same primitive resolves correctly in each context.

Universal or platform-specific

Every component classified by where it belongs. That decision is what let one system serve four products with a fifth planned, instead of three systems drifting apart.

03

Comply365 · from legacy

A platform with years of interface and almost no reuse.

Every page carried its own version of the same component. The work was an audit first, then modernization, then the patterns that gave the whole platform a structure. Roughly 60 components, and 20 to 30 pattern variations.

Image placeholder — Token architecture / variables overview

Step 01

Audit before anything gets built

Problem

Nothing was reused. The same button existed in a dozen slightly different forms across the platform.

What I designed

A full inventory of the legacy interface, marking what could be reused as-is, what needed consolidating, and what was genuinely one-off.

Key decision

Consolidate before creating. Most of what the platform needed already existed somewhere in it.

Image placeholder — Component library sheet

Step 02

Modernize instead of rebuild

Problem

Components looked dated, but rebuilding all of them would have cost months and broken parity with the existing build.

What I designed

Modernized the existing components against updated criteria. Buttons had no border radius; setting it to 4px made the interface feel current without touching anything structural.

Key decision

The smallest change that reads as new. Freshness came from criteria, not from starting over.

Image placeholder — Documentation page + governance workflow

Step 03

Pattern the platform on panels

Problem

Pages were designed one at a time, so people lost key details moving between documents, comparing them, or making edits.

What I designed

A panel system as the baseline for every page. A second audit through information architecture decided which pages needed three panels, which needed two, and which needed a single core panel.

Key decision

Every page inherits a panel structure. That let the system breathe and kept the details visible while people compared and edited documents.

04

The practice

Two starting points, one repeatable sequence.

Whether the system starts from nothing or from a decade of accumulated interface, the order of the work stays the same.

Business goal

Let the organization scale its quality, not just its headcount.

How the work went

01

Audit

Inventoried existing UI across products to find duplication, drift, and the patterns worth keeping.

Artifacts

UI inventory · Drift audit · Pattern map

02

Define

Set principles, ownership and contribution rules before building a single component.

Artifacts

Principles · Ownership model · Contribution flow

03

Foundations

Built tokens and variables as the single source of truth for color, type, spacing and elevation.

Artifacts

Token architecture · Variables · Themes

04

Components

Composed primitives into patterns — versioned and documented, never rebuilt from scratch.

Artifacts

Primitives · Patterns · Versioning

05

Document

Wrote down when to use what, and why, so decisions stop getting re-litigated.

Artifacts

Usage guidelines · Do’s & don’ts · Examples

06

Govern

Connected design QA and developer workflow so consistency is enforced, not hoped for.

Artifacts

Design QA · Handoff · Release process

Beyond the numbers

Cross-product consistency without reviewing every screen

Decisions documented once instead of re-litigated in critique

Two company-wide systems built from inception

Next case study — Chapter III

Simplifying Enterprise Complexity

Read case study

Open to new opportunities

Let’s build the next thing.

Start a conversation

Email

joshuabalderson@gmail.com

LinkedIn

linkedin.com/in/joshua-balderson

Based in

Columbus, Ohio

Fifteen years designing for regulated, operationally complex industries: aviation, healthcare, financial services, and employee benefits.

© 2026 Joshua Balderson

J B

Work

Approach

About

← All work

/

Chapter II — Building systems that scale

Company-wide design systems: the foundation an entire product family inherits.

Two company-wide design systems, built from opposite starting points. Quill at Fufild from nothing, and a system at Comply365 rebuilt from a legacy platform that reused almost nothing. This is how each was built, and what the two taught me about when to create and when to consolidate.

Role

Design system architect & owner

Company

Fufild, Comply365

Platform

Web · iOS · Android

Timeline

2021 – 2026

Scope

Tokens · Components · Docs · Governance

The challenge

One product had no system, no palette and no components. The other had years of interface with no reuse, where the same element existed in a dozen slightly different forms.

The approach

Tokens first at Fufild. Audit first at Comply365. Both ended in patterns that decide how every page gets built.

The outcome

Two company-wide systems: 160 components, 90+ tokens, and the patterns that decide how every page gets built.

01

Fufild · from scratch

Nothing existed yet, so the system came first.

No palette, no components, no product. Building the system and the first screens at the same time meant every decision had to be reusable before it was final.

How it started

I started with tokens: primitives first, then semantics. The color palette and type were locked early, because everything built afterward would inherit them. Getting those wrong later means rebuilding everything above them. The system became Quill.

Then the components I knew every page would need: navbar, toolbar, buttons, segmented controls, toggles, input fields. I built them from scratch rather than starting from Material Design or Human Interface Guidelines. I wanted a Fufild toggle and a Fufild button, not a themed copy of someone else's.

How it grew

Tokens before anything

Primitives, then semantics. Palette and type settled before a single component existed.

Components from scratch

Navbar, toolbar, buttons, segmented controls, toggles, inputs. Built, not borrowed.

Patterns found in the work

Designing complex pages surfaced components that would recur. I built each one the moment I recognized it, so the next page already had it. That became the practice: 100+ components and 90+ tokens, with 15 to 20 patterns.

02

Quill · one system, three products

One system, a mobile app and two desktop portals.

Fufild was never one product. Quill had to serve a React Native app for employees and two web portals for managers and employers, without collapsing into a lowest common denominator.

The hard part

Primitives stayed shared across everything. Semantics were defined separately for each platform, so a surface, an action or a state could mean the right thing on mobile and on web without duplicating the palette underneath.

Then every component had to be classified: does this work everywhere, or does it belong to one platform? Buttons, inputs, toggles and segmented controls were universal. Navigation, toolbars and touch-specific patterns were not, and pretending otherwise would have made both platforms worse.

How it was split

Shared primitives

One palette, one type scale, one spacing system underneath every product.

Semantics per platform

Separate semantic layers for mobile and web, so the same primitive resolves correctly in each context.

Universal or platform-specific

Every component classified by where it belongs. That decision is what let one system serve four products with a fifth planned, instead of three systems drifting apart.

03

Comply365 · from legacy

A platform with years of interface and almost no reuse.

Every page carried its own version of the same component. The work was an audit first, then modernization, then the patterns that gave the whole platform a structure. Roughly 60 components, and 20 to 30 pattern variations.

Image placeholder — Token architecture / variables overview

Step 01

Audit before anything gets built

Problem

Nothing was reused. The same button existed in a dozen slightly different forms across the platform.

What I designed

A full inventory of the legacy interface, marking what could be reused as-is, what needed consolidating, and what was genuinely one-off.

Key decision

Consolidate before creating. Most of what the platform needed already existed somewhere in it.

Image placeholder — Component library sheet

Step 02

Modernize instead of rebuild

Problem

Components looked dated, but rebuilding all of them would have cost months and broken parity with the existing build.

What I designed

Modernized the existing components against updated criteria. Buttons had no border radius; setting it to 4px made the interface feel current without touching anything structural.

Key decision

The smallest change that reads as new. Freshness came from criteria, not from starting over.

Image placeholder — Documentation page + governance workflow

Step 03

Pattern the platform on panels

Problem

Pages were designed one at a time, so people lost key details moving between documents, comparing them, or making edits.

What I designed

A panel system as the baseline for every page. A second audit through information architecture decided which pages needed three panels, which needed two, and which needed a single core panel.

Key decision

Every page inherits a panel structure. That let the system breathe and kept the details visible while people compared and edited documents.

04

The practice

Two starting points, one repeatable sequence.

Whether the system starts from nothing or from a decade of accumulated interface, the order of the work stays the same.

Business goal

Let the organization scale its quality, not just its headcount.

How the work went

01

Audit

Inventoried existing UI across products to find duplication, drift, and the patterns worth keeping.

Artifacts

UI inventory · Drift audit · Pattern map

02

Define

Set principles, ownership and contribution rules before building a single component.

Artifacts

Principles · Ownership model · Contribution flow

03

Foundations

Built tokens and variables as the single source of truth for color, type, spacing and elevation.

Artifacts

Token architecture · Variables · Themes

04

Components

Composed primitives into patterns — versioned and documented, never rebuilt from scratch.

Artifacts

Primitives · Patterns · Versioning

05

Document

Wrote down when to use what, and why, so decisions stop getting re-litigated.

Artifacts

Usage guidelines · Do’s & don’ts · Examples

06

Govern

Connected design QA and developer workflow so consistency is enforced, not hoped for.

Artifacts

Design QA · Handoff · Release process

Beyond the numbers

Cross-product consistency without reviewing every screen

Decisions documented once instead of re-litigated in critique

Two company-wide systems built from inception

Next case study — Chapter III

Simplifying Enterprise Complexity

Read case study

Open to new opportunities

Let’s build the next thing.

Let’s connect

Email

joshuabalderson@gmail.com

LinkedIn

linkedin.com/in/joshua-balderson

Based in

Columbus, Ohio

Fifteen years designing for regulated, operationally complex industries: aviation, healthcare, financial services, and employee benefits.

© 2026 Joshua Balderson

J B

Work

Approach

About

← All work

/

Chapter II — Building systems that scale

Company-wide design systems: the foundation an entire product family inherits.

Two company-wide design systems, built from opposite starting points. Quill at Fufild from nothing, and a system at Comply365 rebuilt from a legacy platform that reused almost nothing. This is how each was built, and what the two taught me about when to create and when to consolidate.

Role

Design system architect & owner

Company

Fufild, Comply365

Platform

Web · iOS · Android

Timeline

2021 — 2026

Scope

Tokens · Components · Docs · Governance

The challenge

One product had no system, no palette and no components. The other had years of interface with no reuse, where the same element existed in a dozen slightly different forms.

The approach

Tokens first at Fufild. Audit first at Comply365. Both ended in patterns that decide how every page gets built.

The outcome

Two company-wide systems: 160 components, 90+ tokens, and the patterns that decide how every page gets built.

01

Fufild · from scratch

Nothing existed yet, so the system came first.

No palette, no components, no product. Building the system and the first screens at the same time meant every decision had to be reusable before it was final.

How it started

I started with tokens: primitives first, then semantics. The color palette and type were locked early, because everything built afterward would inherit them. Getting those wrong later means rebuilding everything above them. The system became Quill.

Then the components I knew every page would need: navbar, toolbar, buttons, segmented controls, toggles, input fields. I built them from scratch rather than starting from Material Design or Human Interface Guidelines. I wanted a Fufild toggle and a Fufild button, not a themed copy of someone else's.

How it grew

Tokens before anything

Primitives, then semantics. Palette and type settled before a single component existed.

Components from scratch

Navbar, toolbar, buttons, segmented controls, toggles, inputs. Built, not borrowed.

Patterns found in the work

Designing complex pages surfaced components that would recur. I built each one the moment I recognized it, so the next page already had it. That became the practice: 100+ components and 90+ tokens, with 15 to 20 patterns.

02

Quill · one system, three products

One system, a mobile app and two desktop portals.

Fufild was never one product. Quill had to serve a React Native app for employees and two web portals for managers and employers, without collapsing into a lowest common denominator.

Q

MULTI-BRAND DESIGN SYSTEM

Quill Design System

Tokens, components, and themes behind every Fufild product.

Marketplace

Employer Portal

Color

brand · 01 Primitives

brand/blue

#0395EB

brand/navy

#0A3A8D

brand/green

#57BC90

blue-50

blue-500

navy-950

Button

4 variants

Redeem points

Save for later

View all rewards

Controls

Notifications

Shift reminders

Weekly digest

Input field

Focus state

Email address

jordan@fufild.com

We’ll send your reward receipt here.

Aa

Display

Inter · 32 / 38

Title

Inter · 22 / 28

Body

Inter · 16 / 24

Stat card

This month

6,000

of 8,000 pts

75% of allocation

↑ 12%

Status tag

Redeemed

Pending

In your budget

The hard part

Primitives stayed shared across everything. Semantics were defined separately for each platform, so a surface, an action or a state could mean the right thing on mobile and on web without duplicating the palette underneath.

Then every component had to be classified: does this work everywhere, or does it belong to one platform? Buttons, inputs, toggles and segmented controls were universal. Navigation, toolbars and touch-specific patterns were not, and pretending otherwise would have made both platforms worse.

How it was split

Shared primitives

One palette, one type scale, one spacing system underneath every product.

Semantics per platform

Separate semantic layers for mobile and web, so the same primitive resolves correctly in each context.

Universal or platform-specific

Every component classified by where it belongs. That decision is what let one system serve four products with a fifth planned, instead of three systems drifting apart.

03

Comply365 · from legacy

A platform with years of interface and almost no reuse.

Every page carried its own version of the same component. The work was an audit first, then modernization, then the patterns that gave the whole platform a structure. Roughly 60 components, and 20 to 30 pattern variations.

Step 01

Audit before anything gets built

Problem

Nothing was reused. The same button existed in a dozen slightly different forms across the platform.

What I designed

A full inventory of the legacy interface, marking what could be reused as-is, what needed consolidating, and what was genuinely one-off.

Key decision

Consolidate before creating. Most of what the platform needed already existed somewhere in it.

Step 02

Modernize instead of rebuild

Problem

Components looked dated, but rebuilding all of them would have cost months and broken parity with the existing build.

What I designed

Modernized the existing components against updated criteria. Buttons had no border radius; setting it to 4px made the interface feel current without touching anything structural.

Key decision

The smallest change that reads as new. Freshness came from criteria, not from starting over.

Step 03

Pattern the platform on panels

Problem

Pages were designed one at a time, so people lost key details moving between documents, comparing them, or making edits.

What I designed

A panel system as the baseline for every page. A second audit through information architecture decided which pages needed three panels, which needed two, and which needed a single core panel.

Key decision

Every page inherits a panel structure. That let the system breathe and kept the details visible while people compared and edited documents.

04

The practice

Two starting points, one repeatable sequence.

Whether the system starts from nothing or from a decade of accumulated interface, the order of the work stays the same.

Business goal

Let the organization scale its quality, not just its headcount.

How the work went

01

Audit

Inventoried existing UI across products to find duplication, drift, and the patterns worth keeping.

Artifacts

UI inventory · Drift audit · Pattern map

02

Define

Set principles, ownership and contribution rules before building a single component.

Artifacts

Principles · Ownership model · Contribution flow

03

Foundations

Built tokens and variables as the single source of truth for color, type, spacing and elevation.

Artifacts

Token architecture · Variables · Themes

04

Components

Composed primitives into patterns, versioned and documented, never rebuilt from scratch.

Artifacts

Primitives · Patterns · Versioning

05

Document

Wrote down when to use what, and why, so decisions stop getting re-litigated.

Artifacts

Usage guidelines · Do’s & don’ts · Examples

06

Govern

Connected design QA and developer workflow so consistency is enforced, not hoped for.

Artifacts

Design QA · Handoff · Release process

Beyond the numbers

Cross-product consistency without reviewing every screen

Decisions documented once instead of re-litigated in critique

Engineers stopped guessing which component belonged where

Open to new opportunities

Let’s build the next thing.

Let’s connect

Email

joshuabalderson@gmail.com

LinkedIn

linkedin.com/in/joshua-balderson

Based in

Columbus, Ohio

Fifteen years designing for regulated, operationally complex industries: aviation, healthcare, financial services, and employee benefits.

© 2026 Joshua Balderson