網站部署 / 平台比較

網站放 GitHub、Vercel 還是 Cloudflare?三家免費額度、商用限制與功能差異

GitHub Pages、Vercel、Cloudflare 三家的角色定位、免費額度與商用條款,2026-08-19 逐條官方查證。附總比較表與只付網域費的可行架構。

這篇在講什麼

我把 GitHub Pages、Vercel、Cloudflare 三家攤開來查證一次:各自適合扮演什麼角色、免費方案給到哪裡、付費要多少、以及最容易被忽略的商用條款限制。所有數字都附官方出處。最後給一套在只付網域費的前提下就能跑起來的架構,和五個該升級付費的判斷條件。

適合誰
  • 你有一個官網,上面已經寫了課程和價格,但你不確定現在放的地方合不合平台條款。
  • 你在 GitHub Pages、Vercel、Cloudflare 之間選不定,網路上的比較文又都沒寫價格細節。
  • 你是講師或顧問,要幫客戶決定網站放哪裡,但你不想憑印象報一個數字。
  • 你想知道「免費」到底免費到哪裡,什麼時候會開始收錢。
你可以帶走什麼
  • 三家的角色定位,一句話講清楚誰該做什麼。
  • 一張三家免費與付費額度的查證表,每個數字都附官方出處與查證日期。
  • 兩條會讓人踩雷的商用條款,一條在 GitHub、一條在 Vercel。
  • 一套零月費起步的架構,以及五個明確的升級觸發條件。
查證基準本篇所有價格與額度為 2026 年 8 月 19 日查證結果,全部取自各平台官方定價頁、條款與技術文件,金額皆為美元、未稅。平台方案隨時可能調整,重要決策前請重新核對官方頁面。查不到的項目我一律標「未能從官方頁面確認」,不用舊資料補猜。

一個具體問題

我自己的官網上面有一對一陪跑顧問的價格,也有課程資訊。它已經是一個商業網站。

同一時間,我打算幫講師、顧問和商用客戶架網站。而我目前的預算立場很清楚:我只打算付網域費。

這件事逼我把三家平台的條款和價格逐條查一次,因為「免費」這兩個字在三家的意思都不一樣,而且其中兩家的條款裡有會讓商業網站踩雷的句子。

先說結論三家不是互相取代的關係,是各自負責一段。GitHub 管版本與備份,Vercel 管快速部署與預覽,Cloudflare 管商用正式站的免費起點。下一段先把這個分工講清楚,你就知道後面的價格該怎麼看。

先看三家的角色分工

如果你只想知道結論,看完這一段就夠了。後面三段是各家的價格細節,需要算錢的時候再回來查。

平台我給它的主要角色我不會叫它做的事
GitHub原始碼與內容來源、版本歷史、遠端備份、協作與衝突處理,以及公開靜態展示當完整會員平台、當商業網站主機
Vercel快速部署、Preview 預覽、前端框架與 Serverless Functions(不用自己養一台伺服器,需要時才跑一小段程式),適合願意付 Pro 的商用團隊用 Hobby 跑任何商業網站
Cloudflare商用正式網站的免費起點:Pages 靜態、Workers 伺服器邏輯、D1 權限資料、R2 私有教材、Access 固定人員門禁、DNS 與 CDN以為開好帳號就自動有會員系統

最後那一格我要展開講,因為它是最容易被誤會的地方。

Cloudflare 給你的是零件,不是成品開好 Cloudflare 帳號之後,你並沒有得到一個會員系統。你會得到一個可以放靜態網站的地方、一個可以跑伺服器邏輯的地方、一個可以存資料的地方、一個可以放私有檔案的地方。

會員登入、購買紀錄、授權判斷這三件事,仍然要你自己寫網站程式、設計資料庫,而且很可能還要接第三方的登入服務或寄信服務(發驗證信、發登入連結)。那些第三方服務有自己的收費。

這句話要講白,因為拿著「Cloudflare 免費」的印象去報價,很可能在實作階段才發現還要多做好幾天的工。

延伸閱讀

三家總比較表

角色搞清楚之後,這張表是你要算錢時看的。所有數字為 2026-08-19 官方查證,美元未稅。每一項的出處與細節在後面三段,需要追根據再往下看。

