rentonhead

RentonSoft POS

A restaurant point-of-sale system that runs live in two cafés and as a multi-tenant SaaS edition.

Client
Castor Coffee · Sisa Atelier · SaaS customers
Year
2026
Role
Product architecture · Full-stack engineering · Deployment
Status
Live

One order, many hands: waiters, kitchen, bar and cashier working from the same live state.

Problem

Restaurant service is split across tables, the counter, the kitchen, the bar and the cash desk. Every handoff needs the same order state, clear permissions and payment logic that never double-charges or loses a line — on tablets, in a hurry.

Approach

A typed monorepo: NestJS and Prisma on PostgreSQL, React and Vite on the front. Role-based realtime rooms push each change to the kitchen, bar, cashier and waiters. Payments are transactional and idempotent — split by items or evenly, discounts, manager-PIN refunds and shift reconciliation. Branding lives in settings, so one codebase serves different cafés; the SaaS edition isolates every business in its own PostgreSQL schema.

Result

In daily use at Castor Coffee and Sisa Atelier, and open to new businesses as a SaaS with a seven-day trial that turns read-only — never deleted — when it ends.

What’s inside

  • Table service, counter sales and take-away in one flow
  • Kitchen and bar screens with late-order warnings
  • Split payments, discounts, manager-PIN refunds and Z reports
  • Recipe-based stock: every sale consumes raw ingredients
  • Schema-per-tenant SaaS with trials and safe suspension

Stack

NestJSPrismaPostgreSQLSocket.IOReactViteDocker

Under the hood

The code layer of this project — modules and moving parts.

rentonsoft/tree --depth 2
apps/api      NestJS · Prisma · PostgreSQL 16
  realtime/   Socket.IO rooms → kitchen · bar · cashier · waiters · display
  checks/     Check → Order → OrderItem, tax-inclusive totals
  payments/   split · discount · refund  (idempotency keys, manager PIN)
  stock/      recipes (BOM) → ingredients consumed per sale
  tenancy/    schema-per-tenant, routed through AsyncLocalStorage
apps/web      React · Vite · TanStack Query · Zustand
deploy        Docker Compose · reverse proxy · nightly backups

Ready software

Table service, kitchen and bar screens, split payments and recipe-based stock — as SaaS or on your own server.