Case study · Restaurant

A menu the owner reprices in a minute.

Mahramji is a seafood restaurant on the Mina corniche in Tripoli. Guests scan the code on their table and read the full menu in English or Arabic, in dollars or lira. When a price changes, the owner changes it — from a phone, without calling anyone or reprinting anything.

Mahramji menu in dollars and English on a desktop screen
Mahramji menu in dollars and English on a phone
USD ⇄ LBPEnglish ⇄ Arabic1.8 ms menu reads
Live
15 August 2026
Languages
English and Arabic
Currencies
US dollar and Lebanese lira
Visit
almahramji.com

The problem

In a market where prices move often, a printed menu goes out of date quickly — and a menu only one person can update becomes a bottleneck. The restaurant needed a menu guests could read in their own language and currency, that the owner could keep current himself.

What we built

A fast menu site with all 67 dishes, switchable between English and Arabic and between dollars and lira. A landing page with a hero video, a live map, and opening hours set day by day — plus a “temporarily closed” switch for the days that need it.

For the tables, a script generates the brand assets from the restaurant’s logo: app icons, twelve numbered table cards and print-ready sheets, each QR code checked to scan from print quality all the way down to 50 dpi.

The owner’s side

One dashboard with tabs for prices, menu, content, information, appearance and settings — and a home tab with visit numbers that don’t depend on any third-party tracker. Changes appear on the guest menu immediately.

Under the hood

The admin signs in with a password and a code from an authenticator app, locks after repeated failures, and records every change. Every table in the database has row-level security, so the public menu can read only what it is meant to.

The hero video was cut from 13.26 MB to 2.68 MB so it starts quickly on mobile data, and a guest menu read averages 1.8 milliseconds.

67dishes, in two languages
2currencies, switchable
5×smaller hero video
1.8 msaverage menu read
Built with
  • Next.js 16
  • Supabase
  • PostgreSQL
  • Vercel
  • Tailwind 4
  • Two-factor admin

More work: All projects →