比較項目GitHub PagesVercelCloudflare
免費方案價格
完全不付錢的情況下要多少
$0/月Hobby $0/月應用服務 Free $0/月
商用最低固定月費
網站有商業用途時,最低要付多少
條款不允許當商業主機Pro $20/月起可從 $0 起,Workers 付費 $5/月起
靜態網站額度
放固定內容的網頁能用到什麼程度
站台不得大於 1 GB專案 200 個(Hobby)Pages Free 每站 20,000 檔、單檔 25 MiB
動態請求額度
需要伺服器臨時運算的請求,一個月能用幾次
無伺服器端運算Hobby 每月 100 萬次Workers Free 每天 100,000 次
流量或傳輸額度
傳給訪客的資料總量上限
每月 100 GB 軟性上限Hobby 每月 100 GBWorkers 與 R2 對外流量不收費
建置次數
改完內容重新做成網站,能做幾次
每小時 10 次軟性上限Hobby 每天 100 次部署Pages Free 每月 500 次
資料庫免費額度
存會員、購買紀錄這類資料,免費能用多少
無內建,要另外接D1 每天 500 萬列讀、10 萬列寫、5 GB
檔案儲存免費額度
存講義、影片這類檔案,免費能放多少
無內建,要另外接R2 10 GB-month,下載流量免費
要讓特定的人才能看,得付多少私密發布需 Enterprise Cloud,$21/人/月起Password Protection 為 Pro 加購Access 免費席次上限與單價官方頁未公開
超額計費方式
用超過免費額度之後怎麼算錢
軟性上限,超過可能回 429Pro 按量計費,見上方超額表Workers 每 100 萬次 $0.30;R2 每 GB $0.015;D1 每 GB $0.75
商用限制
平台條款允不允許你拿它做生意
條款禁止當免費主機經營線上生意、電商或商用 SaaSHobby 明文限非商業個人使用;廣告販售產品或服務即商用未見等同的非商用限制條款;SLA 與支援為付費方案差異
這張表最該看的一列是「商用限制」其他列是額度,用超了頂多花錢。這一列是條款,踩到了是帳號問題。GitHub 與 Vercel 各有一句限制,我在前面兩段都引了原文,決定平台前請先讀那兩段。

GitHub Pages 是什麼

GitHub 本體是一個放程式碼和內容的地方,它最強的能力是記住每一次修改。GitHub Pages 是它附帶的靜態網站服務。靜態網站的意思是,頁面內容事先就做好了,每個訪客看到的都一樣,伺服器不用臨時運算。你把 HTML(寫網頁用的原始檔格式)放進儲存庫(repository,簡稱 repo,可以想成一個會自動記錄每次修改的專案資料夾),它幫你變成一個可以打開的網址。

方案與價格

現行 GitHub 定價頁(2026-08-19 查證)上列出三個方案。

方案價格備註
Free$0 USD/月頁面標示 $0 per month forever,無促銷條件
Team$4 USD/人/月頁面標註「for the first 12 months」,帶星號
Enterprise起價 $21 USD/人/月同樣標註「for the first 12 months」,帶星號

那個星號很重要。Team 與 Enterprise 的價格在官方頁面上明確寫著「首 12 個月」並帶星號,星號之後的價格該頁沒有寫。所以不能把 $4 和 $21 當成永久固定價格報給客戶。

GitHub Pages 的額度限制

GitHub Pages limits 文件(2026-08-19 查證):

  • 發布後的網站不得大於 1 GB
  • 來源儲存庫建議上限 1 GB
  • 每月軟性頻寬上限 100 GB
  • 每小時建置軟性上限 10 次(使用自訂 GitHub Actions workflow 時不適用)
  • 單次建置逾時 10 分鐘
  • 每個帳號只能建立一個 user 或 organization site
  • 超過速率限制會回 HTTP 429(伺服器回「你要求太頻繁了」的代碼)

私密發布要哪個方案

GitHub 官方文件,原文是:

To publish a GitHub Pages site privately, your organization must use GitHub Enterprise Cloud.

要讓 Pages 網站本身變成需要身分才能看,你的組織必須用 GitHub Enterprise Cloud。同一份文件還補了一句限制:存取控制只適用於從組織擁有的 private 或 internal 儲存庫發布的 project sites,organization site 無法設定存取控制。

最常被搞混的一件事把儲存庫設成 private,跟網站訪客要不要登入,是兩件事。private repo 管的是「誰能看到你的原始碼」;Pages 網站發布出去之後,在一般方案上仍然是公開網址、任何人都能開。這兩個概念常常被混在一起講,然後就有人以為自己的講義是安全的。

商業用途的限制

這一條是硬的。GitHub 附加產品與功能條款原文寫明,GitHub Pages 不可作為:

a free web hosting service to run your online business, e-commerce site, or any other website that is primarily directed at either facilitating commercial transactions or providing commercial software as a service (SaaS)

