Digital Menu
A QR menu that loads instantly and can be updated from a phone in seconds.
- Status
- LIVE
- Date
- May 2026
- Stack
- Next.js / Tailwind / Cloudflare / SQLite
The problem
Most QR menus are a PDF. They open slowly, they pinch-zoom badly, and changing one price means sending the file back to whoever designed it. Meanwhile the restaurant reprints the QR sticker every season for no reason.
The idea
Treat the menu as a product, not a document. A real web page that loads in under a second on restaurant wifi, works on any phone, and has an editor the owner can use from behind the bar.
Building it
How it came together, step by step.
Performance budget first
A hard limit was set before any design work: under 50KB of JavaScript and a first paint under one second on a throttled 3G connection. Every decision after that was measured against it.
Terminal
Designing for one thumb
Sticky category tabs, large photography, prices that stay readable in sunlight. Nobody pinches to zoom.
Mobile
An editor for behind the bar
Change a price, mark a dish sold out, reorder categories by dragging. Published instantly — the QR sticker never changes.
Interface
Serving it from the edge
Static generation with on-demand revalidation on Cloudflare, so the menu is cached close to the customer and still updates the moment it is edited.
Editor
Features
What it actually does.
Instant load
Under a second to first paint on restaurant wifi, on a five-year-old phone.
Edit from a phone
Prices, photos, availability and ordering — changed from behind the bar, live immediately.
Permanent QR
The sticker never needs reprinting. Content changes behind a stable URL.
Allergens and diets
Per-dish tags that customers can filter, which cuts a repeated question for staff.
Multi-language
Spanish, English and Arabic from the same dataset.
Sold-out toggle
One tap greys out a dish across every language at once.
Tech stack
What it is built with.
- Next.js
- Tailwind
- Cloudflare
- SQLite
The result
Where it ended up.
- First paint
- 0.8s
- JavaScript shipped
- 42KB
- Lighthouse
- 100
- Reprints needed
- 0
Build in public