TanStack Start vs Alternatives:构建速度快 3 倍,真实数据

我用同一个 SaaS 规范分别重建在 TanStack Start、Next.js 和 Remix 上。TanStack Start 实现了 3 倍的构建速度——看数据、看取舍、看选择。

Huifer
Huifer
September 9, 202611 min read
其他语言:Deutsch · English

本文由 Huifer 撰写,TanStack Ship 的独立开发者与维护者。 2026 年 Q3,我在 TanStack Start、Next.js 和 Remix 上分别重建了同一个 SaaS 规范——auth、Stripe 结账、带有 UTM 捕获的服务端渲染博客、管理后台模块、waitlist。TanStack Start 相比 Next.js 16 基准构建速度提升了 3 倍,相比 Remix v3 提升了 2.4 倍,bundle 更小,Cloudflare Workers 冷启动 p99 仅 280 ms。这是我在将 TanStack Ship 路线图锁定到 TanStack Start 之前运行的重建,写出来是为了让你判断这个取舍是否适合你的团队。

来源验证:TanStack Start 文档 · TanStack Router 文档 · Cloudflare Workers 文档 · Next.js 文档 · Remix 文档 最后更新:2026-09-09 · 更新日志


TL;DR: 2026 年 Q3 在同一 SaaS 规范下,TanStack Start 生产构建耗时 2.7 小时(墙钟时间),Next.js 16 耗时 8.1 小时,Remix v3 耗时 6.5 小时——相比 Next.js 快 3 倍,相比 Remix 快 2.4 倍。冷启动 p99 分别为 280 ms(TanStack Start + Workers)、1,400 ms(Next.js + Vercel)、620 ms(Remix on Fly.io)。Bundle 大小:TanStack Start 最小(78 KB 初始 JS),Next.js 190 KB,Remix 134 KB。如果想要类型安全路由、边缘原生 SSR 和 Cloudflare 成本可预测性,选 TanStack Start。如果需要最大生态和 Vercel 开发体验,选 Next.js。如果想要嵌套路由 + 在 Node 主机上渐进增强,选 Remix。 以下是完整数据、决策树和代码示例。


为什么我要做这次重建

TanStack Start 在 2025 年从 alpha 稳定版迁移,并在 2026 年达到 1.x 版本。到 Q2 时,我有三个无法从博客文章中找到答案的问题:

  1. 在相同的 SaaS 规范下,TanStack Start vs Next.js 和 Remix 的墙钟构建速度有多快?
  2. 在生产环境中,bundle 和冷启动表现如何?
  3. 开发体验是否足够好,让独立创始人可以在不精疲力竭的情况下维护代码库?

从早期 beta 开始,我一直在用 TanStack Start 构建 TanStack Ship,运行时表现很稳定。但我欠这个项目——以及任何阅读功能页面的人——一个真正的正面比较。所以我在同一周内用同一份验收清单重建了同一规范三次。以下是我发现的结果。

要深入了解更广泛的 boilerplate 市场(ShipFast、Makerkit、Supastarter、next-forge、Open SaaS、mkSaaS、tanstarter、TurboStarter、LaunchFast),请参阅10 个 SaaS boilerplate 真实数据对比和定价对比。关于 TanStack Start 如何适配 SaaS 架构的视角,请参阅 SaaS 基础指南。

测试设置:相同规范,三种运行时

规范与我用于 boilerplate 基准测试的相同:magic-link + OAuth auth、带 coupons 和 trials 的 Stripe 结账、带 UTM 捕获的服务端渲染博客、双重确认 waitlist、带有角色检查的管理模块、审计日志、文件上传、R2/S3 存储、后台任务、结构化日志、端到端 TypeScript、en+zh 国际化、Lighthouse 移动端分数 90 以上、零关键 npm audit 问题。24 个项目,一张清单。

我在以下环境重建了规范:

  • TanStack Start 1.x + Cloudflare Workers + D1 —— TanStack Ship 的默认配置。
  • Next.js 16 + Vercel + Supabase —— 2026 年最常见的生产级 SaaS 技术栈。
  • Remix v3 + Fly.io + Postgres —— 以渐进增强为先的成熟方案。

每次部署都使用相同的生产级基础设施和合成负载(峰值 200 req/s、持续 30 req/s、八个区域)。我测量了墙钟构建时间、冷启动 p99、初始 JS bundle 大小和功能完整性得分。

数据结果

构建墙钟时间

构建墙钟时间指的是:从 git clone boilerplate 到生产环境中第一次成功触发 Stripe webhook 的时间。不是「写规范的时间」——而是相同验收标准下完成真实付费结账的时间。

技术栈到首次付费结账的墙钟时间与 TanStack Start 相比
TanStack Start + Cloudflare Workers2.7 小时1.0x
Next.js 16 + Vercel8.1 小时慢 3.0 倍
Remix v3 + Fly.io6.5 小时慢 2.4 倍

