Skip to content

我为什么放弃 NotionNext,转向 Obsidian + Codex + VitePress + ESA

过去一段时间,我一直在用 NotionNext 写博客。 它并不是不能用,但越往后用,越能感觉到一个问题:

它更像"内容同步方案",而不是"源码优先的博客方案"。

尤其是现在已经进入 AI 编码时代,像 Codex 这样的工具真正发挥价值的前提,不是内容放在哪里都行,而是:

  • 内容最好是纯文本
  • 结构最好稳定
  • AI 能直接批量改
  • 发布链路尽量短
  • 工程化能力要足够强

从这个角度看,NotionNext 并不算最合适的选择。 所以我最后把博客方案切换成了:

Obsidian 写作 + Codex 辅助 + VitePress 构建 + 阿里云 ESA 部署

这套组合用下来,最大的感受就是:AI 终于能真正参与博客生产,而不是只能帮我写一段文案。


为什么我觉得 NotionNext 不够顺手

NotionNext 的优点很明显:

  • 上手快
  • Notion 写作体验还不错
  • 对非技术用户友好
  • 主题和现成方案很多

但它的问题也很明显。

1. 内容不是"真正的源码资产"

虽然最终博客会生成静态页面,但平时写作的内容核心还是在 Notion 里。 这意味着:

  • 内容结构依赖 Notion block
  • 迁移成本不算低
  • AI 很难精确修改
  • 批量处理文章不方便

对于普通写作者,这可能不是大问题。 但对于开发者来说,这会越来越别扭。

因为开发者真正想要的是:

文章就是 Markdown 文件,文件就是资产,Git 就是版本历史。


2. AI 不适合改 block 型内容

现在很多人都在说 AI 写作很强,但这句话有个前提:

AI 最擅长处理的是"结构清晰、纯文本、规则明确"的内容。

Markdown 就非常符合这个特点。

Notion 的 block 结构更适合"编辑器体验",但不适合 AI 精细化地做这些事:

  • 批量补 frontmatter
  • 统一 tags
  • 统一标题层级
  • 修复图片路径
  • 自动生成归档页
  • 自动生成 RSS
  • 自动做 SEO 优化

这些操作一旦换成 Markdown 文件,Codex 的发挥空间会大很多。


3. 发布链路长,调试不够直接

NotionNext 的工作流通常会变成这样:

text
Notion
→ API 拉取内容
→ 转换
→ 构建
→ 发布

这个链路不是不能接受,但一旦哪一步有问题,排查起来就不够"源码直觉"。

而我更喜欢的是:

text
Markdown
→ Git
→ 构建
→ 发布

简单、明确、可控。


我最后选择的博客方案

最后我定下来的方案是:

text
Obsidian(写作)
+ Codex(生成、优化、批量处理)
+ VitePress(站点构建)
+ TailwindCSS(界面样式)
+ 阿里云 ESA(部署)

这套方案不是为了"追新",而是因为它刚好解决了我最在意的几个问题:

  • 写作要舒服
  • AI 要能参与
  • 页面要能改
  • 部署要简单
  • 后期要能持续扩展

为什么是 Obsidian,而不是继续用 Notion

我现在更愿意把 Obsidian 理解成:

本地 Markdown 写作 IDE

它最适合的地方,不是"知识管理有多强",而是它天然兼容 Git 和文本工作流。

对我来说,Obsidian 有几个好处

1. 写的就是 Markdown 源文件

这一点特别重要。

文章不是"同步出来的结果",而是从一开始就是博客源码的一部分。

2. 本地写作速度快

没有网络依赖,没有 block 层层嵌套,也没有复杂的内容同步。

3. 和 AI 配合更自然

