cat why-this-stack.md
$ cat why-this-stack.md

# 為什麼挑 Astro + Cloudflare Pages 這個組合

> 個人網站的技術選型筆記:Astro 的靜態渲染、Cloudflare 的免費 CDN 跟 Pages Functions、Decap CMS 拿來當後台。

發佈於:
2026-05-27
閱讀時間:
2 分鐘 · 401 字
標籤:
astro cloudflare stack

簡單記一下選型理由,給自己未來看,也給有興趣的人參考。

Astro#

選 Astro 主要是因為它做出來的網站 大部分 HTML 都是靜態的,JavaScript 只在 真正需要互動的地方才載入 (像我這站的主題切換器跟首頁的打字機效果)。 這對個人部落格幾乎完美 — 內容為主、互動為輔。

Terminal window
$ astro build
> 38 page(s) built in 1.2s
> 0 KB of JavaScript shipped to non-interactive routes

而且 Astro 的 markdown 處理鏈很完整,可以接 remark / rehype 插件做語法高亮、 數學公式、TOC、reading time…,基本上想得到的部落格功能都有現成的。

Cloudflare Pages#

部署選 Cloudflare 而不是 Vercel,理由有幾個:

  1. 免費額度大 — 500 builds/month、無限頻寬、全球 CDN
  2. Pages Functions — 跟 Workers 同一個 runtime,要寫 OAuth proxy / API 都直接寫, 不用另外開一個服務
  3. 跟 DNS 整合好 — 我網域本來就在 Cloudflare,綁定 5 秒搞定

Decap CMS#

Decap CMS 的賣點是 沒有後端。它只是一個 SPA,直接呼叫 GitHub API 做 commit/PR。所以後台寫的東西其實就是在改 git repo。 ::

對個人網站來說這超級舒服 — 不用維護資料庫、不用管 server, 要備份就是 git clone 一份下來。要遷移到別的平台,把 markdown 拿走就好。

其他考慮過但沒選的#

  • Next.js — overkill,React 對純內容站太重
  • Hugo — 模板語法不熟,而且 plugin 生態跟 npm 比起來算少
  • Notion / Obsidian Publish — 不夠掌控,設計改不了

下次有空再寫一篇實際部署流程。