Martin Kleppmann, Adam Wiggins, Peter van Hardenberg avatar Peter van Hardenberg and Mark McGranaghan

Local-first software

Screenshot of “Local-first software”

I talk a lot about POSSE these days, but it's mainly about content, not applications. For them, it is often difficult to host a solution yourself, but relying on a third-party solution in the cloud also raises many concerns, to which the Ink & Switch team is trying to find a solution:

When data is stored on “someone else’s computer”, that third party assumes a degree of control over that data. Cloud apps are provided as a service; if the service is unavailable, you cannot use the software, and you can no longer access your data created with that software. If the service shuts down, even though you might be able to export your data, without the servers there is normally no way for you to continue running your own copy of that software. Thus, you are at the mercy of the company providing the service.


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.

  1. How much data should my Service Worker put upfront in the offline cache?

    I love when Web site/apps work even when I'm offline. I've made my SVG game esviji work offline thanks to appcache just after attending Jake Archibald conference about why Application Cache is a Douchebag during the 2012 edition of the Paris Web conference. Fortunately, we have now Service Workers (in some browsers), which gives us more control over this kind of cache for offline browsing. But as Uncle Ben says, “With Great Power Comes Great Responsibility”.