Case study 02 / 04 · Restaurant Operating System

← All work

Menuvyn

The Menuvyn home page: the headline “Your menu, reborn as an app” beside plated avocado toast and an interactive diner menu priced in LKR.

One tap, the whole restaurant moves.

A restaurant platform connecting QR menus, shared table orders, a kitchen display system (KDS) and a cloud point of sale.

Role
Founder & sole engineer: architecture, real-time sync and full-stack development
Year
2026

01Overview

Overview

Built with

  • Next.js
  • React 19
  • TypeScript
  • Supabase & PostgreSQL
  • Supabase Realtime
  • Cloudflare R2
  • Payments.lk & LankaQR
  • Web Audio API

Filed under

  • Own product
  • SaaS
  • Real-time

02The challenge

The challenge

Restaurants need to update menus, take table orders and keep the kitchen informed. A static PDF menu cannot handle that workflow, and dedicated hardware adds another cost.

03The thinking

Roads taken, and the ones that weren’t.

  1. 01

    Took

    Real-time collaborative group ordering for tables via WebSockets.

    Instead of

    Isolated individual diner carts requiring separate orders per person.

    Because

    Diners at the same table can add items to a shared order and see who added each item before submitting it.

  2. 02

    Took

    Dual ordering architecture: direct digital kitchen submission and offline-capable Waiter QR Dockets.

    Instead of

    Mandating tablet hardware in the kitchen before any orders can be placed.

    Because

    A waiter can scan the diner's order, including modifiers and totals, without requiring a kitchen tablet.

  3. 03

    Took

    In-browser Web Audio API alert synthesis for kitchen display chimes.

    Instead of

    Streaming external MP3/WAV audio files over the network.

    Because

    Generating the chime in the browser avoids a separate audio download. Playback still depends on browser audio permissions.

  4. 04

    Took

    Trilingual content model (English, Sinhala, Tamil) as first-class entity fields.

    Instead of

    Automated browser translation plugins (Google Translate).

    Because

    Authored fields let restaurants supply dish names and ingredients in each language, rather than relying on automatic translation.

04The engineering

The system, taken apart.

Supabase Realtime channels connect the diner's cart, the kitchen display, the counter register and sold-out controls. Changes are broadcast to subscribed screens without polling.

  1. 01

    Diner

    • Table QR scan
    • Collaborative group cart
    • Trilingual UI (EN/SI/TA)
  2. 02

    Edge & Routing

    • Next.js App Router
    • Custom domain proxy
    • Food court order routing
  3. 03

    Kitchen & POS

    • Real-time KDS tablet line
    • Web Audio alert chime
    • Cloud POS & staff PIN
  4. 04

    Data & Media

    • Supabase PostgreSQL
    • Supabase Realtime channels
    • Cloudflare R2 media bucket

The loopReal-time kitchen-to-table pipeline: ticket status changes (Pending → Preparing → Ready → Served) stream back to the customer's live order tracker, while floor 86 toggles instantly grey out sold-out items across all active table menus

What was built

  1. 01

    Built a mobile web menu opened from a table QR code, with haptics, bottom sheets, dietary filters and typo-tolerant search.

  2. 02

    Built collaborative real-time table group ordering where diners seated at the same table add items into a unified live cart via Supabase Realtime WebSockets with guest attribution.

  3. 03

    Designed the Waiter Order QR Docket: for venues without kitchen tablets, the guest cart synthesizes a dense QR docket encoding line items, modifiers, table numbers, and totals for instant waiter scanning.

  4. 04

    Created a real-time Kitchen Display System (KDS) tablet cook line with ticket timers, order status progression, and browser-synthesized Web Audio API alert chimes.

  5. 05

    Built a lightweight Cloud POS & Counter Register with staff PIN authentication, cash and card split payments, and thermal receipt printing.

  6. 06

    Implemented first-class trilingual localization across English, Sinhala (සිංහල), and Tamil (தமிழ்), with instant script switching and localized price rendering (LKR / USD).

  7. 07

    Architected food court multi-vendor support, allowing diners to order from multiple stalls under one unified dining court docket.

05The experience

What people actually see.

Captured from the live product. Nothing here is a mock-up.

06What shipped

What shipped

  • Browser-based menus, table ordering, kitchen displays and a counter register.
  • Live collaborative table ordering with real-time WebSocket sync.
  • Tablet KDS with zero-dependency native Web Audio chime alerts.
  • Full trilingual localization across English, Sinhala, and Tamil.

Next case study

Harriet Shopping

Two audiences, one storefront.

Continue
The Harriet Shopping storefront: logo, search and category navigation above the Mid Summer Collection campaign.

Analytics

May I use Google Analytics to see which pages and interactions people use? It loads only if you accept. Form contents are never included. You can change this in the footer.