KasirKu Praim — developer of KasirKu KasirKu

OFFLINE-FIRST POS

SUBSCRIPTIONS CAN BREAK. YOUR STORE SHOULDN'T.

Network drops during rush hour? KasirKu commits sales through repository guards into local IndexedDB. Cloud sync is optional, not a lifeline.

KasirKu dashboard preview

Spatial PWA

Install once, run offline, data stays on-device. Multi-outlet, audit ledger, no mandatory cloud rent.

Architecture pillars

Offline-first

IndexedDB read/write via repositories. Sync is bonus, not transaction gate.

Immutable ledger

Append-only SHA-256 chain. Log tampering caught in audit trail.

AES-GCM

Sensitive fields encrypted locally. Keys never leave the device.

Multi-outlet

requireOutletId() on every repository write path.

Web Workers

Heavy report aggregation in workers, cashier UI stays responsive.

Why we built this

When the internet drops, sales shouldn't

Small team at Praim Enterprise — early access, no huge user base yet, but cashier flows are dogfooded in pilot stores.

No mass testimonials yet. Badges mark illustration vs measured figures.

Based on typical SaaS POS architecture — no internet required.

KasirKu vs SaaS POS

Aspect KasirKu Typical SaaS
Local data ownership Dexie IndexedDB on your device Vendor tenant server
Internet required to sell No, local commit Often online required
Mandatory monthly rent One-time / lifetime option Monthly subscription common
Cryptographic audit ledger SHA-256 append-only chain Vendor logs, varies

20+ feature pillars

Includes v3 enterprise modules (opt-in via feature flags).

Inter-outlet stock transfer

Routed mutations with outlet guard + per-warehouse stock trail.

Bundles / combos

Core bundle engine UI, combo pricing computed at local cashier.

Reservations & slots

Offline-first service booking, slots never wait on cloud API.

Gift cards & stored value

Internal ledger + cashier redeem without mandatory server.

Multi-tier pricing

Tiered prices per customer/outlet, applied at local checkout.

Quotation → PO

Local PDF estimates, convert to supplier PO in IndexedDB.

Cashier KPI

Read-only shift & transaction aggregates from repository guard.

Customer display

Second screen via BroadcastChannel, no backend relay.

Auto-PO suggestions

Order hints from local stock forecast in analytics worker.

Audit exception workflow

Ledger evidence exceptions + SHA-256 integrity follow-up.

Offline-first PWA

Dexie v16 IndexedDB, zero mandatory server at runtime.

Immutable SHA-256 ledger

Append-only hash chain for financial audit trails.

Multi-outlet RBAC

Outlet guard consistent across all repository write paths.

Industry presets

isService + trackStock flags per SME industry preset.

Web Worker analytics

Heavy aggregation in analytics-worker, main thread stays free.

Smart import/export

CSV/Excel with Zod validate before IndexedDB write.

Promos & tax

Real-world commercial rules, computed at local checkout.

HR & shifts

Work hours, cashier commissions, shift close with ledger trail.

Kiosk mode

Separate self-checkout route, transactions stay local.

Local AES-GCM

Sensitive fields encrypted AES-GCM, local key vault.

Eight industries

F

F&B

Tables + kitchen KDS, hold orders at rush. Every record via local Dexie.

R

Retail

SKU scan, promo tiers, inter-outlet stock moves without mandatory cloud sync.

F

Fashion

Size/color variants per SKU, per-outlet stock, customer tier discounts.

S

Services

Slot booking + non-stock services, invoicing without server wait.

W

Workshop

Parts per work order, small batches, multi-warehouse workshop stock.

B

Building supplies

Heavy SKUs, supplier POs, contractor vs retail price tiers.

A

Agriculture

Thin margins: cost control, stock opname, margin report per kg.

G

General

Industry presets ready: service vs goods, track stock on/off.

How it works (3 steps)

1

Install the PWA from your release build

2

Configure outlet + warehouse + cashiers

3

Start selling—online optional

POS flow on your device

Every step runs locally — no waiting on the cloud.

  1. CUSTOMER ARRIVES

    Scan barcode or tap from catalog — data from local IndexedDB.

  2. PAYMENT RECEIVED

    Qty, discounts, tax computed instantly on-device.

  3. PROCESSED IN KASIRKU

    Cash, digital, or QRIS — transactions never wait on a server.

  4. RECEIPT PRINTED

    Thermal or digital receipt, straight from the browser.

  5. PAID — STORED

    Append-only SHA-256 chain for financial trails.

Pilot stores, not fictional quotes

Early access — field signals

In use since November 2024

No mass testimonials yet. Signals below come from real telemetry and internal pilots — no fabricated quotes.

Pilot stores

Cashier flows dogfooded in Praim Enterprise pilot stores.

Offline-first

Local IndexedDB transactions — no mandatory server.

Scale with your business

Lifetime Pro (one-time) — not SaaS subscription. Pay once, use forever.

Lifetime Pro (one-time) — not SaaS subscription. Pay once, use forever.

Tier limits are advisory — transactions are never blocked at runtime.

Free

Free

  • 50 PRODUCTS
  • 1 OUTLET
  • 1 REPORT TYPE

Basic

Rp 199.000/one-time

  • ∞ PRODUCTS
  • 1 OUTLET
  • 2 REPORT TYPES

Professional

Rp 399.000/one-time

  • ∞ PRODUCTS
  • 1 OUTLET
  • 4 REPORT TYPES

Pro Plus

Rp 599.000/one-time

  • ∞ PRODUCTS
  • 5 OUTLETS
  • 5 REPORT TYPES

Enterprise

Rp 999.000/one-time

  • ∞ PRODUCTS
  • ∞ OUTLETS
  • 5 REPORT TYPES

Brutalist FAQ

No—local ownership & offline-first; cloud is optional.

After completing the store configuration, select the **"ADMIN"** operator and enter the default PIN **"123456"**. For security, the system will immediately direct you to the **"GANTI PIN DEFAULT"** page to create a new, personal PIN. Once saved, log in again by selecting the **"ADMIN"** operator and entering your new PIN before clicking **"BUKA TERMINAL"**. All PIN and transaction data are stored locally and encrypted in your device's IndexedDB and are never transmitted to any cloud server.

On device (IndexedDB). You hold backups/exports.

Yes—with consistent active outlet filters.

Yes—SHA-256 immutable chain for key financial trails.

Additive migrations; v21 stays intact, v23 adds tables + flags default OFF.

Yes—that’s the core design; sync is additive.

Yes—separate route listens via BroadcastChannel.

Aim high—minimal JS, Astro static, optimized images.

Anti-SaaS manifesto

No forced subscriptions

Lifetime one-time posture. No feature death when a card fails to renew this month.

No mandatory cloud to sell

Local commit when WiFi drops. Cross-outlet sync is a bonus, not checkout requirement.

Not renting your data

IndexedDB on your device. Export JSON/CSV backups anytime without vendor permission.

Real ownership

The PWA you install. No tenant ID in someone else's dashboard.

Try the checkout flow without cloud: add products, print a receipt — all on your device.

Cashier simulator (sandbox)

Local diagnosticsSANDBOX · ZERO EGRESS

Storage

Local sandbox

Service Worker

Active

Connection

Offline

DB latency

4ms

Sandbox transactions never leave your device — offline-first proof.

Cart

No items yet — tap a product on the left

TotalRp 0