LocalFirst: You Keep Using That Word

https://news.ycombinator.com/rss Hits: 2
Summary

If you’ve been following the local-first scene over the past few years, you already know a good definition for the term “local-first” is hard to pin down. Part of the reason is that most people write software for money … and true local-first software is harder to capitalize. “Local-first” is a direct attack on vendor lock-in of all forms: data, formats, protocols, apps, services, and even environments. But the fact your employer can’t exploit this technology with a new revenue model (yet) is a minor problem. The crux is that not all local-first systems are created equal. The term was coined in the original local-first essay (or its pdf version) and if you haven’t read that, you should. This essay isn’t going to make much sense if you haven’t. I would also recommend Martin Kleppmann’s much-simplified definition, based on an inversion of Leslie Lamport’s definition of a distributed system: In local-first software, the availability of another computer should never prevent you from working. But none of these get us to a clean definition of “local-first”. Personally, I’ve decided the reason for this is because “local-first” isn’t a binary label we can cleanly apply to something. It’s more of a spectrum. The Problem Scenarios Kleppmann’s micro redefinition, of course, assumes we’re in a distributed context to begin with. The very next slide in his 2024 talk, above, states that “local-first implies … multi-device.” But the snappy one-liner on the preceding slide does miss this fact and many people still conflate “offline-first” with “local-first”. A VisiCalc spreadsheet on an Apple IIe is not a local-first document. There are plenty of other points of confusion, though. Servers Are Okay Recently, I had someone on Mastodon proclaim that local-first implies that servers aren’t allowed. While I prefer the peer-to-peer (p2p) friendly future we might enable with local-first, I don’t like the fantasy of doing away with servers completely. This person’s example scenario was migra...

First seen: 2026-01-06 01:28

Last seen: 2026-01-06 02:29