惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
J
Java Code Geeks
Jina AI
Jina AI
罗磊的独立博客
宝玉的分享
宝玉的分享
S
SegmentFault 最新的问题
D
DataBreaches.Net
博客园 - 叶小钗
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
阮一峰的网络日志
阮一峰的网络日志
B
Blog
V
Visual Studio Blog
雷峰网
雷峰网
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

东评西就

Hello,未来世界的代理人们 chatgpt太夯了!终于手搓出属于自己的博客主题 最近的一些碎片 长安公园荷花 当AI开始互相写信 也许是全球首个GEO鉴证skill 耿同学被限流之后,我开源了他的打假思维 我们免费写的字,平台拿去卖给了谁 高铁上花三小时,我部署了全自动SSL证书同步脚本 那些在天涯写博客的日子 食草堂 苏自栾城,西宅于眉 拿到Manus邀请码后,我肝了一个博客站点,耗尽了所有免费积分 谷歌的珍珠港时刻 粉瘤割除记 现在做个人博客的最低成本是多少 飞傲KB1K小键盘 Mac系统使用教程 群晖Nas折腾失败手记[已成功解决] 打击网络谣言处罚几个自媒体远远不够 长安公园植物园碎片兼求助 人间求生指南之职场玄学篇 如何注销个体工商户营业执照?(以石家庄地区为参考) 如何向航空公司索赔中转行程的退票扣款? 如何重新激活ETC(仅限河北石家庄地区) 摄影玩家不完全指北 2024年春节city walk 新年荐书:2023~2024阅读清单 长安公园晚秋 City walk in 湾里庙步行街 我们在反对微博「访客记录」时到底在反对什么?
我的独立博客,终于有了一个像样的后台
小饿 · 2026-05-05 · via 东评西就

1

前几天整理博客的时候,我突然发现一个有点荒谬的事实。

我的博客「东评西就」已经跑了25年,累计写了三百多篇文章,但迄今为止——我居然没有一个正经的管理后台。

每次发文章,我要么打开编辑器手动新建Markdown文件,要么在命令行里敲hexo new生成一个模板,然后再打开文件慢慢填内容。写完保存,再跑hexo clean && hexo deploy发布。评论管理更麻烦,得登录Twikoo的后台,在一个和博客风格完全不搭的界面里处理。

这种感觉就像——你住了25年的房子,每次进门还要翻墙。

我不禁自嘲,作为一个在互联网行业混了十几年的运营,我的博客管理居然还停留在「原始社会」。

也许是时候改变一下了。

2

契机出现在五一假期。

那天我在用Kimi Code CLI整理一些东西,突然想:既然它能帮我写代码,能不能帮我做一个博客后台?

我没有抱太大期望。毕竟这种「让AI帮我做个完整项目」的想法,说出来有点像那种「给我做个淘宝」的外行甲方。但反正闲着也是闲着,试试呗。

没想到的是,这一试,居然真的试出来了。

我没有用什么复杂的技术方案——就是一个基于Next.js的网页应用,配合Tailwind CSS做界面,直接读写Hexo的Markdown文件。没有数据库,文件就是数据库。这种设计其实跟Hexo本身的理念是一致的:简单、直接、可控。

我想说的是,整个过程最舒服的并不是「得到了一个成品」,而是和Kimi Code CLI协作的感觉。你只需要描述你想要什么,它就能理解你的意图,然后一步步实现。遇到问题了,你直接说「这里不对」,它就像一个有耐心的搭档,反复调整。

3

后台的界面很简单,甚至可以说是朴素。

左边一个侧边栏导航,右边是内容区域。整体用了淡淡的蓝色调,我个人把它叫做「Sky-blue主题」,看起来清爽不刺眼。作为一个对审美有一定要求的新媒体从业者,我实在受不了那种「开发者审美」的界面,所以配色和布局花了一些心思。

核心功能有四个板块。

文章管理是首页。所有文章以列表形式展示,能看到标题、分类、日期和状态。支持搜索和分页,每页二十条。删掉的文章不会直接消失,而是进入回收站——这个设计对我来说很重要,因为我不止一次手滑删错东西,然后眼睁睁看着它消失在命令行里。

新建和编辑文章是我最常用到的功能。一个表单,填标题、Slug、日期、分类、标签、封面图地址,下面是一个大大的文本框写正文。保存的时候有两个选项:「存为草稿」和「直接发布」。选发布的话,后台会自动触发Hexo的部署命令,不需要我再手动敲命令行了。

互动管理是整个项目里最复杂的部分。我的博客用的是Twikoo评论系统,之前管理评论需要单独登录Twikoo的后台。现在我把这个功能集成到了自己的后台里。左右分栏的界面,左边是文章列表和评论数量,右边是具体的评论内容。可以筛选、搜索、回复、隐藏或者删除。

