Designing for no signal
Field apps fail in basements, lifts and rural roads. Rules we apply:
- Write every action to a local queue first; the network is a delivery mechanism, not the source of truth.
- Show sync status per item (queued, sent, confirmed), not a global spinner.
- Give each action a client-generated ID so retries never duplicate a delivery.
- Decide conflict rules in advance: last-write-wins is acceptable for notes, never for stock counts.
- Test with airplane mode toggled mid-action, not only before.