Your till · your ordering · your infra
Stub is the counter till, online ordering, and payments for one shop — on your Cloudflare account or your own box, with your Stripe/Razorpay keys. Your money settles to you. Start at the counter, grow online when ready.
No commission · Your data stays in your account · Works offline

FEATURES
Quick-sell grid, search, coupons, split payments across cash, card, and mobile pay. Voids, reprints, invoice numbers never reused.
One link, no app, no login. Customers browse your live catalog — pickup, delivery, or dine-in — priced server-side on every submit.
Stripe and Razorpay links, verified the second customers return. Paid orders approve themselves; declines refund in one tap.
Pending-first, oldest first, with age and PAID badges. Approve, then track preparing → ready → delivered — customers watch the same tracker. Stock warnings before you commit, reasons on every decline.
Flat online order charge plus a delivery-only fee. Server-priced, snapshotted per order, itemized everywhere the total shows.
Sales queue on-device and sync back. Bluetooth thermal receipts over BLE, with a system-print fallback. No network, no problem.
GROW AT YOUR PACE
Stage 1 · start here
Walk-ins, one cashier, bills that print. Twelve deep at lunch with flickering network — the till keeps billing from the quick-sell grid, queues what it can't sync, prints over Bluetooth. Nobody orders online yet, and that's fine.


Stage 2 · when regulars ask
Share your menu link. Customers submit pickup or delivery orders and pay your QR; you approve, track preparing → ready → delivered, and hand it over. No Stripe account, no paperwork — the phone just stops ringing.
Stage 3 · when volume justifies it
Add your Stripe or Razorpay keys and checkout links appear on every order — verified instantly, auto-approved into the queue, refunded in one tap on decline. Delivery fee plus online charge ride along, so every order carries its own margin. Still zero commission: the gateway settles straight to you.

SELF-HOSTING
Same codebase, two targets. Cloudflare for zero-ops, your own hardware via celld for full control. No database of ours, no tokens kept, no commission ever. Updating later is one line, and migrations never touch your data.
Worker + D1 + R2 in your account. Free tier covers a small shop.
A Durable-Objects node on your hardware, state in your S3 bucket. Supervised via Docker.
Needs an S3 bucket with conditional writes (R2, AWS, Tigris) and celld on the box. Secrets merge from .dev.vars at deploy time — never committed.
Full setup, update & troubleshooting guide →
Neither. One link, name + phone + email, done.
They take ~20% of every order and own your customer list. Stub costs you hosting only — the payment gateway settles 100% to your account, and the customer data sits in your database.
Cloudflare path: your account's D1 + R2 — we never see it, free tier covers a small shop. celld path: an SQLite-per-object store inside your own S3 bucket — you pay S3, nothing else.