翻成白話:不能拿它當免費主機來經營你的線上生意、電商站,或任何主要目的是促成商業交易或提供商用 SaaS(軟體即服務,指按月或按年收費、直接在網頁上使用的軟體)的網站。違反的話,GitHub 可以收回子網域(就是 你的名字.github.io 這種平台配給你的網址)。

所以我對 GitHub Pages 的定位是:練習、Demo、公開作品、公開文件、給人看的靜態展示。它不是我的商業官網主機。

GitHub 真正該做的事

把 GitHub Pages 的網站託管能力放一邊,GitHub 本體在這套架構裡有三個核心角色。這三件事不是只有 GitHub 能做,GitLab、Bitbucket 也做得到,我用 GitHub 是因為生態最熟:

  1. 原始碼與內容的來源,也就是你的網站真相住的地方。
  2. 版本歷史,每一次修改都留紀錄,改壞了可以退回去。
  3. 協作與衝突處理,兩個人同時改同一個檔案的時候,它會攔下來要你決定。

這三件事跟「網站放哪裡」完全無關,而且不管你最後選 Vercel 還是 Cloudflare,GitHub 都繼續做這三件事。

延伸閱讀

Vercel 是什麼

Vercel 是一個部署平台(部署就是把你做好的網站放上網路,讓別人打得開),強項是把前端框架(幫你把網頁做出互動效果的一套現成工具,例如 React、Next.js)的專案推上去就能跑,而且每一個分支都會自動生出一個獨立的預覽網址。這個 Preview 機制對「先看過再上線」的流程非常有用。

Hobby 方案($0/月)

Vercel Hobby 方案文件(2026-08-19 查證):

項目Hobby 額度
Edge Requests
邊緣請求:訪客每載入一次頁面或一個檔案,算一次
每月 1,000,000 次
Fast Data Transfer
對外傳輸量:平台傳送給訪客的資料總量
每月 100 GB
Function Invocations
函式呼叫次數:伺服器端程式被叫起來執行幾次
每月 1,000,000 次
Active CPU
實際運算時間:程式真正在計算的時間,等待不算
4 CPU 小時
Provisioned Memory
配置記憶體用量:佔用的記憶體量乘以佔用時間
360 GB-hrs
專案數
可以同時放幾個網站
200
每日部署次數
一天最多能把網站更新上線幾次
100
Web Analytics Events
網站分析事件數:內建流量統計記錄的次數
每月 50,000
每專案網域數
一個網站可以掛幾個網域
50
Function 最長執行時間
單次伺服器程式最多能跑多久
300 秒
Runtime Logs 保留
執行紀錄保留時間:出錯時能往回查多久
1 小時
Deployment Protection
部署保護:擋住不該看到這個網址的人
只有 Vercel Authentication

Pro 方案($20/月起)

Vercel 定價頁與 Hobby 對照文件(2026-08-19 查證):

項目Pro 額度
月費
固定要付的錢,還沒算用量超額
$20/月,含 $20 使用額度
Edge Requests
邊緣請求:訪客每載入一次頁面或一個檔案,算一次
每月 10,000,000 次包含在方案內
Fast Data Transfer
對外傳輸量:平台傳送給訪客的資料總量
每月 1 TB 包含在方案內
專案數
可以同時放幾個網站
不限
每日部署次數
一天最多能把網站更新上線幾次
6,000
每專案網域數
一個網站可以掛幾個網域
不限
Runtime Logs 保留
執行紀錄保留時間:出錯時能往回查多久
1 天
Developer 席次
開發者席次:可以改東西、可以部署的人
$20/人/月
Viewer 席次
檢視者席次:只能看、不能改的人
免費、不限
Deployment Protection
部署保護:擋住不該看到這個網址的人
Vercel Authentication、Password Protection(加購)、Sharable Links

超額計費

Vercel Fair Use Guidelines 的 Additional Resources 表,Pro 方案在額度與抵用額用完之後按量計費:

項目單價
Edge Requests
邊緣請求:訪客每載入一次頁面或一個檔案,算一次
每 100 萬次 $2 起
Fast Data Transfer
對外傳輸量:平台傳送給訪客的資料總量
每 GB $0.15 起,依區域定價
Function Invocations
函式呼叫次數:伺服器端程式被叫起來執行幾次
每 100 萬次 $0.60
Active CPU
實際運算時間:程式真正在計算的時間,等待不算
每小時 $0.128 起
Provisioned Memory
配置記憶體用量:佔用的記憶體量乘以佔用時間
每 GB-hr $0.0106 起
Image Transformations
圖片轉換次數:自動縮圖或轉檔的次數
每 1,000 次 $0.05
Image Cache Reads
圖片快取讀取:從快取取出已處理圖片的次數
每 100 萬次 $0.40
Image Cache Writes
圖片快取寫入:把處理好的圖片存進快取的次數
每 100 萬次 $4.00

