Local-first: One step backwards, two steps forwards

While the whole world is captivated by AI, another revolution is quietly taking place in the software world: local-first software. This new paradigm puts your device – instead of the cloud – back at the center. But what does this mean exactly, and why is local-first the next logical step in software development?
The future, built on the past
What is local-first? To understand this, we first need to go back in time a bit. In the early days of software, everything was on a single device. If you didn’t have an internet connection, you could still open and edit your files. But if your hard drive crashed or your laptop was stolen, you lost everything.
The cloud was the solution. By storing data in large data centers, everything becomes accessible from any device with internet, and backups can be made automatically. A huge improvement for the user experience. For developers, however, the cloud brings Working with the cloud also brings a lot of new challenges. Most seasoned developers probably have plenty of experience with cache-invalidation, stale-data, latency, unstable connections, data-consistency, etc… Each request to your app or website has to fetch all relevant data from a data-center. Cost saving measures such as caching can help in cost-cutting but also add extra complexity to your app.
Furthermore, a stable internet connection is necessary to use cloud-based software. Everyone knows it – “Sorry, I can’t play this right now because your internet connection dropped for a second”. These kinds of problems painfully highlight the limitations of cloud-only solutions, not to mention the If your data is only stored on the cloud of the company that owns the app you are using, then your data is not actually yours. If the company suddenly goes bankrupt or decides to shut-down an app (looking at you Google 👀) then your data might also be gone. Since they are not required to offer you a way to export your data.
Local-first software offers an alternative here. It combines the advantages of local storage with the power of cloud synchronization. Data is stored locally, allowing you to work even without an internet connection. In the background, the software synchronizes with the server and makes backups as soon as a stable internet connection is available. This not only provides a better user experience but can also significantly improve the Developer experience (DX) is the ease and efficiency with which developers can build, test, and deploy code.
The term local-first was coined by the research lab Ink & Switch, who provide a more detailed explanation of this new paradigm in this article.
Ahead of its time?
While some Our office loves apps like Linear, Excalidraw, Obsidian and Reflect. Even if our wifi is generally pretty good, these apps are still way faster than cloud-based alternatives (and some don't even need wifi at all). As of writing our team is 9 people strong. 6 of which are developers and 0 of which currently have the time to build a sync-engine from scratch.
Already the future?
Local-first is not just a step back to local software, but a smart balance between the benefits of data on your device and the cloud. It offers speed, privacy, and a very pleasant DX. Although the ecosystem is still emerging, the benefits of building with local-first tech are already noticeable, and learning about it is a good investment for the future. We are definitely keeping an eye on all developments!
Want to collaborate on a local-first solution? Get in touch!