Not Another “Perfect” Design System
Truth bomb incoming:
Your beautiful mockups don’t matter if you can’t land them in the product.
That was one of the first things I learned when I started contributing to the design system for our product. And not just from a distance – I was deep in the weeds, shipping components, breaking things, fixing them, and learning what it actually means to build a system that works.
So no, this isn’t a blog about creating the perfect system.
It’s about building one that ships – and works.
Design Systems Are Not Just Visual
The difference in a successful project isn’t just better designers or more skilled developers (though those help). The real breakthrough is understanding that revamping a design system isn’t just a visual task – it’s a structural one at its core
You’re not just changing how things look.
You’re changing how they’re built, maintained, and scaled.
Start Ugly. Launch Fast. Iterate Forever.
We struggled – a lot – making different components work together from a design perspective.
But shipping it fast mattered more than making it perfect. And that was the right call.
Over time, we stripped the designs down, elevated them, tried new things, and rolled them out quickly. Once the system was live, experimentation became easier – and fun.
“You have to put your design side-by-side to see how the system changes impact the product.”
– My senior, giving some much-needed wisdom
If I had waited to perfect the system before launch, we’d have missed deadlines and momentum.
Atomic Design: The First Lesson I (Reluctantly) Learned
I started with the Atomic Design framework (I procrastinated on reading it, despite my senior repeated telling me it was gold. Spoiler: it really was)
Breaking a design system into clear layers makes complex work feel more manageable. It helps you see how small building blocks connect to form bigger parts, so you can create consistent, reusable components that are easier to maintain and scale.
It gave me a mental model that helped when things felt chaotic. And trust me, they did.
Design Systems Need Code. Otherwise, It’s Just a Style Guide.
One thing I quickly learned?
A design system without code is just a style guide.
And while that’s nice, it doesn’t bring you any of the real benefits – like consistency, speed, accessibility, or design-debt reduction. To make that happen, I had to work closely with engineers. In fact, sometimes it felt like the system served engineering teams even more than design.
Tokens, Variables & Fear (At First)
I’ll be honest – I was a bit apprehensive about using Figma variables when they first dropped. They looked confusing. They were confusing. But with help from my team and some hands-on trial and error, I got better.
Now?
I can’t imagine a system without tokens and variables.
Get Shristi Singh’s stories in your inbox
Join Medium for free to get updates from this writer.
They help me plan for dark/light modes, enforce consistency, and make large-scale updates less scary.
Start Generic. Update as You Go.
There’s no need to reinvent every component from scratch.
I began by working with a generic system (If you’re starting from scratch, I recommend using Untitled UI design system by Jordan Hughes – reusing buttons, inputs, form fields – and tweaking them as needed.
Eventually, as we stumbled across components that fit our product’s vibe, we added them into the shared system and adjusted them for brand, UX goals, and product flows. This approach saved me so much time – because I wasn’t obsessing over perfection.
I was focusing on what actually worked.
Cross functional = Crucial
The thing that made a huge difference?
Getting everyone involved.
From design to dev, PMs to QA – we had many (sometimes heated) discussions. But those conversations led to a shared understanding and consensus that worked for everyone.
Yes, I still had to filter what to implement and how.
But that collaboration made the system ours, not just mine.
The System Is Always Work in Progress
Here’s something that helped me stay sane:
Your design system is always work in progress
It will evolve – with small tweaks, major overhauls, and unexpected iterations. The system you launch with isn’t where you’ll end up.
And honestly?
I haven’t “mastered” design systems. I’ve barely scratched the surface.
But I do know that:
• Every change teaches you something.
• Every release gets you closer to what your product needs.
• The system evolves as the team does.
And that’s the real power of building a design system:
It grows with you.
In the End…
A true design system goes beyond a style guide – it creates consistency, improves efficiency, scales effortlessly, builds in accessibility, reduces design debt, and frees the team to focus on solving meaningful product challenges.
It’s not about making the most beautiful library.
It’s about building something your team actually uses – to ship better, faster, and smarter.










