Bringing Iteration Time Down to 67.9%, by Closing the Gap Between Design and Dev

Area : B2B SaaS, Incident Management, BLR IND

When : 2022 — 2025

Role : Product Designer

TL DR

Zenduty ran on a borrowed design language, not its own. I built the system that made design and code finally speak the same way. I built Enso, Zenduty's design system, from scratch with a team of four. We replaced Ant Design with our own colour, type, icons, and accessible primitives that matched how the team actually worked, so design and development stopped drifting apart. The goal was simple: a shared language that let a tiny team ship like a much larger one.

Problem

It started with my graduation project in 2022. Zenduty was a big product relying entirely on Ant Design, and it hit me that a borrowed system was not the future. We needed a design library that talked our language and shared our vision. The catch: Ant Design would not let us shape its components, and design kept drifting from what the engineers could actually build.

Colour

Icons

Typography

Primitives

Components

Colour

Icons

Typography

Primitives

Components

How can we build a design library that talks our language and shares our vision, instead of bending a borrowed one to fit?

This became the brief

4

The entire team: one product designer and three frontend engineers

4,950

Tabler icons assessed to replace the old set

336

Radix colours adopted as the foundation of the system

So I dug into where Zenduty and Ant Design were pulling apart, and found out

Zenduty relied entirely on Ant Design, a system that did not match how the team thought or spoke.

Ant Design components only exposed a few props, so we could not shape them the way the product needed.

The old icon set carried another brand's voice and felt dated against where we were heading.

Colour, type, and components were each solved in isolation, with no shared logic across design and dev.

Adopted Radix Colors as the foundation: 336 colours and 22 scales, built to stay calm and accessible on incident screens.

Switched to Tabler icons, an MIT licensed set of 4,950 pixel-perfect icons, for a cleaner and more modern look.

Standardised on Inter for clean strokes and a type scale with built-in logic and scalable System of Fonts

Wrote shared usage values into each icon's description, so design and dev referenced the same source.

Rebuilt components on Radix primitives: unstyled, accessible, and fully shapeable, unlike Ant Design.

Baked automatic dark mode into the colour system, working across the whole library.

Impact from the Design

104%

Higher incident title visibility on the first screen shipped with Enso

67.9%

Reduction in design and iteration timeframes

23.4%

Increase in go-to-market speed

2 Quarters

For all of Zenduty to transition onto Enso

Why this mattered

Enso was built by four people: one product designer and three frontend engineers. With Radix colours and primitives as the foundation, design and iteration timeframes dropped by 67.9% and go-to-market speed rose 23.4%, which for a lean team is the difference between shipping one screen a quarter and overhauling a whole product. The Incident Dashboard was the first screen to ship on Enso, with incident title visibility up 104%. Within two quarters, the entire Zenduty product had transitioned to the system. A shared language between design and dev was never a nice-to-have. It was what let four people move like a much larger team.