Where internet assumptions break
Most software is built with a silent assumption: there will be internet. The assumption is so deep it's invisible. API calls made without fallbacks. Data not cached locally. UI states that freeze when a request hangs. Error messages that say "check your connection" as if the user hasn't.
When we built the Lali360 CVA platform for humanitarian field teams — serving organisations like Oxfam and Mercy Corps in remote deployment zones — that assumption had to go entirely.
What offline-first actually means
Offline-first doesn't mean "works without internet sometimes." It means the local device is the source of truth. Everything is stored locally first. Sync happens when connectivity is available. Conflicts are resolved with clear rules. The network is a bonus, not a dependency.
Implementing this changes every layer of the architecture. Data models need sync metadata. Operations need to be idempotent — safe to run twice. Timestamps need to account for devices that haven't synced in days.
Design for zero. Enhance for connectivity. Never assume the opposite.
Why this matters beyond humanitarian tech
The discipline of offline-first makes every application more resilient. Handling network failure gracefully, caching aggressively, building optimistic UI — these make software better even when the internet is fast and reliable. The edge case becomes the design constraint. And design constraints make better products.
