· 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.

  • The new-bill screen with two scanned items in the cart, each showing unit price, quantity against remaining stock, and a running total due.

    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 inventory page listing thirty products with cost, price, stock and expiry, above a low-stock filter.

    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.

  • The reports page: revenue and profit over the period, payment-method mix as a donut, and top products by value.

    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

Ask what we have built. We will talk you through it.