← The Volumes

Volume I · Real-time commerce · Voice AI

The Voice at the Counter

Turning café ordering into a live conversation: a LiveKit voice agent, WebSocket order state, and one Flutter codebase serving web and mobile.

Problem
Cafés needed orders, kitchen status and voice ordering to stay in sync, live.
Outcome
One Flutter app for web and mobile, live order updates over WebSockets, and a voice agent that takes orders.
Diagram: Cafés needed orders, kitchen status and voice ordering to stay in sync, live.
Principal
Brewly ↗
My role
System architect · Lead Flutter engineer
Period
2025 — 2026
Tech used
Flutter · Dart · LiveKit · WebRTC · WebSockets · FastAPI

Chapter 1 · The problemThe Thesis

Voice interfaces do not fail on intelligence. They fail on timing. A model that answers perfectly in two seconds loses to a person who answers adequately in half of one.

Most voice products are built as a sequence of requests: record, upload, transcribe, think, speak. Every hop adds delay, and the conversation dies somewhere in the gaps.

Chapter 2 · The client & my roleThe Catalyst

Brewly set out to run a café as a live system: orders, status, and staff all moving in real time. The ambition was a customer who could simply talk to the counter.

I architected the foundation of the system and built the customer-facing Flutter application for web and mobile, then integrated a LiveKit voice agent that takes orders, assists customers, and updates the interface as the conversation happens.

Chapter 3 · The hard partThe Friction

The hard part was never the language model. It was the audio. A voice agent that speaks over people, pauses too long, or misses the end of a sentence feels broken, no matter how smart its answers are.

The decision was to treat the conversation as a stream, not a transaction. Audio moves over WebRTC through LiveKit, order state moves over WebSockets, and the agent drives the screen directly, so what the customer hears and what the customer sees never disagree.

“A correct answer delivered late is experienced as a wrong one.”

Chapter 4 · The resultThe Monument

Brewly runs on a single real-time spine. Orders and statuses propagate live across the café, and the voice agent is a first-class surface of the product rather than a bolt-on demo.

1
Flutter codebase serving web and mobile
Live
Order and status updates over WebSockets
3
Agent duties: ordering, assistance, live UI updates