Aller au contenu
TKTech-KarlProduct Engineer
Langue affichée : Anglais.

Étude de cas / 2025

Atlas

A design system that turned a patchwork of components into a shared language — and made the frontend measurably faster.

Rôle
Frontend Architect
Client
Atlas Systems (Demo)
Année
2025
Période
5 months
A modular grid of grey squares with one lime-green accent tile

Demo case study. This project is fictional and exists to test the content workflow. Replace or remove it before launch.

The starting point

Atlas Systems is a software company with twelve product teams. Every team had its own button component, its own colours and its own idea of what a form should look like. The result was not just inconsistent — it was slow. Four different UI libraries ended up in the bundle, and the main product page took more than four seconds to become interactive on an average laptop.

Leadership wanted a “design system”. The teams did not want another rulebook. The real brief was therefore: create a shared foundation that makes decisions easier without slowing the product teams down.

My role

As frontend architect, I owned the technical strategy, the tokens, the component API and the migration. One designer and one product engineer worked with me full-time; the other teams joined through a weekly office hour.

Approach

1. Measure first, unify second.
We analysed the bundles of four products and identified the biggest overlaps. The surprise was that components were not the main problem — duplicated utility classes and four different icon packages were. The first version of the system therefore consisted of tokens, icons and a small number of primitive components, not 80 new components.

2. Tokens as a contract.
Colours, spacing, typography, radii and shadows were defined as CSS custom properties and consumed through Tailwind. The tokens received semantic names (surface, text-muted, border-strong), not colour names. Teams could keep their layouts and still speak the same visual language.

3. Components with clear boundaries.
Each component has a small, documented API, states for focus, error, loading and disabled, plus tests for keyboard behaviour. We deliberately avoided “do-everything” components. If a team needed something special, it should build the special thing on top of the primitives — not as another variant of the universal component.

4. Migration as a product, not a project.
Instead of demanding a big-bang migration, we provided a codemod for the most common cases and a weekly office hour. Each team could decide when to migrate. The incentive was concrete: smaller bundles, fewer bugs, faster reviews. After five months, all twelve teams had migrated without stopping their roadmaps.

Outcome

  • The JavaScript bundle of the largest product page shrank by 42%.
  • The Lighthouse performance score rose from 62 to 96.
  • Twelve teams adopted the shared tokens and primitives.
  • UI bugs in reviews dropped noticeably because states and keyboard behaviour were tested centrally.

What I took away

A design system is not a component warehouse. It is a set of decisions that makes team-specific work easier. The technical work mattered, but the difference came from the migration: we did not force teams, we gave them a measurable advantage. Good systems win through adoption, not completeness.

Tech-Karl

Un projet en tête ?

Explique-moi brièvement de quoi il s’agit. Je réponds généralement sous 24 à 48 heures.

Demander un projet