Offline-first: the decisions you only get to make once
For any app used somewhere with bad signal. These are data-model decisions, not features, which is why they are hard to change later.
- 01
Decide whether offline is a mode or the default.
An app that works offline as a fallback is a different program from one that treats the local database as the source of truth and the server as a sync target. Retrofitting the second onto the first is a rewrite, and everyone discovers this in month three.
- 02
Choose who wins when two people edit the same record.
Last write wins, first write wins, merge by field, or refuse and ask. There is no universal right answer, but there is a right answer for your business, and if nobody picks one the framework picks last-write-wins and someone's work disappears.
- 03
Generate ids on the device, not on the server.
in the PDF
- 04
Decide what a timestamp means.
in the PDF
- 05
Work out how much data a device needs to hold.
in the PDF
- 06
Show sync state where the user can see it.
in the PDF
- 07
Decide what happens to a queued action that can no longer succeed.
in the PDF
5 more checks in the PDF
The complete checklist — every check with the reasoning under it, the closing note, and the other 12 documents — comes as one PDF.