Scalable Design System for B2B SaaS Product

Building a shared design language that reduced design debt, improved consistency, and helped product teams ship faster across a growing SaaS platform.

Client:

Confidential B2B SaaS Product

Category:

Design System • Product Design • Enterprise SaaS

My Role:

Lead Product Designer


Building Flame — A Scalable Design System for Xoxoday

Creating a shared design language that unified product experiences, accelerated development, and enabled teams to build consistently at scale.

As Xoxoday’s product ecosystem expanded across multiple modules and teams, maintaining consistency became increasingly challenging. Designers were solving similar problems differently, while engineers repeatedly implemented the same patterns with slight variations.

To address this growing complexity, I led the design and evolution of Flame, Xoxoday’s enterprise design system. Rather than creating a UI library, the objective was to establish a scalable product language that connected design, engineering, and product teams through shared principles, reusable components, and comprehensive documentation.

Flame became the foundation for building faster, improving consistency, reducing design debt, and enabling teams to focus on solving customer problems instead of recreating interface patterns.

Problem — Growing Design Debt

When Products Grow Faster Than Their Design System

As new products and features were introduced, UI patterns evolved independently across different teams. Similar interactions looked different from one module to another, resulting in inconsistent user experiences and increasing maintenance costs.

Without a centralised system:

  • Components were duplicated across products.

  • Buttons, forms, tables, and navigation behaved inconsistently.

  • Designers recreated existing patterns instead of reusing them.

  • Developers implemented similar interfaces multiple times.

  • Design reviews focused on UI inconsistencies instead of product problems.

The absence of a shared design language slowed product delivery and reduced overall experience quality.

Goal

Create a unified system that would establish consistency, improve collaboration, and scale with future products.

Research - Audit & Findings

Understanding the Existing Experience

Before designing any components, I conducted a comprehensive audit of existing product interfaces.

The objective wasn’t to identify visual inconsistencies alone—it was to understand how teams were solving similar problems differently.

The audit included:

  • Existing UI components

  • Interaction patterns

  • Product modules

  • Design files

  • Engineering implementation

  • Accessibility considerations

This research highlighted recurring patterns, duplicated work, missing standards, and opportunities for standardisation.

This research highlighted recurring patterns, duplicated work, missing standards, and opportunities for standardisation.

Key Findings

  • Multiple variations of common components

  • No standardised spacing or typography

  • Repeated implementation effort

  • Limited documentation

  • Inconsistent interaction behaviour

  • No shared governance process

These findings directly informed the architecture of the design system.

Foundations - Colors, Type, Grid, Spacing

Designing the Foundations Before the Components

Rather than immediately creating reusable UI components, I established the core foundations that every interface would inherit.

This ensured every future component would share the same visual language and interaction principles.

The foundation included:

  • Semantic color tokens

  • Typography scale

  • Responsive layout grids

  • Spacing system

  • Elevation

  • Shadows

  • Border radius

  • Iconography

These primitives reduced design decisions while making interfaces more predictable and accessible.

The result was a flexible foundation that supported both current and future product experiences.

Architecture : Atoms → Molecules → Organisms

Building a Scalable Component Architecture

To ensure long-term scalability, the system was structured using Atomic Design principles.

Instead of creating isolated screens, every interface was built from progressively reusable building blocks.

Component Showcase

A Library Designed for Real Enterprise Products

Flame evolved into a comprehensive library of reusable components designed specifically for enterprise SaaS applications.

The system included foundational UI elements alongside complex data-heavy components frequently used across Xoxoday products.

The library covered:

  • Buttons

  • Tables

  • Cards

  • Navigation

  • Forms

  • Date Picker

  • Modals

  • Banners

  • Empty States

  • Avatars

  • Feedback Components

  • Data Visualizations

Each component supported multiple variants, interaction states, responsive behaviour, and accessibility guidelines.

Rather than documenting isolated UI elements, every component was designed as part of a connected ecosystem.

Deep Dive - Tables

Designing One of the Most Complex Enterprise Components

Tables are one of the most heavily used components across enterprise software.

Instead of designing a single table, I created a flexible system capable of supporting multiple product scenarios.

The component included:

  • Sorting

  • Filtering

  • Search

  • Bulk Selection

  • Pagination

  • Inline Actions

  • Status Indicators

  • Avatars

  • Responsive Layout

  • Empty States

Each variation followed consistent interaction patterns while remaining flexible enough for different product teams.

The standardized table significantly reduced design effort while providing engineers with a predictable implementation model.

Deep Dive - Buttons

Standardising the Smallest Component With the Biggest Impact

Buttons appear throughout every product experience, making consistency essential.

The button system was designed to support multiple interaction scenarios while remaining simple to use.

The library included:

  • Primary

  • Secondary

  • Tertiary

  • Ghost

  • Icon Buttons

  • Destructive Actions

  • Loading States

  • Disabled States

Each variant included clear usage guidelines, accessibility considerations, sizing rules, and implementation specifications.

By reducing ambiguity around button usage, designers could make faster decisions while maintaining visual consistency.

Documentation & Governance

Design Systems Don’t Scale Without Governance

Creating components was only part of the project.

Long-term success depended on clear documentation, shared ownership, and collaboration between design and engineering.

Every component included:

  • Usage Guidelines

  • Anatomy

  • Variants

  • Interaction States

  • Accessibility Notes

  • Spacing Rules

  • Content Guidelines

  • Developer Specifications

Documentation was synchronized with Storybook, enabling designers and developers to reference the same source of truth throughout the product lifecycle.

This governance model encouraged adoption while ensuring the system evolved consistently as new product requirements emerged.

Outcome & Impact

Creating a Foundation for Product Scale

Flame transformed the way product teams designed and built user experiences.

Instead of recreating interfaces, teams could assemble products using a shared library of reusable building blocks.

The design system improved collaboration, reduced inconsistency, and accelerated product delivery while establishing a scalable foundation for future growth.

Outcomes

  • Established a unified visual language across products.

  • Reduced duplicated design and engineering effort.

  • Improved consistency throughout the platform.

  • Accelerated design-to-development handoff.

  • Increased component reuse across teams.

  • Simplified onboarding for designers and developers.

  • Created a scalable foundation for future product development.

Reflection

The most valuable outcome wasn’t the number of components created - it was the shift in how teams worked together.

Design conversations moved away from rebuilding UI patterns and toward solving customer problems. By establishing a shared design language, Flame became more than a component library; it became an essential part of Xoxoday’s product development process.