← All work

Redesigning Urja into a calmer, clearer render farm for people who watch it all day

Urja is a cloud render farm where studios send 3D scenes to be rendered, and artists often leave it open for hours while they wait. I redesigned it end to end as a solo designer, across more than 20 screens from sign-up to billing.

ProductUrja by Yotta, a cloud render farm for Blender and Maya studios
FocusDark-mode accessibility, a design system, clear job status
The new Urja admin dashboard

The problem

The app clashed with Urja's own brand, strained the eyes in dark mode, and gave every element the same loud weight, so people had to hunt for what mattered. When a job failed, the screen offered five buttons of equal weight and left the person to guess which one fixed it.

The app and the website felt like two different products

I started by comparing the app with Urja's own website. The website is built on deep navy, while the app used a neutral grey-black, and the app's backgrounds, greys and status colours had no clear rule behind them.

The Urja app and the Urja website side by side, with their different colour palettes

Taken together, the old screens showed everything at once and left the person to work out what mattered.

Outcome

The redesign brings the app and the website onto one navy palette, and it gives people a calm screen they can keep open all day.

Easier on the eyes

All readable text now sits at 4.5:1 contrast or more, and the brightest bars dropped from up to 8.9:1 to about 5:1.

Faster to act on a failure

The failed job screen went from five equal buttons to one main action, one secondary action and quiet extras.

One meaning per colour

Each colour and each button style has a single job across all 20+ screens.

A clear start for new studios

A four-step guide with progress replaces an empty welcome screen.

The solution

I built a design system on the website's navy where colour means status, orange means action, and the one thing that needs the person is the one thing that stands out. It comes with a button hierarchy, a status ladder, and redesigned screens for jobs, job detail, submitting, dashboards, leases and billing.

Design system 2.0

I turned the research into rules so that the same thing looks the same everywhere. I started from Urja's own tokens, kept what worked, and gave every colour exactly one job.

Design system 2.0: surface colours, status chips and text colours

I started with an audit of the current UI

The current app design: surfaces, status colours and orange used across the old screens

Accessibility issues

Low-contrast greys on dark

Secondary text such as dates and file sizes sat close to the background colour, which makes it tiring to read over a long session.

Status carried by wording alone

“Ready for test render” and “Ready for render” looked identical, with no colour, icon or shape to tell them apart.

Glare from bright fills

A lime progress bar and a solid orange button on near-black are the brightest things on the page, so they pull the eye even when nothing needs attention.

Visual hierarchy issues

Everything was bold

Headers and titles at heavy weight look even louder on a dark background, so nothing led.

The riskiest action was always visible

A bin icon on every row made deleting as prominent as testing a render.

Nothing acted as a single source of truth

So surfaces, borders and greys were picked screen by screen.

Two spare dark backgrounds

(#17161F and #0E0B22) had been added but used in one screen.

Status colours came from outside the brand

With lime for progress, bright cyan for queued and hot pink for errors.

Orange was doing 4 jobs at once

Across primary buttons, active tabs, links and warnings, which meant nothing orange stood out.

What I set out to do

I turned the audit into four goals and checked every screen against them.

GoalWhat this means
Keep it consistentUse the same navy colour palette as the website so everything feels connected.
Make it easier to readAvoid pure white and bright colours, use softer font weights, and keep text contrast at 4.5:1 or higher.
Keep the focus clearMake the most important action or information stand out on each screen.
Keep things predictableUse each colour and button style consistently so people know what to expect.

How I approached it

Before drawing anything new, I learned the rules and wrote them down, starting with dark mode.

Learning the rules of dark mode

A dark interface follows its own rules, and these are the ones I applied.

No pure white text

Maximum contrast shimmers on a dark background, so I dimmed body text to #E0E6E8, and to #BAC2CA on busy dashboards.

Lighter headings instead of bolder ones

Light text on dark looks heavier than the same weight on white, which makes bold headings glow, so I moved headings to regular or medium.

Depth from lighter surfaces instead of shadows

With each higher layer in a slightly lighter navy.

Softer saturated colours

Bright colours vibrate on dark, so I desaturated every status colour.

Two contrast bars

Text needs 4.5:1 and shapes such as progress bars need 3:1.

How other tools rank status colours

Monitoring and ops tools tend to follow an attention ladder, where the loudest colour goes to whatever needs a person and everything else stays calm. I applied the same idea to jobs, so failed is the loudest, rendering comes next, and complete, queued and paused sit in quiet grey.

The Job Summary table

The previous design

5+ tabs but all were essentially the type of filters, Frame preview did not add value here, it just showed preview, the delete action under job table was always visible and prominent.

The previous Jobs table with five tabs, a frame preview and an always-visible delete action

Making the table easier to use

I wanted users to be able to quickly check how their jobs were progressing, spot issues and find the actions they needed. So I made a few changes to the table.

  • Progress at a glance. Small bars show which slices are done, rendering or still waiting, making it easier to track each job.
  • Recognisable software icons. Each job now shows a Blender or Maya logo so users can quickly identify which software was used.
  • Clearer statuses. I used a combination of shape, colour and text to make each status easier to recognise.
  • Less clutter. I kept the main action visible in each row and moved delete and other options into the “…” menu.
  • Easier to spot issues. Users can filter jobs by status, while a “Needs attention” count helps them quickly find jobs that have failed.
The new Jobs page showing the Uploading, Ready to test and Ready to render statuses

Job details page

In the previous design, there was no separate page for opening individual renders, this was handled in the streamer app, with this redesign this page was added in the UI

The failed job screen with slices, log and the error card

Helping users take the next step

When a file is missing, users need to understand what went wrong and how to get their job running again. I organised the actions based on what they would most likely need to do first.

  • Upload missing file is the main action, placed directly inside the error card so users know where to start.
  • Retry is a secondary action since users need to upload the missing file before trying again.
  • Render without it and Open output folder are shown as simple text buttons to keep them accessible without drawing too much attention.
  • Cancel job sits inside the “…” menu, with red used only when the option is visible.

Admin & User Dashboard

Previous design

The previous admin dashboard with five equal KPI cards

New design for Admin dashboard

The new Urja admin dashboard

The dashboard changed in five ways.

  • Needs attention comes first, with the person, the error and the fix on separate lines.
  • Users, credits and storage sit in one calm row, with a bar wherever it helps.
  • The nodes grid stays visual. I kept the grid people liked and let it carry the GPU and CPU numbers along with their High and Critical tags.
  • Running and finished jobs appear as separate, short lists so they don't compete.

New design for User dashboard

The new user dashboard with the credits card listing each lease

Building an onboarding was out of scope...

...so I changed the first screen after login to onboarding screen

The first-visit dashboard with the How to get started guide

Billing and History

Previous design

The previous billing screen

New Design for Billing and history

Billing and credits, with the new plan cards

Other redesigned screens

Users and leases

The Users page, with each person's leases shown as chips on their row The Leases page, with each lease's usage and its Almost out and Out states

User sign in & sign up

Sign-up step 1: create your account, with the Continue button and arrow Sign-up step 1: create your account, with a plain Continue button The sign in screen

My key takeaways

Rules make small decisions fast.

Writing the dark mode rules first made hundreds of colour choices quick and consistent.

Hierarchy comes from a decision.

The failed job screen improved once I chose the one main action, well before I touched any colours.

Short on time? Skim the headings, blue text, and visuals to get the key takeaways from this case study.