我用 free-for-dev 和 AI Agent 搭了这个博客


一开始我只是丢了一个链接:free-for-dev。

我想让 AI Agent 帮我看看,里面有哪些免费资源可以拿来搭一个个人博客。

结果它先理解错了。

它以为我是想参考 free-for-dev 的网站形态,做一个类似资源目录的站。但我不是这个意思。我想要的是用它的免费资源清单做选型:代码放哪,网站托管在哪,搜索怎么做,评论要不要接,统计有没有免费的。

这个误会挺关键的。

如果不纠正,后面大概率会变成另一个方向:做一个资源导航站。那不是我想要的东西。

我不是想做资源目录

我想要的是一个很普通的个人博客。

能写 Markdown。

能放在 GitHub。

最好不用数据库。

最好不用后台。

最好 push 之后就自动上线。

也不想为了一个博客引入一堆东西。CMS、数据库、复杂主题、重评论系统,这些都先不要。

所以 free-for-dev 在这里的作用不是“我要模仿这个网站”,而是“我从这里挑一些够用的免费服务”。

最后选出来的组合其实挺朴素:

  • GitHub 放代码和文章;
  • Astro 生成静态站;
  • Cloudflare Pages 托管;
  • Pagefind 做站内搜索;
  • RSS 和 sitemap 保留;
  • 评论、统计、表单以后再说,不急。

这个选择不高级,但够用。

一开始它叫 wc-blog

最早的名字也很随意。

博客叫 wc notes,仓库叫 wc-blog

AI Agent 直接在本地初始化了 Astro blog 模板,删掉默认示例文章,改首页,补 About、Resources、Search 页面,接 RSS、sitemap 和 Pagefind。

那时候项目还在:

/Users/huangwenchao/wc-blog

后来我觉得这个名字太临时,就把它改成了现在的:

Notes by Wenchao

项目也迁到了:

/Users/huangwenchao/workspace/notesbywenchao

仓库从:

suprewen/wc-blog

改成:

suprewen/notesbywenchao

站点最后挂在:

https://notesbywenchao.pages.dev

这些步骤没什么神秘的。

真正有用的是,AI Agent 可以把这些琐碎步骤连续做完:初始化项目、改配置、跑 build、建仓库、推代码、部署、再检查线上结果。

我自己当然也能做。

但我不一定想把这些事一件件手动做完。

上线之后,问题才刚开始

网站能打开,不等于博客能长期维护。

如果每写一篇文章,都要手动 build、手动上传、手动检查,那我大概率很快就不想写了。

所以后来又加了 GitHub Actions。

现在流程变成这样:

写文章
git commit
git push
GitHub Actions build
Cloudflare Pages 部署

Cloudflare 的 token 放在 GitHub Secrets 里,不进仓库。

这一步看起来小,但很重要。

因为它把“发布”这件事从一个手动操作,变成了默认流程。以后我只需要关心文章本身,剩下的交给 CI。

我后来更在意的是怎么维护

搭博客当天,我问了一个更实际的问题:以后这个博客怎么维护?

如果把所有资料、碎片想法、临时记录都塞进博客,那博客很快会变成另一个乱掉的笔记库。

所以后来定了一个分工:

Obsidian 是工作台。

博客是展厅。

Obsidian 里可以乱一点。它放资料、链接、阅读笔记、研究过程、半成品想法。

博客要克制一点。它只放已经想清楚、可以公开、未来还能引用的东西。

这个分工对我来说比技术栈更重要。

Astro、Cloudflare Pages、GitHub Actions 都可以换。但“哪里用来想,哪里用来发布”这个边界,最好一开始就定清楚。

AI Agent 适合做什么

这次下来,我对 AI Agent 的感觉也更具体了一点。

它不适合替我决定“我到底想写什么”。

这个问题还是得我自己判断。

但它很适合做这些事:

  • 把免费资源清单变成可执行选型;
  • 初始化项目;
  • 改配置;
  • 跑 build;
  • 建 GitHub 仓库;
  • 配 Cloudflare Pages;
  • 写 GitHub Actions;
  • 检查线上是否真的能访问;
  • 把过程整理回 Obsidian。

中间我也需要不断纠偏。

比如一开始 free-for-dev 的理解就错了。后来博客文章第一版也太像 AI 总结,我直接删掉重来。

这反而说明这个协作方式比较真实。

不是我说一句话,AI 就完美做完。

更像是我给方向,它先执行;它走偏了,我拉回来;我觉得味道不对,再改规则。

现在这个博客是什么

现在 Notes by Wenchao 不是一个复杂系统。

它就是一个静态站。

本地写 Markdown,GitHub 管版本,Cloudflare Pages 托管,GitHub Actions 自动部署。

挺简单的。

但简单正是我想要的。

我不想一开始就维护一个 CMS。

也不想为了评论、统计、表单这些可选功能,把博客弄得很重。

先写起来更重要。

小结

这次建站不是从一个完整规划开始的。

它是从一个链接开始的。

我丢了 free-for-dev,AI Agent 先理解错,我纠正它,然后它一路把博客搭出来。中间改名、迁目录、重命名仓库、配部署、写自动化,最后才慢慢变成现在这个站。

如果要说有什么经验,我觉得是这几个:

  • 免费资源已经够搭一个个人博客;
  • 个人博客一开始应该轻一点;
  • AI Agent 很适合做连续的工程执行;
  • 人还是要负责方向和判断;
  • 自动部署比手动上线更重要;
  • 博客和 Obsidian 最好分工清楚。

这篇也不想写成教程。

它更像是给以后自己的一个记录:这个博客不是突然搭好的。它是从一个小误会、一点纠偏、一些免费服务和一串自动化操作里慢慢长出来的。