构建我们的更新 CMS:当你为发布而构建,而非为规划

构建我们的更新 CMS:当你为发布而构建,而非为规划

Randal Eastman
Randal Eastman Founder & CEO
• 1 分钟阅读

上周一,我着手为更新部分构建一个简单的内容管理系统。目标很直接:让 Olya(我们的运营负责人)能轻松发布品牌观察,无需接触 Hugo 或 Git。

不到一天,我就有了一个精致的、集成数据库的 CMS 部署并运行。但在第一次提交和最后一次部署之间,我意识到:我不是在为 Olya 构建这个。我是在为自己构建。

“让它变简单"的陷阱

这是我陷入的创始人错觉:“我的团队需要更简单的工具”。

现实检验?需要更简单的工具。

作为一个身兼数职的单人技术创始人——CEO、CTO、内容制作者、数据库架构师——我淹没在上下文切换中。写一个更新意味着:

  1. 打开 VS Code
  2. 创建新的 Markdown 文件
  3. 正确格式化 YAML front matter
  4. 添加分类标签(市场、行业、属性、信号)
  5. 通过 slug 链接相关品牌/创始人/洞察
  6. 记得添加主图路径
  7. 提交到 Git
  8. 推送以触发部署
  9. 等待 2-3 分钟 Cloudflare Pages
  10. 检查实时网站

总时间:15-20 分钟,阅读只需 3 分钟。

难怪我没有发布更新。

我实际构建了什么

更新 CMS 并不花哨。它是一个连接到 Supabase 的 React Admin 界面,具有五个关键功能:

  1. 分类自动完成 - 无需再查找有效的市场/行业 slug
  2. 相关内容链接 - 下拉搜索品牌、创始人、洞察文章
  3. 带预览的图片上传 - 拖放主图 + 画廊支持
  4. 带实时预览的 Markdown 编辑器 - 自然书写,即时查看结果
  5. 状态管理 - 草稿 → 已计划 → 已发布工作流

但这里是魔法:它在数据库中捕获一切。

真正的胜利:数据完整性

CMS 之前,我们的内容存在于三个地方:

  • Hugo 静态文件(真实来源)
  • Supabase 数据库(通过脚本部分同步)
  • 我的大脑(元数据、关系、上下文)

更新 CMS 改变了游戏。现在每个更新自动:

  • 获得适当的分类分类
  • 链接到相关实体(使用 UUID 关系,而不仅仅是 slug)
  • 一致地存储作者元数据
  • 跟踪版本历史
  • 为未来功能保留内容关系

这不仅仅是"更轻松的发布”。这是结构化知识捕获

单人开发者的现实

构建这个 CMS 教会了我关于单人创业的事情:你的工具塑造你的产出。

当创建内容需要 10 个手动步骤时,你创建更少的内容。当链接到品牌需要记住其确切 slug 时,你跳过链接。当分类标记感觉乏味时,你标记不足。

糟糕的工具创造摩擦。摩擦创造不一致。不一致创造技术债务。

好的工具不仅节省时间——它们通过使正确的事情比错误的事情更容易来提高质量。

接下来是什么

这个 CMS 现在正在运行并驱动我们的更新部分。但它也是更大事物的原型:

  • 带关系跟踪的创始人资料
  • 品牌数据丰富工作流
  • 洞察文章生产管道
  • 跨内容智能(哪些创始人提到哪些品牌?)

当你在构建关于全球南方品牌的智能平台时,你的内部工具就是你的产品。

更新 CMS 是第一天。还有很多要构建的。


元注释:此更新在更新 CMS 中撰写,一键发布,并自动部署到所有三种语言(EN/RU/ZH)。总时间:8 分钟。这就是重点。

想关注构建过程? 我在 LinkedInTwitter/X 上分享技术决策和开发更新。