Local-first software is a design philosophy and set of technical principles where applications store all data on the userβs own device. The network is optional β used for sync and collaboration when available, never as the gatekeeper to your own files. The manifesto was articulated by Ink & Switch in 2019, in contrast to the prevailing cloud-first model where your data lives primarily on a server you donβt control.
The core tension local-first resolves: cloud apps offer seamless collaboration but surrender data sovereignty; traditional desktop apps offer ownership but isolation. Local-first targets both simultaneously.
Seven Ideals (Ink & Switch)
The original local-first paper described seven properties that define the ideal:
- No spinners β The app works instantly, without network round-trips for every action
- Your work is not trapped on one device β Data syncs to all your devices
- The network is optional β Full functionality offline; connectivity enhances, not enables
- Seamless collaboration β Multiple users can edit simultaneously without conflicts
- The long now β Files remain readable and editable decades from now, without vendor lock-in
- Security and privacy by default β Data encrypted at rest and in transit; no server sees plaintext
- You retain ultimate ownership β You can always access and export your data; the vendor going dark doesnβt destroy your work
Key Technologies
Local-first requires specific technical primitives:
- CRDTs (Conflict-free Replicated Data Types): Data structures that merge concurrent edits without conflicts or central coordination β the mathematical foundation for offline-first collaboration. See CRDTs
- End-to-end encryption: Client-side encryption ensures sync servers handle only ciphertext they cannot read
- Append-only logs: Immutable event logs that can be replicated and merged deterministically
- Peer-to-peer sync: Direct device-to-device sync without intermediary servers (e.g., Iroh, Syncthing)
Contrast with Cloud-First
| Cloud-first | Local-first | |
|---|---|---|
| Latency | Round-trip to server | Instant (local read/write) |
| Offline | Degraded or broken | Full functionality |
| Ownership | Vendor holds data | User holds data |
| Collaboration | Real-time via server | CRDT-based, eventually consistent |
| Longevity | Tied to vendorβs uptime | Files persist indefinitely |
| Privacy | Server sees data | Optional server visibility |
Trade-offs
Local-first is not without costs:
- Sync complexity: CRDTs and conflict resolution are hard to implement correctly
- Storage: Each device holds a full copy; large datasets multiply storage requirements
- Discovery: Finding collaborators requires some rendezvous mechanism (a relay server or DHT)
- Backup: The user is responsible for backups β cloud apps provide this by default
- Cross-platform: Building offline-capable apps across web, mobile, and desktop requires careful architecture
Examples
- Obsidian: Notes stored as local Markdown files; sync is optional and user-controlled
- Linear (partially): Optimistic UI with local cache; not fully local-first
- Automerge / Yjs: CRDT libraries for building local-first collaborative apps
- Holochain: Agent-centric distributed apps where each agentβs Source Chain is their authoritative local record
Related
- CRDTs β The data structure enabling conflict-free offline collaboration
- Holochain β Agent-centric framework built on local-first principles
- Decentralized Web β Broader movement toward user-owned internet infrastructure
- Governance and Community β Data sovereignty as a governance principle
References
- Local-first software: You own your data, in spite of the cloud β The original Ink & Switch manifesto (2019)
- Local-First Web Development β Community hub for local-first practitioners
- Local-First Software research paper β Academic treatment by Martin Kleppmann
- The Cloud is a Prison β Wired on the local-first movement