Sync engines have matured, offline is no longer a nice-to-have, and a new generation of apps puts the user's device first.
For a decade, "cloud software" meant one thing: your data lives on someone else's server, and the app is a thin window into it. Local-first flips that model. The data lives on your device, syncs in the background, and the app works fully offline by default.
Why now?
Three things changed. CRDTs (conflict-free replicated data types) became practical to implement. Open-source sync engines like Replicache, ElectricSQL, and Automerge hit 1.0 maturity. And users, burned by outages and subscription fatigue, started caring about ownership.
The tradeoffs
Local-first isn't free. Conflict resolution still requires careful product design — "last write wins" feels broken the first time a user loses data. Storage grows on-device. And permissions models get more complex when there's no single server to audit.
But the wins are real: instant loads, offline support for free, dramatically lower server costs, and a privacy story that's easy to tell.