paulsaunders.ai

Recent work/MenuLingo

Case study · 2025–2026

The menu speaks every language your diners do.

MenuLingo turns one restaurant menu into 100 languages, tags every dish for allergens, and serves it from a single QR code on the table. Designed, built and shipped solo.

100

Languages

27

Tables in schema

6 wks

Built solo in

auto

AU → US substitutions

The problem

Tourists can't read your menu. Allergy guests can't risk it.

A regional restaurant in Perth was hand-printing four paper menus in different languages, photocopying them to wear out, and still missing diners with coeliac disease, tree-nut allergies, or shellfish reactions.

The owner's ask was small: "can we just have one menu people can read?" The hidden ask was bigger — a way to update prices weekly without a reprint, log every allergen substitution, and stop relying on a 19-year-old waiter's memory.

What diners see

One QR code. The diner picks the language.

Same menu, three languages. Click any image — it opens full-size with arrows to flick through.

The solution

Four design decisions that did the heavy lifting.

  • Translate once, cache forever

    Claude Sonnet 4.5 handles batch translation in a single API call — including Australian → American substitutions (capsicum → bell pepper, prawns → shrimp). Translations are cached the moment they're generated.

  • Allergen-first UX

    Every item is tagged at write-time. Diners filter by 14 allergens before the menu loads. Confidence levels — definite, likely, possible — surface honestly when the kitchen isn't 100% sure.

  • QR code on every table

    Short codes (6 chars) redirect to the menu page. Restaurants print once, update weekly. Error correction level Q means a coffee splash still scans.

  • Decoy pricing on signup

    The Starter tier is deliberately limited so the Pro tier — $5 more — feels like the obvious choice. Conversion lift, baked into the UX.

Try it

Switch languages →

Pre-baked translations · no live API

Same menu, four languages

On the live product, Claude Sonnet handles 100 languages with Australian → American substitutions baked in. For this portfolio piece, the translations are pre-rendered.

Le Fournil — Lunch

Seasonal · Wood-fired · Small plates

  • Heirloom tomato salad

    Burrata, basil oil, sourdough crumb

    $24

  • Wood-fired lamb shoulder

    Slow-cooked 8 hours, salsa verde, charred lemon

    $38

  • Roasted capsicum & ricotta tart

    Filo pastry, thyme, pine nuts

    $22

  • Fig & honey tart

    Mascarpone, walnut praline

    $16

And this

Generate a real QR code →

Live demo · runs in your browser

Generate a menu QR code

Type any URL — the QR rebuilds instantly, on your device. No server, no API call, no cost.

Built with

Tech stack

Next.js 16TypeScriptTailwind 4shadcn/uiFramer MotionClaude Sonnet 4.5PostgreSQL + PostGISStripeVercel

Need something similar?

I build single-purpose products like this for B2B clients.

If you've got a stubborn workflow that should have been software five years ago, let's talk.

Get in touch