What's built so far

A review page for the owner and team. Everything here is real code running against a real (in-process) Postgres database with the sample menu.

Built

  • Menu and customizers. Browse by category, customize pizza, burgers, wings and more.
  • Pricing engine. Live price and plain-language summary, checked again on the server.
  • Sold out and dayparts. Items and single choices, breakfast versus lunch.
  • Order lifecycle. Including Order complete and Picked up.
  • Database. 18 tables, store settings, frozen order snapshots.
  • Sign up and sign in by email. Emailed code, Argon2 password, sessions, roles enforced server-side.
  • Checkout and card payment
  • Kitchen tablet and its loud alert
  • Owner admin (menu, prices, hours, tax)

The store

Placeholder data [CONFIRM]

NamePalmer Market
Address2156 Main St, Palmer, TN 37365
Sales tax0.00% (sample)
Menu7 categories · 9 items · 28 option groups
HoursSunday: 4 AM to 10 PM, every day
Time zoneAmerica/Chicago

Order lifecycle

Click through an order the way the kitchen would. Green buttons are allowed now; grey ones show the rules saying no.

PENDING_PAYMENT
Refund status: NONE

Green buttons are the moves the kitchen can make right now. Try a grey one to see the guard say no.

Accept with prep time:
Refunds on a $33.75 order:

Sold out

Not signed in. Sign up or sign in — the toggle below is blocked until then (also requireRole()).

Mark something sold out (for example, Jalapeños on the pizza), then open the menu. It is greyed out and can't be ordered.

Server checks the price

The cart below is a $19.00 pizza. Claim a different total and the server refuses it.

Order numbers

Short and friendly, restarting each day. Each one is handed out safely even when orders arrive at the same moment.

#1A001#2A002#142A142#999A999#1000B001