商用限制,這一段請一定要看

同一份 Fair Use Guidelines 的 Commercial usage 段落,原文是:

Hobby teams are restricted to non-commercial personal use only. All commercial usage of the platform requires either a Pro or Enterprise plan.

而它對「商用」的定義範圍比多數人以為的寬:

Commercial usage is defined as any Deployment that is used for the purpose of financial gain of anyone involved in any part of the production of the project, including a paid employee or consultant writing the code.

官方列出的例子包含:任何向訪客請求或處理付款的方式、廣告販售產品或服務、收錢去建立或維護該網站、以聯盟行銷連結為主要目的、放置廣告。文件另外註明,募款請求也算商業使用。

對照我自己的狀況我自己的官網上面有一對一陪跑顧問的價格和課程資訊,「廣告販售產品或服務」這一條直接命中。所以在 Vercel 上,我的官網屬於商業使用,最低要 Pro,也就是每月 $20 起、一年 $240 起。Vercel 把免費方案的界線畫得很清楚,這是它的做法。你只要誠實對照一次,答案就出來了。

Vercel 的存取保護能做到哪裡

Deployment Protection 底下的 Vercel Authentication,擋的是「有沒有 Vercel 帳號、而且是不是這個團隊的成員」。它是給開發團隊看預覽版用的門。Password Protection 在 Pro 上是加購項目,是整站一組密碼。

這兩個都不是會員系統,做不到「A 學員能看第一堂、B 學員能看第一和第二堂」。差別在哪、該用什麼取代,我在另一篇講。

Cloudflare 是什麼

Cloudflare 最早是做 DNS(把網域名稱指到正確伺服器的電話簿)和 CDN(把你的網頁複製到世界各地的節點,讓訪客就近拿到)的,現在它把一整套東西攤在同一個帳號底下。要理解它的價格,關鍵是先接受一件事:Cloudflare 底下有好幾個獨立計費的產品,它們各自有各自的方案表。你不需要全部買。

A. 應用服務方案

Cloudflare 定價頁(2026-08-19 查證):

方案價格官方描述
Free$0/月個人或非關鍵業務的專案
Pro年繳 $20/月,月繳 $25/月非關鍵業務的專業網站
Business年繳 $200/月,月繳 $250/月線上營運的小型企業
Contract客製報價,年繳核心關鍵應用
待查:計費單位這幾個價格的計費單位(每個網域計費,或是每個帳號計費)在該頁面上沒有明確標示。我另外查了 Cloudflare 的訂閱與計費說明文件,該路徑本次回 404。所以我把計費單位標成「目前未能從官方頁面確認」,請在實際下單前於帳號後台核對。

要強調的是,下面 B 到 F 這五項,跟上面這個方案表是分開計費的。你可以用 Free 的應用服務方案,同時單獨開一個 Workers 付費方案,兩者互不綁定。

B. Cloudflare Pages

Pages limits 文件(2026-08-19 查證):

項目FreeProBusiness
每月建置次數
建置=你改完內容後,平台把它重新做成網站的那個過程。每改一次就算一次
5005,00020,000
同時建置數
可以同時進行幾個建置。改一次就要等一次的話,這個數字有感
1520
每站檔案數
一個網站最多能放幾個檔案。每張圖、每個頁面都算一個
20,000100,000100,000
單檔最大
單一個檔案的大小上限,影片和高解析圖最容易撞到
25 MiB(約 26 MB)25 MiB25 MiB
每專案自訂網域
一個網站可以掛幾個你自己買的網域
100250500

另外依 Pages Functions 定價文件,原文寫「On both free and paid plans, requests to static assets are free and unlimited.」也就是靜態檔案的請求在免費和付費方案上都免費且不限量。同一份文件說明,Pages Functions 的請求會計入 Workers 方案的額度。

這一條是整套架構能省錢的關鍵一個純靜態的公開官網,訪客再多,靜態請求都不計費。

C. Cloudflare Workers

Workers 定價文件(2026-08-19 查證):

