KALA POS
A full-stack point of sale system: Go API and an installable React PWA that keeps selling when the internet drops.
A point of sale system for retail businesses, built as two pieces: a Go REST API and a React PWA designed for the shop floor.
The problem worth solving
Retail internet in Indonesia is unreliable. A POS that stops working when the connection drops is not a POS — it is a liability during the busiest hour of the day.
So the frontend is an installable PWA. Sales made while offline are queued in IndexedDB and synced automatically once the connection returns — the cashier never hits a spinner they cannot get past.
Decisions I had to make
Reversal has to be complete, or it is worse than nothing. Cancelling a transaction cannot just delete a row — it has to return stock and correct the cash flow. Inventory logs and cash movements are written on every sale, return, and adjustment, driven by events rather than scattered through handlers.
Migrations run against real installations, not just my laptop. Schema is managed with Atlas rather than hand-written SQL, after a bug where a fresh install and an upgraded install ended up with different schemas.
Multi-currency from the start. Any ISO currency can be selected in store settings, and prices, reports, and receipts all follow it.
Stack
Go 1.25 · Fiber · GORM · PostgreSQL · Atlas · JWT · Swagger · React 19 · Vite · Mantine · IndexedDB · Docker
Status
Feature-complete and fully tested — Go unit tests, Vitest, and 28 Playwright end-to-end tests all green, with a one-command Docker setup. Currently being packaged as a product: the source code will be sold to developers who want a production-ready starting point rather than another tutorial project.