← Back to the reel Apr – Aug 2026

Goodbye, POS subscription

An in-house POS for two outlets with live queues, bookings and payroll, plus a self-hosted WhatsApp service.

Client
Spendtime
Role
Sole developer
  • 2 outlets live
  • 0 third-party POS fees
  • Live queues over SSE

The problem

The outlets paid every month for a POS that could not handle bookings, inventory transfers between outlets, or payroll. Staff filled the gaps with spreadsheets and chat.

The moves

  1. A POS shaped like the business

    Next.js in a Turborepo: live queues over Server-Sent Events, online booking, inventory transfers, FIFO costing, payroll and profit-and-loss reports.

  2. WhatsApp as infrastructure

    A self-hosted NestJS + BullMQ service for marketing broadcasts, POS notifications and OTP verification, with Redis queues so a slow send never blocks the till.

  3. Run like production

    Docker, Caddy, Tailscale for private access, and Prometheus with Grafana watching it all.

The outcome

The subscription is gone, and the software now fits how the outlets actually work.

  • Next.js
  • Turborepo
  • SSE
  • NestJS
  • BullMQ
  • Redis
  • Docker
  • Grafana