Web Analytics Made Easy - Statcounter

Case study

Fractal: building a design system and redesigning the platform for 60,000+ employees

Role

Product Designer

Company

Fractal

Industry

SaaS HR

Duration

4 years

Fractal redesigned vacation request and admin approval screens
Background

I joined Fractal, an HR platform used by more than 60,000 employees, as Product Designer. At the time, there was no clear design process and nothing was documented.

Problem

Without a design system, I was getting constant Slack requests for single screens, the UI looked different everywhere, and users kept complaining.

Approach

I built a design system in Figma from scratch, then used it to redesign the platform's most-used flows.

Outcome

Support tickets went down 30%, and developers started using the design system on their own instead of messaging me.

Overview

One design system to build every screen.

Fractal is an HR platform used by more than 60,000 employees across Latin America. It brings all their HR tasks into one place.

When I joined, developers and PMs were sending me 15 to 20 Slack messages a week asking for single screens so they could keep working. I realized the problem wasn't how much work I had, it was that we didn't have a shared way of designing. So I proposed building one.

All the designs were spread across Adobe XD files, with no components, no documentation, and no single source of truth. I moved the main flows into Figma and built a design system from scratch.

Challenge

There was no single source of truth to guide the dev team, so every new screen started from scratch.

The challenges

A messy process that kept getting worse.

You could see it everywhere, from screens that didn't match to a hand-off process that depended entirely on me. Three problems kept coming up.

Inconsistent UI and no design system. Without a shared source of truth, every screen drifted a little further from the last.
Design was the bottleneck. Developers and PMs messaged me 15 to 20 times a week asking for screens so they could keep working.
Growing support tickets. Employees couldn't find basic things, like how many vacation days they had left, so they kept opening support tickets.

My approach

Build the foundation, then build on it.

All three problems came from the same place: there was no shared base to design from. So instead of fixing screens one by one, I started there. Three things had to happen.

A unified design system. One source of truth for color, typography, and components, documented in a single Figma file.
An easier hand-off. Developers could find what they needed in the system instead of asking me for each screen.
A redesigned experience. I rebuilt the platform's busiest flows using Nielsen's heuristics, starting with the ones that caused the most confusion.

Key decision. The product manager was asking more and more for a redesign, but I knew that designing new screens without a solid base would only create more inconsistencies. The design system had to come first.

Design system

One Figma file, twelve documented sections.

Instead of moving the old screens over from Adobe XD, I rebuilt everything from scratch. The library included colors, typography, states like hover and error, and detailed specs for every component, all in one Figma file. Developers went from messaging me on Slack to finding what they needed on their own.

Teal is used for main actions and blue for secondary actions and links. Each color has simple rules, so any developer can pick the right one without guessing.

Primary · Teal

Teal 50

#E4F4F1

Teal 500

#009687

Teal 600

#008175

Teal 700

#006A60

Neutrals

Gray 50

#F5F7FA

Gray 200

#DDE3EA

Gray 400

#A6B3C0

Gray 500

#7E8EA0

Secondary · Blue

Blue 50

#EAF3FA

Blue 500

#2F85BE

Blue 700

#205D87

Ink 900

#0E3554

Feedback

Warning

#FFB92D

Error

#D63B3B

Success

#2F9E69

The font is Open Sans, with a set of sizes that match how developers were already using text styles in code.

Solicitud de Vacaciones20px · Semibold · page and section titles
Elige la fecha en que inician tus vacaciones.16px · Regular · body text, form fields
Forma de pago14px · Semibold · labels, buttons
1024 letras restantes12px · Regular · captions, meta text

Four button types cover every case, so developers use the right one instead of making up a new style.

Primary. The one main action on a screen, like submitting a request.

Outline. Secondary actions that sit next to a primary button.

Ghost. Smaller actions inside busy areas, like tables.

Destructive. Actions that reject or remove something, like denying a request.

Every field state is covered, from default to error, so forms look and work the same across the platform.

Default

yyyy-mm-dd

Focus

yyyy-mm-dd

Error

yyyy-mm-dd

Selecciona una fecha de inicio para continuar.

Disabled

