Local-first software: you own your data, in spite of the cloud

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-first software, a set of principles for software that enables both collaboration and ownership for users. Local-first ideals include the ability to work offline 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-offs of each. We look at Conflict-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-first software. We share some of our findings from developing local-first software prototypes at the Ink & Switch research lab over the course of several years. These experiments test the viability of CRDTs in practice, and explore the user interface challenges for this new data model. Lastly, we suggest some next steps for moving towards local-first software: for researchers, for app developers, and a startup opportunity for entrepreneurs.

[1]  Stephen Chong,et al.  Asynchronous functional reactive programming for GUIs , 2013, PLDI.

[2]  Marc Shapiro,et al.  A comprehensive study of Convergent and Commutative Replicated Data Types , 2011 .

[3]  Chengzheng Sun,et al.  Operational transformation in real-time group editors: issues, algorithms, and achievements , 1998, CSCW '98.

[4]  Alastair R. Beresford,et al.  Verifying strong eventual consistency in distributed systems , 2017, Proc. ACM Program. Lang..

[5]  Dan Wing,et al.  Session Traversal Utilities for NAT (STUN) , 2020, RFC.

[6]  J. Chris Anderson,et al.  CouchDB: The Definitive Guide , 2010 .

[7]  Christoph Grabenwarter,et al.  European Convention on Human Rights , 2014 .

[8]  B. Kahle THE INTERNET ARCHIVE , 2012 .

[9]  Manish Sharma Azure Cosmos DB Overview , 2018 .

[10]  Alastair R. Beresford,et al.  A Conflict-Free Replicated JSON Datatype , 2016, IEEE Transactions on Parallel and Distributed Systems.

[11]  Marc Shapiro,et al.  Conflict-Free Replicated Data Types , 2011, SSS.

[12]  Fareed Bashir,et al.  European Convention on Human Rights , 2003 .

[13]  Matthew Green,et al.  Dancing on the Lip of the Volcano: Chosen Ciphertext Attacks on Apple iMessage , 2016, USENIX Security Symposium.

[14]  F. Rue Report of the Special Rapporteur on the promotion and protection of the right to freedom of opinion and expression , 2012 .

[15]  Alan C. Kay,et al.  The cuneiform tablets of 2015 , 2015, Onward!.

[16]  Ali Ghodsi,et al.  Highly Available Transactions: Virtues and Limitations , 2013, Proc. VLDB Endow..

[17]  Sebastian Burckhardt,et al.  Specification and Complexity of Collaborative Text Editing , 2016, PODC.