Moritz · Case study
Redesigning a law firm's front door
Moritz is an AI-native law firm. I redesigned its client intake end to end and built it as a working prototype in the firm's own codebase.
3 days
from brief to working prototype
4
client complaints addressed
5
states in one step mark
- Role
- Product design · Design engineering · UX writing
- Client
- Moritz, an AI-native law firm
- Timeline
- 3 days · September 2026
- Delivered
- A working TypeScript prototype behind a design switch



The customer
Moritz is an AI-native law firm

Clients type what happened, an agent builds the case notes, and a lawyer takes over. Intake is the first thing they do with Moritz, and the only part they do alone.
The problem
Clients finished intake unsure what happened
- I'm not sure my case was actually submitted.
- I don't know which step I'm on, or how many are left.
- I can't find where to upload my documents.
- It feels sterile. Like a form.
The approach
The process is now on screen
- A story before the client starts.
- A receipt after every answer.
- A case number and track after submitting.
- A lawyer’s face at each moment.

The story
A six-second story plays once


One mark
One step mark, five states




The step dot was drawn six different ways across the app. I built one component with five states (filled, current, dashed, outline, ghost) and used it everywhere.
Starting
One typed message opens the case

The composer sits under the greeting on every visit. A draft tile appears on the first message and the case number appears on submit.
Where am I
Every answer gets a receipt



Each receipt is one line in the thread, and the count in the brief moves. A skipped step still counts as done.
Transparency
Moritz says what it filled in


A small model pulls answers out of the message. A hand-written script decides what Moritz says next, so the flow works even if the model is slow or wrong.
Uploading
Upload is available at every step



The attach control sits in the placeholder, in Moritz’s first message, and in the brief panel. For contract matters, the document is the first question.
Submitting
Submitting ends in a case number



Waiting
Moritz narrates the wait

Moritz lists each step the agent takes and says you can leave. The old card promised a quote time nobody could keep; the new one says where the quote will arrive.
Coming back
Every case tile shows stage and lawyer




A tile shows a track until a lawyer is assigned, then a name and a face.
Human
A real person at every step




The same three faces follow a case from card to tile. A lawyer is named only once one is assigned.
Voice
Moritz sounds like a firm
I took the timeline and other side from your message. Change anything I’ve got wrong.
Rejected
Three ideas I crossed out



Drawn and crossed out on the same cards. The composer stays one size, the receipt lands in the thread, and the brief panel stays open.
Next
Three next steps
- Watch strangers use it, starting with a Maze or UX Army run.
- One primary action per screen.
- Email at each milestone: submitted, quote ready, lawyer assigned.