Design systems have become one of those topics that everyone in digital talks about - but building one that people actually want to use? That’s a very different challenge.
I’ve been lucky enough to work with incredible teams at brands like Typeform and Sky, helping them rethink how they create, scale, and launch experiences. Along the way, I’ve learned a lot - sometimes the hard way! - about what makes a design system succeed in the real world.
Here are five lessons that keep showing up in my work.
1. Collaboration isn’t optional - it’s the foundation
When we partnered with Typeform on a 4,000-page Webflow migration, it wasn’t the CMS or the components that made the initial difference - it was people in a room together with sticky notes and Sharpies.
We aligned marketing, design, and engineering from day one. The goal was to understand how each team worked, what they struggled with, and what would unlock the most speed and creativity for them.
As a result, we built a system that allowed marketers to go from waiting three days for page updates to building and launching pages themselves in three hours.
That only happens when everyone’s voice is heard early on in the process.
2. Build for the user, not for the tool
Every design system should have core principles - and those principles should come from the people using it, not the person building it.
For Typeform, the system needed to be intuitive for marketers and content teams. Drag-and-drop blocks, clear naming conventions, zero intimidation.
For Sky, the needs were totally different. Their internal developers were the primary users, so we built something more atomic and technically flexible.
Two systems. Two very different audiences. Both successful because we listened closely to everyone’s concerns.
3. A design system is never ‘done’
As well as listening to our clients to understand their pain points and challenges, we also need to understand their future ambitions and plan for the inevitable. Technology changes, companies grow and focus pivots from time to time.
We build solid foundations during the discovery and production phase of the project so that it’s easy to iterate in the future.
Using an atomic structure with a variable setup, we free our clients up to reuse elements across the board. It keeps everything on brand and helps them make global changes in just a few steps.
When something shifts, the system needs to shift seamlessly with it. So instead of treating handoff as the finish line, we stay close. Not because clients “need us,” but because iteration is where systems show their true value.
4. Feedback loops are everything
The most successful systems I’ve worked on weren’t “perfect on delivery.” They became great through continuous feedback - structured office hours, async questions, shared learning sessions, and iterative improvements.
Those conversations create clarity. Clarity builds confidence. Confidence fuels adoption.
When teams feel heard, they lean into the system.
5. Autonomy and clarity beat complexity every time
At the end of the day, the best design systems give teams autonomy.
Marketers shouldn't need a developer to test an idea. Developers shouldn’t feel held back by rigid templates. Designers shouldn’t be reinventing basics every sprint.
A system should feel like momentum - not governance.
And the biggest lesson?
The real measure of a successful design system isn’t how elegant the architecture is, but how confidently teams can create, iterate, and tell their story through it.
That’s why I love doing this work. It blends human psychology, creativity, collaboration, and technical skill; when it’s done well, it changes the pace and quality of everything a team makes.
Here’s to building systems that put power in people’s hands - and to the brilliant teams who bring them to life.

