AI Startup — Frontend UI
Built the frontend UI for an early-stage AI startup — clean React components, streaming responses, and the kind of interface that makes the model feel smart, not noisy.
Overview
Worked with an early-stage AI startup on their frontend. Took the founder's brief from rough sketches to a production-ready UI with streaming responses, chat-style interactions, and the visual restraint AI products need to feel trustworthy.
Problem
AI product UIs have a bad habit of over-designing — too much chrome, too many animations, too many "sparkle" icons. The goal was the opposite: a calm, confident interface that got out of the user's way so the model's output could do the talking.
Constraints
- Streaming responses had to feel natural, not janky (token-by-token with proper reflow)
- Had to work across desktop and mobile with consistent behaviour
- Design tokens agreed with the founder upfront — no scope-creep mid-sprint
Approach
React + TypeScript frontend with server-sent events for streaming, Tailwind for the design system, and careful motion design to make the streaming text feel alive but not distracting. Built the component library first, then assembled screens from it.
Key Decisions
SSE for streaming, not WebSockets
Unidirectional server-to-client is the only channel needed for token streaming. SSE is simpler, works through proxies better, and requires no custom protocol.
Minimal motion — restraint as a design choice
AI products already feel magical. Adding too much motion makes them feel like toys. Stripping motion back makes them feel like tools.
Tech Stack
- React
- TypeScript
- Tailwind CSS
- Server-Sent Events
- Vite
Result & Impact
Shipped the MVP UI on schedule. Founder used it in investor demos; the product moved forward off the back of it.
Learnings
- Streaming UIs are a craft — the difference between a janky and a great streaming experience is 80% reflow logic, not animation
- Restraint reads as taste in AI products. Every extra UI flourish is a vote against trust