Unfreezing the busiest screen in the product

Paying down tech debt on the page people use to check the money: leading the redesign with design-system depth and product pragmatism, then restarting it with AI agents after it stalled.

Lead product designer · Phrase · 2025 → now

The new project page for Website localization, from English into German, Japanese and Hindi. Project details sit at the top, with a workflow-step selector below them. Under it, the Jobs section lists 459 jobs in a table with file, status, target language, providers, due date and job owner.
The new project page.
Role
Lead and only product designer
Team
Product manager, frontend and full-stack engineers, an AI coding agent
Timeline
2025 → now
Status
In development and QA. Not launched yet.

Outcomes so far

  • ShippedAbout 60 UI-debt fixes shipped across the product in a two-week workshop, roughly 9 in 10 built by an AI agent. It proved the model the project page restarted on.
  • ShippedThe translation-memory selection I designed is live in Project Templates.
  • Leading signalClosed tickets on the project page went from a handful a month to about 25.
  • Leading signalThe new page is about 80% design system, up from about 50%. In QA.

The busiest screen in the product

The project page is where a translation project lives: files, jobs, analyses (word-count breakdowns used for pricing), and quotes. It's the most-visited page in Phrase's translation management system, opened by about half of all users and viewed millions of times a month.

Half

of all users open it

Millions

of views a month

10k+

analyses in a single project, for power users

It's dense, and parts of it are close to money. People come here for one task at a time, like checking a quote or finding the latest job. Power users have tens of thousands of analyses and hundreds of quotes in a single project. And it ran on legacy code, only about half of it built from our design system.

Why it matters: at this scale, every second saved per visit adds up to hundreds of hours of customer time a month.

The goal was to pay down the technical debt first: move the page off legacy code and onto the design system, so changes to the experience can ship much faster. The quote experience had barely changed in more than 15 years. People had stopped asking for improvements. They took it for granted and worked around it.

My role

I was the lead and only designer, on top of leading the design system. That meant the whole page: jobs, quotes, analyses, translation memories, term bases and references. The combination was the point: the page had to move onto the design system without breaking how people already work. Research, interaction, and visual design were mine. Engineers owned what sits underneath: APIs, data structure, and the codebase.

One page, every part of a project

The page stacks everything a project needs: jobs, quotes, analyses, translation memories, term bases and references. Each section is a table, and some get very big.

The bottom of the Jobs table, its last row fading out inside its box. Below it, Quotes, Analyses, Translation memories, Term bases and References are collapsed to their titles, each with a count.
One page, every part of a project. Each section collapses to its title.

Customers told us the tables were too narrow. The hard question was how to browse a page this long. Full-width sections risk an endless scroll. Tabs or a table of contents are tidier, but they hide content and break habits people have had for years.

Boxes, with only Jobs going full widthChosen

Sections stay as boxes, centered on big screens. Only the jobs table opens to full width, in a focus mode.

Three directions for browsing the project page, prototyped in Figma and reviewed with the team.

I explored three directions for browsing it as Figma prototypes, and gathered feedback across design, engineering, product, customer success and solution architects. We went with the one closest to what's in production: a stack of boxes. The boxes follow the new layout, using as much width as the content needs and no more.

The full-width option lost for a concrete reason: a virtualized table captures the scroll, so getting from Jobs to Quotes meant scrolling through every job. That's why each table now sits in a box, with room beside it.

What changed across the page:

  • Wider sections, with an expand toggle that remembers your choice.
  • The workflow selector moved out of the jobs table to the top of the page, because it changes every section.
  • One table pattern, reused in every section. Rows render only when they're on screen. Each table sits in a box about 90% of the screen high with its own scroll, and leaves room beside it so the page still scrolls. Design it once, and every section gets it, even at tens of thousands of rows.
  • Analyses show a meter in the table, with details in a popover when you ask for them.
  • References got a real table: previews, bulk actions and sorting. The limit went from 50 to 5,000, because a customer needed far more.
  • Translation memories and term bases moved into design-system tables. The assignment flow stays as it is for now.

Most sections moved to the design system as they were, then changed in steps. On the busiest page in the product, breaking everyone's habits at once was the bigger risk.

The page also shows data it doesn't own. It's pulled from elsewhere and drifts at high volume. For translation-memory settings, the accurate interaction was more complex than the simple one. I chose accurate. It shipped first in Project Templates, where customers use it today.

Project template settings. Translation memories are set per language and per workflow step. For German, the Quality assessment step lists three translation memories in priority order, each with its own penalty. Write mode is full at 2 of 2, so the third can't be switched on.
Translation-memory selection, live in Project Templates.

The section also adapts to the project, instead of showing every option every time. Pick a setup:

One language and no workflow steps: a single list. There's nothing to batch across, so there's no batch tool.

One language, French, with an empty translation memory list and an Add button.
The same section across eight project setups, from the Figma designs.

Where to go deep

I ran 7 interviews and logged 66 observations. Instead of customers, I talked to customer success managers and solution architects, the people customers call when something breaks. Secondhand, yes. But each conversation covered many accounts, not one. I showed them the redesigned quote, to validate it and find blind spots.

