Invessio

Building a multi-brand design system from zero

Invessio, Yrefy’s digital product suite, had duplicate components, inconsistent UI, and no scalable way to white-label client solutions.


I used Figma and Claude Code to design and ship a token-based, Angular ready design system, adopted by 5 engineering teams, that unified shared components and cut white-labeling from months to hours.


*This page is an overview of the work. Want to see the full case study?*

Invessio, Yrefy’s digital product suite, had duplicate components, inconsistent UI, and no scalable way to white-label client solutions.


I used Figma and Claude Code to design and ship a token-based, Angular ready design system, adopted by 5 engineering teams, that unified shared components and cut white-labeling from months to hours.


*This page is an overview of the work. Want to see the full case study?*

Invessio, Yrefy’s digital product suite, had duplicate components, inconsistent UI, and no scalable way to white-label client solutions.


I used Figma and Claude Code to design and ship a token-based, Angular ready design system, adopted by 5 engineering teams, that unified shared components and cut white-labeling from months to hours.


*This page is an overview of the work. Want to see the full case study?*

View case study

One PrimeNG Architecture, 3 Product Themes

One PrimeNG Architecture, 3 Product Themes

One PrimeNG Architecture, 3 Product Themes

Invessio Default Theme

Invessio Default Theme

Primary (blue.500, #163060)

Primary (blue.500, #163060)

Accent (amber.500, #dca519)

Accent (amber.500, #dca519)

Impact

Impact

Primary (blue.500, #1c213f)

Primary (blue.500, #1c213f)

Accent (red.600, #c5143e)

Accent (red.600, #c5143e)

Ignyte

Primary (red.500, #e31f26)

Primary (red.500, #e31f26)

Accent (yellow.300, #f6f080)

Accent (yellow.300, #f6f080)

Process

Different teams, different implementations

Different teams, different implementations

Invessio products were previously built by 3 different teams using inconsistent Material UI implementations, leading to similar industry tools with different visual styles and component structures.


At the same time, prospective customers were beginning to request white-labeled instances with custom branding instead of just slapping their logo on the side-nav.

Invessio products were previously built by 3 different teams using inconsistent Material UI implementations, leading to similar industry tools with different visual styles and component structures.


At the same time, prospective customers were beginning to request white-labeled instances with custom branding instead of just slapping their logo on the side-nav.

Defining the look and feel of an Invessio product

Defining the look and feel of an Invessio product

Defining the look and feel of an Invessio product

I chose PrimeNG to give Invessio products a modern fintech UI while still supporting distinct branding for products like Ignyte, internal tools, and flagship SaaS offerings.

I also selected Geist and Geist Mono as the default typography to create a technical, polished, and trustworthy feel while preserving readability for complex data.

I chose PrimeNG to give Invessio products a modern fintech UI while still supporting distinct branding for products like Ignyte, internal tools, and flagship SaaS offerings.

I also selected Geist and Geist Mono as the default typography to create a technical, polished, and trustworthy feel while preserving readability for complex data.

Behavior, state, and accessibility are all part of the component

Behavior, state, and accessibility are all part of the component

Behavior, state, and accessibility are all part of the component

Responsive Behavior, Not Responsive Scaling

Responsive Behavior, Not Responsive Scaling

Responsive Behavior, Not Responsive Scaling

Approach

Brand-agnostic component logic

Brand-agnostic component logic

I established a three-tier token hierarchy (primitive -> semantic -> component) so brand differences lived above the component layer instead of within.

I also chose deploy-time theming (one theme preset per build) versus runtime theme-switching, favoring simplicity and performance over unnecessary flexibility. 

I established a three-tier token hierarchy (primitive -> semantic -> component) so brand differences lived above the component layer instead of within.

I also chose deploy-time theming (one theme preset per build) versus runtime theme-switching, favoring simplicity and performance over unnecessary flexibility. 

A theming pipeline anyone can run

A theming pipeline anyone can run

New themes start from the PrimeUI Figma kit, take token edits via the Design Tokens Manager plugin and Claude Code, and export as JSON through the PrimeUI Theme Generator. No bespoke engineering needed.

This takes white-labeling products from being a month-long engineering effort into a request that could be fulfilled in a couple hours.

New themes start from the PrimeUI Figma kit, take token edits via the Design Tokens Manager plugin and Claude Code, and export as JSON through the PrimeUI Theme Generator. No bespoke engineering needed.

This takes white-labeling products from being a month-long engineering effort into a request that could be fulfilled in a couple hours.

Change the tokens, not the components

Change the tokens, not the components

Change the tokens, not the components

Shared Patterns, Specialized Workflows

Shared Patterns, Specialized Workflows

Shared Patterns, Specialized Workflows

Outcomes

99%
faster white-labeling

99%
faster white-labeling

99%
faster white-labeling

0
hard coding

0
hard coding

0
hard coding

5
teams adopted

5
teams adopted

5
teams adopted

40+
engineers onboarded

40+
engineers onboarded

White-labeling products for clients no longer requires manually detaching and editing base styles of Material, a 2 month long effort when simultaneously dedicating resources to feature development. The workflow I set up using Claude Code to edit design tokens and factor in client brand guidelines now takes less than 2 hours.

3 months post-adoption, there have been zero instances of hard-coded color or text values enforced by a stylelint rule in CI.

White-labeling products for clients no longer requires manually detaching and editing base styles of Material, a 2 month long effort when simultaneously dedicating resources to feature development. The workflow I set up using Claude Code to edit design tokens and factor in client brand guidelines now takes less than 2 hours.

3 months post-adoption, there have been zero instances of hard-coded color or text values enforced by a stylelint rule in CI.

White-labeling products for clients no longer requires manually detaching and editing base styles of Material, a 2 month long effort when simultaneously dedicating resources to feature development. The workflow I set up using Claude Code to edit design tokens and factor in client brand guidelines now takes less than 2 hours.

3 months post-adoption, there have been zero instances of hard-coded color or text values enforced by a stylelint rule in CI.

A shared PrimeNG foundation for complex, specialized products

A shared PrimeNG foundation for complex, specialized products

A shared PrimeNG foundation for complex, specialized products.

Say hello

Let's talk

Let's talk

Let's talk

Looking for someone that can drive measurable outcomes, but also values clarity and craft? Get in touch.


Open to full-time roles and fractional assignments, remote or on-site.


Based in Phoenix, AZ - Able to relocate.

Looking for someone that can drive measurable outcomes, but also values clarity and craft? Get in touch.


Open to full-time roles and fractional assignments, remote or on-site.


Based in Phoenix, AZ - Able to relocate.

Contact