Jason Finance 從零到一:10 天、190 個 commit,用 Claude Code 架四語理財網站的技術架構與做法
Jason Finance 從 2026 年 10 月 2 日第一個 commit 到四語上線的完整紀錄:Astro、Cloudflare Workers、GitHub、Supabase 的技術架構、為什麼這樣選、每天做了什麼,以及內容、資料同步、SEO 和 AI 權限的做法。
本文目錄
Jason Finance 的第一個 commit 是 2026 年 10 月 2 日。到 10 月 11 日,網站累計 190 個 commit,27 篇文章各有繁體中文、簡體中文、英文版,其中 22 篇加密貨幣文章另有西班牙文版,還有後台、留言、每天自動更新的資料和一套 SEO 監控。程式都是 Claude Code 寫的,我看不懂程式碼,負責的是決定方向和審稿。
這篇把整套技術架構和做法寫下來:用了什麼、為什麼這樣選、每天做了什麼,以及哪些東西刻意沒用。想知道每個服務花多少錢、我怎麼給 AI 權限,見〈看不懂程式也能架網站〉。
本文是 Jason Finance 的架站紀錄,數字是 2026 年 10 月 11 日的狀態。工具的功能、免費額度和價格都會變動,以各服務官方說明為準。
一句話說完整套架構
一個 Astro 網站部署在 Cloudflare Workers:公開頁全部預先產生成靜態網頁,文章存在 GitHub;後台走伺服器端;登入、留言和後台資料放 Supabase;一台 Oracle 主機跑 Claude Code 和每日備份。
| 層 | 用什麼 | 為什麼 |
|---|---|---|
| 網站框架 | Astro | 公開頁輸出成靜態 HTML,只有後台和首頁的語言轉址需要伺服器 |
| 內容 | Markdown + 內容結構檢查(zod schema) | Git 就是內容管理系統:有版本紀錄、可以審稿,網站建置不依賴資料庫 |
| 語言 | 繁中、簡中、英文,加密貨幣主題另有西班牙文 | 每個語言都帶網址前綴,規則沒有例外 |
| 主機 | Cloudflare Workers | 靜態頁走全球 CDN;資料庫出問題時文章頁不受影響 |
| 部署 | push 到 main 自動部署;preview 分支產生含草稿的預覽網址 | push 就是發佈,不需要另外的發佈系統 |
| 登入與資料 | Supabase 免費方案(Postgres、登入、RLS) | 留言和後台都要分清楚「資料屬於誰」,用資料庫的列級權限控管 |
| 登入方式 | Google 登入 | 免費方案的寄信額度很低,避開需要寄信的登入方式 |
| 後台防護 | Cloudflare Access | 沒授權的請求在 Cloudflare 那一層就被擋掉 |
| 留言防機器人 | Cloudflare Turnstile | 在資料庫裡驗證,繞過網站直接呼叫也跳不過 |
| 常駐主機 | Oracle 免費主機 | 跑 Claude Code、每日備份 |
| 備份 | 資料庫每天備份到 Cloudflare R2,保留 30 天 | 免費方案沒有自動備份,自己做 |
| 流量與 SEO | GA4、Google Search Console、另一個 SEO Monitor 專案 | 網站本身只負責被收錄,分析交給獨立的專案 |
| 測試 | Vitest、Astro 的型別檢查、內容結構檢查 | 資料或格式有錯,建置就失敗,不會帶著錯誤上線 |
10 天做了什麼
| 日期 | 主要進度 |
|---|---|
| 10 月 2 日 | 建立 Astro 專案 |
| 10 月 3 日 | 寫下 AI 的權限規則(看影響決定要不要問我)、溝通語言;第一篇草稿;結構化資料(WebSite、BlogPosting、BreadcrumbList) |
| 10 月 4 日 | 選單、語言切換、深色模式、作者介紹、留言;後台(Google 登入、內容分析、翻譯進度、留言審核);定期定額試算工具;第一批文章三語發佈 |
| 10 月 5 日 | 交易所資料框架;寫作潤稿規則 |
| 10 月 6 日 | 扁平的 sitemap.xml |
| 10 月 7 日 | 加密貨幣內容規劃;第一篇交易所評價上線;USDT 利率工具(草稿) |
| 10 月 8 日 | 交易所事實資料(費率、儲備金、牌照、事件)和公開評分方法;後台上傳截圖;西班牙文版 |
| 10 月 9 日 | 全站側欄和手機底部橫幅;第一篇時事文章四語上線 |
| 10 月 10 日 | 交接用的待辦清單;交易所依 CoinGecko 排名排序 |
| 10 月 11 日 | sitemap 日期、Organization 結構化資料、四語 RSS、延伸閱讀;接上 SEO Monitor;12 篇交易所評價四語上線 |
每天的 commit 數從 1 到 36 個不等,最多的是 10 月 7 日。我會用手機上的 Claude App 連到 Oracle 主機上的 Claude Code,用中文交代要做什麼。
七個關鍵決定
1. 公開頁全部靜態
Supabase 免費專案閒置一週會暫停,雲端服務也會出問題。公開頁如果每次都向資料庫要資料,資料庫一掛網站就跟著掛。所以讀者看的頁面全部在建置時就產生好,Supabase 只負責留言和後台這些「多出來的功能」;留言載入失敗時,只顯示「留言暫時無法載入」,文章照常可以看。
2. 文章放在 Git,一篇一個資料夾,各語言共用 slug
每篇文章一個資料夾,裡面每種語言一個 Markdown 檔,例如 okx-review/zh-hant.md、okx-review/en.md。網址只差語言前綴,所以語言切換和 hreflang 不需要對應表。某個語言沒有檔案,就不產生那一頁,也不拿其他語言頂替。slug 一旦上線就不改,真的要改就設 301 轉址。
3. 規則寫進資料結構,不靠記性
每篇文章的 frontmatter(標題、描述、主題、日期等欄位)都有格式檢查:一定要屬於一個主題、描述不能超過 160 字、翻譯要寫明從哪個語言翻來和原文的日期。不符合就建置失敗。這次 12 篇評價上線前,就有一篇英文描述超過 160 字,被擋下來改短才上線。
4. 每種資料只有一個來源
- 交易所的費率、儲備金、牌照、事件:放在一份資料檔,每一筆都附官方來源和查證日期;評分、比較表和每篇評價的資料框都讀同一份,數字不會互相矛盾。
- 理財利率和交易所排名:GitHub Actions 每天抓取,抓失敗就保留上一次的資料。
5. 一套登入,資料庫權限是真正的邊界
後台有三層:Cloudflare Access 先擋、程式再檢查一次、資料庫的列級權限(RLS)最後決定能看什麼。網站程式和主機都不持有能繞過權限的最高權限金鑰。
6. 翻譯是規則,不是額外工作
繁中定稿後,簡中、英文(加密貨幣文章再加西班牙文)照固定流程產生:英文和西班牙文直接從繁中翻,簡中先依用詞對照表轉換再潤稿。翻譯版記錄原文的更新日期,原文改了、翻譯沒跟上,建置時會提醒。
7. 給 AI 的權限:看影響,不看指令
我看不懂程式碼,不可能逐一核准指令。規則是依「這件事會造成什麼影響」決定要不要問我:一般的修改和部署直接做;發佈我沒看過的內容、改正式設定要我決定;刪資料、改資料庫則是開工前說明一次範圍、風險和備份。細節在〈看不懂程式也能架網站〉。
一篇文章從寫到上線
- 定題目:主題和角度由我決定,Claude Code 依內容規劃提出建議。
- 寫繁中初稿:每個數字附官方來源和日期,我自己的經驗和截圖由我提供。
- 潤稿:用多語言潤稿規則修掉翻譯腔和 AI 套話,不增減事實。
- 自查清單:關鍵字、結構、來源、內部連結、FAQ、分享圖逐項檢查,結果回報給我。
- 預覽:草稿推到 preview 分支,我在預覽網址上看。
- 定稿後翻譯:我說定稿,Claude Code 產生其他語言版本,四語一起發佈。
- 上線後記錄:SEO 的修改記錄到 SEO Monitor,7、14、28 天後看成效。
SEO 和 AI 搜尋的基本功
- 結構化資料:網站與組織(WebSite、Organization)、文章(BlogPosting)、麵包屑、FAQ、主題頁的文章清單(CollectionPage、ItemList)。
- sitemap:一份扁平的
/sitemap.xml,每個網址的更新日期來自文章本身,列表頁取最新一篇的日期。 - RSS:每種語言一份。
- llms.txt:從已發佈的文章自動產生,給 AI 搜尋引擎讀。
- 多語言:hreflang 只列出實際存在的語言版本。
- 監控:Search Console、GA4、PageSpeed 和收錄狀態由獨立的 SEO Monitor 每天收集,Claude Code 可以直接查詢。
刻意沒用的東西
| 沒用 | 原因 |
|---|---|
| 公開頁走伺服器端產生 | 資料庫或服務掛掉時,公開站會跟著掛 |
| 用資料庫存文章、網頁編輯器 | 單一作者用 Claude Code 寫 Markdown,Git 已經提供版本與審稿 |
| 後台寫回 Git | 雙向同步容易出錯,後台只讀 |
| 魔法連結(Email)登入 | 免費方案的寄信額度太低 |
| 留言支援 HTML 和自動連結 | 有 XSS 與垃圾連結風險,純文字就夠 |
| 捲動動畫套件 | 文章站不需要,接管捲動會傷害閱讀體驗 |
| 從 CDN 載入前端套件 | 全部打包,不依賴外部服務 |
| 備份放在 Git 或主機本機 | repo 會一直變大、主機被回收就一起消失 |
| 各語言不同 slug | 需要對應表,每個翻譯都變成特殊情況 |
現在的規模
| 項目 | 數量(2026 年 10 月 11 日) |
|---|---|
| commit | 190 個 |
| 已發佈文章 | 27 篇 × 繁中、簡中、英文,22 篇另有西班牙文 |
| 主題 | 美股投資、加密貨幣、信用卡與銀行(AI 創業準備中) |
| 每天自動更新 | 理財利率、交易所排名 |
| 自動測試 | 204 項 |
更多文章在 AI 創業主題頁。
常見問題
Jason Finance 用什麼技術架的?
網站框架是 Astro,公開頁全部預先產生成靜態網頁,放在 Cloudflare Workers;文章是 GitHub 裡的 Markdown 檔;登入、留言和後台資料用 Supabase;一台 Oracle 的免費主機跑 Claude Code 和每日備份。
為什麼公開頁要全部做成靜態網頁?
Supabase 免費專案閒置一週會暫停,雲端服務也可能出問題。公開頁如果每次都要向資料庫要資料,資料庫一出事網站就跟著掛;靜態頁不依賴資料庫,讀者照樣看得到文章。
從零到上線花了多久?
第一個 commit 是 2026 年 10 月 2 日,10 月 4 日第一批文章以三種語言發佈,到 10 月 11 日累計 190 個 commit、27 篇文章各有繁中、簡中、英文版,其中 22 篇另有西班牙文版。
多語言網站的網址怎麼設計?
每篇文章一個資料夾,各語言共用同一個 slug,網址只差語言前綴,例如 /zh-hant/okx-review/ 和 /en/okx-review/。某個語言沒有檔案就不產生那一頁,不拿其他語言頂替。
沒有後台編輯器,文章怎麼發佈?
文章是 Markdown 檔,Claude Code 改好後 push 到 GitHub 的 main 分支,Cloudflare 自動建置並部署。另一個 preview 分支會產生含草稿的預覽網址,先給我看過再發佈。
延伸閱讀
- 看不懂程式也能架網站:我用 Claude Code + GitHub + Cloudflare 低成本架 Jason Finance 的方法與成本我看不懂程式碼,Jason Finance 是用 Claude Code、GitHub、Cloudflare Workers 和 Supabase 免費方案架起來的。整理整套架構、每個服務的用途與費用、我怎麼給 AI 權限,以及這種做法的限制。
- Git 可以 push,Claude Code 卻讀不到 GitHub Issues:SSH 與 GitHub API 權限的差別Claude Code GitHub Issues 讀不到,但 git push 正常?SSH key 只授權 Git 傳輸,Issues 和 PR 要另外的 API 認證。用 gh CLI 登入、確認權限、保護 token,並把 Issue 串成 PR 流程。
- 一台主機跑多個 Claude Code Remote Control:Linux user、systemd 與 git worktree 分工Claude Code 多個 Remote Control 跑在同一台主機:信任邊界不同就分 Linux user,每個環境一個 systemd service,同一個 repo 的開發和寫文章用 git worktree 分開,並說明 --spawn=worktree 的限制。

留言
使用 Google 登入即可留言。留言「不會」使用您的 Google 頭像或姓名,對外顯示的暱稱是系統隨機產生的代號,以保護您的隱私。
登入即表示你同意本站的隱私權政策。