Skip to content

03 · 2023 · Projects

Tables Tap

Scan a QR at the table. View the menu, order, and pay: no app download required.

Role
Founder / Engineer
Focus
Next.js · Stripe · Product
Stack
Next.js · PostgreSQL · Stripe · Tailwind CSS

Tables Tap is a QR-based ordering system for restaurants. Guests order and pay from their phones; owners manage menus, tables, and orders from a dashboard. Built end-to-end with Next.js, PostgreSQL, and Stripe.

At a glance


Guest flow
Scan → menu → order → Stripe pay
Owner tools
Menus, tables, QR generation, status
Stack
Next.js, PostgreSQL, Stripe, Auth
Live
tabels-tap.com

01 · Context

What friction exists at the table?

Traditional ordering waits on staff bandwidth. App downloads are a non-starter for casual dining. A QR code that opens a mobile web menu removes install friction while giving the restaurant a real-time order stream and payment collection.

The product is the loop: table identity → menu → order → payment → kitchen notification: without asking anyone to install anything.

02 · Decision

Why ship web-first and payments-native?

Next.js served both the guest experience and the owner dashboard. Table QR codes encode restaurant and table identity so the session starts with context. Stripe handled payment; order state tracked occupied vs. available tables and pushed notifications to staff.

Multi-restaurant support for owners meant the data model had to treat restaurants as first-class tenants from day one: not a retrofit.

03 · Tradeoff

When is polling enough instead of websockets?

Full WebSocket infrastructure would have been overkill early. Polling and targeted refresh kept the stack simple while orders stayed timely enough for kitchen use. The door stays open for push when volume demands it.

04 · Outcome

What did Tables Tap ship?

QR generation per table, owner dashboard for menu and table management, secure Stripe checkout, table status tracking, and multi-restaurant support: deployed as a working product at tabels-tap.com.