· Business Systems · AI & Automation
Sobasaru POS
- Industry
- Grocery retail
- Year
- 2026
( Intro )
A grocery register has to be faster than the queue behind it, and honest enough to hand to a cashier.
( Credits )
Sycorax
Design, development, and handover
( Tech stack )
- TypeScript
- Next.js
- Prisma
- PostgreSQL
- SQLite
- Recharts
( The register )
Barcode first, because the queue is the constraint.

Scan, and it is in the cart
One field takes a barcode, a product name, or an @ to attach a customer. Every line shows what is left on the shelf, so a cashier finds out about a short count before the customer does.
( Who can do what )
Three roles, enforced in the route handler rather than in the menu.

The stock room, for the people who own it
A cashier signed into the same build sees three items in the sidebar and no route to this page — not hidden, refused. Cross-shop records answer 404 rather than 403, so ids cannot be enumerated by probing.
( Reading the shop )
The numbers a grocer acts on, not the ones a dashboard likes drawing.

Six weeks, and what to do about them
Revenue against cost, the payment mix, and what sells together — with CSV export, because the last mile of a small shop's reporting is still a spreadsheet.
( Outcome )
One system runs the till, the stock room, and the owner's reporting.
39
API routes, each behind an auth guard
11
Tables in the data model
3
Roles, enforced server side
2
Languages on the receipt