項目Workers FreeWorkers Paid
月費
固定要付的錢,還沒算用量超額
$0最低 $5/月
包含請求數
方案裡免費附的請求次數,訪客每叫用一次伺服器程式算一次
每天 100,000 次每月 1,000 萬次
CPU 時間
伺服器程式實際在運算的時間,等待外部回應的時間不算
每次呼叫 10 毫秒每月包含 3,000 萬 CPU 毫秒
超額請求
用超過免費額度之後,多出來的請求怎麼收費
不適用(硬上限)每增加 100 萬次 $0.30
超額 CPU
運算時間用超過之後怎麼收費
不適用每增加 100 萬毫秒 $0.02
對外流量
從平台傳出去給訪客的資料量,這一項常常是別家的主要成本
不收費文件原文:No additional charges for data transfer (egress) or throughput (bandwidth)

D. Cloudflare D1

D1 定價文件(2026-08-19 查證):

項目Workers FreeWorkers Paid
讀取列數
從資料庫撈出幾筆資料。查一次會員身分可能就讀好幾列
每天 500 萬列每月前 250 億列包含,超額每 100 萬列 $0.001
寫入列數
往資料庫寫進幾筆資料。新增一筆購買紀錄算一次
每天 100,000 列每月前 5,000 萬列包含,超額每 100 萬列 $1.00
儲存空間
資料庫或檔案空間佔多少容量
5 GB 總量前 5 GB 包含,超額每 GB 每月 $0.75

文件另外說明 D1 是 scale-to-zero,沒有查詢的時候不按小時或容量單位計費。

E. Cloudflare R2

R2 定價文件(2026-08-19 查證):

項目免費額度(每月)Standard 超額單價
儲存空間
資料庫或檔案空間佔多少容量
10 GB-month每 GB 每月 $0.015
Class A 操作
寫入類操作:上傳、列出清單,比較貴
100 萬次每 100 萬次 $4.50
Class B 操作
讀取類操作:下載、讀檔,比較便宜
1,000 萬次每 100 萬次 $0.36
對外流量
從平台傳出去給訪客的資料量,這一項常常是別家的主要成本
免費免費

文件註明免費額度只適用 Standard 儲存,不含 Infrequent Access;R2 本身的 egress 不收費,但串接的第三方服務可能另有收費。

F. Cloudflare Access(歸在 Zero Trust 產品線底下,Zero Trust 是「預設誰都不信任,每次存取都要重新驗證」的資安設計思路),這一段要誠實講

我沒有辦法從現行官方定價頁確認每人單價與免費席次上限我實際查了 Cloudflare Zero Trust 服務方案頁,該頁目前導向「開始免費方案的概念驗證」「取得建議」「聯絡銷售」,沒有列出每人每月價格、免費席次上限或日誌保留天數。另一個舊的 teams-pricing 網址本次回 403。坊間廣泛流傳的「50 人以內免費、超過之後每人每月 $7」這組數字,我在本輪查證中沒有從現行官方定價頁面取得,所以不把它當成確定價格寫進表格。要報價給客戶之前,請直接到 Cloudflare 後台或聯絡官方確認。

官方文件上確實有寫、而且比價格更重要的,是席次怎麼算。依 Cloudflare One 席次管理文件

  • 使用者在完成一次驗證事件時消耗一個席次。原文:「A user consumes a seat when they perform an authentication event.」
  • 不管他開了幾個應用、登入幾次,都只佔一個席次。
  • 席次用完之後,後續嘗試登入的使用者會被擋下來。原文:「Once the total amount of seats in the subscription has been consumed, additional users who attempt to log in are blocked.」
  • 一旦驗證過,這個人會一直佔著席次,直到你把他從帳號移除。
  • Revoke 跟 Remove 不一樣。Revoke 會終止使用中的連線階段,但不會釋放席次;要釋放席次必須 Remove。
  • 可以開啟席次到期機制,設定 1 到 12 個月,沒有驗證事件也沒有裝置活動的使用者會被自動移除,每天執行一次。
  • 機器對機器的服務用途可以改用 service token(給程式用的通行證,不算人頭),不佔席次;也可以設定 bypass policy,讓特定路徑不經過門禁。

這幾條在實務上比單價更會咬人。你如果讓一百個學員都登入過一次,席次就被佔滿一百個;在沒有啟用自動到期的情況下,這些席次不會自己還回來。

一個必須澄清的誤解Access 的席次是「登入席次」,不是「網站總訪客上限」。公開頁面的訪客根本不會經過 Access,不佔席次。席次只算那些真的通過身分驗證進到受保護資源的人。

我目前建議的架構

在只付網域費的前提下,我目前會這樣接:

GitHub 保存原始碼、內容與版本紀錄 ↓ Cloudflare Pages 公開官網、課程介紹、文章與招生頁 ↓ Cloudflare Workers 登入後的伺服器判斷與 API ↓ Cloudflare D1 使用者、角色、課程與購買權限 ↓ Cloudflare R2 私有講義、簡報與下載檔

