「我下一个项目要不要直接上 TanStack Start,还是继续用 Next.js?」
这是 2025 年下半年开始在前端独立开发者圈里高频出现的问题。下面是 EasyStarter 团队在用过两套栈、各自上线过若干个 SaaS 项目后的实战对比。
TL;DR
- Next.js:生态最大、招聘信号最强、Vercel 上一切默认开箱即用——但 App Router + RSC 的复杂度对一人项目来说是过度工程。
- TanStack Start:心智更纯粹(Vite + React Router 风格 + type-safe loader),部署灵活,跟 Cloudflare Workers 配合极佳——但生态年轻,组件库适配少。
如果你是独立开发者做出海 SaaS,只要不强依赖某个只支持 Next.js 的库(Auth.js、Vercel AI SDK 等),优先选 TanStack Start。
1. SSR / SSG 心智
Next.js App Router
async 服务端组件 + 'use client' 边界 + revalidatePath + dynamic = 'force-dynamic' + Suspense streaming——好处是能力强,坏处是排查 bug 时你得问自己:
- 这是 RSC 还是 Client Component?
- 缓存策略是 SSG 还是 ISR 还是 dynamic?
- 我这次部署的 build 输出到底是 edge runtime 还是 nodejs runtime?
对中大型团队这是必要的复杂度。对一人项目,这是「为了用 RSC 而用 RSC」的税。
TanStack Start
每个路由就是 loader + component,loader 在服务端跑,组件在客户端 hydrate——和你之前写 React Router 没区别,只是 loader 端到端类型安全。
export const Route = createFileRoute("/posts/$slug")({
loader: ({ params }) => fetchPost(params.slug),
component: PostPage,
});没有 RSC 边界、没有「这一段到底跑在哪儿」的困惑。
2. 部署灵活度
| 部署目标 | Next.js | TanStack Start |
|---|---|---|
| Vercel | 一等公民 | 支持 |
| Cloudflare Workers | OpenNext 适配,有坑 | 官方一等公民 |
| Cloudflare Pages | 部分支持 | 支持 |
| Netlify | 支持 | 支持 |
| Docker / VPS | 支持 | 支持 |
Next.js 离开 Vercel 之后处处是坑:image optimization 要自己换、middleware 行为不一致、ISR 在非 Vercel 平台几乎不可用。TanStack Start 用 Nitro 做适配层,对 Cloudflare Workers 的支持是官方一等公民——这点对想用 Workers 把月成本压到 $0 的独立开发者非常关键。
3. Cloudflare Workers 兼容性
Workers 的限制:
- 50ms CPU 时间(付费版 30s)
- 不支持 Node.js 原生模块(除非开 nodejs_compat)
- 文件系统、子进程都没有
- 包大小 1MB(压缩前)
Next.js 在 Workers 上跑,本质是把 SSR 输出拆成 edge runtime 函数,但很多 Next.js 生态库(Sharp、bcrypt、puppeteer)直接不可用。
TanStack Start 因为没有 RSC 这层,加上路由级别 splitting 的颗粒度更细,生产构建 bundle 通常比同等 Next.js 应用小 30-50%,离 1MB 上限远得多。
4. 类型安全
| 维度 | Next.js (App Router) | TanStack Start |
|---|---|---|
| 路由参数类型 | typedRoutes 实验性 | 默认强类型 |
| Loader 返回值类型 | 手动 | 默认推断 |
| Search params | 手动 parse + 校验 | Zod schema 内置 |
| Server function | Server Actions(弱类型) | createServerFn + Zod |
TanStack Start 是当前 React 全栈框架里类型安全最强的——useLoaderData() 自动推断、search params 用 Zod 定义即可、createServerFn 端到端类型贯穿。
5. 生态成熟度(劣势项)
诚实地说,TanStack Start 在这些点上落后:
- 认证库:NextAuth / Auth.js 几乎只为 Next.js 设计。TanStack Start 用 Better Auth 或自己接 oAuth。
- shadcn/ui:完美适配,无问题。
- Vercel AI SDK:可以用,但例子全是 Next.js。
- 招聘市场:Next.js 是默认项,TanStack Start 还没被大量公司采用。
- 教程数量:Next.js 文章数量是 TanStack Start 的 50 倍以上。
6. 一个具体的取舍场景
场景 A:你要做一个面向 C 端的内容站(博客、SEO、营销页) → Next.js。它的 ISR、image optimization、metadata API 是最成熟的。
场景 B:你要做一个 SaaS 应用(dashboard、CRUD、订阅) → TanStack Start。loader + Zod + Cloudflare Workers 这套组合在「类型安全 + 月成本 $0 + 快速迭代」上更有优势。
场景 C:你要做混合站点(营销页 + 应用) → 取决于团队习惯。TanStack Start 的 SSR 也完全够用做营销页,但你需要自己实现一些 Next.js 默认有的东西(sitemap、robots、og image 生成)。EasyStarter 已经把这些都默认包好了。
7. EasyStarter 为什么选 TanStack Start
我们做 EasyStarter 时面临的取舍是「让独立开发者用 Cloudflare Workers 把月成本做到 $0」。这个目标下:
- Next.js 在 Workers 上的坑太多,每次 Next.js 大版本升级都要担心 OpenNext 适配
- TanStack Start 官方就是「跑在 Nitro 上,原生支持 Workers」
- TanStack Start 的类型安全程度更高,对 AI Coding(Cursor / Claude Code)更友好
实际效果:EasyStarter 用 TanStack Start + Hono + Workers,端到端冷启动 < 50ms,10k MAU 下月费 $0。
什么时候继续选 Next.js
- 你强依赖 Vercel 生态(AI SDK、Edge Config、KV)
- 你的核心功能依赖 RSC(如复杂数据流分片)
- 你的团队招人主要看 Next.js 经验
- 你的项目是 SEO 重度依赖的内容站(不是 SaaS)
写在最后
框架本身的差异,在「能不能上线」面前永远是次要的。两套栈都能做出能赚钱的 SaaS——区别只是「让你少写多少胶水代码」「让你 AI 编辑器少出多少错」。
如果你想直接看 TanStack Start + Cloudflare Workers 的端到端工程化样板,可以参考 EasyStarter Web 快速开始。
继续阅读
Cloudflare Workers vs Vercel vs Supabase:出海 SaaS 的成本与延迟对比
三家最流行的 SaaS 托管平台横向对比:定价模型、免费额度、冷启动延迟、中国大陆访问表现、数据库选项与锁定风险,附真实成本场景。
EasyStarter 为什么要做国内版?对比 Cloudflare 版,国内版的真实优势
面向中国独立开发者:为什么 Cloudflare 版的全栈 SaaS 模板不够用?国内版(阿里云 + ZPay)在合规、支付、延迟、用户体验上有哪些真正不可替代的优势?
2026 年全栈 SaaS 模板对比:EasyStarter vs ShipFast vs Makerkit vs Supastarter
横向对比四款热门 SaaS 模板的技术栈、价格、目标用户、月成本与中国出海能力,帮独立开发者三分钟做出选型决策。