Offline-first and mobile
- React Native
- Expo
- Service workers
- IndexedDB
- SQLite
The people doing the work often have the worst connection — on a vessel, in a basement, on a site with no coverage. An application that needs the network in order to function is an application that stops when it is needed most.
We build offline-first: the device holds the authoritative copy of the work in progress, every change is recorded so it can be replayed, and synchronisation is deterministic — the same set of changes reconciles to the same result whatever order they arrive in. Conflicts are settled by a rule the client agreed, not by whichever device happened to connect last.
On mobile that is React Native and Expo, with a device test matrix covering the hardware people actually carry. On the web it is a service worker doing the same job, so a browser tab keeps working when the connection does not.