本地优先和可移除
Local-First and Ejectable

原始链接: https://thymer.com/local-first-ejectable

可弹出式应用融合了云端和传统桌面软件的优点。它们提供了云功能的便利性,例如实时协作和同步,同时保证了对数据和应用程序本身的长期访问。 不同于标准云应用在关闭或更改时会让你陷入困境,可弹出式应用允许用户“弹出”并自行托管后端同步服务器。这涉及保存工作区(包含你的数据)并下载服务器可执行文件。然后,你可以在本地运行服务器,打开你的工作区,并像以前一样继续使用该应用程序。 至关重要的是,弹出是完全可逆的,允许你在云端版本和自托管版本之间无缝切换。这种方法确保了数据所有权和应用程序的持久性,使你的创作在未来很长一段时间内都可访问和可用,类似于持久的桌面应用程序。可弹出式应用提供了云的功能以及本地软件的未来保障。

这篇 Hacker News 讨论帖关注的是“本地优先且可移除”(local-first and ejectable)的软件,重点讨论优先存储本地数据并提供自托管或数据导出的应用程序。用户们就这种方法的可行性和益处展开了辩论。 一位用户重点介绍了其离线优先应用中使用 Dropbox/Google Drive 进行基于文件的同步机制,以此解决服务器寿命问题。但人们也担心复杂的后台操作(实时协作、权限管理)难以简单地映射到平面文件中。 讨论扩展到本地优先软件的理念,强调通过本地存储数据和软件来保证其持久性。讨论涉及同步引擎、开放文档标准(Automerge、Yjs)以及对开放应用分发平台的需求。“可移除”(ejectable)的概念被引入,作为被锁定(locked-in)的反义词。一个关键点是能够在云端版本和自托管版本之间无缝切换。 另一位用户建议使用带有浏览器数据库的渐进式 Web 应用 (PWA) 作为一种可移除的应用形式,不过也指出了数据备份、同步和用户感知方面的局限性。最终,讨论的核心是赋予用户数据所有权和控制权。
相关文章
  • 本地第一,永远 2024-06-26
  • (评论) 2024-06-26
  • (评论) 2025-02-23
  • (评论) 2024-08-23
  • (评论) 2024-03-07

  • 原文

    An important requirement to ensure you can fully access your data in cloud apps forever is making the backend sync server available for local self-hosting. That's what EJECTABLE apps are about.

    Local-first allows users to enjoy all the benefits cloud apps bring (like seamless real-time collaboration, syncing, auto backups) while keeping the data ownership aspect from traditional desktop software.

    The problem is that's just the data part. What about the longevity of the service, the app itself, to use the data with? With traditional desktop software the full set of features remains available when a company shuts down. When a cloud app shuts down, or enshittifies, or you simply want to leave, you're left with the data (hopefully) but no good way to use it. All the functionality that's part of the cloud part of the app, features like syncing or collaboration are gone.

    An ejectable app allows users to "eject" at any time and switch to self-hosting (or vice versa) by:

    • Saving a workspace.zip, which contains all their state.
    • Downloading a server.exe/.bin to self-host the backend sync server (possibly even picking their favorite version of the app).
    • Being able to run the server executable locally. This should allow you to simply open the workspace data and continue where you left off.
    • Making the ejection fully reversible, because the freedom to leave the cloud version with no way back is still a hurdle to using it. Eject from the self-hosted version, sign up for the cloud version and import again.

    Making apps local-first and ejectable should give us the best of both worlds: the convenience and features of cloud-based apps while being as future proof as DOOM.EXE or NOTEPAD.EXE from decades ago. They ensure that what we create with our modern tools today remains accessible and functional far into the future (of course we're building Thymer as an ejectable app, too).

    联系我们 contact @ memedata.com