Design Systems
Extending a new identity across product on a shared foundation
Problem
When I started leading Plaid’s design systems team, the company was expanding rapidly with emerging solutions for Credit, Payments, and Identity Verification that cut across customer-facing and end-user-facing surface areas. The existing system couldn’t keep pace.
Internal research with designers and engineers surfaced recurring challenges. Product teams needed flexibility for dense, data-rich interfaces and more sophisticated customer experiences. End-user products required patterns that differed from Dashboard. And across the ecosystem, visual styles were starting to diverge as teams adapted the system to their own needs. These pointed to the same conclusion: the system needed a design language that could support a broader range of products while staying cohesive across all of them.
Role & scope
As the design leader responsible for Plaid’s design system, I oversaw its evolution, partnering closely with my lead systems designer and engineering lead to define direction, align product teams, and ensure the system kept pace with real product needs. As the visual language matured, I sponsored and contributed to a broader Dashboard visual refresh that shaped the system’s future direction.
Approach
Modernizing the system
The first effort was modernizing the system itself. We addressed internal feedback with a redesign that delivered more flexible component APIs, better support for dense interfaces, an expanded token architecture, and stronger theming. We completed this work from a design standpoint and reached near-parity with code, so the new system, Threads 5, could be adopted organically rather than through a forced migration. It especially benefited new Dashboard areas like Credit, which were designed and built entirely on the modern foundation.
Refreshing the visual language
Before Threads 5 had rolled out across every Dashboard surface, Plaid rebranded company-wide. That became the moment to refresh the Dashboard’s visual language, with two goals: evolve the system to be more surface-area specific, and bring the visual language into coherence with the new brand. Rather than evaluate components in isolation, we redesigned complete Dashboard surfaces, testing approaches to hierarchy, navigation, product education, and brand expression in realistic scenarios. I contributed to a number of these explorations alongside the broader team and we established a clear visual direction for the Dashboard.
Operationalizing the system
Delivering the refresh without forcing every surface onto it at once was an architecture problem. Threads 5 was still rolling out, so we couldn’t assume every surface shared the same foundation. The refresh goal of making the system more surface-area specific pointed to the approach: we established a shared foundation for tokens, typography, color, spacing, and icons, then cloned the existing library into a dedicated Dashboard system pointed at it, leaving other surfaces untouched and working. The result was a focused Dashboard system that could serve its own needs while staying aligned with the broader ecosystem, and the same pattern let other surfaces adopt the foundation on their own timelines.
Outcome
The visual refresh brought historically divergent styling into one coherent visual language. The redesigned foundation made Plaid’s products more flexible and expressive, and raised the quality bar across the ecosystem.
The dedicated Dashboard system became the basis for new experiences and gave teams real ownership of their products, while the shared foundation kept them consistent. The unified system also changed how design and engineering worked together: with a single common library to build against, any designer working on Dashboard could make small, safe contributions directly, from component swaps to visual refinements, rather than routing every change through engineering. A design-language initiative had become a platform teams build on.