No platform fee · No cloud account · Self-hosted

A restaurant POS you actually own.

Front of house, kitchen, delivery, and however your customers already order — one system, running on your own hardware.

BeepBite is a Go API and a React app running against your own Postgres — on a laptop in the back office, a machine in the cupboard, or a VM you rent. Delivery platforms take 15–30% of every order and own the customer relationship; cloud POS vendors charge per terminal per month. BeepBite takes nothing and holds nothing, because there is no BeepBite service — there is only the copy you run.

0%platform fee
MITopen source
Go + Reactself-hosted stack
BeepBite dashboard — sales trend, busy hours, and the live orders feed for a real seeded restaurant

Shown: the shipped app on a real seeded demo restaurant ("The Copper Table"). See the screenshots doc for how these are captured.

Every surface a restaurant needs

A touch POS, a kitchen display, inventory, and channel-agnostic ordering — built to be self-hosted, not rented.

Touch POS

Tabs, splits, voids, comps and manager approval, with a floor plan and table management built in.

Kitchen display

Per-station routing and an expo view, so tickets land where they're cooked, not just on a printer.

Inventory & purchasing

Recipes, costing, the 86 list, suppliers, purchase orders, goods receipts and waste tracking.

WhatsApp & QR ordering

Customers order from wherever they already are — WhatsApp chat with your own Meta credentials, or QR-at-table and web ordering. Both built today.

Money & people

Cash drawer sessions and reconciliation, cash/card/transfer/voucher tenders, time clock, payroll and tip pools.

No payment facilitator

BeepBite records tenders; it never touches your money. "Card" means your own card machine on your own counter — no PCI scope, no cut of your revenue.

Full feature list in the docs. Discord, Slack and email/DMTAP ordering are planned, not yet built — see Status.

A real POS, on a real seed

Every shot below is a real seeded tenant ("The Copper Table"), captured from the actual running app — nothing is mocked up.

BeepBite POS till — table bar, menu grid, and a running cart
POS till — table bar, menu grid, and a running cart
BeepBite kitchen display — expo view, per-station routing, fire timers
Kitchen display — expo view, per-station routing, fire timers
BeepBite floor plan — live table status, auto-refreshing every 15s
Floor plan — live table status, auto-refreshing every 15s
BeepBite menu management — items, cost and margin per dish
Menu management — items, cost and margin per dish
BeepBite inventory — purchase orders by supplier and status
Inventory — purchase orders by supplier and status
BeepBite dashboard in dark mode — sales trend, busy hours, live orders
Dashboard, dark mode — sales trend, busy hours, live orders

Light and dark variants of every surface are captured by npm run screenshots — see the docs gallery for the full set and what's excluded.

Quick start

A Go backend, a Postgres database, and a React frontend — no Docker required, no external service to sign up for.

git clone https://github.com/vul-os/beepbite
cd beepbite

# 1. database
createdb beepbite

# 2. configure — set DATABASE_URL and JWT_SECRET
cp .env.example .env

# 3. migrate
cd backend && go run ./cmd/migrate --env=local --up

# 4. API
go run ./cmd/server --env=local

# 5. app
cd .. && npm install && npm run dev   # :5174
  1. 1
    DatabaseA local Postgres 15+ — a laptop or a machine in the back office is enough.
  2. 2
    ConfigureOnly DATABASE_URL and JWT_SECRET are required. WhatsApp, maps and AI stay off until you supply your own credentials.
  3. 3
    Seed & runRun the seed script for an owner login and a populated demo organisation, then sign in and start taking orders.

Pre-1.0, and honest about it

The POS, kitchen, inventory and ordering surfaces are substantially built; several architectural changes are in flight. A feature that silently does nothing is worse than one that says it isn't built.

Built

POS, KDS, floor plan, orders, inventory, purchasing, recipes, gift cards, loyalty, WhatsApp ordering, and QR-at-table / web ordering — covered by integration and e2e tests.

Not built yet

Discord, Slack and email/DMTAP ordering have no channel-adapter abstraction yet. Single-binary + SQLite and offline-first multi-site sync are planned, not done.

A real known bug

The customer tracking page's live map and ETA don't render — a backend/frontend JSON shape mismatch, found and documented, not yet fixed. See the full table in the docs.

Vulos logo

Part of VulOS

Vulos is a family of open, self-hostable apps. BeepBite runs standalone on its own hardware, and can also run as an app hosted by the Vulos OS. No hub, no account, no coupling required.

Explore Vulos →