東西做好了、測過了,最後一步是讓它上線。部署聽起來像是開發流程的尾聲,但實際上它牽涉到的決策和配置比想像中多。這一篇記錄從本地到線上的完整流程,以及上線後的維護方式。
ship skill:打包提交的標準流程
在這個專案裡,每次要把改動推上去之前,都會用 ship skill 做一次完整的提交前檢查。
ship skill 做的事情包含:
檢查 git status,確認哪些檔案被修改
跑一次 build,確認沒有編譯錯誤
檢查有沒有不該被 commit 的檔案(比如 .env、暫存檔)
產生一個結構化的 commit message
建立 Pull Request 並附上變更摘要
這套流程最大的好處是一致性。不管是大功能還是小修正,每次提交都走同樣的檢查步驟。不會因為「只是改個小東西」就跳過 build 檢查,結果上線後才發現壞了。
另一個好處是 commit message 的品質。因為 ship skill 會自動分析改動內容,產生的 message 比手寫的更精確。回頭看 git log 的時候,每一條都能清楚知道那次改了什麼、為什麼改。
land-and-deploy:部署執行
PR merge 之後,用 land-and-deploy skill 來執行部署。這個 skill 協調了從合併到上線的整個流程:
確認 PR 的所有 check 都通過
合併 PR 到 main branch
觸發 Vercel 的自動部署
等待部署完成
驗證線上版本是否正常運作
整個過程是自動化的,但每一步都有明確的確認點。如果某一步失敗了,流程會停下來,而不是繼續往下走。
Vercel 平台:自動化部署基礎設施
這個專案部署在 Vercel 上,選它的理由很直接——對 Next.js 的支援是原生的,不需要額外配置。
幾個關鍵的配置:
自動部署:每次 push 到 main branch,Vercel 就會自動觸發一次部署。不需要手動操作,也不需要額外的 CI/CD pipeline
Preview Deployments:每個 PR 都會自動產生一個 preview URL,可以在合併之前先看線上效果。這對多語系的視覺檢查特別有用
ISR(Incremental Static Regeneration):頁面在第一次被請求時生成靜態 HTML,之後定期重新生成。對於這個網站來說,文章頁面設定了 60 秒的 revalidate 時間,series 頁面是 3600 秒。這樣既有靜態頁面的速度,又能在內容更新後自動反映
環境變數管理:資料庫連線字串、API key 等敏感資訊都透過 Vercel 的環境變數管理。不同環境(development、preview、production)可以設定不同的值
上線後的維護
網站上線不是結束,而是另一個階段的開始。幾個持續進行的維護工作:
內容更新:透過管理後台新增或修改文章,ISR 會自動處理快取更新,不需要重新部署
效能監控:Vercel 內建的 Analytics 可以追蹤 Core Web Vitals,看哪些頁面載入速度慢需要優化
錯誤追蹤:透過 Vercel 的 Function Logs 監控 server-side 的錯誤,及早發現問題
依賴更新:定期更新 npm 套件,避免安全漏洞累積
完整的循環
回頭看這整個系列——從構思、設計、架構、實作、開發加速、驗證品質、到部署維運——它形成了一個完整的軟體開發循環。
每個環節都有對應的 AI 工具在幫忙,但工具始終是手段而不是目的。brainstorming skill 幫你收斂想法,但決定做什麼還是你自己。Serena 幫你理解程式碼結構,但技術決策還是你做的。Playwright 幫你自動化測試,但測試策略還是你定的。
AI 工具改變的不是「誰在做決定」,而是「做決定的效率和品質」。它們消除了大量的機械性工作,讓你可以把精力集中在真正需要判斷的地方。
這個網站本身就是這套工作方式的產物——從零開始,一個人用 AI 工具鏈完成了設計、開發、測試、部署的全部流程。它不完美,但它能跑、能用、能持續迭代。這大概就是 AI-Driven Development 最真實的樣子。