Ejectable Apps

December 5, 2024

Traditional desktop software was great in terms of data ownership and longevity. You could copy a program, along with its data files, to another computer and continue working —even years later. This worked so well that even today we can pretty much copy DOOM.EXE or NOTEPAD.EXE, run it, and continue with a saved game or document from the nineties.

Modern apps, on the other hand, rely on cloud-based components, such as backend sync servers, to enable features users now expect: seamless real-time collaboration, automatic backups, and cross-device syncing—all accessible from anywhere, often by simply opening a browser tab.

Unfortunately, cloud-based apps lack the longevity and data ownership guarantees that their traditional counterparts provided. The benefits come at the price of being locked in with all the obvious drawbacks to end users: risk of enshittification of future versions, bait-and-switch pricing, arbitrary account suspensions, apps shutting down at some point in their incredible journey, or breaches of privacy agreements.

But we can have our cake and eat it too by making our cloud-based apps ejectable. Ejectable apps make the backend sync server available for local self-hosting. It allows you to leave the cloud with all your data (or return!) and still work with your data as before even after the original provider ceases operation.

Ejectable goes beyond the basic export some apps offer, which typically provides a partial data dump that's unusable in practice. It can complement a local-first approach (for offline use, end-to-end encryption, and local data copies) by ensuring features like collaboration remain possible even if the service provider disappears. A truly ejectable app provides:

With ejectable apps, we can enjoy the benefits and features of a cloud-based service but reclaim control over our data. They ensure that what we create with our modern tools today remains accessible and functional far into the future.

We're building Thymer as an ejectable app, and we hope to see many more ejectable apps in the future.