prioritizes the use of local storage (the disk built into your computer) and local networks (such as your home WiFi) over servers in remote datacenters.
The data synchronization need not necessarily go via the Internet: local-first apps could also use Bluetooth or local WiFi to sync data to nearby devices
- Cloud software has benefits, but Cloud apps are problematic.
- Centralised applications are authoritarian.
- Local-first software gives you agency and ownership of your data.
- You shouldn't need permission to access your own files.
- Servers should provide a supporting role, not a central role.
Live collaboration between computers without Internet access feels like magic in a world that has come to depend on centralized APIs.
In local-first apps, our ideal is to support real-time collaboration that is on par with the best cloud apps today, or better. Achieving this goal is one of the biggest challenges in realizing local-first software, but we believe it is possible:
The developers of mobile apps are generally experts in end-user app development, not in distributed systems. We have seen multiple app development teams writing their own ad-hoc diffing, merging, and conflict resolution algorithms, and the resulting data sync solutions are often unreliable and brittle.
This is the case because a Git repository on your local filesystem is a primary copy of the data, and is not subordinate to any server.