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

References


1.

Steven Chan. How should I backup my documents?. 2018.

2.

Scott Chacon, Ben Straub. Pro Git. 2014.

3.

& Ink, Switch. Ink & Switch. https://www.inkandswitch.com.

4.

Pouchdb. PouchDB. https://pouchdb.com.

5.

Sqlite. SQLite. https://sqlite.org/.

6.

Webrtc. WebRTC. https://webrtc.org.

7.

Automerge. Automerge. https://github.com/automerge/automerge.

8.

. Electron: Build cross platform desktop apps with JavaScript, HTML, and CSS.

9.

English Amiga Board. English Amiga Board. http://eab.abime.net/ [5] [n.d.]..

10.

Dan Abramov. Redux tutorial: Reducers. 2018.

11.

. File:Early writing tablet recording the allocation of beer.

12.

Hoodie. Hoodie. http://hood.ie/.

13.

Hypermerge. Hypermerge. https://github.com/automerge/hypermerge.

14.

. Amazon Web Services.

15.

Aws Cloud9. AWS Cloud9. https://aws.amazon. com/cloud9/.

16.

Jan J Chris Anderson, Noah Lehnardt, Slater. CouchDB: The Definitive Guide. 2010.

17.

. Apache Software Foundation.

18.

Apache Couchdb. Apache CouchDB. https: //couchdb.apache.org.

19.

Inc Apple. Apple, Inc. [n.d.]..

20.

Cloudkit. CloudKit. https://developer.apple.com/icloud/ cloudkit/.

21.

Inc Apple. Apple, Inc. [n.d.]..

22.

Inc Apple. Apple, Inc. [n.d.]..

23.

Webkit. WebKit. https://developer.apple.com/ documentation/webkit.

24.

Oliver Joseph Ash. Building an offline page for theguardian. 2015.

25.

Atlassian. Atlassian. [n.d.]. Trello. https://trello.com/.

26.

Atlassian. Exporting data from Trello. 2019.

27.

Hagit Attiya, Sebastian Burckhardt, Alexey Gotsman, Adam Morrison, Hongseok Yang, Marek Zawirski. Specification and Complexity of Collaborative Text EditingACM Symposium on Principles of Distributed Computing (PODC). 2016.

28.

Alexei Baboulevitch. Data Laced with History: Causal Trees & Operational CRDTs. 2018.

29.

Andrew Carter, Michael J Prichard. Parse Shutdown: What It Means and What You Can Do. 2016.

30.

Peter Bailis, Aaron Davidson, Alan Fekete, Ali Ghodsi, M Joseph, Ion Hellerstein, Stoica. Highly Available Transactions: Virtues and Limitations40th International Conference on Very Large Data Bases (VLDB). 2014.

31.

Cihan Biyikoglu. Under the Hood: Redis CRDTs (Conflict-free Replicated Data Types). 2018.

32.

. /images/WP-RedisLabs-Redis-Conflict-free-Replicated-Data-Types.pdf.

33.

. Blue Link Labs Inc.

34.

Hashbase. Hashbase. https://hashbase.io/.

35.

Peter Bourgon. Roshi: a CRDT system for timestamped events. 2014.

36.

Anders Borum. Anders Borum. [n.d.]. Working Copy. https://workingcopyapp.com.

37.

Peter Bourgon, Matthias Radestock. Effortless Eventual Consistency with Weave MeshQCon London. 2016.

38.

Inc Box. Box, Inc. [n.d.]. Box. https://www.box.com/.

39.

Reg Braithwaite. Rendered Prose Diffs. 2014.

40.

Mathias Buus. Mathias Buus. [n.d.]..

41.

Hypercore. Hypercore. https://github.com/mafintosh/ hypercore.

42.

Roshan Choxi. PushPin video. 2018.

43.

. European Convention on Human Rights. 2010.

44.

. Guide on Article 9 of the European Convention on Human Rights. 2018.

45.

Geoff Cox. CouchDB, PouchDB and Hoodie as a Stack for Progressive Web Apps. 2017.

46.

Joseph Cox. Snapchat Employees Abused Data Access to Spy on Users. 2019.

47.

Cultured Code, Co, Kg. Cultured Code GmbH & Co. KG. [n.d.]. Things. https://culturedcode. com/things/.

48.

Mark Mcgranaghan. Slow Software. 2018.

49.

Evan Czaplicki, Stephen Chong. Asynchronous functional reactive programming for GUIs34th Annual SIGPLAN Conference on Programming Language Design and Implementation (PLDI). 2013.

50.

. dat:// -a peer-to-peer protocol.

51.