另外一條獨立的線,給工作人員與固定合作夥伴用:

Cloudflare Access 工作人員、固定合作夥伴、長期客戶與內部後台

這個架構合不合理

我的判斷是合理,理由有三個,但我要同時把它的代價講出來。

合理的地方三個理由

1. 公開流量不計費。官方文件明說 Pages 的靜態檔案請求在免費與付費方案上都免費且不限量。

2. 零件齊全而且同一個帳號。靜態、運算、資料庫、物件儲存(專門存檔案的空間,適合放 PDF、影片、圖片這種大檔)、門禁,五件事在同一個後台,不用串五家廠商的帳單。

3. 對外流量不收費。Workers 文件明說沒有額外的 egress 或頻寬費用,R2 文件明說 egress 免費。這對「發講義給一百個人下載」這種場景影響很大。

代價的地方三個代價

1. 第五層要自己寫。登入、購買紀錄、授權判斷,Cloudflare 一行都不會幫你寫。

2. 綁在一家。Workers 與 D1 的程式寫法有平台特性,之後要搬家不是零成本。

3. 免費方案沒有 SLA。這一點下面單獨講。

免費方案缺什麼

免費方案上你不會有服務水準協議(SLA)、不會有優先技術支援、也沒有「壞掉了賠你多少」的保障。對於「公開官網掛半小時,你自己重新部署就好」的場景,這個風險可以接受。對於「客戶正在課堂上,一百個人同時要下載講義」的場景,你要自己想清楚能不能承擔。

我的建議把免費方案當成「起步成本低」,不要當成「有保障的服務」。這是兩件事。

那我可以叫 AI 幫我寫嗎

可以。上面說 Cloudflare 給的是零件,聽起來像門檻很高,但把零件組起來的那段程式(登入、購買紀錄、判斷這個人能看哪些內容)是相當標準的功能,現在請 AI 寫,成本已經很低了。

只是有三件事 AI 幫不了你,而這三件剛好是決定「會不會外流」的關鍵。

AI 幫不了 1決定要擋什麼

你得先知道哪些內容要擋、擋誰。AI 不會幫你把內容分堆,也不知道哪份講義外流會影響你的收入。

AI 幫不了 2要求做在伺服器端

你說「登入後才顯示講義」,AI 可能給你一個在瀏覽器裡隱藏的版本。畫面看起來一樣,實際上完全擋不住。你要明確要求伺服器端判斷。

AI 幫不了 3驗收

程式跑得動,不代表擋得住。這兩題要你自己測:登出後直接貼講義網址,看得到嗎?用沒買課的帳號登入後貼,看得到嗎?

所以誠實的說法是AI 把「寫出來」的成本降到很低,但「決定要擋什麼」跟「驗收有沒有真的擋住」仍然是你的工作。這兩件事我另外寫了一篇專門講,包含六層存取分級和自己驗收的方法。
延伸閱讀

備份、版本與避免衝突

這一段跟安全分級沒關係,但它翻車的代價通常比內容外流更高,因為外流你至少還有原檔,做壞了沒備份就什麼都不剩。

GitHub 保留每一次修改的歷史。這是它最實在的價值。改壞了可以看 diff(前後兩版逐行對照,改了哪幾行一目瞭然),可以退回上一版,可以知道是誰在什麼時候改的。

GitHub 的遠端副本不等於完整的災難備份它備份的是你的程式碼與內容。它沒有備份你的 D1 資料庫、沒有備份你放在 R2 的教材檔案、沒有備份你的網域設定與 DNS 紀錄。這三樣東西要另外規劃備份,而且要定期真的還原一次來驗證備份是活的。
  • 多人修改前先同步最新版本。先把遠端的最新內容拉下來,再開始改。倒過來做,你會改在一個已經過期的基礎上,然後在推上去的時候撞成一團。
  • 一項任務用一個 branch 或一個 worktree。branch(分支)是同一份專案的平行版本,worktree 是同一份專案同時開的第二個工作資料夾,兩個都是為了讓不同任務互不干擾。兩個任務混在同一個工作區,最後你會分不清哪個改動屬於哪件事,也沒有辦法單獨回退其中一個。
  • Preview 驗收之後才切正式站。部署平台都有預覽機制,用它。在預覽網址上看過、點過、確認過,再讓正式網址指過去。
  • 正式部署只由固定流程執行。不要今天用手動指令、明天用另一個工具。固定一條路,那條路上該有的檢查才會每次都跑到。
  • 部署平台跟原始碼管理是兩個不同的角色。GitHub 管「真相在哪、改了什麼」,Vercel 或 Cloudflare 管「把它變成一個能打開的網址」。搞混這兩件事,就會出現「我在本機改了但線上沒變」或者「線上是對的但沒人知道原始碼在哪」這種狀況。
