SELF-INITIATED

90-second claim intake

Market opportunity study · policyholder app + adjuster dashboard · designed, built and shipped in 3 days

Project context

The first notice of loss is the most expensive moment in a motor insurer's operation and the one that decides how the customer feels about the policy they bought. It is still handled by phone, with an agent transcribing what someone standing on the shoulder of a highway manages to say.

I took that as a business question and built a working answer: problem framing, design system, two live interfaces and a launch film. No client, no real data. Everything shown runs; nothing shown is claimed as a measured result.

Client

Self-initiated. Market opportunity study

Segment

Motor insurance, first notice of loss (FNOL)

Stage

Working product, publicly deployed. v0 live, v1 architected

Business model

B2B SaaS. Subscription revenue, plans from BRL 200 to BRL 990 per month.

Target audience

Policyholder: at the roadside, one hand free, high adrenaline

Claims adjuster: at a desk, triaging by severity

Design system

Material Design 3

Role

Product strategy, research, design and implementation

Stack

Claude, Claude Design, Claude Code, Supabase (MCP), GitHub (MCP), Vercel (MCP), Higgsfield (MCP): Seedance, ElevenLabs, Nano Banana, GPT Image, etc.

Period

2026 · 3 days

Challenge

Cut claim intake to under 90 seconds without a phone call, and deliver the data already structured on the other side. The second half carries the value: a form that produces one free-text field only moves the work, because someone still has to read, classify and retype it.

Key actions

Design system before screens: Material Design 3 tokens set first, with one rule governing the system; error red reserved exclusively for "someone is hurt". Claim stages use neutral chips, so when red appears it means one thing.

Six surfaces in Claude Design: intake, capture, confirmation, live tracking, policyholder home, adjuster dashboard. Delivered as clickable HTML. No Figma at any point.

Built with Claude Code and Supabase over MCP: Next.js on Vercel, Postgres and Realtime on Supabase. Schema, RLS policies and Realtime created and verified in the same pass as the code.

One write path, by design: every claim goes through a single endpoint. Not the shortest route, and that is the point; the voice layer plugs into the same endpoint and table with no refactor.

Honesty in the interface: opening time is measured for real, first tap to server response. The dashboard map carries a "demo data" chip.

Launch film with Higgsfield over MCP: 20 seconds inside a fixed 200-credit budget. Cinematic shots in Seedance, generative narration, stills in GPT Image and Nano Banana. App screens are real recordings cut in as inserts, never generated.

Impact

check

Both interfaces live on a public URL, opened on a phone with nothing to install

check

A claim opened on the phone reaches the dashboard in under 2 seconds, and a status change returns to the phone in the same window

check

The launch introduced a new SaaS model for Greiner, with subscription plans ranging from BRL 200 to BRL 990 per month 2022

check

A claim opened on the phone reaches the dashboard in under 2 seconds, and a status change returns to the phone in the same window

check

Opening time measured and displayed, never hardcoded

check

v0 complete and presentable on its own, not a draft of v1

Expected impact for a buyer — projections, not results. Self-service intake removes the call from the critical path; structured fields cut first-touch handling time; injuries and non-drivable vehicles arrive flagged from second one; in-app status removes "where is my claim" calls. FNOL is high volume and low unit value, so a modest gain compounds across tens of thousands of claims a year. The buying question is not what the app costs, but how many points of call volume have to leave the contact centre to pay for it.

Launched app

The prototype is now a fully‑launched product. Explore the live app to experience the complete, production‑ready solution.

© Stephan Oliveira, 2026

stephan.oliveira.design@gmail.com

© Stephan Oliveira, 2026

stephan.oliveira.design@gmail.com

© Stephan Oliveira, 2026

stephan.oliveira.design@gmail.com