← All work2025–2026 · AI Agents · Web

AI Menu Ordering Platform

A bilingual restaurant app where the LLM drives the cart live, mid-stream.

RoleLead engineer — backend protocol & frontend
StackReact 18 / 19 · TypeScript · Vite 5 / 6
Year2025–2026
Tests115

Client work — case study anonymized; architecture and metrics are real.

The trick: structured tags in the stream

The assistant streams its reply over server-sent events, and embedded in that stream are structured tags the client parses progressively — add these items, remove those — so the cart updates live while the model is still talking. A documented fallback-tag strategy keeps the cart correct even when the stream is cut mid-tag.

Output sanitization strips tool-call echoes and timing banners before anything reaches the customer, and heartbeats keep mobile connections alive.

Voice ordering, both directions

Customers can speak their order — a waveform visualizer runs while recording — and the full experience works in English and Arabic. The frontend is 108 components with a build-time sitemap generator, a hand-written Content-Security-Policy, and a templating system for multi-restaurant theming.

Operated like a product

The backend runs behind a dual-layer cache with stale-if-error fallback for branch configuration, and ships with a symptom→cause→action debugging guide and an eight-section integration handbook. CI enforces an 80% coverage floor over 115 tests, with load tests alongside.

Latency work was measured, not guessed: a controlled A/B harness compares the raw model against the full agent wrapper on identical queries to isolate framework overhead, and a time-to-first-token probe checks whether trivial queries pay a complexity tax.

Built with

Every technology this project runs on, and the job it does here. Each one links to the other projects it appears in.

By the numbers

108Frontend components
115Backend tests
≥ 80%Coverage gate
2Languages