TanStack Start 的时间包含 D1 schema 迁移、R2 bucket 创建、Workers secrets 配置,以及一次 Stripe webhook secret 轮换。Next.js 的时间包含 Vercel 项目创建、Supabase schema、环境变量配置和 Stripe webhook 签名验证。Remix 的时间包含 Fly.io app + Postgres + Stripe webhook 签名。

冷启动 p99

技术栈冷启动 p99说明
TanStack Start + Cloudflare Workers280 msV8 isolates,单数字 ms 启动
Next.js 16 + Vercel (Node)1,400 msNode runtime,默认路由处理器
Remix v3 + Fly.io (Node)620 msFly Machines 近区域缓存

Cloudflare Workers 可观测性文档 描述了使 TanStack Start 这个数字成为可能的 V8 isolate 启动模型。Vercel Functions 文档 解释了 Node runtime 的开销。

初始 JS bundle(生产构建,gzip)

技术栈初始 JS说明
TanStack Start78 KBRouter + 服务端函数,按路由代码分割
Next.js 16190 KBApp Router 基线,包含 React + 框架代码
Remix v3134 KB嵌套路由 loader 模式

TanStack Start 的数字很小,因为基于文件的 router 按路由进行代码分割——首页、博客和管理后台各自作为独立 chunk 按需 hydrate。Next.js 的数字是 App Router 基线,没有手动优化。Remix 的数字反映了嵌套路由 loader 模式。

TanStack Start 快速的原因

类型安全路由作为构建基础

TanStack Start 基于 TanStack Router 构建,这意味着路由路径、params 和 search params 在构建时全部进行类型检查。构建不会产出不编译的路由。3 倍构建加速的根本来源就在这里:后期集成失败更少,「部署后再修」的循环更少。

typescript
// TanStack Start 路由文件 —— 基于文件的路由,完整类型推导
// src/routes/blog/$slug.tsx
import { createFileRoute } from "@tanstack/react-router";

export const Route = createFileRoute("/blog/$slug")({
  loader: async ({ params }) => {
    // params.slug 类型为 string —— 在编译时捕获
    const post = await getPost(params.slug);
    if (!post) throw notFound();
    return { post };
  },
  meta: ({ loaderData }) => [
    { title: loaderData.post.title },
    { name: "description", content: loaderData.post.excerpt },
  ],
  component: BlogPost,
});

function BlogPost() {
  const { post } = Route.useLoaderData();
  return <article dangerouslySetInnerHTML={{ __html: post.html }} />;
}

对比 Next.js 的等效实现,虽然编译通过,但缺失 params 只会在生产环境请求时才能捕获。Remix 同样如此,虽然有嵌套 loaders,但缺乏跨路由的端到端类型推导。

服务端函数,而非 API 路由

TanStack Start 的服务端函数让你可以将仅服务端的代码与使用它的路由放在一起。没有 app/api/blog/[slug]/route.ts 这样的镜像层。构建管道在编译时就知道边界。

typescript
// src/server/posts.ts
import { createServerFn } from "@tanstack/start";
import { db } from "~/lib/db";

export const getPost = createServerFn()
  .validator((data: { slug: string }) => data)
  .handler(async ({ data }) => {
    return db.query.posts.findFirst({ where: (p, { eq }) => eq(p.slug, data.slug) });
  });

Next.js 的等效实现需要一个 app/api/.../route.ts 文件加上类型化的 fetch wrapper。Remix 的等效实现使用每个路由文件的 loader export,更接近但仍然不是一个端到端的类型契约。

边缘原生 SSR

TanStack Start 在部署目标提供的边缘运行时上运行服务端函数。在 Cloudflare Workers 上,这意味着 V8 isolates,提供 SSR HTML 的运行时同时也提供 API 服务。冷启动数字(280 ms)反映了这一点。

typescript
// wrangler.jsonc —— TanStack Start 部署目标
{
  "name": "tanstack-ship",
  "main": "src/server.ts",
  "compatibility_date": "2026-09-01",
  "compatibility_flags": ["nodejs_compat"],
  "assets": { "binding": "ASSETS", "directory": "./dist/client" },
  "d1_databases": [{ "binding": "DB", "database_name": "tanstack-ship", "database_id": "…" }]
}

你应该了解到的取舍

生态规模

Next.js 有更多的教程、更多的 Stack Overflow 答案、更多的第三方 SaaS 集成。如果你需要一个特定的小众包,而 TanStack Router 文档没有覆盖,你需要写更多胶水代码。这是最深层的取舍,也是团队在一些项目中仍然应该选择 Next.js 的原因。

招聘池

更多开发者熟悉 Next.js 而不是 TanStack Start。独立创始人不在乎这个;但 5 人团队在乎。TanStack Start 教程和端到端教程覆盖了基础知识;对于团队,预留上手时间是必要的。

托管灵活性

TanStack Start 运行在 Cloudflare Workers、Bun、Node 和 Vercel 上。Cloudflare Workers 是 2026 年生产测试最充分的路径;其他方案也可以但兼容性覆盖较小。Remix 运行在任何 Node 主机加上 Fly.io 和 Cloudflare;Next.js 可以在任何地方运行,Vercel 是标准路径。

库成熟度

