@rimzzlabs/posx
v0.9.0
Published
Scaffold a point-of-sale system for one store
Maintainers
Readme
posx
Scaffold a complete point-of-sale system for one store.
posx generates a working till, not a starter. The store owns the generated code under the MIT licence, and posx never runs in it again unless you ask.
pnpm create @rimzzlabs/posx
# or
pnpm dlx @rimzzlabs/posx init toko-sayaWhat you get
A pnpm workspace with everything a shop needs on the first day:
| Layer | Choice | | -------- | ------------------------------------------------------------- | | API | Hono, @hono/zod-openapi, Scalar docs | | Web | Vite, TanStack Router, TanStack Query, React Compiler | | Database | PostgreSQL with drizzle-orm, migrations included | | Auth | better-auth. Owner signs in with email, cashier with a PIN | | Money | Integer minor units, dinero.js, never a floating-point number | | Deploy | Docker Compose with Caddy and automatic TLS |
The interface is Indonesian. Identifiers stay English.
What it does today
- Till — products, categories, cart, cash, QRIS, and customer credit
- Shifts — open with a float, close by counting the drawer, record the difference
- Kasbon — a customer buys on credit, the debt is a ledger, and a limit blocks a sale that goes too far
- Receipt — 58mm print layout, ESC/POS bytes, and a WhatsApp text
- Reports — cash in the drawer, money received into the bank, and money not received at all, kept apart
Commands
posx init [folder] create a new store project
posx add <module> not available yet
posx sync not available yetEvery version 1 module already lives inside the template, so init covers what
a new store needs. add arrives once the modules are separated from the base.
After scaffolding
cd toko-saya
docker compose up -d postgres
pnpm db:migrate
pnpm db:seed # add --demo for sample products
pnpm devSign in with the owner email and password you entered. Change that password after the first sign-in.
Deploy one store
cp .env.example .env # set SITE_ADDRESS to a real hostname
docker compose up -d --buildCaddy obtains a certificate on its own. Migrations run before the API starts,
so the API never answers against an old schema. Give each shop a different
STORE_SLUG to run several on one machine.
Licence
Apache-2.0. Code that posx generates into your store is MIT, so the store owns it outright.