我可以直接让 Codex:

  • 帮我扩写大纲
  • 帮我补 frontmatter
  • 帮我统一格式
  • 批量扫描 docs/posts/*.md
  • 自动生成标签页、分类页、RSS

这一套放在 Notion 里会非常拧巴,放在 Obsidian + Markdown 里就非常顺。


为什么是 VitePress,而不是其他博客框架

我不是没看过别的方案,比如 Astro、Rspress、Docusaurus。 但最后还是选了 VitePress,原因很简单:

它是我现阶段最稳、最轻、最适合 AI 改造的方案。

VitePress 最适合我的几个点

1. Markdown 驱动,非常适合博客

文章天然就是 Markdown,不需要额外心智负担。

2. 上手快

你不需要一上来就进入完整前端框架开发状态。 配置和目录结构都比较轻。

3. 支持 Vue 组件嵌入 Markdown

这点很关键。 它意味着首页、文章列表、标签页这些地方,我可以:

  • 继续写 Markdown
  • 但在需要的时候插入 Vue 组件

这让博客不会"死板",又不至于太重。

4. AI 很容易理解和修改

VitePress 的项目结构通常很清晰:

text
docs/
  .vitepress/
  posts/
  index.md
  about.md

Codex 非常容易理解这种目录结构,也很适合做批量修改。


为什么还要加 TailwindCSS

VitePress 默认主题是够用的,但如果你想把博客做得更像"自己的站",就需要做一层样式增强。

我最后没有选 Element 这种组件库,而是用 TailwindCSS,原因也很明确:

博客站的核心需求是"样式定制",不是"重型业务组件"。

博客真正需要的是:

  • 卡片列表
  • Hero 区
  • 标签样式
  • 分类区块
  • 深色模式兼容
  • 内容页细节优化

这些事情,TailwindCSS 比组件库更灵活,也更适合 AI 生成和修改。

对 Codex 来说,下面这种代码是很好处理的:

html
<div class="rounded-2xl border bg-white p-5 shadow-sm dark:bg-slate-900">
  ...
</div>

它比"套一层组件库 API 再二次改样式"更直接。


这套方案里,Codex 到底解决了什么问题

很多人说 AI 可以写博客,但我现在更在意的是:

AI 能不能参与整个博客工程,而不是只写段正文。

在这套方案里,Codex 最有价值的地方,不是"帮我凭空写一篇文章",而是能真正承担这些工作:

1. 生成文章初稿

我给一个主题和结构,它可以先出完整 Markdown。

2. 批量补 frontmatter

比如统一补:

  • title
  • description
  • tags
  • category
  • draft

3. 改博客模板

比如直接让它:

  • 增加标签页
  • 增加分类页
  • 增加 RSS
  • 增加评论系统
  • 增加搜索
  • 优化首页布局

4. 批量整理历史文章

像这些机械活,AI 非常适合:

  • 统一标题层级
  • 检查文章摘要
  • 修复路径
  • 过滤草稿
  • 归类标签

所以我越来越觉得,AI 对博客最大的价值,不是"代写",而是:

把博客从"手工维护"变成"可工程化维护"。


我现在的博客项目长什么样

我现在更倾向于这样的结构:

text
blog/
├─ docs/
│  ├─ .vitepress/
│  │  ├─ config.mts
│  │  ├─ data/
│  │  │  ├─ posts.data.ts
│  │  │  ├─ tags.data.ts
│  │  │  └─ categories.data.ts
│  │  └─ theme/
│  │     ├─ index.ts
│  │     ├─ style.css
│  │     └─ components/
│  ├─ index.md
│  ├─ about.md
│  ├─ posts/
│  ├─ tags/
│  └─ categories/
├─ scripts/
│  └─ gen-rss.mjs
├─ package.json
└─ esa.jsonc

这个结构最大的好处就是:

  • 文章层很清晰
  • 主题层很清晰
  • 数据层很清晰
  • 构建脚本很清晰

不管是我自己维护,还是让 Codex 介入,都不容易乱。


为什么部署选阿里云 ESA

部署这一层,我最后更倾向于选边缘静态托管,而不是继续折腾一堆中间环节。

VitePress 的产物本质上就是静态文件:

text
docs/.vitepress/dist

这意味着它非常适合直接部署到边缘 Pages 平台。

我现在更喜欢的链路是:

text
Git Push
→ ESA 自动构建
→ 边缘节点发布
→ 域名访问

这样做的好处是:

  • 不需要单独维护服务器
  • 不需要自己手工上传静态文件
  • 发布流程短
  • 静态站点和 CDN 模式天然契合

这和我想要的博客形态是匹配的:

博客应该轻、快、稳定,而不是再养一个服务端系统。


这套方案的真正优势,不是"新",而是"顺"

回头看这次切换,我觉得最大的收获不是换了工具,而是整个博客链路终于顺了。

以前更像是:

  • 我在内容平台里写
  • 再想办法同步成博客
  • AI 只能帮一点点局部内容

现在变成了:

  • 我在 Obsidian 里直接写 Markdown
  • Codex 可以直接读写文章和站点代码
  • VitePress 直接构建
  • ESA 直接发布

整条链路都更贴近"开发者工作流"。

这时候 AI 才不再是一个"会聊天的辅助工具",而是真的成了项目协作者。


适合谁用这套方案

如果你符合下面这些情况,这套方案大概率会比 NotionNext 更适合你:

  • 你本身就是开发者
  • 你愿意把博客当成代码仓库维护
  • 你希望 AI 能参与批量处理和工程化工作
  • 你想要更高的页面可控性
  • 你不想让内容绑定在某个平台结构里

反过来说,如果你更看重的是:

  • 零门槛
  • 完全不碰代码
  • 团队协作式文档编辑
  • 所见即所得编辑体验

那 Notion 系方案依然有它的合理性。

所以这不是谁一定更高级,而是:

你到底是把博客当"内容平台",还是当"可维护的项目"。


我接下来会继续补的东西

目前这套方案已经能满足日常写作和发布,但还有几个方向很值得继续补:

1. Pagefind 搜索

让博客具备静态全文搜索能力。

2. sitemap 和 SEO 细节

方便搜索引擎收录和社交平台展示。

3. OG 图自动生成

让每篇文章都能有更统一的分享封面。

4. Obsidian 模板 + Codex Prompt 模板

把"写一篇博客"进一步流程化。

这些东西一旦继续补齐,这套博客就不只是"能用",而是真正能长期维护。


最后的结论

我不是单纯因为 NotionNext 不好,才转向这套方案。

更准确地说,是因为当我开始真正把 AI 纳入日常写作和站点维护之后,我发现:

Markdown、Git、静态站点、可脚本化,这些东西的重要性一下子被放大了。

所以最后我选择了:

  • Obsidian 负责写作
  • Codex 负责生成、整理、改造
  • VitePress 负责构建
  • TailwindCSS 负责样式
  • ESA 负责部署

这套方案未必适合所有人,但对一个希望把博客做成"长期项目"的开发者来说,它确实比 NotionNext 更舒服,也更适合 AI 时代。

如果你也正在折腾博客,而且已经开始用 Codex、Claude Code 这类工具,那我很建议你试一次:

把博客彻底 Markdown 化、Git 化、工程化。

你会发现,整个写作和发布过程都会轻很多。

Last updated: