Est. 2023 · Denver, CO ktb/os · live
Essay · 11 min / essay · 11 min

The quiet renaissance of local-first software

A generation of developers is rebuilding the cloud apps we use every day — smaller, faster, and on your own machine.

I have been using Obsidian for six years. In that time, I have not once thought about the company that makes it.

This is, I think, the nicest thing you can say about a piece of software.

The apps I use at work — Slack, Notion, Figma, Linear — I think about every day. Not because I love them, though I mostly do, but because they’re always doing something. Syncing. Loading. Reconnecting. Suggesting. Nudging. They are busy, in a way that good tools never are. A good hammer doesn’t load a spinner the first time you pick it up after a weekend.

Obsidian is a plain folder of text files on my hard drive, with a very nice editor on top of it. If Obsidian, the company, vanished tomorrow, my notes would be fine. I could open them in TextEdit. I could grep through them. I could import them into whatever the next Obsidian is.

That is the pitch of local-first software, and it is starting to feel like a movement.

What “local-first” actually means

The phrase comes from a 2019 essay by researchers at Ink & Switch. They laid out seven principles for a new kind of app: fast, multi-device, offline, collaborative, long-lived, secure, and — crucially — one where your data lives on your device first, and the cloud is a nice-to-have.

It’s easier to describe by contrast. A cloud-first app lives on the company’s servers, and your device is a window into those servers. If the company goes down, or walls off your data, or decides to charge ten times more next year, you are stuck. A local-first app lives on your device, and the cloud is a convenience — a place to sync, a place to back up, a place to collaborate when you need to. If the company goes down, your data doesn’t.

For a decade, we went the other way. Every app became a cloud app. Every feature was networked. Every startup was a SaaS. There were good reasons for it — most of them economic — but along the way we lost something.

What we lost

We lost sovereignty. Your notes, your files, your projects — they all became somebody else’s database row.

We lost speed. Anything that has to check in with a server before it shows you a character of text is, by definition, slower than something that doesn’t.

We lost durability. Every year, some beloved app gets acquired, changes direction, or turns off its free tier, and a few thousand people write angry Reddit posts about how they have to start over. I have been one of those people, more than once.

We lost weirdness. Cloud apps, almost inevitably, become the same app. They all grow the same features — comments, mentions, AI summarization, real-time presence — because those are the features that make sense when your software runs on servers you can upgrade on a deploy. Local-first apps get to be strange again.

The quiet renaissance

Here’s what’s changed in the last two years.

Obsidian is profitable, growing, and the default note-taking app for a particular kind of person. It runs on everything. It has 2,000 plugins. The company’s business model is a $5/month sync service you can turn off, and a $50/year license for work use. That’s it. No ads. No AI features they’ve been arm-twisted into shipping. No CEO on LinkedIn talking about “the platform shift.”

Logseq does for outliners what Obsidian did for notes. Anytype is trying it for structured data. Triplit and Jazz and Automerge are giving developers the building blocks. ElectricSQL lets you put your Postgres database in a Service Worker, for reasons that make perfect sense if you think about it for a minute.

The interesting thing isn’t that any one of these tools is catching on. It’s that they’re all catching on, at once, in a way that reminds me of the early web. People are making small, weird, durable things for themselves, and finding out that other people want them too.

Why now

Three things happened.

One: we started to notice how bad cloud apps had become. Not in the big things — Notion is still a tremendous piece of software — but in the small things. The login flows. The cookie banners. The five seconds it takes to open a doc you wrote last week. The vague dread of opening your calendar and seeing that the company has “refreshed the experience.”

Two: the local hardware got absurdly good. The Apple Silicon laptop in your bag can run a frontier language model. Your phone is faster than the server farms that ran Google in 2008. There is no technical reason your software should feel slow. Most of the slowness is an architectural choice.

Three: the sync problem got solved. Not completely. But CRDTs — the data structures that let multiple people edit the same document at once without a central coordinator — went from “PhD thesis” to “npm install” in about five years. The researchers at Ink & Switch and the open-source maintainers of Yjs and Automerge did something very hard and then gave it away.

What you can do about it, as a person who uses software

Try one of them. Pick the kind of tool that annoys you the most — probably notes, probably tasks, probably some internal company wiki — and find a local-first alternative and use it for a month.

You will feel two things, in sequence. First, a kind of friction. Cloud apps have had a decade to polish their onboarding, and local-first apps mostly haven’t. You will miss a feature. You will hit a rough edge.

Then, about two weeks in, you will notice a quieter feeling, which is the absence of the dread I mentioned earlier. The app opens, and it’s just there. You type, and the letters appear. You close the laptop, and open it on a plane, and the app is exactly where you left it, because of course it is. Your files are on your computer. They were always on your computer.

It is a very small feeling, at first. Then it gets larger. Then it gets hard to go back.

What you can do about it, as a person who builds software

Make one.

I’m serious. The tooling has never been better. The audience is growing, not shrinking. The bar — “software that works offline and doesn’t lock up my data” — is so low that you could meet it on a weekend and ship something people would pay for.

You won’t get to tell a venture capitalist about your flywheel. You won’t get to put “AI-native” in your tagline. You won’t get to add a spinner to a feature that doesn’t need one.

You will get to make a thing that is yours, and that belongs to the people who use it.

This used to be what making software was.

It still can be.


There’s a companion video to this essay on the YouTube channel, where Matt and I walk through the five local-first apps we’re using right now. Subscribe over there if you want to see the next one when it drops.

“The cloud wasn't inevitable. It was just convenient — for the companies selling it.”
WRITTEN BY
Michael Kelso

The older one. Writes essays about the shape of software and runs the Linux rig nobody asked him to build.