Obsidian Web版可行性分析:为何 VS Code 能做到而 Obsidian 尚未推出?

核心问题

为什么 VS Code 既能在 Web 端使用(vscode.dev),又能在本地使用,两者是基于同一架构基座吗?Obsidian 是否也能效仿 VS Code 做到云端可用?

结论摘要

是的,VS Code 的 Web 端和本地端基于同一套核心代码架构。Obsidian 理论上完全可以效仿,但受限于其“本地优先(Local-First)”的产品理念、插件生态包袱和商业策略。

深度解析

1. VS Code 的架构优势:抽象化与解耦

VS Code 的架构设计非常具有前瞻性,核心在于彻底的前后端分离基于 Web 标准的技术栈

  • 技术栈基座:VS Code 本质上就是一个 Web 应用。UI 是用 HTML/CSS/TypeScript 编写的。

    • 本地版:使用 Electron 框架打包(Chromium 前端 + Node.js 后端)。
    • Web 版:直接运行在浏览器中。
  • 关键架构:文件系统抽象层 (FileSystemProvider) VS Code 将“界面渲染(UI)”与“底层资源访问”剥离得非常干净。

    • UI 层:只负责交互和渲染,不直接调用底层 IO。
    • 服务层:通过一套抽象 API (FileSystemProvider) 访问文件。
      • 本地环境:API 映射到 Node.js 的 fs 模块,读写本地硬盘。
      • Web 环境:API 映射到 GitHub API、Azure 存储,或浏览器的 File System Access API。

正是这种抽象化,使得 VS Code 只需要替换底层的“驱动”,就能在浏览器里跑起来,而上层的编辑器代码几乎不用改。

2. Obsidian 的技术可行性

技术上:绝对可以。

Obsidian 和 VS Code 一样,也是基于 Electron 开发的。

  1. 界面也是标准的 Web 技术(HTML/JS/CSS)。
  2. 核心逻辑也是 JS/TS。

如果 Obsidian 团队愿意,完全可以像 VS Code 一样,把底层的“本地文件读写”模块替换成“云端数据库读写”或“浏览器文件系统读写”,从而推出 Web 版本。

3. 为什么 Obsidian 还没有官方 Web 版?

这更多是产品理念工程难度的权衡。

A. “本地优先” (Local-First) 的执念

Obsidian 的核心卖点是“数据在你手中,永远是纯文本”。

  • 如果做 Web 版,数据必须同步到云端服务器,或者极其依赖浏览器的本地存储(IndexedDB/OPFS)。
  • 这会引入数据隐私、所有权以及同步冲突的复杂性,与其核心价值观(100% 本地控制)存在潜在冲突。

B. 插件生态的兼容性包袱

这是最大的工程障碍。

  • VS Code:严格限制插件权限,迫使插件使用标准 API。
  • Obsidian:插件生态相对“野蛮生长”。大量社区插件直接调用 Node.js 的 fs 模块或 child_process 去操作文件系统和系统命令。
  • 后果:如果搬到 Web 上,浏览器环境没有 Node.js,这些插件会全部失效。需要推动整个社区重写插件,迁移成本极高。

C. 商业模式

Obsidian 目前的主要盈利点是 Sync(同步)Publish(发布)

  • 如果提供一个全功能的 Web 编辑器,用户可能期望像 Notion 一样直接在云端编辑,这需要重新设计商业模式来覆盖服务器和存储成本。

现状与替代

目前,像 Quartz 这样的工具填补了部分空白——它负责把 Obsidian 的本地内容“单向”发布为 Web 页面供人浏览,解决了“看”的问题,但暂时没有解决在 Web 上“写”的问题。

如果需要在 Web 上编辑 Obsidian 库,目前的方案通常是:

  1. 使用 GitHub Codespaces + VS Code Web 版 + Foam/Dendron 插件。
  2. 等待 Obsidian 官方可能的架构重构(虽然短期可能性较低)。

类似架构的替代产品

目前市面上已有几款笔记应用采用了类似 VS Code 的架构思路,或者通过其他技术手段实现了“既能在本地运行(拥有数据主权),又能在远端(Web)使用”的体验:

1. Logseq (最接近 VS Code 模式)

Logseq 是目前在架构理念上最接近 VS Code Web 版 (vscode.dev) 的笔记应用。

  • 本地端:有 Windows/Mac/Linux 客户端,数据存储在本地 Markdown/Org-mode 文件中。
  • Web 端:可以直接访问 logseq.com,利用浏览器 File System Access API,直接请求权限打开并编辑本地文件夹。
  • 特点:无后端模式,浏览器直接操作本地文件,大部分插件通用。

2. 思源笔记 (SiYuan) (自建云模式)

思源笔记采用了“本地优先 + 私有部署”的策略。

  • 本地端:标准的桌面客户端,数据保存在本地。
  • Web 端:提供 Docker 镜像,可部署在私有服务器或 NAS 上。
  • 特点:Web 端与客户端体验完全一致(同构),数据掌控在自己手中。

3. AppFlowy (开源 Notion 替代)

  • 本地端:基于 Flutter 开发的高性能客户端,支持离线使用和本地 AI 模型。
  • Web 端:已上线 Web 版,支持云端同步。
  • 特点:Web 版依赖 AppFlowy Cloud 同步,不像 Logseq 那样直连本地文件。

4. TiddlyWiki (极客的选择)

  • 模式:单 HTML 文件架构。
  • 本地:浏览器打开 HTML 文件,配合插件保存修改。
  • 远端:部署在 Web 服务器上即变成全功能 Web 笔记应用。

总结建议

应用架构模式推荐理由
Logseq浏览器直连本地最像 VS Code,无需服务器,直接用浏览器编辑本地文件。
思源笔记私有服务器部署适合有 NAS 或服务器的用户,体验最稳定,功能最强。
AppFlowy本地+云端同步界面美观,类似 Notion,但提供本地客户端。