Journal / Development
Your app should survive a bad connection
Local-first development is a product decision about trust, waiting, and ownership—not just a database choice.
Start on the device
Expo’s local-first guide surveys approaches that store and work with data locally, with synchronization added according to the application’s needs. The ecosystem includes several storage and sync options rather than a single recommended stack. The common product opportunity is straightforward: a person should be able to do useful work without waiting for every action to complete a network round trip.
Design the difficult moments
The difficult part arrives when two devices change the same thing, a session expires, or synchronization fails. These states belong in the design brief. Decide whether an edit is saved locally, waiting to sync, or rejected. Explain the difference in the interface. An optimistic animation should not imply that a remote operation has finished when it has not.
Our take
For a small app, start with one workflow: create, edit, close the app, reopen it offline, then reconnect. Check that the work survives each step. Add multi-device behavior only when the rules are clear. Local-first architecture can make an app feel immediate, but that feeling is earned through persistence, recovery, and understandable conflict handling—not through hiding a spinner.
Put it into practice.
Test one complete workflow in airplane mode before expanding scope. Write down what the user sees when synchronization resumes and when it cannot complete.
Sources & further reading
Editorial analysis by BEMATE. Sources reviewed 6 September 2026.