Matt Day, Giles Turner, Natalia Drozdiak. Amazon Workers Are Listening to What You Tell Alexa. 2019.

52.

Drew Devault. The advantages of an email-driven git workflow. 2018.

53.

Inc Dropbox. Dropbox, Inc. [n.d.]..

54.

Dbx Platform. DBX Platform. https://www.dropbox.com/ developers.

55.

Inc Dropbox. Dropbox, Inc. [n.d.]..

56.

Dropbox. Dropbox. https://www.dropbox.com/.

57.

Inc Dropbox. How can I access my files offline?.

58.

Inc Dropbox. Dropbox, Inc. [n.d.]..

59.

Inc Facebook. Facebook, Inc. [n.d.]. React. https://reactjs.org.

60.

Inc Facebook. OpenR documentation: KvStore -Store and Sync. 2017.

61.

Alex Feyerke. Say hello to Offline First. 2013.

62.

Inc Figma. Figma, Inc. [n.d.]..

63.

Figma. Figma. https://www.figma.com.

64.

Brian Fung. A mysterious message is locking Google Docs users out of their files. 2017.

65.

. Progressive Web Apps.

66.

Christina Garman, Matthew Green, Gabriel Kaptchuk, Ian Miers, Michael Rushanan. Dancing on the Lip of the Volcano: Chosen Ciphertext Attacks on Apple iMessage25th USENIX Security Symposium. 2016.

67.

Matt Gaunt. Service Workers: an Introduction. 2019.

68.

Pallab Ghosh. Google's Vint Cerf warns of 'digital Dark Age. 2015.

69.

Inc Github. About pull requests.

70.

B F Victor, Martin Gomes, Dominic P Kleppmann, Alastair R Mulligan, Beresford. Verifying strong eventual consistency in distributed systemsProceedings of the ACM on Programming Languages (PACMPL). 2017-10.

71.

Google. Google. [n.d.]..

72.

Colaboratory. Colaboratory. https://colab.research.google.com.

73.

Google. Google. [n.d.]..

74.

Firebase. Firebase. https://firebase.google.com.

75.

Google. Google. [n.d.]..

76.

. Firebase Documentation: Enable offline data.

77.

Google. Google. [n.d.]..

78.

Google Docs Offline. Google Docs Offline. https:.

79.

Google. Google. [n.d.]..

80.

Google. See what's changed in a file.

81.

Google. Google. [n.d.]. Suggest edits in Google Docs. https://support.google. com/docs/answer/6033474.

82.

Google. Takeout: Download your data.

83.

Llc Google. Google Drive.

84.

Llc Google. Google Drive Terms of Service. 2019.

85.

Phil Gyford. Phil Gyford. [n.d.]..

86.

. Our Incredible Journey.

87.

Cloudant. Cloudant. https://www.ibm.com/cloud/cloudant.

88.

& Ink, Switch. Ink & Switch. [n.d.]..

89.

Pixelpusher. PixelPusher. https://github.com/automerge/ pixelpusher.

90.

& Ink, Switch. PixelPusher releases.

91.

& Ink, Switch. Ink & Switch. [n.d.]. PushPin. https://inkandswitch.github.io/ pushpin/.

92.

& Ink, Switch. PushPin releases.

93.

& Ink, Switch. Ink & Switch. [n.d.]. Trellis. https://github.com/automerge/trellis# readme.

94.

& Ink, Switch. Ink & Switch. [n.d.]. Trellis releases. https://github.com/automerge/ trellis/releases.

96.

. Internet Archive.

97.

Web Decentralized, Summit. Decentralized Web Summit. https://www. decentralizedweb.net.

98.

Internet Archive. Software Library.

99.

Rowan James. Rowan James. [n.d.]..

100.

Gitx-Dev. GitX-dev. https://rowanj.github.io/gitx/.

101.

Jmichaeltx. How do I resolve Sync Conflicts?. 2015.

102.

Meggin Kearney, Jonathan Garbee. Optimize Performance Under Varying Network Conditions. 2019.

103.

Inc Keybase. Keybase, Inc. [n.d.]..

104.

Keybase. Keybase. https://keybase.io.

105.

Paul Kinlan. Adding a Service Worker and Offline into your Web App. 2019.

106.

Martin Kleppmann. CRDTs and the Quest for Distributed ConsistencyQCon London. 2018.

107.

Martin Kleppmann, Alastair R Beresford. A Conflict-Free Replicated JSON DatatypeIEEE Transactions on Parallel and Distributed Systems (TPDS). 2017-04.

108.

Dan Luu. Computer. 2017.

109.

