Local-first software: you own your data, in spite of the cloud Kleppmann et al., Onward! ’19 Conference
Cloud computing has made essential tools, like Google Docs and Slack, possible. But it comes with compromises. The smart toaster can’t toast without Wi-Fi. The music skips when you enter the subway tunnel, and then the entire library disappears when the startup goes out of business. “We’ve forgotten what it’s like to have software that works,” Van Hardenberg says. But for software companies, the model of hoarding software and data on remote servers works just fine. It’s lucrative, in fact. Hand over enough of your data, and you’ll eventually need a membership to access it. Or else it’s probably being used for advertising. None of your data is truly yours.
Van Hardenberg and his colleagues at Ink & Switch, a private research lab that includes other Heroku alums, want to provide an alternative to that model. They call the effort “local-first” software. Local-first reflects a yearning, in part, for the days when software came in a cardboard box. Back then, you installed it on your computer, where it remained safely ensconced, along with your files. But the point isn’t to ditch the cloud entirely so much as deemphasize it, says Martin Kleppmann, a Cambridge University researcher who works with Ink & Switch. It’s “local-first,” not “local-only.” The idea is to marry local storage of software and data with certain things the cloud does well, like collaboration.
Files are stored across the devices of invited collaborators, rather than on a corporate server or in the cloud. It’s “decentralized,” in other words
On the one-hand we have ‘cloud apps’ which make it easy to access our work from multiple devices and to collaborate online with others (e.g. Google Docs, Trello, …). On the other hand we have good old-fashioned native apps that you install on your operating system (a dying breed? See e.g. Brendan Burns’ recent tweet). Somewhere in the middle, but not-quite perfect, are online (browser-based) apps with offline support.
The primary issue with cloud apps (the SaaS model) is ownership of the data.
Unfortunately, cloud apps are problematic in this regard. Although they let you access your data anywhere, all data access must go via the server, and you can only do the things that the server will let you do. In a sense, you don’t have full ownership of that data— the cloud provider does.
Services do get shut down1, or pricing may change to your disadvantage, or the features evolve in a way you don’t like and there’s no way to keep using an older version.
With a traditional OS app2 you have much more control over the data (the files on your file system at least, which if you’re lucky might even be in an open format). But you have other problems, such as easy access across all of your devices, and the ability to collaborate with others.
Local-first software ideals
The authors coin the phrase “local-first software” to describe software that retains the ownership properties of old-fashioned applications, with the sharing and collaboration properties of cloud applications.
In local-first applications… we treat the copy of the data on your local device — your laptop, tablet, or phone — as the primary copy. Servers still exist, but they hold secondary copies of your data in order to assist with access from multiple devices. As we shall see, this change in perspective has profound implications…
Great local-first software should have seven key properties.
Abstract
Cloud apps like Google Docs and Trello are popular because they enable real-time collaboration with colleagues, and they make it easy for us to access our work from all of our devices. However, by centralizing data storage on servers, cloud apps also take away ownership and agency from users. If a service shuts down, the software stops functioning, and data created with that software is lost.
In this article we propose local- rst software, a set of prin- ciples for software that enables both collaboration and own- ership for users. Local- rst ideals include the ability to work o ine and collaborate across multiple devices, while also improving the security, privacy, long-term preservation, and user control of data.
We survey existing approaches to data storage and sharing, ranging from email attachments to web apps to Firebase- backed mobile apps, and we examine the trade-o s of each. We look at Con ict-free Replicated Data Types (CRDTs): data structures that are multi-user from the ground up while also being fundamentally local and private. CRDTs have the potential to be a foundational technology for realizing local- rst software.
We share some of our ndings from developing local- rst software prototypes at the Ink & Switch research lab over the course of several years. These experiments test the via- bility of CRDTs in practice, and explore the user interfacechallenges for this new data model. Lastly, we suggest some next steps for moving towards local- rst software: for re- searchers, for app developers, and a startup opportunity for entrepreneurs.
• Human-centered computing → Col- laborative content creation; Ubiquitous and mobile com- puting systems and tools; • Computer systems organiza- tion → Peer-to-peer architectures; • Software and its engi- neering → Peer-to-peer architectures; Organizing principles
for web applications.
Keywords collaboration software, mobile computing, data
ownership, CRDTs, peer-to-peer communication
ACM Reference Format:
Martin Kleppmann, Adam Wiggins, Peter van Hardenberg, and Mark McGranaghan. 2019. Local-First Software: You Own Your Data, in spite of the Cloud. In Proceedings of the 2019 ACM SIGPLAN In- ternational Symposium on New Ideas, New Paradigms, and Re ec- tions on Programming and Software (Onward! ’19), October 23–24, 2019, Athens, Greece. ACM, New York, NY, USA, 25 pages
Local-first software: you own your data, in spite of the cloud
Paper Reference
Local Software First, Kleppmann et al