我不是在建一个网站,我是在养一个系统
这次聊天最开始,其实只是一个很小的念头。
我原本只是想把 Gmail 通过 API 接到 LMN516 的管理后台里,这样看验证码方便一点。
结果 GPT 当时没有顺着“验证码中心”继续往下做,而是提醒了我一句:
既然已经能读邮件了,为什么不直接把它升级成一个完整的邮件中心?
它给我画了一个很简单的结构:
Gmail
│
│ OAuth 2.0
▼
┌───────────────┐
│ Gmail API │
└───────┬───────┘
│
┌─────────────┼─────────────┐
│ │ │
▼ ▼ ▼
收邮件 操作邮件 发邮件
list / get read/star send/reply
│ │ │
└─────────────┼─────────────┘
▼
LMN516 Backend当时我一下子就觉得,这个思路是对的。
因为最开始我脑子里其实有一个很固化的想法:Gmail 好像就是那个网页,或者那个 App。我要发邮件,就得去 Gmail;我要收邮件,也得去 Gmail。
我几乎没有认真想过:Gmail 其实只是一个服务,而网页和 App 只是它自己的官方界面。
后来我突然想到,那 Apple Mail、Outlook、Spark 这些又不是 Gmail,为什么它们一样能收 Gmail、发 Gmail?
GPT 又画了一张图:
Gmail 网页 / Gmail App
│
▼
Gmail 服务
▲
│ API / OAuth
│
Apple Mail
Outlook
Spark
第三方邮件 App
LMN516我看到这里,那个原本很固化的理解就松开了。
原来不是“我必须进入 Gmail 才能使用 Gmail”,而是“只要 Gmail 把能力开放出来,我自己的系统也可以成为一个 Gmail 客户端”。
这时候我开始觉得,LMN516 完全可以有自己的邮件中心。
最开始只是:
Gmail → 找验证码 → LMN516但很快就变成了:
Gmail
│
▼
LMN516 邮件中心
↙ ↓ ↘
阅读 搜索 发送
↘ ↓ ↙
我而且这个变化不是 GPT 在替我“升级需求”,而是我自己开始顺着这个结构继续往下想。
如果 Gmail 都可以这样,那我的域名呢?
聊到这里,我突然想到了 lmn516.com。
我本来就有自己的域名邮箱地址,比如 hello@lmn516.com。现在它只是做转发:别人发到这个地址,邮件最后还是转到我的 Gmail。
但它并不是一个真正独立的邮箱。
我突然意识到:既然邮箱客户端可以自己做,那我是不是连自己的邮箱体系也可以慢慢做?
这里 GPT 帮我把“邮箱地址”和“邮箱服务”分开了。
我拥有的是:
@lmn516.com这个命名空间是我的。
但“拥有域名”并不等于自动拥有一套邮件服务器。
现在其实更像:
lmn516.com ← 我的
│
hello@lmn516.com ← 地址由我定义
│
▼
邮件转发服务
│
▼
Gmail ← 真正邮箱如果以后要自己发信,也不一定非要自己从头搭一整套全球邮件投递系统。
可以借用已经成熟的 SMTP Relay。
GPT 当时用一个我很容易理解的比喻:
我的域名 = 我的车牌
LMN516 = 我的驾驶室
邮件正文 = 我的货物
SMTP Relay = 高速公路 + 物流网络这一下我就明白了。
“拥有系统”不等于“每一层基础设施都必须自己造”。
这和我们现在的网站其实已经很像了:域名是我的,代码是我的,界面是我的,数据和业务逻辑越来越是我的,但 DNS、CDN、数据库托管、邮件投递这些底层设施完全可以继续租用成熟服务。
所以短期最合理的方案反而很清楚:
收 Gmail
→ Gmail API
发 @lmn516.com
→ SMTP / 邮件发送服务
邮件统一管理
→ LMN516 Mail
提醒
→ LMN516 PWA Push这时候我又想到 PWA。
如果邮件中心和我们现在已经有的 PWA Push 接起来,那就不只是“网站里可以看邮件”了。
它可以变成:
新邮件到达
↓
LMN516 判断
↓
是不是重要邮件?
│
├── 普通广告 → 不通知
├── 验证码 → 直接 Push 验证码
├── 工作邮件 → Push 提醒
└── 垃圾邮件 → 忽略这就比 Gmail 自己的“有新邮件”更接近我真正需要的东西。
我突然发现,我的网站其实一直是这样长出来的
聊邮件聊到这里,我又回头讲起了 LMN516 的演化史。
之前 GPT 有一次把我的历史理解错了,它以为我是从一个 HTML 页面开始,然后慢慢加越来越多页面。
其实不是。
最早我确实做过一个特别简单的 HTML 页面。
就是一个单页。
我当时甚至不知道怎么在这个页面以外再多开一个页面。
我只会把电脑里的 HTML 上传到服务器,然后做了一个小功能:页面上的时间会自动变化,还加了农历。
这个页面现在还在,而且居然一直正常运行。
但当时我很快就撞墙了。
阶段 0:单页 HTML
────────────────
电脑里一个 HTML
↓
上传服务器
↓
只有一个页面
↓
动态日期 + 农历
↓
不会继续扩展页面
↓
能力撞墙所以后来我干脆说,算了,我能力不够,那就用 WordPress。
我当时还经历了一个理解过程:WordPress 不是只有“买它的服务”这一种方式,它本身也是开源系统,可以自己部署。
我们当时用的就是自己部署的开源 WordPress,没有给 WordPress 付钱。
这一步现在回头看也挺重要。
因为我第一次知道:
别人的系统,不一定只能作为服务去买,我也可以把开源版本拿回来自己运行。
后来就进入换主题阶段。
我换过很多皮肤,最后发现其实都差不多。
最后用了一个很简约的白色卡片式主题:一个文章,一个卡片,再点进去看文章。
当时我还觉得网站打开很快是个优点。
但现在回头看,那时候所谓的“动态”,也就是我发一篇文章,首页多一个卡片而已。
没有后台逻辑,没有碎碎念,没有小泡泡,也没有今天这些系统能力。
然后才慢慢迁移到 Next.js。
这应该算第一次很大的跨越。
一开始到了 Next.js,我其实还是在“模板思维”里面。
GPT 给我一个结构,我就在上面改。
很多时间都花在样式、布局、颜色、卡片这些东西上。有时候花了很多时间,也未必真的改得更好。
后来慢慢开始出现真正复杂的东西。
小泡泡、后台、个人登录、PWA、环境变量、Vercel 线上环境、数据库……
我现在回忆起来,凡是开始牵涉 .env、Vercel 环境变量、线上和本地不一致的时候,就会明显变难。
因为那时候已经不是单纯改页面了。
它开始变成:
本地
↓
.env
↓
Vercel Environment
↓
API
↓
数据库
↓
线上运行从那时候开始,LMN516 才真正从“网页”慢慢进入“系统”。
Bongiba:第一次改变“怎么开发”
后来又出现了一次很有意思的变化。
最开始,我想到一个需求,就改一个;改完一个,再改下一个。
后来为了省事,尤其我有时候人在外面,只拿手机,我开始一次说很多需求,然后让 GPT 分成几个 Bongiba。
等我回到电脑,再通过命令行一个个上线。
它解决了一个很现实的问题:
我不需要坐在电脑前才能提出和推进需求。
但后来它也暴露了一个问题。
有一次我一次说了八个需求,里面有几个样式我不喜欢。
我想回滚的时候,发现很乱。
因为几个 Bongiba 是连着的,一个包里面可能既有我想要的,也有我不想要的。
我当时对命令行也不熟,最后甚至回不到我真正想要的那个界面。
这个失败后来反而变成下一次跨越的来源。
Skill:不是为了“多改一点”,而是为了让改动有边界
昨天晚上我突然想到,我们是不是应该有一个专门的 Skill,先把我说的一堆问题梳理、编号、编排。
最开始它只是想解决:
我说一堆问题
↓
帮我梳理
↓
编号
↓
编排但它很快又演化了。
现在已经变成:
语音需求
↓
拆 Atomic Issues
↓
确认真正意图
↓
问题编号
↓
依赖关系
↓
Patch 编排
↓
风险排序
↓
执行
↓
验证
↓
Git commit
↓
部署
↓
可追踪 / 可回滚我这才发现,我们真正解决的已经不是“怎么一次改更多东西”,而是:
怎么让很多改动同时发生时,仍然保持边界。
之前是:
一批改动 = 一个包现在慢慢变成:
一批改动
│
├─ Issue A
├─ Issue B
├─ Issue C
│
├─ Patch 1 → A+B
├─ Patch 2 → C
│
└─ Git anchor这也是为什么我现在越来越敢说“放开手去做”。
因为真正让我放心的不是 AI 能写多少代码,而是这个过程开始有结构、有追踪、有回滚。
我跟 AI 的关系也变了
这次聊到 AI 建站,我又想到另外一个区别。
现在有很多 AI 建站工具,你说一句需求,它就很快给你生成一个网站。
这个效率当然很高。
但我越来越觉得,我们现在做的事情和“AI 建站”还是不太一样。
AI 建站更像:
“我要一个个人网站”
↓
AI 理解需求
↓
生成页面
↓
完成而 LMN516 更像:
我 ↔ AI
↓
真实使用
↓
发现摩擦
↓
产生新想法
↓
讨论
↓
改系统
↓
继续使用
↓
又出现新的可能
↺所以我后来很喜欢 GPT 给我的一句总结:
AI 建站是在帮人“造一个网站”;我们现在更像是在一起“养一个系统”。
我觉得这句话很接近现在 LMN516 的状态。
因为很多需求根本不是一开始就存在的。
比如今天,最开始真的只是:
我想看 Gmail 验证码然后一路长成:
验证码
↓
Gmail API
↓
邮件中心
↓
发邮件
↓
自己的域名邮箱
↓
SMTP
↓
统一邮件管理
↓
PWA 智能通知
↓
个人通信中心如果一开始我只是对一个 AI 建站工具说“帮我做一个个人网站”,它不可能凭空替我生成这一整条路径。
因为这些需求不是预先设计出来的。
它们是在我真的使用这个系统、遇到摩擦、和 GPT 对话、再继续往前想的过程中长出来的。
外部系统开始进入 LMN516
聊到 Gmail 之后,我又想到以后还可以把 Apple 设备、Mac 的复制内容接进来。
比如剪贴板。
以前复制的内容只是短暂存在设备里。
但如果通过快捷指令或者 API 进入 LMN516:
iPhone / Mac
↓
复制内容
↓
快捷指令 / API
↓
LMN516
↓
自己的数据库那它就从一个临时动作,变成真正属于我的数据。
这和 Gmail 看起来是两件完全不同的事,但底层其实很像:
外部来源
▲
│
│ API
│
LMN516
▲
│
我现在我越来越能看到,LMN516 以后可能不只是一个个人网站。
它正在慢慢变成一个个人控制中心。
LMN516
│
┌─────────┼─────────┐
▼ ▼ ▼
Gmail Apple GitHub
│ Devices │
Mail API Copy API Code
│ │ │
└─────────┼──────────┘
▼
个人控制中心我真正需要保留的,也许不是“灵感”,而是这种生长过程
这次聊天中间,我一度还在想是不是应该给 LMN516 加一个“灵感库”。
因为我很多想法只想到一半,会写在纸上,但后来可能找不到。
当时我们把它想成:
生活
↓
灵感
↓
灵感库
↓
讨论 / 推演
↓
Issue
↓
实现
↓
LMN516但聊到最后,我又觉得这次已经不只是一个灵感了。
它更像一次完整的思考过程。
我原本只是想解决一个很小的问题,中间不断被新的结构刺激,然后又联想到自己过去怎么建站、为什么会从 WordPress 走到 Next.js、为什么会从 Bongiba 走到 Skill、为什么现在又开始想把 Gmail、Apple、GitHub 这些外部系统接进 LMN516。
我甚至发现,我过去那些“走弯路”的阶段也不是没意义。
如果没有最早那个单页 HTML,我可能不会知道一个网页最基础的东西是什么。
如果没有 WordPress,我不会那么早理解“开源系统可以自己部署”。
如果没有主题阶段,我可能不会那么明确地感觉到“只换皮肤没有什么意思”。
如果没有 Next.js 初期那些抓小放大的样式修改,我也不会那么明显地感觉到页面和系统是两回事。
如果没有 Bongiba 那次回滚混乱,我可能也不会突然想到,真正需要的是把问题拆开、编号、追踪、回滚。
所以现在回头看,LMN516 的根基不是某一次架构设计得有多完美。
而是它经历了一层一层真实的问题。
真实使用
↓
遇到问题
↓
产生想法
↓
和 AI 讨论
↓
形成结构
↓
做出来
↓
继续使用
↓
再遇到新的问题它不是被一次性设计出来的。
它是长出来的。
而我现在越来越确定,我喜欢的也正是这个过程。
我不一定有很强的代码能力,但我会不停地想:
为什么不能这样?
如果已经能做到这一步,为什么不再往前一步?
这个能力能不能不只属于某个 App,而是回到我自己的系统?
有时候我只想到一半。
然后 GPT 会给我一个角度、一张图、一个结构。
我再看着它继续想。
现在的 LMN516,就是这样一点一点长到这里的。
