What is local-first software?
Local-first software keeps your data in files on your own machine and treats the network as optional. Here is a working definition, the test that separates local-first from mere offline mode, and why it matters for your notes.
What does local-first mean?
Local-first software stores your data on your own machine, in a format you can read without the app, and treats the network as an optional extra rather than a requirement. The files on your disk are the source of truth. If the company behind the app vanished tomorrow, everything you wrote would still open.
The term comes from a 2019 essay by Ink & Switch, which framed it as a set of ideals: your data available offline, fast, private, and yours - with collaboration added on top rather than traded away. In practice, most software that calls itself local-first is measured against a simpler test, and it is worth spelling out.
How is local-first different from offline mode?
Offline mode is a cache. Local-first is ownership. An app with offline mode keeps a copy of the server’s data so you can keep working on a plane - but the server remains the authority, and your access to your own work is ultimately an account that can be suspended, priced up, or shut down.
A local-first app inverts the relationship. The disk is the authority; a server, if one exists at all, is a convenience for sync or collaboration. The practical test: unplug the network for a month. If the app still does everything it did before, it is local-first. If it degrades into a viewer, it was a cloud app with a cache.
Why does local-first matter for notes and project files?
Notes are the longest-lived data most people produce. A project journal, a design decision, a lab notebook - these are worth reading a decade later, which is longer than most apps live and much longer than most subscription prices stay acceptable.
Three properties follow from keeping them local-first:
- Longevity. Plain markdown in a folder will outlive every app that opens it. Databases are where notes go to be held hostage.
- Privacy by architecture, not policy. Data that never leaves the machine does not need a privacy promise - there is nothing to promise about. A policy can change; an absent network call cannot.
- Tooling freedom. Files in a folder compose with everything: git, grep, backup tools, other editors, your own scripts. A proprietary sync silo composes with nothing.
What are the trade-offs?
Honesty requires the other side. Local-first software makes multi-device sync and real-time collaboration harder, not free - the problems cloud apps solve with a central server have to be solved another way (git, CRDTs, file sync) or deliberately deferred. Backups become your responsibility, because there is no vendor copy. And some features genuinely need scale a laptop does not have.
The local-first bet is that for personal knowledge and project work, those trade-offs are the right ones: the data matters for decades, the collaboration is usually asynchronous, and the machine on your desk is absurdly powerful.
How OmniFolder applies this
OmniFolder is a local-first project workspace for Windows built on exactly this test. One folder of plain markdown holds your notes; the same files feed a knowledge graph, an infinite canvas, and a kanban board. Every disk access goes through validated commands; nothing transmits unless you explicitly switch on an AI provider - and when data does leave, a beacon shows it leaving. Accounts are optional. Air-gapped is a supported lifestyle, not a degraded mode.
Is local-first the same as offline mode?
No. Offline mode is a cache in front of somebody else's database - the server still owns the truth. Local-first inverts that: the files on your disk are the source of truth, and any server is the optional convenience.
Does local-first mean no cloud and no AI?
No. It means cloud and AI are opt-in additions on top of data you own, not the foundation underneath it. A local-first app works fully with the network cable unplugged; what you switch on beyond that is your call.
Why do plain files matter for local-first software?
Plain files are the only storage format with a guaranteed exit. Markdown in a folder can be read by any editor, synced by any tool and versioned by git - so the app that wrote it can disappear without taking your work along.