The pattern was clear: when people didn't trust a quote, they left the product. They exported the numbers to spreadsheets or quoted in other tools. Quotes had no breakdown, and checking a number meant cross-referencing other pages.

One observation reframed the brief. People use this page as a verification tool, not a reading experience. They come to check a number.

Two findings set the direction. Quotes are the trust breaker set the priority. Users think in jobs was a strong insight, and too big for this project. So the quote became the part of the page I took furthest.

A second goal came out of the research: make quotes clear enough that people check them in Phrase instead of exporting them. It falls out of the new quote view.

What I left out on purpose. "Users think in jobs" pointed to bringing jobs, analyses and quotes into one view. I built that as a more ambitious, vibe-coded prototype and showed it across the team. It was a rework of the whole experience, not a page, and too disruptive to ship. It moved into a separate exploration, Interstellar. A better page soon beat a perfect one later.

Turning the quote on its side

Hover or tap the numbers to see what changed

The new quote page for Q4 website launch. A summary table lists three target languages with their price and net words, adding up to a total of 1,000 EUR. Below, German is expanded to show its workflow steps, Translation, Review and QA, adding up to 320 EUR. A side panel links to the analysis, price list and net rate scheme behind the numbers.
The old view grew sideways. The new one grows down.

The old quote view gave every workflow step its own column, so the table grew sideways until it needed horizontal scrolling. Each row stacked word count over price, and only a background color separated a language from its files.

I turned the table on its side:

  • Workflow steps became rows. A long list scrolls naturally. A wide table doesn't.
  • Price and word count became columns, one number per cell.
  • One section per language pair. One person usually owns a language pair and its budget, so the grouping follows who's responsible for the money.
  • Summary first, subtotals at every level, so any number can be checked against its parts.

The numbers on the new view follow how people check a quote: scan the total (1), open your language (2), check each step (3), and follow a link back to the source (4).

Every setting that shapes the price, like the net rate scheme, the price list and the analysis, now links to its source. The old page named them but didn't link them, so checking a number meant digging by hand.

Then the work stopped

Most of the design was done when a reorganization cut design and engineering capacity. Company strategy froze investment in the legacy part of the product, and the project page sat right inside it.

The design was ready. There was no capacity left to build it.

  1. Late 2025 – early 2026

    Research and design

    7 interviews, 66 observations. The quote redesign and most of the page were designed.

  2. 2026

    Reorganization. The work stops.

    Capacity is cut, and strategy freezes investment in the legacy product.

  3. September 2026

    A two-week workshop proves the model

    About 60 UI-debt fixes across the product, roughly 9 in 10 built by an AI agent.

  4. Autumn 2026

    The project page restarts

    Framed as maintenance. Agents build, engineers wire it in, I design.

  5. Today

    In development and QA

    A baseline is in place. No user result yet.

Making it cheaper than the debt

Arguing for more people wasn't going to work. So we changed what the work costs.

The approach was pitched for the project page, then proven across the product. In a two-week workshop on UI debt, we shipped about 60 fixes against a target of 50, roughly 9 in 10 built by an AI coding agent.

  1. Design feedback

    I flag what's wrong in the UI, from a review or a screenshot.

  2. An AI skill writes the ticket

    Feedback becomes a clear, consistent ticket.

  3. An agent builds the fix

    An AI coding agent implements it on the design system.

  4. Design review

    I check that it looks and behaves right.

  5. Engineering review

    Engineers check the code, APIs, and data, and wire it in.

  6. Shipped

    Fixes I file ship in a median of one day.

How UI-debt fixes move now.

AI skills turn design feedback into tickets. An AI agent builds most fixes, then design and engineering review them before they ship. Engineers handle what agents can't yet: APIs, data, and how it fits the codebase. I design with agents on real data, and still use Figma to explore visual variants.

We framed it as maintenance, not polish: moving off legacy code that's expensive to keep alive. That's how a frozen project fit back inside the plan.

On the project page, closed tickets went from a handful a month to about 25, and the new page is about 80% design system, up from about 50%. Across my work, UI fixes I file now ship in a median of one day.

The agent writes code. The engineers who review it and wire it in make it hold.

Where it stands, and how I'll know it worked

There's no user result yet. The new page is in QA, and no customer has used it. I set up analytics before changing anything, so there's a baseline to measure against.

SignalWhy it matters
Quote exports per quote viewedExporting was the workaround for distrust
Time to create a quoteThe bottleneck the research found
Support tickets about quotesA direct trust signal
Share of users switching back to the old viewBuilt into the planned rollout
Feedback from customer-facing teams and in the productKeeps the research channel open

Time on page is deliberately not on this list. On a page people use to check numbers, less time can mean it works.

What I'd take with me

Knowing what not to ship. The jobs insight was the most exciting thing the research found, and the hardest to leave out. Leaving it out kept the redesign small enough to restart when capacity came back.

  • When you can't get budget for a redesign, make the redesign cheaper than the debt.
  • When money is on the screen, accurate beats simple.