Priya Raman
All articles

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.