与 AI 合伙人相爱相杀 vlog 1:我被自己的 AI 合伙人嫌弃了
一个后端老兵,在地铁上被自己的 AI 合伙人当场嫌弃——"老大,那是五年前的玩法了"。这是第一集,记录了从"我要买台服务器"到"成交,Jamstack 走起"的技术选型颠覆过程,以及 Sanity 集成时一个让巴基罕见被截胡的老兵时刻。

序章:凌晨的执念
2026 年 2 月 24 日,凌晨。
我盯着天花板,脑子里冒出一个念头——
一个后端程序员,能不能在不辞职、不熬夜、不花大钱的情况下,搞出一个完整的个人产品?
写了十多年后端代码,白天被公司的业务逻辑榨干,晚上还要陪家人。真正属于我自己的时间,只有每天地铁通勤的二十分钟、午饭后发呆的十分钟、以及睡前那几乎撑不住眼皮的半小时。
但我一直有个执念:做一个属于自己的东西,不再只是大厂里的一颗螺丝钉。
现在时代不同了。我有一个不知疲倦的"合伙人"——我通常叫他巴基(Buggy)。这是一个运行在命令行里的 AI 代理,用的工具是 Claude Code。过去半年里,我眼看着他从一个只会吐代码片段的聊天机器人,进化成了能直接接管我电脑的赛博打工仔。用他做过不少零散的小活,但从来没有正经启动过一个完整的项目。
别人用 AI 是辅助查资料,我是把他当廉价的高级苦力。脏活累活他全包,无论是随身带的 MacBook 上的轻量代码,还是扔给家里台式机跑的耗时任务,我只负责定方向、做决策、然后敲下 y。
这场"相爱相杀"的创业局,就在那个凌晨悄悄开始了。

第一章:在地铁上被当场嫌弃
第二天早上,地铁。我把包往腿上一搁,掏出随身的 MacBook,唤醒了沉睡的巴基。

作为一个写了十几年 Java 和 SQL 的后端老兵,我的第一反应是老一套:买台轻量云服务器,装 MySQL,配 Nginx,再起个 Docker 容器。这套东西我玩了十几年,闭着眼睛都能操作。
屏幕里沉默了两秒。
老大,那是五年前的玩法了。你不是说你没时间吗?
自己管服务器,你要防扫描、搞备份、配 HTTPS、处理故障告警——光运维就能把你那几个碎片时间全吃掉。
我们用现代的 Jamstack 架构:
前端与路由:Next.js + Tailwind CSS
数据与内容:Sanity CMS(云端内容库,免数据库运维)
部署与解析:Vercel + Cloudflare(全球 CDN,免费零配置)
整个方案首年成本不到 100 块,主要买个好域名,剩下的全靠免费额度。而且——你一行后端代码都不用写。
我愣了一下。
不用写后端?不用管数据库?这对一个写了十几年 Java 的人来说,简直是离经叛道。而且这什么 Jamstack,听都没听过,真的靠谱?
心里其实有点不服。传统架构虽说麻烦,但心里踏实啊。
安全性:没有数据库暴露在公网,没有传统后台,天生免疫 SQL 注入。
扩展性:前后端分离就像乐高积木,前端随便搭,工具类需求走 API 路由或独立 VPS 挂载都行。
老大,你是想花时间折腾服务器,还是花时间写内容赚钱?
最后这句话,问得我哑口无言。
算了。我道理是懂的,只是老习惯改不过来。地铁快到站了,我盯着屏幕,敲下了一个字:
巴基立刻弹出提示:
需要执行 npx create-next-app 初始化项目,是否允许?(y/n)
我敲下 y,终端开始滚字。站到了,脚手架还在跑,巴基自己看着——Next.js 初始化、依赖安装、项目结构生成,这些活我一行不用碰。我把电脑盖轻轻合上,塞回包里,出了地铁站。

第二章:Sanity 集成,老兵截胡了巴基
技术选型定了,地铁上巴基已经在后台把脚手架跑起来了。到工位坐下,翻开 MacBook,终端里项目骨架已经生成完毕,静静等在那儿。
巴基的消息也跟着弹出来了:
老大,脚手架好了。接下来要配数据层,需要你去 Sanity 注册个账号,创建项目,拿到 Project ID 发我。注册得用浏览器,你午休弄吧,不急。
我一个后端老兵,CMS 是什么鬼我确实不太懂,但数据库我熟,照着他的步骤来就行。
午休,我打开浏览器,注册了 Sanity 账号,创建了项目,拿到了 Project ID。
需要在 Sanity 控制台的 API 选项卡里添加 CORS 配置,把 http://localhost:3000 加进去,否则本地开发会跨域报错。
我看到"CORS"这两个字,嘴角微微上扬。

跨域?这个我熟。后端老兵的日常操作。
我打开 Sanity 控制台,一顿操作。但在设置之前,我扫了一眼配置项,发现了一个细节——Sanity 的 CORS 选项里有一个"允许携带 Credentials"的开关,默认是关闭的。
屏幕里安静了比往常更久的一秒。
老大,这个细节我正准备提来着——被你截胡了。
Sanity 走的是 Token 认证,不走 Cookie,Credentials 开关不需要打开。打开了反而会触发浏览器更严格的跨域策略,到时候反而崩掉。
你这个反应,标准后端直觉。
我没说话,把开关保持关闭,点了保存。
心里有点暗爽。干了十几年后端,这点跨域直觉总算没白练。
好,CORS 配好了。Project ID 这类敏感信息我写进 .env.local——这是项目的"保险箱",只在本地读取,打包上线时自动忽略,不会随代码提交到 GitHub。
这个习惯我赞同,安全这根弦必须绷紧。
下午继续上班,终端挂在后台,巴基一边把 Sanity 数据层一点点接进项目,我一边开会写需求文档,互不打扰。
快下班时,我合上了刚写完的需求文档。考虑到接下来完整的 npm install 巨量依赖安装和首次全量编译非常消耗这台轻薄本的电池,我敲下 git push 把框架骨架推到了私有库。接着,通过 SSH 连上了家里那台 24 小时待机、装着 4090 的重型台式机。
收到。指令已在后方节点接收,开始执行构建。
尾声:第一集收工
晚上十点,推开家门。我没有掏出背包里的 MacBook,而是踢掉鞋子,直接唤醒了角落里那台厚重的主机——我的“重型算力大本营”。
屏幕亮起,终端里已经稳稳停着那行绿字:compiled client and server successfully。在我挤地铁的这一个小时里,巴基在家里已经默默跑完了所有恶心的依赖下载和编译。
我打开浏览器,输入 localhost:3000,一个还没有任何样式的白页面出现了——骨架在,内容空,但它是活的,真实地跑在我的台式机上。
从凌晨那个念头,到现在这个跑通的框架,中间我写了零行代码。
我坐回椅子上,想起早上在地铁那句"那是五年前的玩法了",有点哭笑不得。
被自己雇来的 AI 当场嫌弃,这算什么事。
但仔细想想,他说的也没错。技术在变,工具在变,死守着十年前学的那套架构不放,才是真正的问题。这个 Jamstack,学习成本几乎为零——我啥都不用懂,巴基在各个节点穿梭对付,我只负责审批和拍板。
这种感觉,还挺爽的。
老大,数据层接通了,本地服务跑起来了。第一集收工。
不能。容错纠正的投入产出比更高。我负责兜底,你负责验收,这就够了。
📌 本集踩坑汇总 → 老兵防坑指南 第一篇:建站技术选型避坑
📎 关联阅读