Industry

Design Systems

Client

Skynamo

From mobile to web — a Flutter design system built to scale.

Main Project Image

Before this, three platforms. After this, one system.

Skynamo runs on iOS, Android, and a web management system — each built on a different codebase, each drifting further apart every time a new feature shipped. There was no shared component library. Buttons looked different across platforms. Spacing was inconsistent. Every new feature had to be designed three times and built three times. The migration to Flutter was the opportunity to fix that. The result is a Material 3 system that lives in two places: a Figma file designers work from, and a Widgetbook instance where developers interact with real, production components — not static specs. If it's in Widgetbook, it's in code. 23 components, a colour system rebuilt to work with the framework rather than against it, and Skynamo-specific ones built for things Material has no opinion on. The system is used by 12 developers across multiple squads. The first feature built entirely on the new components was the cart in the catalogue ordering app. A checkbox component for bulk actions took two days to build once — and seconds to implement each time it was needed after that.

Large Project Gallery Image #1
Project Gallery Image for 50% width of the screen #1
Project Gallery Image for 50% width of the screen #1
Project Gallery Image for 50% width of the screen #2
Project Gallery Image for 50% width of the screen #2
Project Gallery Image for 50% width of the screen #1

The system kept going without me.

Another designer took over the catalogue ordering app while I was away. No new components needed. Those same components were later pulled back into the main sales app. That's the system working exactly as intended — solid enough that work continued and a new product shipped without anyone waiting on me. A design system is only as useful as the trust people have in it. Developers need to know it won't change arbitrarily under them. Designers need to know it reflects how the product actually works. Getting both right is mostly a people problem, not a design problem.