
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.