Much of the software we use derives its value from being networked, sometimes that's about being able to use software on many devices, often it's about being able to collaborate with other people. This has enabled enormous productivity improvements and made us all more flexible, but it has a cost. The networked part of these applications is almost always inside a private entity, which means if that entity goes away - maybe it's acquired by a competitor, or just decides you aren't worth the money, or any of a hundred other things which we've all seen happen - then the people who derive value from the software are left with a useless app.
How could we make it possible for users to repair these broken apps? I'll describe how a set of design principles called "local first" enables us to build networked software which can outlive the companies that created it. We'll explore the current state of the technologies which enable this approach, and also some of the open problems and the opportunities which are arising in a world increasingly wary of depending on large corporate networks.