
Local-First
Cambodian Restaurant POS
Offline-first point of sale, built for real Cambodian kitchens.
The constraint that shaped everything
Internet in a busy Phnom Penh restaurant is not a given. The system had to be local-first: every order, payment, and shift report works with zero connectivity, and sync is a background luxury rather than a requirement.
Stack
Tauri gives a native shell with a tiny footprint on modest hardware. The core is Rust with SQLite as the single source of truth. The UI is Next.js rendered inside the shell, which meant the whole interface could be built with the same component patterns as any web app.
Built around real workflows
- Table-first order entry matching how staff walk the floor
- Split bills and partial cash payments, because that is how groups actually pay
- Khmer and English labels side by side for mixed-generation staff
- End-of-day reports that reconcile the cash drawer in one screen
What Rust bought
Crash-free operation during service is the whole product. Rust's type system pushed failure handling to compile time: the order pipeline cannot represent an order that loses its payment state. On a $300 mini PC, cold start is under two seconds.