Design review · captured from v2.10.0 on 2026-07-26

Three ways to make the bundle feel like one product.

Jarvis Desktop today is a good shell wrapped around two products that brought their own shells with them. Open Jarvis Design or Jarvis Team and the outer navigation disappears, the type scale changes, the accent colour changes, and you lose the thread of where you were. Each proposal below fixes that a different way, then carries the fix across the whole bundle — Chat, Apps, Projects, Design, Team, Scheduled Tasks, the Issue Board, Deployments and Settings.

109 source screenshots reviewed 29 screens per direction 3 complete design systems No production code touched
The three directions

Same product scope. Genuinely different systems.

These are not palette swaps. Each direction takes a different position on the shell itself — where navigation lives, whether operational state is ambient or on demand, and how dense the working surface should be — and then derives typography, spacing, geometry, iconography and motion from that position. Every preview below is the real prototype, running live.

What each proposal had to solve

Five problems the current build has

1 · Three shells wearing one coat

The desktop sidebar, Jarvis Design's sidebar and Jarvis Team's sidebar are three separate navigation systems with three different logos, type scales and accent colours. Entering an inner product replaces the outer one entirely, so context is lost at exactly the moment you need it.

2 · Operational state is invisible until you go looking

Scheduled Tasks, the Issue Board and Deployments hold everything that is running unattended, but nothing about their state surfaces anywhere else. A failed deployment and a skipped scheduled run look identical from the Chat screen: like nothing.

3 · Emptiness reads as brokenness

Most captured screens were empty, and the empty states are a grey tray icon and four words. There is no path forward from them and no explanation of what would fill them — which makes a healthy first run look like a failed install.

4 · Critical strings are typeset as prose

Image digests, source snapshots, provider revisions and deployment refs are set in the body face and truncated mid-hash. These are strings operators compare character by character against a terminal.

5 · Contrast and hierarchy are too quiet

Secondary text sits near the floor of legibility on the dark surface, page titles and section titles are nearly the same size, and disabled and enabled controls are hard to tell apart — so nothing on the page claims priority.

6 · The product switcher is a whisper

Chat, Design, Build and Team are the four modes the entire product is organised around, and the only way to see them is a small chevron next to the app name. Every proposal promotes this control and keeps your place when you use it.

How to review

A ten-minute path through each direction

  1. Open a direction and stay in Chat. Send nothing — judge the greeting, the composer, the assistant grid and the four selectors (assistant, model, permission, project). All of them work.
  2. Open a conversation from the sidebar. Look at how tool calls, provenance and the running badge are handled.
  3. Use the product switcher to go to Design, then Team. This is the core test: does the shell survive the move?
  4. Go to Deployments and read the digests. Then open the log.
  5. Use States in the bottom review bar to flip any list screen between populated, empty, loading and error.
  6. Press ⌘K / Ctrl-K for search, ⌘B to collapse navigation, Esc to close anything.
  7. Narrow the window to about 1200px, then 1100px, to see the compact-desktop behaviour.
  8. Toggle light/dark in the review bar, then open that direction's Specimen.

The review bar

Every prototype carries a bar at the bottom of the window. It is review chrome, not part of the design: it switches direction, flips the screen state, toggles light/dark, and links to the specimen, the comparison and this page.

What is deliberately not real

Nothing talks to a backend. Sending a message, deploying, signing out, installing a harness and every destructive action are inert and answer with a toast. All content is drawn from the 2026-07-26 capture; where the capture showed an empty product, the prototype also carries a realistic populated state so the layouts can be judged when full.

Scope covered by all three

Every area of the bundle