Tech News
← Back to articles

LocalFirst: You Keep Using That Word

read original related products more articles

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 migrating an entire GNOME environment from one computer to another. In many cases, I’d like an iCloud-style service for that. I’d probably even pay for it, if it existed.

... continue reading