Architecture · 6 min read
Offline-first is a product decision, not a technical one
Why treating the device as the source of truth changes the way you design every screen.
By Priya Raman ·

When people hear “offline-first” they imagine a caching problem. In practice it is a design problem, and it shows up on the very first screen you sketch.
Decide what “saved” means
If a user taps save with no signal, what should they see? A spinner that never resolves is a broken promise. A quiet “saved on this device, will sync later” message is honest, and it changes how the whole interface is written.
Make writes idempotent
Retries are inevitable. Give every write a client-generated identifier so the server can recognise a repeat and ignore it. This one decision removes an entire class of duplicate-record bugs.
Plan for conflict
Two people will edit the same record while offline. Decide up front whether the last write wins, whether fields merge, or whether a human resolves it, and write that rule down before you write any code.
Sample article written for this template.