Igor Mandrigin. Optimistic UIs in under 1000 words. 2016.

110.

Mattt. Network Link Conditioner. 2018.

111.

Cameron Mcefee. Behold: Image view modes. 2011.

112.

Christopher Meiklejohn. Applied Monotonicity: A Brief History of CRDTs in Riak. 2019.

113.

. Meteor Development Group Inc.

114.

Microsoft. Microsoft. [n.d.]..

115.

Onedrive. OneDrive. https://onedrive.live.com/.

116.

Ltd Milanote Pty. Milanote Pty Ltd. [n.d.]..

117.

Milanote. Milanote. https://www.milanote.com.

118.

Mozilla Developer, Network. Mozilla Developer Network. [n.d.]..

119.

. The WebSocket API.

120.

Mozilla Developer, Network. Mozilla Developer Network. [n.d.]..

121.

Window. Window.localStorage. https:// developer.mozilla.org/en-US/docs/Web/API/Window/localStorage.

122.

Inc Neoreason. Neoreason, Inc. [n.d.]..

123.

. Repl.it.

124.

Alan Long Tien Nguyen, Kay. The Cuneiform Tablets of 2015ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!). 2015.

125.

O' Roisin, Connor. Myspace loses 'over 50 million songs' from website after server migration project goes wrong. 2019.

126.

Cody Ogden. Cody Ogden. 2019. Killed by Google. https://killedbygoogle.com. 2019.

127.

Llc Overcast Radio. Overcast Radio, LLC. [n.d.]. Overcast. https://overcast.fm.

128.

. Protocol Labs Inc.

129.

Anupam Rastogi. Are Distributed Teams the new Cloud for startups?. 2018.

130.

J Rosenberg, P Mahy, D Matthews, Wing. Session Traversal Utilities for NAT (STUN)IETF Network Working Group. 2008.

131.

Alyssa Rosenzweig. The Federation Fallacy. 2019.

132.

Marc Shapiro, Nuno Preguiça, Carlos Baquero, Marek Zawirski. A comprehensive study of Convergent and Commutative Replicated Data Types. 2011.

133.

Marc Shapiro, Nuno Preguiça, Carlos Baquero, Marek Zawirski. Conflict-Free Replicated Data Types13th International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS). 2011.

134.

. Shiny Frog.

135.

Dharma Shukla. Azure Cosmos DB: Pushing the frontier of globally distributed databases. 2018.

136.

Signal Messenger. Technical InformationSignal Messenger. [n.d.]. Technical Information. https://www.signal. org/docs/.

137.

Mike Skalnik. 3D File Diffs. 2013.

138.

Nate Smith, Joseph Gentle. Nate Smith and Joseph Gentle. [n.d.]..

139.

Sharedb. ShareDB. https://github.com/ share/sharedb.

140.

Llc Sourcegear. SourceGear, LLC. [n.d.]..

141.

Diffmerge. DiffMerge. https://www.sourcegear.com/ diffmerge/.

142.

Sqlite. LoC Recommended Storage Format. 2018.

143.

Stack Overflow. When is localStorage.

144.

Chengzheng Sun, Clarence Ellis. Operational transformation in real-time group editors: Issues, algorithms, and achievementsACM Conference on Computer Supported Cooperative Work. 1998.

145.

Tarsnap Backup Inc. Tarsnap cryptography.

146.

Inc Tightdb. Tightdb, Inc. [n.d.]..

147.

. Getting a Realm Object Server Instance.

148.

Inc Tightdb. Tightdb, Inc. [n.d.]. Realm. https://realm.io.

149.

Inc Tightdb. What is Realm Platform?.

150.

Ulysses Gmbh, & Co, Kg. Ulysses GmbH & Co. KG. [n.d.]..

151.

. UN Special Rapporteur on the promotion and protection of the right to freedom of opinion and expressionSubmission to the Joint Committee of the draft Investigatory Powers Bill. 2015.

152.

Javier Valencia. Javier Valencia. [n.d.]..

153.

. Pixel Art to CSS.

154.

Peter Van Hardenberg. Pixelpusher: Real-time peer-to-peer collaboration with React. 2018.

155.

Jonathan Vanian. Microsoft Office 365 Just Hit a Big Milestone. 2017.

156.

Chris Watterston. My 'There Is No Cloud. 2016.

157.

Whatsapp Inc. WhatsApp Encryption Overview. 2017.

158.

Adam Wiggins. Decentralized, offline-first, realtime collaboration with Automerge. 2018.

159.

Adam Wiggins. The iPad as a fast, precise tool for creativity. 2018.

160.

Wikipedia. List of data breaches.