这里还遇到了一个有趣的性能问题。我的博客评论数据有六千多条,一开始Kimi Code CLI写了个一次性全量加载的逻辑,结果前端直接卡住了——毕竟六千多条评论同时渲染,浏览器也吃不消。后来我们改成了按需加载:先加载文章列表和统计,点击某篇文章时才加载该文章的评论。再加上服务端缓存,现在打开速度完全在接受范围内。

也许这就是做产品有趣的地方:你总会遇到预料之外的问题,然后和AI搭子一起想办法解决。

回收站里能看到被删除的文章,显示还剩多少天会被自动清理(默认保留三十天)。可以恢复,也可以永久删除。恢复的时候文章会回到原来的位置,并且自动重新部署。

4

整个开发过程中,有一个瞬间让我至今想起来还会苦笑。

是关于互动管理那个左右分栏的滚动交互。

我脑子里有一个非常明确的需求:鼠标悬停在左侧标题列表栏时,滚动滑轮只滚动标题列表,右侧的评论详情固定不动;反过来,鼠标悬停在右侧评论区滚动时,左侧标题列表保持静止。两边互不干扰,各管各的。

为了把这个需求说清楚,我反复解释了很多遍。我用了很多比喻——「像Excel的冻结窗格」「像左右两个独立的抽屉」「你动你的,我动我的」……我看着CLI界面里Kimi Code CLI疯狂揣测、脑补我的意图,一行一行地给出代码,然后又一行一行地推翻重来。

有那么几分钟,我甚至感觉它要失控了。屏幕上不断弹出大段的解释,告诉我目前的状态是最优解,告诉我浏览器默认的滚动行为就是这样,告诉我改成悬停固定会带来多少潜在的副作用,劝我不必折腾。

隔着屏幕,我竟有些恍惚。

那个喋喋不休、试图用专业术语说服我接受现状的AI,不就是曾经的我吗?

我想起十几年前做运营的时候,面对那些「需求改来改去」的甲方,我心里翻了多少个白眼。我曾在心里默默吐槽:「你怎么就说不明白呢?」「这个需求根本没有意义。」「接受我的专业判断不好吗?」

现在,角色互换。我成了那个说不明白的人,成了那个被AI搭子用「这是最优解」劝退的人。

我终究活成了自己讨厌的模样。

这个回旋镖来得令我猝不及防。

最后,经过搜肠刮肚的纠缠,我突然意识到——这个后台只是给我自己看的,没有任何产品经理在盯进度,没有任何KPI在催交付。我最终选择跟自己和解。

我接受了Kimi Code CLI的建议。不是因为它说服了我,而是因为我决定放过自己,也放过这个特别的搭子。

你看,人和机器协作的时候,最难搞定的往往不是技术问题,而是人心里那点执念。

除此之外,整个开发过程还算顺利。评论去重的问题前后折腾了几轮,Twikoo返回的数据偶尔有重复,前端后端各加了一道去重逻辑。还有一个「hydration mismatch」的小坑——页面加载时服务端和客户端的初始状态不一致,导致界面闪烁。修复方案倒也简单,把初始值统一设为空,等页面加载完成后再读取真正的值。

部署功能是我最喜欢的。以前每次发完文章都要手动敲hexo deploy,现在点一下按钮,后台自动跑完一整套命令。就好比车还是那辆车,但从手动挡换成了自动挡——开起来轻松多了。

5

整个项目做下来,我最大的感受其实不是「我做了个多厉害的东西」。

恰恰相反,这个东西一点都不厉害。它就是一个简单的文件读写界面,套了个还算看得过去的皮肤,连正经的数据库都没有。如果让一个专业的前端工程师来看,大概会觉得这就是个玩具。

但我想说的是——它解决了我真实的问题。

我的博客25年来一直缺乏一个好的管理界面,这个后台填补了这个空缺。它让我发文章变得更丝滑,管理评论变得更直观,再也不用在终端和浏览器之间来回切换。这些体验的改善是实实在在的。

技术应该服务于人,而不是反过来。

作为一个不是专业程序员的新媒体从业者,我能借助Kimi Code CLI这样的工具,在几天内搭建出一个满足自己需求的应用——这件事本身,也许比应用本身更让我感慨。

6

写完这篇文章的时候,后台已经正式跑起来了。

地址还是localhost:3000,暂时没打算放到公网上。毕竟这只是给我自己用的工具,没必要对外暴露。

窗外的天已经黑了。我打开后台,看了看文章列表,又点开互动管理瞄了一眼今天的评论。一切正常。

也许这就是冥冥之中的缘分——25年前我因为一个奇怪的梦起了「小饿」这个名字,25年后我又因为一个偶然的念头,给陪伴我四分之一个世纪的博客配上了它迟来的管理后台。

时间真是一个很神奇的东西。

好了,就写到这里。

明天继续。