跳到主要内容
Jason Finance
AI 创业

Jason Finance 从零到一:10 天、190 个 commit,用 Claude Code 搭建四语理财网站的技术架构与做法

Jason Finance 从 2026 年 10 月 2 日第一个 commit 到四语上线的完整记录:Astro、Cloudflare Workers、GitHub、Supabase 的技术架构、为什么这样选、每天做了什么,以及内容、数据同步、SEO 和 AI 权限的做法。

本文目录
  1. 1.一句话说完整套架构
  2. 2.10 天做了什么
  3. 3.七个关键决定
  4. 3.11. 公开页面全部静态
  5. 3.22. 文章放在 Git,一篇一个文件夹,各语言共用 slug
  6. 3.33. 规则写进数据结构,不靠记性
  7. 3.44. 每种数据只有一个来源
  8. 3.55. 一套登录,数据库权限是真正的边界
  9. 3.66. 翻译是规则,不是额外工作
  10. 3.77. 给 AI 的权限:看影响,不看指令
  11. 4.一篇文章从写到上线
  12. 5.SEO 和 AI 搜索的基本功
  13. 6.刻意没用的东西
  14. 7.现在的规模
  15. 常见问题

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 的权限:看影响,不看指令

我看不懂代码,不可能逐条批准指令。规则是按“这件事会造成什么影响”决定要不要问我:一般的修改和部署直接做;发布我没看过的内容、改正式环境的设置要由我决定;删除数据、改数据库则是开工前说明一次范围、风险和备份。细节见《看不懂代码也能建网站》。

一篇文章从写到上线

  1. 定题目:主题和角度由我决定,Claude Code 根据内容规划提出建议。
  2. 写繁中初稿:每个数字附官方来源和日期,我自己的经验和截图由我提供。
  3. 润色:用多语言润色规则去掉翻译腔和 AI 套话,不增减事实。
  4. 自查清单:关键词、结构、来源、内部链接、FAQ、分享图逐项检查,结果汇报给我。
  5. 预览:草稿推送到 preview 分支,我在预览网址上看。
  6. 定稿后翻译:我说定稿,Claude Code 生成其他语言版本,四语一起发布。
  7. 上线后记录: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 分支会生成包含草稿的预览网址,先给我看过再发布。

延伸阅读

关于作者

Jason 的照片

Jason

Google 大客户销售客户经理、哥伦比亚大学 MBA 录取者,分享自己实际用过的理财工具与经验。

留言

使用 Google 登录即可留言。留言“不会”使用您的 Google 头像或姓名,对外显示的昵称是系统随机生成的代号,以保护您的隐私。

登录即表示你同意本站的隐私政策。

  1. 加载留言中…