Apr 2, 20265 min read0 reads
Local-First Is a Business Decision
Building a POS for Cambodian restaurants taught me that offline-first architecture is not a technical preference. It is respect for the customer's reality.
When I started the restaurant POS project, the architecture question answered itself the first time I watched a lunch rush in Phnom Penh with the router blinking red.
Cloud-first software makes an assumption: connectivity is the default and offline is the exception. For a huge part of the world, and for a huge class of businesses, that assumption is simply wrong.
What local-first actually means
Local-first is not "we cache some data." It means the local database is the source of truth. Every operation the business depends on (taking an order, closing a bill, counting the drawer) completes locally with zero network. Sync is a background process that improves the experience but never gates it.
The stack that follows
Once you commit, the stack picks itself. SQLite as the database, because it is boring and indestructible. Rust for the core, because a POS that crashes during dinner service is not a product. Tauri for the shell, because restaurant hardware is cheap and electron-sized memory budgets are not available.
The business result
The pitch to a restaurant owner is one sentence: it works when the internet does not. No feature list beats that. Architecture was the product differentiator, which is why I think of local-first as a business decision that happens to be implemented by engineers.
- Local-First
- Rust
- Tauri
- SQLite