Storage
Use SQLite for reliability; keep a small write-ahead queue.
Sync
Batch and debounce; resolve conflicts by domain rules, not timestamps.
UX
Show optimistic updates + banners; avoid blocking spinners.
SQLite, sync queues, conflict resolution patterns, and UX that respects poor connectivity.

Use SQLite for reliability; keep a small write-ahead queue.
Batch and debounce; resolve conflicts by domain rules, not timestamps.
Show optimistic updates + banners; avoid blocking spinners.