yyyy-mm-dd

The redesign

From confusing forms to clear, step-by-step flows.

With the design system ready, I redesigned Fractal's most-used flows, both the screens employees use and the admin tools used to approve their requests. Requests were the biggest source of support tickets: people couldn't easily see how many vacation days they had left, and some terms were never explained.

Before redesigning anything, I ran a heuristic evaluation of the old screens using Nielsen's usability heuristics to find exactly where people were getting stuck. Consistency and standards guided the whole redesign, so every flow uses the same components and patterns from the design system.

Original Fractal vacation request screen: balance and terminology were hard to read at a glance
Redesigned vacation request flow with a live balance bar, auto-completed dates, and explained radiocards

* Showing the vacation request flow here since it's one of the most popular, but this same approach was applied across many more flows.

Applied hierarchy. Before, everything sat at the same level, balance, type, payment, dates, with no order to follow. Now it's step by step: balance first, then your choices, then dates.

A balance that updates as you go. The old form showed your balance as plain text, so it was easy to miss. Now a progress bar changes as you pick your days, so you know how many you'll have left before you submit.

Explained confusing terms. A lot of people didn't know what "tipo de goce vacacional" or "forma de pago" meant. Now both are radiocards with a short description under each option, so you're not guessing.

I did the same on the admin side, where managers approve or reject every request that comes in.

Original Fractal admin queue: large category tiles up top and a plain table with no way to act without opening each request
Redesigned admin queue with a sidebar, colored avatars, and an approve or reject bar

Moved categories to a sidebar. The old page showed big category tiles at the top, before any pending request. Now they're in a small sidebar with a count next to each one, and it's easy to add new categories later.

Kept it simple. The old screen had color and borders on almost everything. The new one uses more white space, so there's less to read and it's faster to scan.

Results

From 15 Slack pings a week to near zero.

After the design system launched, Slack requests for single screens almost stopped. Developers could find what they needed in the Figma file without asking me.

The redesign was released to clients, and the PM reported 30% fewer support tickets, thanks to the new request flows.

30%

Fewer support tickets after the design system and the redesign were released.

* Reported by the product manager after the redesign launched.

Key takeaways

What this taught me.

Start with the system, not screens

Designing without a shared base creates extra work for designers and developers. Building the design system first made every feature after it faster to design and build.

Part of the job is getting people on board

The team had worked the same way for years. To change it, I had to earn their trust, explain why it was better, and get everyone to agree first.

Key information should come first

People shouldn't have to search for what they need to make a decision. Showing it upfront, like the vacation balance at the top of the form, lets them act with confidence instead of relying on memory.

Fractal IA

Your company's documents, one question away.

Later on, I designed the experience for Fractal IA, an assistant that lets employees ask questions about their company's documents and procedures. Each employee only sees the documents from their own department, so the answers are always relevant to their work.

For employees. When someone needs to check a document or a procedure, they can just ask instead of searching through files.

Fractal IA home screen with a search bar and three suggested questions based on the employee's department
Fractal IA conversation explaining the login flow step by step, with a source card showing the document it came from and follow-up questions below

Suggestions based on your department. An empty search bar makes it hard to know what to ask. The home screen shows three questions based on the employee's department, so they have a clear place to start.

Follow-ups. After each answer, the assistant suggests related questions and offers next steps, like turning the answer into a presentation. That way people can go deeper without having to write the perfect question.

Citations. Every answer shows the documents it came from, with the file name, a short summary, and the date it was uploaded. People can check the source themselves, which helps them trust the answer.

For admins. Fractal IA runs on a RAG system: it answers using only the documents uploaded to each department. I designed the admin side, where admins upload and organize those documents by department, so employees only get answers about what applies to them.

Fractal IA admin dashboard showing total documents and users, a list of departments with their document count and AI model, and a list of users by department
Software Factory department with its list of documents and a side panel to drag and drop new documents into the department

Documents organized by department. The dashboard shows each department with how many documents it has, so admins can quickly see which departments still need content.

Uploading without leaving the page. Admins drag and drop files into a side panel, check which department each one goes to, and add them all at once, without losing sight of the documents already there.