Local-First Software:You Own Your Data, in Spite of the Cloud

Local-First Software:You Own Your Data, in Spite of the Cloud

Local-First Software: You Own Your Data, in spite of the Cloud Martin Kleppmann Adam Wiggins Department of Computer Science and Technology Ink & Switch University of Cambridge Berlin, Germany Cambridge, United Kingdom [email protected] [email protected] Peter van Hardenberg Mark McGranaghan Ink & Switch Ink & Switch San Francisco, CA, USA Seattle, WA, USA [email protected] [email protected] Abstract challenges for this new data model. Lastly, we suggest some Cloud apps like Google Docs and Trello are popular because next steps for moving towards local-first software: for re- they enable real-time collaboration with colleagues, and they searchers, for app developers, and a startup opportunity for make it easy for us to access our work from all of our devices. entrepreneurs. However, by centralizing data storage on servers, cloud apps CCS Concepts • Human-centered computing → Col- also take away ownership and agency from users. If a service laborative content creation; Ubiquitous and mobile com- shuts down, the software stops functioning, and data created puting systems and tools; • Computer systems organiza- with that software is lost. tion → Peer-to-peer architectures; • Software and its engi- In this article we propose local-first software, a set of prin- neering → Peer-to-peer architectures; Organizing principles ciples for software that enables both collaboration and own- for web applications. ership for users. Local-first ideals include the ability to work offline and collaborate across multiple devices, while also Keywords collaboration software, mobile computing, data improving the security, privacy, long-term preservation, and ownership, CRDTs, peer-to-peer communication user control of data. We survey existing approaches to data storage and sharing, ACM Reference Format: ranging from email attachments to web apps to Firebase- Martin Kleppmann, Adam Wiggins, Peter van Hardenberg, and Mark backed mobile apps, and we examine the trade-offs of each. McGranaghan. 2019. Local-First Software: You Own Your Data, in spite of the Cloud. In Proceedings of the 2019 ACM SIGPLAN In- We look at Conflict-free Replicated Data Types (CRDTs): ternational Symposium on New Ideas, New Paradigms, and Reflec- data structures that are multi-user from the ground up while tions on Programming and Software (Onward! ’19), October 23–24, also being fundamentally local and private. CRDTs have 2019, Athens, Greece. ACM, New York, NY, USA, 25 pages. https: the potential to be a foundational technology for realizing //doi.org/10.1145/3359591.3359737 local-first software. We share some of our findings from developing local-first software prototypes at the Ink & Switch research lab over 1 Motivation: Collaboration and the course of several years. These experiments test the via- Ownership bility of CRDTs in practice, and explore the user interface It’s amazing how easily we can collaborate online nowadays. We use Google Docs to collaborate on documents, spread- Permission to make digital or hard copies of all or part of this work for sheets and presentations; in Figma we work together on user personal or classroom use is granted without fee provided that copies interface designs; we communicate with colleagues using are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights Slack; we track tasks in Trello; and so on. We depend on for components of this work owned by others than the author(s) must these and many other online services, e.g. for taking notes, be honored. Abstracting with credit is permitted. To copy otherwise, or planning projects or events, remembering contacts, and a republish, to post on servers or to redistribute to lists, requires prior specific whole raft of business uses. permission and/or a fee. Request permissions from [email protected]. We will call these services “cloud apps,” but you could Onward! ’19, October 23–24, 2019, Athens, Greece just as well call them “Software as a Service” (SaaS) or “web- © 2019 Copyright held by the owner/author(s). Publication rights licensed to ACM. based apps.” What they have in common is that we typically ACM ISBN 978-1-4503-6995-4/19/10...$15.00 access them through a web browser or through mobile apps, https://doi.org/10.1145/3359591.3359737 and that they store their data on a server. 154 Onward! ’19, October 23–24, 2019, Athens, Greece Martin Kleppmann, Adam Wiggins, Peter van Hardenberg, and Mark McGranaghan Today’s cloud apps offer big benefits compared to earlier software packages such as graphics applications or CAD generations of software: seamless collaboration, and being software fall in this category.3 able to access data from any device. As we run more and In old-fashioned apps, the data lives in files on your local more of our lives and work through these cloud apps, they disk, so you have full agency and ownership of that data: become more and more critical to us. The more time we you can do anything you like, including long-term archiv- invest in using one of these apps, the more valuable the data ing, making backups, manipulating the files using other pro- in it becomes to us. grams, or deleting the files if you no longer want them. You However, in our research we have spoken to a lot of cre- don’t need anybody’s permission to access your files, since ative professionals,1 and in that process we have also learned they are yours. You don’t have to depend on servers operated about the downsides of cloud apps. by another company. When you have put a lot of creative energy and effort To sum up: the cloud gives us collaboration, but old-fash- into making something, you tend to have a deep emotional ioned apps give us ownership. Can’t we have the best of both attachment to it. If you do creative work, this probably seems worlds? We would like both the convenient cross-device familiar. (When we say “creative work,” we mean not just access and real-time collaboration provided by cloud apps, visual art, or music, or poetry — many other activities, such and also the personal ownership of your own data embodied as explaining a technical topic, implementing an intricate by “old-fashioned” software. algorithm, designing a user interface, or figuring out how to lead a team towards some goal are also creative efforts.) 2 Seven Ideals for Local-first Software In the process of performing that creative work, you typi- We believe that data ownership and real-time collaboration cally produce files and data: documents, presentations, spread- are not at odds with each other. It is possible to create soft- sheets, code, notes, drawings, and so on. And you will want ware that has all the advantages of cloud apps, while also to keep that data: for reference and inspiration in the future, allowing you to retain full ownership of the data, documents to include it in a portfolio, or simply to archive because you and files you create. feel proud of it. It is important to feel ownership of that data, We call this type of software local-first software, since it because the creative expression is something so personal. prioritizes the use of local storage (the disk built into your Unfortunately, cloud apps are problematic in this regard. computer) and local networks (such as your home WiFi) over Although they let you access your data anywhere, all data servers in remote datacenters. access must go via the server, and you can only do the things In cloud apps, the data on the server is treated as the that the server will let you do. In a sense, you don’t have full primary, authoritative copy of the data; if a client has a copy 2 ownership of that data — the cloud provider does. In the of the data, it is merely a cache that is subordinate to the words of a bumper sticker [132]: “There is no cloud, it’s just server. Any data modification must be sent to the server, someone else’s computer.” otherwise it “didn’t happen.” In local-first applications we When data is stored on “someone else’s computer”, that swap these roles: we treat the copy of the data on your local third party assumes a degree of control over that data. Cloud device — your laptop, tablet, or phone — as the primary copy. apps are provided as a service; if the service is unavailable, Servers still exist, but they hold secondary copies of your you cannot use the software, and you can no longer access data in order to assist with access from multiple devices. your data created with that software. If the service shuts As we shall see, this change in perspective has profound down, even though you might be able to export your data, implications. without the servers there is normally no way for you to Here are seven ideals to strive for in local-first software. continue running your own copy of that software. Thus, you are at the mercy of the company providing the service. 2.1 No Spinners: Your Work at Your Fingertips Before web apps came along, we had what we might call Much of today’s software feels slower than previous gen- “old-fashioned” apps: programs running on your local com- erations of software [91]. Even though CPUs have become puter, reading and writing files on the local disk. We still use ever faster, there is often a perceptible delay between some a lot of applications of this type today: text editors and IDEs, user input (e.g. clicking a button, or hitting a key) and the Git and other version control systems, and many specialized corresponding result appearing on the display.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    25 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us