Roughly one in three Indian cold storages we visited has 2G or no signal at the gate. The first version of our Partner app assumed always-on connectivity. That assumption broke on day one of beta.
The rewrite
We moved every write to a local SQLite queue. The UI shows the entry instantly, the queue drains in background when signal returns. Conflict resolution is last-write-wins with admin override.
What we learned
- Optimistic UI is non-negotiable for rural usage.
- Photo compression must happen client-side, before queueing.
- A clear sync state indicator is more reassuring than spinners.

