Lakuyo is a local-first commerce app for Indonesian merchants built around two core operational domains: POS and Inventory. It runs reliably on affordable phones and tablets without depending on cloud infrastructure for every sale.

The name Lakuyo was chosen for its local / Javanese character and distinctiveness in a crowded kasir/toko naming space (see ADR-002).

Problem

Many small merchants (warung, café, retail, restaurant) need:

  • Fast, simple checkout on a phone or tablet
  • Product and inventory management that stays accurate
  • Receipts and basic sales history — view, share, and thermal print (invoice/struk)
  • Operation during unreliable or absent connectivity
  • A safe way to recover local business data if a device is lost, damaged, or replaced
  • Optional order-taking flows for floor staff / restaurants
  • Optional multi-device use (kasir + floor staff) without forcing cloud cost on single-device users

Primary near-term audience: starter and survival entrepreneurs — merchants beginning or restarting a business on the devices they already have: phone, tablet, Mac, or Windows PC (see Product/Competitive Landscape, Personas).

Existing cloud-first POS tools fail when the network fails, and free tiers often still require backend accounts that create ongoing cost and friction. Small merchants often already have cash, EDC, or a static QRIS code — they should not be forced onto an expensive PSP subscription to use a kasir app.

Core product domains

Lakuyo
├── POS
│   ├── Cart
│   ├── Checkout
│   ├── Payment
│   ├── Receipt
│   └── Sale / transaction history

├── Inventory
│   ├── Product catalogue
│   ├── Stock quantity
│   ├── Receiving / adjustment
│   └── Stock movement history

└── Customer membership (Phase 3, POS-024)
    ├── Member registry
    ├── Member vs walk-in pricing
    ├── Admin membership discounts
    └── Member purchase history
 
Order Management
→ separate domain
→ expands later
→ Order ≠ Sale

POS

Checkout and transaction processing: cart, checkout, payment confirmation, receipts (on-screen, share, thermal print), and completed Sale / transaction history.

Inventory

Product and stock management: catalogue, stock quantity, receiving / adjustment, and stock movement history.

Order Management

A separate domain for customer requests before checkout: orders, order items, tables, waiter/Sales order-taking, and fulfilment. It expands later (Phase 3). It is not nested under POS, and Order ≠ Sale.

Customer membership

Merchant-run store membership for registered customers (pelanggan member) — Phase 3 (POS-024). Admin enables the program, sets optional member prices per product, and configures membership discounts. Only sales linked to a member appear in that member’s purchase history; walk-in sales have no customer-level history. Not Lakuyo Pro subscription; not gym/class membership apps.

Canonical vocabulary: Product/Domain Terminology.

Solution

Local-first by default, cloud-enhanced when you need it.

  • Core POS + Inventory runs entirely on-device using SQLite.
  • A Sale is created when checkout/payment is completed; an Order represents a customer’s requested items before that point.
  • Free users never require Lakuyo backend connectivity and do not cause backend data growth.
  • Backup & Restore is a main Phase 1 feature (POS-008). Manual local backup/restore is free; Personal Cloud Backup (Drive Backup) is unlocked by a one-time purchase (indicative ≈ Rp100.000) or included while Pro is active.
  • Personal Cloud Backup uses Google Drive on Android and iOS (merchant’s own Google account — not iCloud, not Lakuyo-hosted).
  • Personal Cloud Backup includes Back Up Now, restore, and automatic backup enabled by default after Google Drive authorization; the merchant can turn automatic backup off.
  • Personal Cloud Backup is disaster recovery and device replacement, not synchronized multi-device operation.
  • Pro subscribers unlock Lakuyo-operated multi-device sync, Lakuyo cloud backup, aggregated reporting, and related cloud capabilities; Pro also includes Personal Cloud Backup while active.
  • Subscriptions and one-time digital feature purchases are fulfilled through Google Play Billing / Apple App Store as appropriate so founders do not operate card billing early.
  • In-store payment recording supports manual confirmation (cash / EDC / merchant QRIS) first; integrated PSP (e.g. Doit) is optional for larger merchants later.

Product principles

  1. A sale must succeed offline. Network is optional for free-tier core operations.
  2. POS and Inventory are both core. Inventory is not merely a secondary checkout feature.
  3. Order is not Sale. Order-taking may precede checkout; Sale means a completed commercial transaction.
  4. One device is enough to start. Free and Personal Cloud Backup support single-device operation without requiring Lakuyo backend infrastructure.
  5. Backup & Restore is core Phase 1 scope. POS-008 includes free local backup/restore and paid Personal Cloud Backup.
  6. Basic data portability stays free. Manual local backup / restore is part of the free core.
  7. Charge once for user-owned backup convenience. Personal Cloud Backup is a one-time unlock (≈ Rp100.000 indicative) because the merchant supplies Google Drive storage; active Pro also includes it; Lakuyo backend stays free of free-tier backup bytes.
  8. Charge recurring fees for recurring Lakuyo services. Subscription value is Lakuyo-operated cloud, multi-device sync, Lakuyo cloud backup, and related services.
  9. Backup is not sync. Personal Cloud Backup does not merge concurrent databases or replace Pro synchronization.
  10. Never hold user-owned backup data hostage. Expiry of Pro must not delete existing Google Drive backups; recovery of an existing backup remains available.
  11. Every platform merchants use. Phone, tablet, Mac, and Windows PC are first-class. Android-based POS terminals supported via the Android client (ADR-003).
  12. Phase releases ship together. Android, iOS, macOS, and Windows release as one milestone per phase — no staggered public rollout per platform.
  13. Keep the kasir fast and simple. Cashiers work under time pressure; UI complexity is a product bug.
  14. Same business rules everywhere. All four clients and backend implement control-plane specs — they do not invent divergent domain logic.
  15. Respect how Indonesian merchants already get paid. Do not force PSP fees on warung that already settle manually.

Non-goals (near term)

  • Replacing full ERP / accounting suites
  • Hardware-locked proprietary terminals as the only supported form factor
  • Requiring a Lakuyo account before the first free sale
  • Treating Personal Cloud Backup as live synchronization between active devices
  • Adding a Lakuyo backend solely to police backup usage
  • Operating our own licensed payment switch / acquiring platform
  • Building gym / other vertical apps before Phase 1 ships