🚧 网站正在建设中,部分内容由 AI 生成,如有错误,请见谅 🚧
01MVP
Tools

Next.js SaaS 中国化适配指南

Next.js SaaS 中国化适配指南

Next-forge 是基于海外生态构建的(Clerk + Stripe + Vercel)。如果你想用这套架构服务中国用户,必须进行“本地化剪裁”。

直接使用原版会遇到两个大坑:访问速度合规性

本文提供一套经过验证的“中国特供版”替换方案。

架构替换总览

模块原版方案 (Next-forge)中国化平替方案核心理由
认证 (Auth)ClerkLogto (自托管)Clerk 国内慢且无微信登录;Logto 支持微信且支持自托管
部署 (Deploy)VercelZeabur (香港/国内)Vercel 免费版在国内被墙/慢;Zeabur 香港节点秒开
支付 (Pay)Stripe微信 / 支付宝Stripe 不支持国内主流支付方式
邮件 (Mail)Resend阿里云邮件 / Resend SMTP提高国内送达率
分析 (Analytics)PostHog Cloud / GAPostHog 自建 / 百度统计 / 神策避免数据出境风险
文档 (Docs)MintlifyFumadocs访问速度 + 资产私有化

1. 认证层:Clerk → Logto

这是最关键的一步。

  • 现状:Clerk 的 JS SDK 托管在海外 CDN,国内加载极慢甚至超时,直接导致用户无法登录。且不支持微信登录。
  • 方案:使用 Logto
    • 它是一个开源的 Auth0 替代品,支持微信登录。
    • 通过 Zeabur 一键部署在香港节点,延迟 < 50ms。
    • 微信登录优势:支持“统一认证中心”模式,一个微信应用服务所有子产品。

👉 详细指南Logto: 开源、支持微信登录的 Auth0 替代方案

2. 部署层:Vercel → Zeabur

  • 现状:Vercel 的 Edge Network 虽然全球分布,但免费版在中国大陆没有节点,且 *.vercel.app 域名常年被污染。
  • 方案:使用 Zeabur
    • 国人友好:支持支付宝付款,文档中文。
    • 线路优化:香港/东京节点针对大陆优化,速度极快。
    • 全栈部署:不仅能部署 Next.js,还能一键部署 PostgreSQL, Redis, Logto, MinIO 等 Docker 服务。

3. 支付层:Stripe → 微信/支付宝

  • 现状:Stripe 无法直接开通(需要香港/美国公司)。
  • 方案
    • 个人开发者
      • 面包多/爱发电:门槛最低,但体验割裂。
      • XorPay / PayJS / Zpay:第三方免签/签约支付,有跑路风险。
    • 正规军
      • 直接申请 微信支付 / 支付宝 官方接口(需要个体户或公司)。
      • 技术实现:需要自建一个简单的 orders 表和 Webhook 处理逻辑。

4. 数据库:Neon → Zeabur PG / 阿里云

  • 现状:Neon 是 Serverless PG,节点通常在美国/欧洲。
  • 方案
    • Zeabur:部署 Logto 时通常会送一个 PostgreSQL,你可以直接用这个库,或者再开一个服务。内网连接速度极快。
    • 阿里云/腾讯云 RDS:最稳妥,但价格稍贵。

5. 邮件服务:Resend → 阿里云邮件推送

  • 现状:Resend 的发信 IP 在国内有时会被列入黑名单,导致验证码收不到。
  • 方案
    • 阿里云邮件推送 (DirectMail):每天免费 200 封,送达率极高。
    • 配置:在 Logto 或 NextAuth 中配置 SMTP 连接即可。

6. 文档系统:Mintlify → Fumadocs

  • 现状:Mintlify 服务器在海外,国内访问偶尔抽风。且它是闭源 SaaS,文档数据不在你手里。
  • 方案:使用 Fumadocs
    • 它是基于 Next.js 的文档框架,完全开源。
    • 可以部署在 Zeabur 上,与你的主站同源。
    • 高度可定制(MDX, Tailwind)。

总结

中国化适配的核心思路是:保持 Next.js + Turborepo 的先进开发体验,但把“云服务”替换为“自托管”或“国内云厂商”

虽然这比直接用 SaaS 麻烦一点(需要多维护几个 Docker 容器),但换来的是极致的访问速度完全的数据掌控

附录:Zeabur 对 Turborepo 的支持

Zeabur 对 Turborepo(及 pnpm Workspaces)有着非常完善的原生支持,体验接近“零配置”。

1. 自动识别

Zeabur 会自动检测 pnpm-workspace.yaml。你只需要告诉它“在这个大仓库里,具体要部署哪一个子项目”。

2. 部署配置 (推荐)

最快的方式是使用 环境变量 指定目录:

  • Key: ZBPACK_APP_DIR
  • Value: apps/web (或你的具体项目路径)

配置后,Zeabur 会自动进入该目录构建,同时保留对根目录 node_modules 的访问权限。

3. 多应用部署

如果需要部署多个 App(如 apps/webapps/docs),只需多次添加同一个 GitHub 仓库,并分别设置不同的 ZBPACK_APP_DIR 即可。

On this page