今天晚上,這個網站從一份需求文件變成一個能寫、能發、能收信的東西。沒有資料庫,沒有後端,沒有一台要顧的伺服器。
回頭看,速度不是來自工具多厲害,而是來自一開始就把「不做什麼」寫清楚。
先寫不做的清單
需求文件裡有一段叫「V1 不做」:資料庫、會員、留言、站內搜尋、AI 聊天機器人、多語言、自動發文。
這一段比「必須有」那一段更重要。每一個不做的項目,都替後面省下一個要維護的東西。
我給 AI 的判斷原則只有四個問題:能不能更簡單?能不能更少維護?有沒有破壞 Markdown + Git?是否真的屬於 V1?
如果不是必要,就不要做。
原本的方案被這四個問題砍掉三樣
我原本打算把網站用 Docker 跑在家裡的 Mac mini 上,圖片放 R2,分析用 GA。AI 拿著那四個問題問回來。
靜態網站為什麼要自架?自架就要 Docker、Tunnel、重開機恢復,這幾件事全是因為自架才存在。改用 Cloudflare Pages,它們同時消失,費用是零。
圖片為什麼要放 R2?那是第二個真相來源。一篇文章零到三張圖,一百篇也才幾十 MB,直接放進 repo 就好。
分析為什麼用 GA?Cloudflare 自己的分析免 cookie,也就不用同意橫幅。
三樣都同意。整套系統剩下一個 GitHub repo 和一個 Cloudflare 帳號。
唯一的真相來源
所有內容都是 Markdown,放在 Git 裡。後台只是一層薄薄的介面,它做的事情就是 commit。
AI 幫我寫的草稿只進 branch,我看過 diff 才 merge。這不是為了防 AI,是為了讓每一次修改都能追蹤、能比對、能退回。
網站可以壞,後台可以換。只要 Markdown 和 Git 還在,內容就還在。
真正花時間的地方
寫程式的部分不到一小時。剩下的時間都在權限:GitHub token 少一個 scope、Cloudflare 的帳號 ID 貼錯、網域上還掛著舊的信箱紀錄。
這些事沒有一件跟架構有關,全是把兩個系統接起來時的摩擦。
摩擦是常態。架構簡單的好處,是摩擦只發生一次,之後不會每個月回來找你。
所以
先決定不做什麼,剩下的事就會變快。