Offline Ledger PWA

This walkthrough shows the shape of an offline-first ledger app for field teams, chamas, rent collection, or SME records.

Product Promise

  • Users can open the app after first load.
  • Users can create entries while offline.
  • Entries show as pending until synced.
  • Users can export local records if sync is blocked.
  • The app does not promise background sync will always run.

Flow

Implementation Shape

PartDesign
ManifestStable id, standalone display, maskable icon
Service workerPrecache shell, navigation offline fallback, versioned caches
DataIndexedDB object stores for entries, outbox, syncState
WritesClient-generated IDs and idempotency keys
SyncForeground retry, optional Background Sync registration
RecoveryExport local JSON/CSV before clearing data
TestsOffline create, reload, reopen, retry, duplicate replay