注册前的环境检查
搭建前确认:
- GitHub 账户:模板通过 GitHub Repo 邀请交付
- Vercel / Cloudflare Pages 账户:部署
- Supabase / Neon / Turso 账户:数据库
- Stripe 账户:海外公司主体(LLC / OÜ / HK Ltd)
- Paddle 账户(可选):作为 MoR 替代 Stripe
- Resend / Postmark 账户:邮件
- 域名:建议 .com / .ai / .so
整个搭建过程会持续访问 Vercel / Cloudflare / Stripe / Supabase / GitHub Actions 等海外服务,网络稳定性直接影响节奏。建议常备一条 独立开发者出海稳定专线,避免部署关键节点掉线。
5 个主流模板对比
| 模板 | 价格 | 出海支持 | 主要特点 | 适合人 |
|---|---|---|---|---|
| Supastarter | $49+/月或买断 | ⭐⭐⭐⭐⭐ | i18n + 多币种 + 多 tenant + RBAC | B2B 团队 / 复杂需求 |
| Makerkit | $349-499 | ⭐⭐⭐⭐⭐ | Supabase 原生 + i18n + 多币种 | 中等复杂 SaaS |
| Shipfast | $199 | ⭐⭐⭐ | 极速部署 + 单语言 + Stripe | 赶时间 / 单语言场景 |
| Ixartz SaaS Boilerplate | 免费 | ⭐⭐⭐⭐ | Clerk + Stripe + Drizzle + i18n | 开源 / 自己改 |
| Next.js 官方 saas-starter | 免费 | ⭐⭐ | 极简 / 需自己加 i18n | 学习用 |
Next.js 出海 SaaS 模板:以 Supastarter / Makerkit 为例:按这个顺序操作
第 1 步:选模板 + 付款
- Supastarter:https://supastarter.dev → 选 Next.js Stripe Boilerplate → 付款
- Makerkit:https://makerkit.dev → 选 Next.js Supabase → 付款
- 付款后会收到 GitHub 邀请
第 2 步:Clone 模板 + 安装依赖
git clone https://github.com/yourorg/your-saas.git
cd your-saas
pnpm install
pnpm dev
打开 localhost:3000 看默认页面跑起来。
第 3 步:环境变量配置
复制 .env.example → .env.local,填:
# Database
DATABASE_URL=postgresql://...
SUPABASE_URL=https://xxx.supabase.co
SUPABASE_ANON_KEY=eyJxxx
# Auth
NEXTAUTH_SECRET=...
GOOGLE_CLIENT_ID=...
GOOGLE_CLIENT_SECRET=...
# Stripe
STRIPE_SECRET_KEY=sk_live_xxx
STRIPE_PUBLISHABLE_KEY=pk_live_xxx
STRIPE_WEBHOOK_SECRET=whsec_xxx
# Email
RESEND_API_KEY=re_xxx
# OpenAI / Anthropic(如有 AI 功能)
OPENAI_API_KEY=sk-xxx
ANTHROPIC_API_KEY=sk-ant-xxx
第 4 步:Stripe Products 设置
在 Stripe Dashboard 创建:
- 产品(Product):你的 SaaS 名
- 价格(Price):USD / EUR / CNY 多币种价格
- Pro Monthly USD $19
- Pro Monthly EUR €17
- Pro Annual USD $190
- Webhook 端点:填你部署后的
/api/webhooks/stripe
把 Price ID 填到模板的 config/billing.ts。
第 5 步:i18n 多语言
Supastarter / Makerkit 用 next-intl,结构:
messages/
├── en.json
├── zh-CN.json
├── es.json
└── fr.json
修改翻译文件,刷新页面切换语言。Crowdin / Lokalise 接入做多人协作翻译。
第 6 步:部署到 Vercel
vercel
vercel --prod
或在 Vercel Dashboard 连接 GitHub 仓库自动部署。
第 7 步:自定义域名 + DNS
- 在 Cloudflare 买域名(约 $10-15/年)
- Vercel → Settings → Domains → 添加域名
- Cloudflare DNS 加 A 记录指向 Vercel
第 8 步:测试支付链路
- Stripe Test Mode → 用测试卡 4242 4242 4242 4242 测试订阅
- 触发 Webhook → 数据库写入用户订阅记录
- 用户 Dashboard 显示订阅状态
测试通过后切到 Live Mode 接受真实付款。
常见失败原因
- Webhook 没配置正确:导致用户付款成功但数据库不更新订阅
- 环境变量名称不一致:导致部署后 Auth 失败
- 多币种 Price ID 漏配:用户切语言后看到错误价格
- 没启用 RLS(Row Level Security):Supabase 数据被任意用户访问
- 测试模式 / Live 模式 Key 混用:Stripe 拒绝处理
安全加固
- 启用 Vercel + Stripe + Supabase 的 2FA
- 配置 Sentry / Posthog 监控错误和用户行为
- 配置 Cloudflare WAF 防恶意流量
- 跑 Stripe Radar 防欺诈
- 每周做一次完整 backup
跨地区访问
部署完成后日常运维仍需稳定访问 Stripe Dashboard / Vercel / Cloudflare / Supabase。游民期间登录这些服务对网络稳定性要求高,建议常备一条覆盖 GitHub Actions / Cloudflare 的稳定线路。