Why haven't local-first apps become popular?
271–280 of 494 posts
Re: Why haven't local-first apps become popular?
#272As a user the simple answer is that I'll always use a regular application instead of a "local-first" web app when I have the ability. "Local-first apps" are the worst of everything - crappy, dumbed down web UI; phoning home, telemetry, and other privacy violations; forced upgrades; closed source, etc. At work, I don't have a choice, so it's Google Docs or Office 365 or whatever. And in that context it actually makes…
Local first isn’t limited to web apps. It’s a style of application development in which you locally store and operate on the data rather than fetching it from a cloud backend every time. For native apps that means a local database or individual files on the file system. > phoning home, telemetry, and other privacy violations; forced upgrades; closed source, etc. This describes proprietary software developed by capita…
Re: Why haven't local-first apps become popular?
#273This is very much "draw the rest of the owl".
Creating a CRDT model for your data that matches intuitive user expectations and obeys consistent business logic is... not for the faint of heart.
Also remember it turns your data model into a bunch of messages that then need to be constantly reconstructed into the actual current state of data. It's a gigantic enormous headache.
Re: Why haven't local-first apps become popular?
#274Unfortunately the solution presented in the article is locked to a closed cloud offering. I have nothing against those, Firebase for example is like that, but I dislike the fact that it’s hidden. “It’s just an sqlite extension”, oh and it syncs with our commercial cloud offering only. Other vendors like Powersync and ElectricSQL have a similar offering but are upfront about it. And at least in Powersync’s case (don’t…
So the question is whether it's possible to build software that adheres to the local-first principles using sqlite-sync.
edit: I'm aware people are using the term "local-first" very loosely, so perhaps my reply here is a bit off-topic
p.s. yes you can self-host ElectricSQL
p.p.s. I really need to keep my list of "sqlite sync" things updated: I have SQLSync [2], SQLiteSync [3] and now SQLite-Sync [4]. Simple!
[1] https://www.inkandswitch.com/essay/local-first/
[2] https://github.com/orbitinghail/sqlsync
Re: Why haven't local-first apps become popular?
#275> One of the simplest CRDT strategies is Last-Write-Wins (LWW): > Each update gets a timestamp (physical or logical). > When two devices write to the same field, the update with the latest timestamp wins. Please also have a robust synced undo feature , so it's easy to undo the thing you don't want that gets written. Apps that sync often seem to be stingy about how much "undos" they store/sync (if any).
Re: Why haven't local-first apps become popular?
#276Perhaps I'm missing something, but aren't local-first apps the overwhelming norm? Like if I think about the apps I use, my friends use etc, most of them are local. Unless the author means "local first web apps", which would make more sense. And I think the oxymoronic nature of a "local first web app" gives a clue as to their unpopularity.
Local-first here means starting with a local data model that syncs to the cloud from the start, rather than an app that only works online.
Re: Why haven't local-first apps become popular?
#277Re: Why haven't local-first apps become popular?
#278Because when your selling point is that its local first (or distributed, or any other politically trendy thing), you concentrate on that over the app's core value proposition. The end result is you make an app that does what people think they want at the expense of doing as good a job as possible at the thing people actually want.
When I switched to Immich, I thought I was going to give up a lot for the sake of self hosting. To my surprise, it’s actually better than anything I’ve used from Apple or Google. Unicorns exist, they are just rare.
Re: Why haven't local-first apps become popular?
#279Re: Why haven't local-first apps become popular?
#280> The Solution: CRDTs. The right approach is CRDTs (Conflict-Free Replicated Data Types)... This means you can apply messages in any order, even multiple times, and every device will still converge to the same state. This is very much "draw the rest of the owl". Creating a CRDT model for your data that matches intuitive user expectations and obeys consistent business logic is... not for the faint of heart. Also remem…
There is at least one alternative "CRDT-free" approach for the less brave among us: https://mattweidner.com/2025/05/21/text-without-crdts.html