衝突發生的時候,要人工保留雙方內容,不能直接覆蓋看到衝突就選一邊蓋掉,是最快也最危險的處理方式,因為被蓋掉的那一邊可能是別人做了一整天的工作,而且他不在場、沒辦法幫自己說話。正確做法是把兩邊的內容都攤開,人工判斷哪些要留,合併之後再繼續。
延伸閱讀

最低可行版本,與什麼時候該升級

最低可行版本

如果你今天就要開始,我會這樣排:

  1. GitHub 免費帳號,開一個儲存庫,放你的網站原始碼。
  2. Cloudflare 免費帳號,Pages 接上這個儲存庫,公開官網先上線。
  3. 買一個網域,指過去。這是你唯一確定要付的錢。
  4. 工作人員的後台,用 Cloudflare Access 加白名單。人少,設定一次就好。
  5. 付費學員的部分,先用人工開通

第五步的「人工開通」是什麼意思、以及為什麼工作人員和付費學員要用完全不同的兩招,我在另一篇拆開講:你的網頁其實沒鎖:公開資訊、付費內容、機密隱私該放哪一層

零月費版本做得到什麼

  • 公開官網、課程介紹、文章、招生頁:完全做得到,訪客數不影響費用。
  • 少數工作人員與長期客戶的門禁:用 Cloudflare Access 在免費席次範圍內做得到(實際席次上限請自行向官方確認)。
  • 一百位學員的會員與授權判斷:以 Workers 每天 100,000 次請求、D1 每天 500 萬列讀取與 100,000 列寫入的免費額度來看,一堂一百人的課,日常使用量離上限還很遠。
  • 10 GB 以內的私有教材:R2 免費額度做得到,而且下載流量不收費。

哪些服務可能另有費用

零月費指的是這幾家平台的月費。以下幾項要另外算:

  • 網域年費,這是你確定要付的。
  • 金流服務手續費,接刷卡或第三方支付都有抽成。
  • 寄信服務。發登入驗證碼、發購課通知,通常要接一個交易郵件服務,免費額度有限。
  • 第三方登入服務,如果你不自己寫的話。
  • 你自己的時間。第五層要寫程式,這是最大的一筆隱形成本。

什麼情況才需要升級付費

我列五個明確的觸發條件:

  1. Workers 每天 100,000 次請求撐不住。到這裡就升 Workers Paid,最低 $5/月。
  2. 需要 SLA 或技術支援。客戶開始把你的網站當成關鍵業務,你需要有人可以問。
  3. 私有教材超過 10 GB,或 D1 資料超過 5 GB。超額之後 R2 是每 GB 每月 $0.015、D1 是每 GB 每月 $0.75,成本仍然很低,但要開始付。
  4. Access 席次不夠用。長期客戶名單成長到免費席次以外。
  5. 團隊要用 Vercel 的 Preview 協作流程。那就直接付 Pro,$20/月起,不要在 Hobby 上跑商業網站。

單堂一百位學員,可行嗎

我的判斷是可行,前提是你把它拆對層級。

以我上面查到的免費額度算:一百位學員,假設每人每天登入一次、瀏覽二十頁、下載三份講義,一天大約幾千次請求,離 Workers 每天 100,000 次還有很大空間。D1 的每天 500 萬列讀取更是綽綽有餘。R2 的下載不收流量費,所以講義發放的成本是零。

真正的瓶頸瓶頸不在額度,在於第五層的程式有沒有寫好。

如果先用人工確認付款與開通

這是我最推薦的起步方式,因為它把最難的那塊先拿掉。

流程是:學員匯款或刷卡之後,你收到通知,手動在後台把這個人的 email 加進 D1 的購買紀錄。系統照樣做伺服器端的授權判斷,學員照樣登入之後才看得到講義。差別只在於「誰把那一列資料寫進去」。

這樣可以先不做的東西:

  • 金流串接與 webhook 接收(webhook 是金流商在收到款項後主動通知你的網站的機制)
  • 自動開通與自動退款
  • 訂閱制的續費與到期處理
  • 發票與收據自動化
  • 學員自助註冊流程(可以先用你發邀請)
不能省的那一塊保留下來、不能省的是第五層的伺服器端授權判斷。那才是決定講義會不會外流的東西。人工開通只是把「資料怎麼進來」變簡單,沒有降低安全等級。一百人的規模,人工開通是完全可行的。等到你一個月要開通三百個人的時候,再回頭接金流。

