I led Wahoo Fitness in building a scalable, token-driven design system that integrates seamlessly with our existing Material UI React framework. By synchronizing design tokens, Figma components, and developer workflows, we streamlined our process, ensured consistent look & feel, and made it simple to adapt to new designs or feature expansions.
In 2022, Wahoo Fitness set out to rebuild the Wahoo app from the ground up—ushering in a new era of innovation. At the same time, the product team was undergoing changes and decided to consult an external design agency for the initial design concepts. Despite the unfinished designs, our developers were eager to start building. Recognizing this, I led the effort to create a future-proof design system that would unify the Wahoo ecosystem, enable rapid iteration, and safeguard the look & feel across all platforms, multiple teams, and codebases.
Outsourced Design Concepts
Wahoo initially hired an external design agency to shape the visual direction of our new app. Meanwhile, our in-house developers were already laying the technical foundation before final designs were approved. This meant design decisions lagged behind development—a tricky scenario where code was being written in parallel with outsourced design work.
Future-Proofing the System
Recognizing the misalignment in timelines, I saw an opportunity to create a design system that could adapt to whatever the agency delivered. My goal was to ensure that core styles (color, typography, spacing) would be easily configurable, so the system could absorb changes without massive refactoring.
Technical Preferences & Constraints
Our developers wanted to continue using Material UI (MUI) in React, as they were already comfortable and productive with it. Instead of pushing an entirely new framework, I integrated MUI into the design system to maintain consistency while respecting established developer workflows.
Design Token Integration
I proposed a combination of Design Tokens, Tokens Studio (Figma plugin), and Style Dictionary to keep the design and dev processes in sync. This ensured that if the agency later shifted any artistic direction, we could make a handful of token updates instead of redeveloping entire interfaces.
Overall, balancing external design decisions with in-house dev timelines became the central challenge—and it sparked the creation of a dynamic, token-driven system that could handle changes gracefully.
Below is the approach I took to tackle these challenges head-on.
Audit & Research
Design Tokens & Advanced Tooling
Library & Documentation
By making tokens the single source of truth, we created a design system ready to adapt to any future updates. Our Figma library and Style Dictionary integration empowered teams to quickly roll out changes across platforms—keeping devs comfortable with MUI’s familiar React workflow while ensuring on-brand designs.
Key Highlights:
Overall, integrating a token-driven design system with our existing MUI setup made Wahoo’s workflow far more adaptable to shifting designs and priorities.
Throughout this journey, I deepened my understanding of design system management, focusing on solutions that work for both designers and developers. My biggest takeaway was that a truly effective design system can’t exist in isolation—it has to address each team’s unique needs. I initially viewed design systems as polished Figma libraries, but I soon realized the real source of truth belongs in the codebase, because ultimately that's what our athletes experience.
By leveraging build tools like Tokens Studio and Style Dictionary, we automated the repetitive tasks of updating colors, typography, and spacing—allowing developers to concentrate on building features, not tracking down style inconsistencies.
If you’re interested in learning more about this project or have suggestions for improvement, feel free to reach out!
Credits — Sophie Linn, Chris Blom, Nicole Mertz, Shane Byler, Maryna Ionova, Jordan Corbman, Brett Mathe, Ryan Weisenberger, Jacob Richardson, Tobias Fenney, Kelsi Lane, Matt Charlton, Nathan Petteroni