北京亦庄前阵子挂了块牌子——国内首个 OPC 创新社区。OPC 是 One Person Company 的缩写,直译就是"一人公司"。这个概念过去几年在海外已经跑通了,Pieter Levels 一个人做了 Nomad List 和 Remote OK,ARR 破百万美元;日本那边 Takuya 用 Next.js + Supabase + Claude 独立做 SaaS,案例写进了各种 YC 的推荐读物。
国内最近也开始有人认真做了。V2EX 上有个 41 岁的 Java 老兵发帖讲他第一次出海独立开发,技术栈从 Java 全家桶换成 Next.js。他说的原因很实在——"一个人扛不动那一套重装备"。
但问题来了,如果你的用户在国内,这套海外标准栈还能不能用?
答案是:能用,但会撞墙。
这篇不谈情怀,逐层算账——Next.js + Supabase + Vercel + Stripe 这四样东西到了国内分别卡在哪里,CloudBase 能不能替,以及什么场景下你压根不该换。
一、一人公司开发者的四个真实约束
聊技术选型之前,先把约束摆清楚。一个人做产品,你面对的不是"哪个框架最先进"的问题,是"哪套组合能让我活下来"的问题。
时间。一个新功能必须一天内跑通,不行就是两天,两天还搞不定就要砍需求。一人公司没有人陪你一起 debug,也没人帮你写 CI/CD。
成本。起步阶段必须能用免费额度跑,能把付费时间点拖到第一个真实用户付钱之后。每月固定 99 美元的基础开销在海外是小钱,在国内对独立开发者就是劝退信号。
合规。备案、支付、发票、实名认证——这些事情一个人全要扛。海外开发者收 Stripe 的钱走 Payoneer 回国内,这条路对大部分人来说太复杂,不如一开始就走微信支付。
生态。你的用户在哪里,决定了你的流量起点在哪里。国内产品最顺的冷启动是微信生态(小程序、公众号、视频号),海外产品最顺的是 Twitter + Product Hunt + Reddit。这两条路几乎不交叉。
海外标准栈(Next.js + Supabase + Vercel + Stripe)能成为标准,是因为它精准匹配了"海外一人公司"的四个约束。但国内的约束不同,最优解也必然不同——这不是技术问题,是地理和政策问题。
二、海外标准栈在国内的三道坎
先说 Vercel。
Vercel 的边缘节点在海外,国内用户访问会走跨境链路,实测延迟 300-800ms 波动,高峰期掉包。这不是"配置优化能解决"的事,是物理距离决定的。你可以套一层 Cloudflare 加速,但 Cloudflare 在国内的状态你懂的——有时候能用,有时候连 DNS 都过不去。
然后是 Supabase。
Supabase 没有国内节点,数据库和 API 全在海外。即使你的前端部署在国内,后端调用依然要跨境。Pro 版本也改变不了这个物理现实。有人试过在国内搭 Supabase 自托管(它是开源的),但那就失去了选 Supabase 的初衷——你要的是"不用运维",自托管等于把运维搬回来了。
最后是 Stripe。
这是最硬的坎。Stripe 不支持国内个人开发者注册,即使你注册了香港公司走 Stripe HK,收到的款要回大陆还得过一道汇款合规。对一个人的项目来说,这是无底洞。国内合规的支付路径只有微信支付、支付宝、银行聚合这几条,其中微信支付对小程序场景最顺,支付宝对 H5/PC 场景最顺。
这三道坎叠起来,海外标准栈在国内的体验大概是:前端慢、后端更慢、想收钱收不了。
有人会说,那就混合部署——前端走国内、后端还用 Supabase、支付走微信 。可以,80aj.com 那篇混合架构文章就是这个思路,但它代价是你要同时维护两套部署、两套域名、两套监控。对一人公司来说,复杂度立刻翻倍。
三、逐层对标 CloudBase
CloudBase 能不能打?逐层看。
前端部署:Next.js 在 CloudBase 的真实支持度
这里很多人有个误解——以为 CloudBase 只能部署静态站点,Next.js 的 SSR/ISR 跑不了。
官方文档摆在那里(docs.cloudbase.net/cloud-function/frameworks-examples/next),Next.js 在 CloudBase 上是一等公民:
| 能力 | 支持情况 |
|---|---|
| SSR(服务端渲染) | ✅ 原生支持 |
| SSG(静态生成) | ✅ 原生支持 |
| ISR(增量静态再生) | ✅ 原生支持 |
| API Routes | ✅ 原生支持 |
| Middleware | ✅ 原生支持 |
实现路径是用 HTTP 云函数承载 next start,通过 scf_bootstrap 拉起 Node 服务监听 9000 端口。你需要改两个地方:
// next.config.js
const nextConfig = {
output: 'standalone',
images: { unoptimized: true },
};
加一个启动脚本 scf_bootstrap:
#!/bin/sh
export PORT=9000
export NODE_ENV=production
npm start
部署一次就跑起来了。
要承认的缺点:
next/image的图片优化得禁掉,没有 Vercel 那种开箱即用的 Image Optimization- 云函数有冷启动,首次访问 1-3 秒,不如 Vercel 的边缘节点快
- Windows 用户创建
scf_bootstrap会遇到换行符问题(^M),要用 nano 或 vim git push即部署这个心智,CloudBase 要配合 CLI V3 才能做到,没 Vercel 那么傻瓜
所以结论是:技术完全可行,开发者体验(Developer Experience,后文简称 DX)比 Vercel 差半级。
数据库:云数据库 vs Supabase PostgreSQL
Supabase 的数据库是 PostgreSQL,带 RLS(行级安全)、实时订阅、auto-generated REST 和 GraphQL API,这套组合目前还是业界最舒服的。
CloudBase 云数据库走 MongoDB 风格的文档型数据库,外加可选的关系型数据库(MySQL)。差别很大:
- 数据模型:Supabase 天然适合关系型思维,CloudBase 文档型更适合小程序这种"一个文档对应一个业务对象"的结构
- 权限模型:Supabase 的 RLS 是 SQL 语法,写起来严谨;CloudBase 的权限规则是 JSON,学习曲线短
- 实时能力:Supabase 的 Realtime 基于 PostgreSQL logical replication,CloudBase 有实时数据库,功能对等但 API 不同
- 客户端 SDK:Supabase 的 TypeScript 类型推导是杀手级体验,CloudBase 这边类型支持有,但不如 Supabase 强
如果你的数据模型是强关系型(电商、SaaS、财务),Supabase 依然更舒服;如果是弱关系或文档型(内容平台、IoT、工具类小程序),CloudBase 够用。
认证:CloudBase 身份认证 vs Supabase Auth
Supabase Auth 开箱即用支持 40 多种 OAuth provider,Google、GitHub、Apple、Twitter、Facebook 全都是一键配置。
CloudBase 身份认证的强项在国内生态——微信、QQ、手机号、邮箱是亲儿子,接入一行代码;海外 OAuth(Google、GitHub 等)需要自己通过 OAuth 2.0 标准流程接入,不是开箱即用。
结论:你的用户在哪里,决定了谁更好用。国内产品选 CloudBase,海外产品选 Supabase,这个没争议。
API / 后端:HTTP 云函数 vs Vercel Serverless
两者都是 Serverless Functions,冷启动和计费模式差不多。几个真实差异:
- 部署单位:Vercel 是自动把
app/api/*打包成 functions;CloudBase 需要显式声明或通过 Next.js 整体部署 - 本地开发:Vercel 的
vercel dev和生产环境一致度高;CloudBase 的本地调试要配合 CLI - 边缘计算:Vercel 有 Edge Runtime,能在全球边缘执行;CloudBase 云函数目前主要在国内区域