跳到主要內容

兩天做了一個 CMS,然後決定不再用別人的

觀點AI

為什麼不用現成的

因為現成工具解決的問題比我的問題大太多了。

我不需要多語系、角色權限(就我一個人用)、媒體庫、Webhook、GraphQL。我需要的是一個乾淨的後台,打開就能寫,寫完就能發。

用大砲打小鳥,打是打得到,但扛大砲好累...((懶

兩天發生了什麼

Day 1:決定架構。Hono + Drizzle + PostgreSQL 當 API,Astro 當前端,CodeMirror 當編輯器。認證用最簡單的 cookie session + Argon2id,不搞 OAuth。部署在 Zeabur 和 Cloudflare Pages。 (現在是不是可以統一在 Zeabur?算了之後再改 🤡)

Day 2:把編輯器串起來,做完排程發布和 slug 自動生成,收工上線。

不是 48 小時不睡覺的那種「兩天」,正常作息、中間還去教會練團這樣。

Less is more 👍

跟 AI 協作的反直覺

大部分人跟 AI 協作的直覺是:講越仔細越好,把需求寫得巨細靡遺,最好連變數名稱都指定。

我的經驗剛好相反。

AI 已經被餵了海量的程式碼和架構知識,"邏輯上"它什麼都知道。你不需要教它怎麼寫一個 CRUD,真正需要做的事情是——精準地限制範圍

「幫我做一個 CMS」會得到一個功能齊全但功能用不到一半的怪物。 「幫我做一個只管理 Markdown 文章的後台,單人使用,不需要媒體庫和權限系統」會得到真正需要的東西。

差別不在於你給了多少資訊,在於你過濾掉了多少雜訊。

我故意不做的事

列一下我的 CMS 刻意不做的功能:

  • 多語系
  • 角色權限管理
  • 媒體庫 / 圖片上傳(但想一想之後還是應該會做 🙂‍↕️)
  • API rate limiting dashboard
  • 版本歷史 / 文章比對
  • SEO 分析面板
  • 留言系統

這些是「好功能」,但不是「現在需要的功能」。

克制是因為每多一個功能,就多一個要維護的東西、可能壞掉的地方、分心的理由。

最後

這個 CMS 現在跑在 cms.oluvia.io,管理著你正在讀的這篇文章。

它沒有炫砲的功能,它做好了它該做的每一件事。打開就能寫,寫完就能發。

夠用就好。但「夠用」的定義,要你自己想清楚。