Design System

One system. 254 components. 10+ products.

How I unified 10+ legacy products into one scalable system as the only designer supporting a 15-person, mostly offshore dev team — on a tight budget, in about a year to v1.0.
Role:
Senior Product Designer
Company:
iTradeNetwork
Timeline:
~1 year to v1.0
Discipline:
Design System, Product, UI
254
Components
150+
System Users
10+
Products Unified
1
Designer

Context

iTradeNetwork is an enterprise supply-chain platform for the food industry, serving buyers and suppliers across 10+ separate legacy products. Each product had been built independently, so the same button, form, or table looked and behaved differently depending on where you were in the platform. For a 15-developer team shipping fast, that inconsistency meant duplicated work, slow handoffs, and a fractured user experience. My job was to build the single source of truth that didn't exist yet.

Building a design system from scratch.

Challenge

The hard part wasn't knowing what a design system is. It was building one that could scale under real constraints:

One designer, fifteen developers.

Every hour I spent had to multiply across the whole team — there was no room for open-ended exploration.

Tight budget.

Building bespoke foundations from scratch wasn't an option; I had to be resourceful about what I built versus what I adopted.

Mostly offshore team, multiple time zones.

Handoffs had to be unambiguous. Anything open to interpretation would break across the distance.

Ten-plus legacy products on aging tech.

The system had to unify what already existed, not assume a clean slate.

Key Decisions

Each of those constraints forced a specific call. Here's the reasoning behind the ones that mattered most.

Build on open-source foundations to ship from day one.

The products were already live and I had to start producing immediately, under a tight budget with limited resources. A bespoke foundation built from scratch would have delayed the system by months the team didn't have. So I assembled the base layer from proven open-source building blocks and started iterating on day one: Lato, a versatile, enterprise-legible family with a full 100–900 weight range; Google's color library with defined accessibility keys; Unicons for iconography; Material Design surface levels for states; and unDraw for flexible, easily customized illustration. With the base defined, I layered on the harder pieces: Wijmo for data tables and visualization logic, and AngularJS for component behavior.

The tradeoff was deliberate: I gave up a bespoke, distinctive visual identity in exchange for speed and reliability. For an internal enterprise platform, that was the right call. Consistency and trust mattered far more than visual novelty, and the hours I saved on foundations went into the parts that were actually unique to iTrade's workflows. The payoff was pace. Because the foundation was proven, I could hand over implementable screens while the system itself was still taking shape, instead of finishing the system first and making the team wait.

A visual example of the atoms of the design system: colors, typography, icons, and illustrations.
A screenshot of the searching component of the design system, highlighting the purchase order icons.

Rename and govern the icon set instead of using Unicons as-is.

Unicons gave me a fast starting point, but it shipped with far more icons than we needed and names that didn't map to how our team actually worked. As other designers began applying the system to their own products, they were choosing different icons for the same action, creating a convoluted user experience and an unnecessary headache for developers. Left alone, that inconsistency would erode the visual affordances the whole system depended on. So I pared the library down to what our products needed and built a naming scheme around our use cases, not the library's defaults. Every icon is tied to a specific, agreed-upon meaning. Where the supply-chain products needed something the library didn't have, I designed custom icons in the Unicons style so the set stayed visually unified.

The tradeoff was ongoing discipline: a governed, renamed set meant the team couldn't just pull any icon that looked close. They had to use the right one for the defined use, and I had to maintain that convention as the system grew. It was worth it. Consistent iconography gave users reliable visual affordances across every product, and the intentional naming made the asset library actually searchable. Designers found the right icon in seconds instead of scrolling a bloated set and guessing.

Ship a live documentation repository, not just a component library.

A component library tells you what exists; it doesn't tell you how or when to use it. With one designer supporting fifteen developers across time zones, I couldn't be the bottleneck every team routed questions through. The system had to answer for itself. So I invested the extra time to build a living documentation repository the whole organization could reference: code snippets, usage philosophy, explicit implementation instructions, and live demos of each component in context.

The tradeoff was real: documentation is slow, unglamorous work, and every hour spent writing it was an hour not spent designing new components. I chose it anyway, because a design system that isn't documented doesn't scale; it just becomes one person's tribal knowledge. Making the system self-serve meant developers could implement correctly without waiting on me, which is the entire point of a system in a 15-to-1 environment.

A screenshot of the proprietary documentation website to reference the design system.
The atoms of a design system forming organisms.

Solution

The result was a 254-component system living in 3 connected environments: the Figma library, the developer repository, and a documented usage site. Designers and developers worked from one source of truth instead of reinventing patterns per product. Across the company, 150+ people built with it. With components to assemble instead of layouts to rebuild, the designers applying the system went from roughly one screen per sprint to three.

254

Components

150+

System Users

10+

Products Unified

1

Designer

Figma Prototype

Component Collection

All the components of the design system displayed in a collague.

System Library Demo

Product Navigation Demo

Screen Examples

Data table with sorting cards.
Data Table with Sorting Cards
Purchase Order screen.
Purchase Order
Widget drilldown screen.
Widget Drilldown

Takeaways

These are the top three concepts that I took away from this project.

Borrow the foundation, own the decisions.

Lato, Unicons, Material surfaces, and Wijmo saved me months I didn't have. What made it a system wasn't the parts I adopted, but the rules I set on top of them.

An undocumented system is just memory.

Writing usage guidance and live demos was the slowest part and the reason developers could implement correctly without waiting on me. In a 15-to-1 environment, that's the whole point.

Governance is what makes an icon set usable.

Renaming the library around our use cases, instead of the vendor's, is what let someone find the right icon in seconds instead of guessing between five that looked close.
Radiating starburst around a colorful sphere A multicolor sphere sits at the center while blue dotted rays radiate outward in a tunnel of dots, squares, and rings, with pulsing magenta sonar circles expanding around the sphere.