The Fallacy of Constant Connectivity
Every mobile app built with the assumption of reliable, low-latency cloud internet will inevitably feel sluggish or broken to users in transit, elevators, or rural dead zones. When a user creates a habit log or writes a personal reflective thought, waiting for a remote round-trip HTTP handshake before updating the screen ruins perceived performance. In our companion app architecture, every write mutation is local-first by definition.
Optimistic Local-First UI Mutations
The UI thread modifies an in-memory state store and persists directly to unencrypted local storage in under 4ms. The user sees immediate feedback with smooth animations. Concurrently, a background synchronization worker queues an idempotent mutation envelope for upstream dispatch.
Serialized Mutation Queues & Retry Policies
Mutations are stored in a persistent FIFO queue with exponential backoff and jitter. If network requests fail or return 5xx errors, the queue retains the transaction without blocking further user inputs.
Conflict Resolution & Last-Write-Wins
For distributed habit streaks and journal revisions, we stamp records with client UTC timestamps and vector clocks. When online re-synchronization occurs, conflicts are resolved deterministically using field-level CRDT (Conflict-free Replicated Data Type) rules.
Supabase Realtime PostgreSQL Replication
Using Supabase Realtime channels listening on PostgreSQL Write-Ahead Logs (WAL), changes committed on other user devices instantly stream down to synchronize the local state store with zero polling overhead.