Work/Arcade.dev

Three Arcade.dev screens stacked at an angle: the Playground with an Authorize GitHub card in front, the dashboard Authorize GitHub next step behind it, and the policy approval queue at the back

Case study ( 06 ) ยท Arcade.dev

Arcade.dev: a web console and an iOS app for running agents with confidence.

Arcade's console had the engine but not the story: what needs me, why it failed, what is allowed. I redesigned it around first success, then trust, then control.

Role
Product designer
Scope
Web console, design system
Delivered
54 screens across six flows, tokens, status language
Status
Design concept, not yet user-tested
Tools
Paper

01Overview

An engine that works, and a console that hides it.

Arcade sits between AI agents and the systems they work in. It authorizes as the user, runs tools, and logs every call. The public prototype and docs covered setup well. The real dashboards sit behind a login, so I designed from the prototype, the docs and public feedback.

My roleResearch, flows, system.

  • Research and framing

    Docs, prototype and public feedback turned into a gap list.

  • Flows and screens

    Six flows, every state: empty, error, blocked, conflict.

  • Design system

    Tokens, status language, verbs and nouns, agent icons.


02Problem

Developers need a first win, then control.

The same console serves a developer on day one and a security lead on day ninety. The first needs a working call in minutes. The second needs approvals, rules she can test, and an audit trail. Showing both at once buries both.

Critical journeysFour, in the order people need them.

The four journeys

  • 01

    Make a first call

    Role fork, Quickstart, detected first call.

  • 02

    Find why a run failed

    From a failed run to the cause and the fix.

  • 03

    Share tools by gateway

    Pick tools, create, connect a client.

  • 04

    Govern what agents do

    Draft rules, simulate, approve.


03Hypothesis

Lead with the first call, then reveal control as people grow into it.

The same console serves a developer on day one and a security lead on day ninety, and showing both at once buries both. The bet: start with a working call in minutes, and let navigation, rules and approvals appear as the person needs them.

None of it has been tested with users yet. The last section lists what to measure.


04Solution

Lead with value, then reveal the rest.

The console starts with a role fork and a Quickstart that detects the first call. Navigation grows as you do: Governance unlocks after the first successful call. The dashboard then answers one question first: what needs me?

Live: move across the charts. Scrub the Tool calls line, switch 1W, 1M or 3M, and hover outcomes, tools and the run-time grid.

ConnectAuthorize where the work happens.

Per-user authorization is handled where it happens, inside the Playground conversation, instead of sending someone to a settings page. Connected accounts show their status with the fix beside it, and a gateway publishes one MCP URL that clients connect to.

Debug a runThe page names the cause and the next step.

A failed run opens on a trace that says what stopped it. A held call and an expired login are different problems, so each gets its own state and its own verb: Review for a call that needs a person, Re-authorize for access that expired.

Status languageColor means a state, never decoration.

One data hue plus gray for charts. Status colors only when they carry meaning, always with an icon and a label. The same tokens run the console and the phone, so a held call looks the same everywhere. Verbs are fixed too: Authorize, Review, Retry, Replay.

Three status notes: three states with three tints, each with an icon and a word; one coral action per screen with Face ID for loosening a rule; one data hue and gray for every chart.

GovernRules you can test before they go live.

Policies are edited as drafts, simulated against live rules and the last seven days, and blocked from publishing while they conflict. The approval queue ranks what needs a person, with bulk review for the dull cases. Approvals are the part the public docs do not cover, so it got the most care.

Live: the Approval queue, as designed. Pending tool calls on the left, the held call and its reason on the right.

CostPer-call pricing needs a speedometer.

Public feedback pointed at cost as the likeliest surprise. Usage and budget shows spend against a budget, the pace to month end, and the agent running hot, with a cap one click away. At the limit, new calls are held, not dropped.

Live: scrub the Spend per day line, switch Month or Quarter, and hover the budget bar and each agent's share.

Arcade AgentIt reads the page, drafts the change, and waits for approval.

A toggle in every top bar, or the keyboard shortcut, summons it. It reads the current page and drafts changes, and changes to rules, accounts or keys always wait for an approval card.

Design systemOne language across 54 screens.

Dark graphite surfaces, one coral action per view, Inter for the interface and a mono face for code. Fixed verbs and nouns, status pills with icons and labels, brand marks on white tiles. Built as tokens first so the console, the phone and the code can share them.

Arcade design system board: the shell, the status language, brand marks on white tiles, and the rules that keep screens consistent.

05Learning

What it is built to change.

A design concept, so these are targets to measure, not results. Nothing has been tested with users yet, and numbers on screens are placeholders.

To test: how fast new workspaces reach a detected call, how often the simulator catches a rule mistake before it is published, and whether the 80% warning prevents bill surprises and held-call confusion.

5 minTo a first successful call
0Rules published in conflict
80%Warned before it is a bill