Phase 1 — Free single-device POS + Inventory
Usable offline POS + Inventory on one active operational device. No backend required. Inventory is a first-class core domain, not merely a secondary checkout feature. Clients: Android, iOS, macOS, and Windows — all released together per phase milestone (ADR-003).
| ID | Spec | Summary |
|---|---|---|
| POS-001 | merchant-setup | Local merchant / store setup |
| POS-002 | products | Product catalogue |
| POS-003 | inventory | Local inventory |
| POS-004 | cart | Cart |
| POS-005 | sale | Complete Sale (cash / EDC / QRIS manual) |
| POS-006 | transaction-history | Local transaction history |
| POS-007 | receipts | Receipt generation (view + share) |
| POS-023 | thermal-receipt-print | Thermal print — invoice/struk via ESC/POS (58/80mm) |
| POS-008 | local-backup | Backup & Restore: free local + Personal Cloud Backup |
POS-008 — Backup & Restore commercial boundary
Personal Cloud Backup (Drive Backup) is part of the main Phase 1 feature set, not a future/TBD roadmap item. POS-008 has two entitlement paths:
| Capability | Boundary |
|---|---|
| Manual local backup / restore | Free; no purchase required |
| Personal Cloud Backup / Drive Backup | One-time non-consumable purchase (indicative ≈ Rp100.000) or included while Pro is active |
| Provider (Android + iOS) | Google Drive, merchant-owned Google account/storage (not iCloud; not Lakuyo-hosted) |
| Backup payload | Local SQLite data + product images (and related assets defined by POS-008) |
| Storage quota | Follows the merchant’s Google Drive plan |
| Manual cloud backup | Back Up Now |
| Automatic cloud backup | Included; ON by default after Google Drive authorization; user can turn OFF |
| Restore Purchase | Required on unlock UI; restores prior one-time store ownership, not backup data |
| Lakuyo backend | Not required |
| Coordinated multi-device sync | No |
| Lakuyo-managed cloud backup | No — that remains POS-014 / Pro |
POS-008 must also define purchase restoration, Pro downgrade behavior, a versioned Google Drive backup format shared by Android and iOS, restore safety, backup lineage, and one active Personal Cloud Backup writer per backup lineage.
When a backup is restored onto another installation, the user must explicitly confirm that the new installation becomes the active cloud-backup writer. The old installation may continue local operation, but Personal Cloud Backup writes from it must stop until writer ownership is explicitly reclaimed. This protects against accidental multi-device overwrite without turning the local plan into backend-enforced DRM.
Phase 1 ships the agreed core domain tree — POS + Inventory only. Full Order Management is a separate domain that expands later. In canonical terminology, a Sale is the completed transaction produced by checkout/payment; an Order is a customer request that may exist before checkout. See Product/Domain Terminology.
Phase 2 — Commercial boundary
Account, subscription, and Lakuyo-operated cloud/multi-device capabilities.
| ID | Spec | Summary |
|---|---|---|
| POS-009 | authentication | Account / authentication |
| POS-010 | subscription | Subscription entitlement |
| POS-011 | device-registration | Device registration |
| POS-012 | cloud-sync | Cloud sync |
| POS-013 | multi-device | Multi-device operation |
| POS-014 | cloud-backup | Lakuyo-managed cloud backup |
Phase 3 — Expansion
Order Management and restaurant workflows expand here, while preserving the Order ≠ Sale distinction.
| ID | Spec | Summary |
|---|---|---|
| POS-015 | qris | Integrated PSP / QRIS (optional; manual QRIS is POS-005) |
| POS-016 | restaurant-tables | Restaurant tables |
| POS-017 | waiter-ordering | Waiter / Sales order-taking |
| POS-018 | kitchen-workflow | Kitchen / fulfilment workflow |
| POS-019 | multi-outlet | Multi-outlet |
| POS-020 | advanced-reports | Advanced reports |
| POS-021 | employee-roles | Employee roles |
| POS-022 | stock-transfer | Stock transfer |
| POS-024 | customer-membership | Customer membership — member pricing, admin discounts, member purchase history |
Phase 1 ships first. POS-008 must fully specify and accept both free local backup and Personal Cloud Backup before Phase 1 acceptance is complete. Phase 2/3 specs exist as stubs until their phase begins; do not implement stub behaviour without expanding the stub into a full spec.
Delivery order within a phase
All four clients (Android, iOS, macOS, Windows) must pass acceptance before a phase is publicly released. Internal development may lead on one platform for domain proof, but marketing, early access, and store listings ship together. See Collaboration.
Future products (not scheduled)
Founders also discussed other apps after Lakuyo’s merchant commerce product (e.g. gym class/membership management as a standalone product). Those remain out of scope for this control plane until a separate product decision opens a new spec tree.
In scope for Lakuyo POS: merchant customer membership (pelanggan member toko) — member vs walk-in pricing, admin-configurable membership discounts, and per-member purchase history — see POS-024. This is distinct from gym/class membership apps and from Lakuyo Pro subscription.