PocketPOS rings up sales, tracks stock, and prints receipts entirely offline. SQLite is the only source of truth. No backend, no outage can close the shop.

Integer-paise currency math, stock-validated checkout, fixed or percentage discounts, and four payment modes. Every sale writes the invoice, item snapshots, and stock deductions in one atomic transaction, and voids restore stock the same way.

Today, 7-day, and 30-day sales dashboards with native charts, top products, payment totals, and low-stock summaries. Every number is queried straight from local SQLite. No network, no waiting.

Create and edit products, set opening stock, make manual adjustments, and enable or disable lines. Low-stock filters warn you early, and every movement lands in an auditable history you can trace.

Checkout, voiding, and stock adjustments are atomic. Data leaves and returns through versioned JSON backup and atomic restore, and versioned migrations run incrementally, so a new APK upgrades the schema without touching your records.

Data flows one way. Screens never issue SQL. Repositories own it, and transaction-oriented services coordinate anything that spans multiple entities. The result is a codebase you can reason about line by line.
Migrations are versioned and incremental, so installing a newer build upgrades the schema in place while your data stays put.
PocketPOS was shipped with an AI-native, spec-driven workflow. I owned the architecture and product decisions; OpenAI Codex and GPT-5.5 Sol paired on implementation and test scaffolding inside a tight loop: spec, plan, build, verify, repeated until it held.
Each feature started as a spec with clear boundaries before a line of code was written.
The AI pair generated implementations and tests; I reviewed, corrected, and set the architecture.
Currency, stock, and migration logic ship with unit tests. Nothing lands unverified.