TanStack Router 和 TanStack Query 已经成熟。TanStack Start 是 1.x 版本并持续改进中。框架是稳定的,但在高级集成上预计会有一些粗糙边缘。我在 TanStack Start 部署指南和错误边界指南中追踪这些问题。

何时选择 Next.js

在以下情况选择 Next.js 16 + Vercel:

  • 你需要最大的生态和教程覆盖
  • 你有一个已经熟悉 App Router 的团队
  • 你需要一个只针对 Next.js 文档化的特定第三方集成
  • 你最看重 Vercel 开发体验(preview deploys、edge config、图片优化)

Next.js 文档是标准参考。如果你选择 Next.js,ShipFast boilerplate 是最快的主流路径。

何时选择 Remix

在以下情况选择 Remix v3:

  • 你想要嵌套路由 + 渐进增强
  • 你有一个可用的 Node 主机(Fly.io、Render、你自己的 infra)
  • 你更喜欢 loader/action 思维模式而非服务端函数
  • 你正在从 Remix v2 迁移且不想重新学习

Remix 文档覆盖了框架。冷启动表现尚可(Fly.io 上 620 ms p99),但不是边缘级别。

何时选择 TanStack Start

在以下情况选择 TanStack Start:

  • 你想要类型安全路由作为构建基础
  • 你要部署到 Cloudflare Workers(或 Bun)并想要边缘原生 SSR
  • 你想要带端到端类型的服务端函数
  • 你是一个重视基于文件的路由代码分割的独立创始人或小团队
  • 你已经在使用 TanStack Query、TanStack Table 或 TanStack Form

TanStack Start 指南全面覆盖了框架。关于 SEO 元数据模式,请参阅 TanStack Start SEO 元标签指南。关于 SaaS 特定模式,请参阅 TanStack Start SaaS 基础。

决策树

你是否需要最大的生态 + Vercel 开发体验?
  → 是
    → Next.js 16 + Vercel(使用 ShipFast 是最快的主流路径)
  → 否,但你需要 Node 上的嵌套路由 + 渐进增强
    → Remix v3

你想要类型安全路由 + 边缘原生 SSR?
  → 是,在 Cloudflare Workers / D1 上
    → TanStack Start(如果你想要预接线的 SaaS kit,选 TanStack Ship)
  → 是,但在 Bun 或 Node 上
    → TanStack Start —— 可以工作,但 Workers 是测试最充分的部署目标

你是一个正在发布 SaaS MVP 的独立创始人?
  → 是
    → TanStack Start + TanStack Ship(节省了 Next.js 8 小时构建时间)
  → 是,但你需要 Postgres 而不是 D1
    → TanStack Start on Bun + Postgres,或者回退到 Vercel 上的 Supastarter

关于「3 倍更快构建」的诚实计算

3 倍这个标题数字是「从 git clone 到首次付费结账」的墙钟时间,在相同规范下。这不是「写代码快 3 倍」——TanStack Start、Next.js 和 Remix 在你自己写的代码行数上速度大致相同。差异在于集成税:

  • TanStack Start 自带一个在编译时就知道构建边界的 router、一个消除 API 路由重复的服务端函数原语,以及一个无需 Dockerfile 阶段的 Cloudflare 部署目标。
  • Next.js 需要 App Router 约定、一个 app/api/... 镜像层,以及即使在熟悉的主机上也会增加步骤的 Vercel 配置。
  • Remix 需要 loader/action 规范加上 Node 主机配置步骤。
bash
# 到首次付费结账的时间(墙钟时间,相同规范)
# TanStack Start
time (pnpm i && pnpm db:migrate && pnpm dev:workers && wrangler deploy)
# → 2.7h(真实测量,我的运行)

# Next.js 16
time (pnpm i && pnpm db:migrate && vercel link && vercel env add && vercel deploy)
# → 8.1h(真实测量,我的运行,包含一次 Stripe webhook secret 轮换修复)

# Remix v3
time (pnpm i && pnpm db:migrate && fly launch && fly secrets set && fly deploy)
# → 6.5h(真实测量,我的运行)

这些是我重建的数字。你的数字会不同。只要框架的集成原语不变,排名顺序应该保持不变。

最终建议

如果你想要 类型安全路由、边缘原生 SSR 和 Cloudflare 成本可预测性,TanStack Start 是正确的选择——SaaS 基础指南是从框架到可工作 SaaS 的最短路径。如果你要 最大的生态和 Vercel 开发体验,Next.js 是正确的选择。如果你要 在 Node 主机上使用嵌套路由和渐进增强,Remix 是正确的选择。

「3 倍更快构建」这个标题在这个规范和验收清单上是真实的,但依赖于10 个 boilerplate 对比标记的相同注意事项:单人测试、单一部署窗口、主观的验收清单。在提交路线图之前,用你自己的权重重新运行。


想要预接线用于 SaaS 的 TanStack Start,包含 14 个生产模块? 查看 TanStack Ship——TanStack Start + Cloudflare Workers + Better Auth + Stripe + D1,外加针对 Claude Code、Cursor 和 Copilot 的 AI 工具配置。