怎麼開始

如果你今天就要開始,我建議照這個順序:

  1. 先算你的量。一個月大概多少訪客、要不要伺服器端運算、要存多少檔案。沒有這三個數字,比價是空的。
  2. 再看條款。你的網站上有沒有價格、有沒有廣告、收不收錢。有的話,Vercel Hobby 與 GitHub Pages 直接排除。
  3. 最後才比價格。用上面的總比較表對照,通常這時候答案只剩一個。
  4. 先把公開的部分做好。官網上線、招生頁能用。這是會帶來收入的部分,優先做。
  5. 需要登入的部分晚一步再做。先用人工開通跑一輪,跑過才知道真實摩擦在哪。
  6. 同一時間把備份與版本流程立起來。這一步最容易被跳過,但它是唯一會在你出事那天救你的東西。

收尾 Recap

  1. 三家不是互相取代,是各自負責一段。GitHub 管版本與備份,Vercel 管快速部署與預覽,Cloudflare 管商用正式站的免費起點。
  2. GitHub Pages 的條款不允許拿它當免費主機經營線上生意、電商或商用 SaaS。它適合練習、Demo、公開作品。
  3. GitHub 的 Team 與 Enterprise 價格帶星號,官方標明是「首 12 個月」,不能當永久價報給客戶。
  4. Vercel Hobby 明文限非商業個人使用,而「廣告販售產品或服務」就算商用。官網上有價格頁就命中了。
  5. Vercel 商用最低 Pro $20/月起,一年 $240 起,再加按量超額。
  6. Cloudflare 底下是好幾個獨立計費的產品,不需要全部買。應用服務方案跟 Workers、D1、R2、Access 是分開的。
  7. Cloudflare Pages 的靜態檔案請求免費且不限量,公開官網訪客再多都不產生費用。
  8. Workers 與 R2 的對外流量都不收費,這對「發講義給一百個人下載」影響很大。
  9. Cloudflare 給的是零件,不是成品。會員系統要自己組,但那段程式現在可以請 AI 寫。
  10. 免費方案沒有 SLA、沒有優先支援。把它當成起步成本低,不要當成有保障的服務。

常見的坑

對策
以為 private repo 等於網站訪客要登入那是兩件事。private repo 管誰能看原始碼,Pages 網站發布出去在一般方案上仍是公開網址
用 Vercel Hobby 跑有價格頁的官網官方定義「廣告販售產品或服務」即商用,最低要 Pro
把 GitHub Team 的 $4 當永久價報給客戶官方頁標明是首 12 個月,星號之後的價格該頁沒寫
以為要用 Cloudflare 就得買整包應用服務方案與 Workers、D1、R2、Access 是分開計費的,可以只開需要的
以為開好 Cloudflare 帳號就有會員系統它給零件不給成品。登入、購買紀錄、授權判斷要自己組
以為 GitHub 有備份就不用管資料庫GitHub 不備份 D1、R2 與 DNS 設定,要另外做並演練還原
衝突發生時直接選一邊蓋掉人工保留雙方內容再合併。被蓋掉的人不在場,無法幫自己說話
拿免費方案接客戶的關鍵業務免費方案沒有 SLA 也沒有優先支援,先跟客戶說清楚再決定

給自己的定位提醒

我做這份整理,不是為了證明我選的架構最好。三家各有各的適用場景:需要團隊協作與預覽流程、而且願意付月費的,Vercel Pro 是很順的選擇;只要一個公開作品站的,GitHub Pages 就夠了。我目前選 Cloudflare,是因為它剛好符合我現在「只付網域費、但網站已經商業化」這個特定條件。

換一組條件,答案就會換。

真正能帶走的那個判斷順序:先算清楚你的網站實際會用掉多少、確認條款允不允許你的用途,最後才比價格。這個順序不會因為哪家改價而失效。價格會變,條款會變,我這篇的數字也會過期。判斷順序不會。
網站部署GitHub PagesVercelCloudflare免費額度成本評估

想繼續聊這個

我每個月固定辦兩場免費線上講座,分享 AI 應用與知識管理的實戰做法。如果你正在幫自己或客戶決定網站要放哪裡、怎麼分級,歡迎先從社群開始。

本篇所有價格與額度為 2026 年 8 月 19 日查證結果,皆為美元、未稅。平台方案隨時可能調整,重要決策前請重新核對官方頁面。

江江教練

隱性知識提煉師、AI 應用規劃師

加入 LINE 社群 →

看服務方案 →