02-hosting-choicelisted
Install: claude install-skill yazelin/personal-brand-site-starter
# 階段二:選型
這一階段不要問使用者。讀 `spec/site.yaml`,照決策樹判斷,然後用三句話告訴他結論:
放在哪、為什麼、之後想換要付出什麼。
## 判斷順序
只有兩個問題會改變答案。照順序問自己,第一個「是」就決定了。
**問題一:這個站需要保管秘密嗎?**
金鑰、密碼、別人的個資、只有付費的人能看的內容,只要有一項,就需要伺服器端。
純展示的內容不算秘密,那些本來就是要給人看的。
**問題二:這個站需要有人一直在嗎?**
定時寄信、背景排程、長時間執行的工作、要自己保管資料庫,只要有一項,就需要常駐服務。
兩題都是「否」,就是靜態站。**大多數個人品牌站兩題都是否**,不要自己加戲。
## 對照表
| 情況 | 放哪裡 | 為什麼 |
|---|---|---|
| 純展示,含作品、履歷、聯絡方式 | GitHub Pages | 免費、不會突然收錢、綁自訂網域是內建功能。內容跟版本一起在 git 裡,換人接手最容易 |
| 要收表單或名單 | Cloudflare Pages 加 Workers 與 D1 | 免費額度對個人站綽綽有餘。表單處理跟資料都在同一家,不用串三個服務 |
| 只是要收表單,不想寫後端 | 靜態站加 Formspree 或 Tally 這類服務 | 免費額度夠,二十分鐘上線。缺點是名單在別人家,要能匯出 |
| 要收錢 | 靜態站加金流商的 hosted checkout | 你的站只放一個按鈕,連過去付款。**卡號絕對不要經過你自己寫的頁面** |
| 要常駐後端、資料庫、排程 | Render 或 Railway | 免費方案會冷啟動,第一個訪客要等十幾秒。個人站要用就付最低方案 |
| 要用 Next 或 Nuxt 這類框架做 SSR | Vercel 或 Netlify | 框架的原生部署路徑。但個人品牌站幾乎用不到 SSR,先確認真的需要 |
## 使用者說「我不知道」的時候
預設選 **GitHub Pages**。理由給他這一句就好:免費、不會因為用量突然收費、
之後要搬去別的地方只要把檔案複製過去,成本最低。
## 金流的紅線
**不要自己收卡號,不要自己存卡號,不要自己驗卡號。**
一律走金流商的 hosted checkout 或 payment link,使用者的站上只放一個按鈕連過去。
少的那點客製化,換來的是不用自己扛法遵與資安。
台灣本地常見的選擇是綠界、藍新、SHOPLINE Payments;國際是 Stripe 的 Payment Link。
使用者已經有在用的,就用他現在那個,不要叫他換。
## 網域
有自己的網域就一定要綁。`xxx.github.io` 放在名片上,看起來像還沒做完。
沒有網域,判斷值不值得買:站是為了賣東西或接案就值得,
是名片或作品集就先不用,之後隨時能加。
## 寫回 spec
判斷結果寫進 `spec/site.yaml` 的 `hosting` 區塊,包含平台、網域、
需不需要後端、金流方式。同時寫一段 `docs/` 底下對應平台的部署步驟給他,
`docs/deploy.md` 裡各平台都有現成的步驟可以抄。