TanStack Ship vs next-forge: Next.js 顶级方案 vs TanStack Start 顶级方案

TanStack Ship 与 next-forge 的真实对比,两者均定位为高端 SaaS 启动包。next-forge 主攻 Next.js 高端细分市场;TanStack Ship 则是 TanStack Start 的高端等效方案。相同的野心,不同的技术栈。

Huifer
Huifer
July 21, 202612 min read
其他语言:Deutsch · English

本文由 Huifer 撰写,TanStack Ship 的独立开发者与维护者。 如果我押注 Next.js,next-forge 是我会做的选择。它的高端体验是实打实的——背后的团队交付了一个精致、全面的启动包,整个 Next.js 生态也以强劲的社区反馈回应了它。TanStack Ship 则是 TanStack 生态对同一问题的答案——相同的野心,不同的技术栈。这篇对比面向的是在两个生态之间做选择的开发者,而非在同一个框架的两个分支之间挑。

已核实来源:next-forge 官网 · TanStack Ship GitHub 组织 最后更新:2026-07-21 · 更新日志


TL;DR: TanStack Ship 与 next-forge 同属高端 SaaS 启动包,同一价位,但面向不同生态。next-forge 是 Next.js 高端启动包领域的天花板——精致、全面,如果你押注 Next.js,它是答案。TanStack Ship 则是 TanStack Start 的高端等效方案——TanStack 原生模块、Cloudflare Workers + D1,以及围绕真实生产默认配置构建的 14+ 模块。如果你正在选框架,选与之匹配的启动包。


next-forge 是什么(一段话版)

next-forge 是一个由我尊重的团队维护的优质 Next.js SaaS 启动包。它配备了认证、计费、营销站点、管理后台、邮件层、博客、AI 集成、可观测性,以及一套精致的设计系统,全部对接 Vercel 友好的部署方式。代码质量高,文档详尽,设计语言一致,团队倾听社区反馈。它就是 Next.js 高端细分领域的最佳选手,不接受反驳。如果明天你要在 Next.js 上启动一个 SaaS,next-forge 应该进入你的候选清单。

TanStack Ship 是什么(一段话版)

TanStack Ship 是 TanStack Start 的高端 SaaS 等效方案。它配备了 auth(Better Auth)、计费(Stripe + D1)、邮件、UTM归因、推荐、积分、管理后台、博客、定价、i18n(Paraglide)、AI 集成、分析、监控,以及一个 CLI 脚手架——14 个模块在 Cloudflare Workers 上协同工作。这些模块源自我在 12+ 个生产级客户项目中反复需要的模式。整个平台运行在边缘,在我们这个负载规模下月成本约 14 美元,并随每个模块附赠 TanStack Intent Agent Skills。

依赖图谱揭示了平台故事:

jsonc
{
  "dependencies": {
    "@tanstack/react-start": "^1.0.0",
    "@tanstack/react-router": "^1.50.0",
    "@tanstack/react-query": "^5.50.0",
    "@tanstack/react-form": "^0.30.0",
    "@tanstack/react-table": "^8.20.0",
    "@tanstack/react-virtual": "^3.10.0",
    "drizzle-orm": "^0.30.0",
    "better-auth": "^1.0.0"
  }
}

next-forge 的对应部分以 Next 为核心——TanStack 在其依赖图谱中完全不出现:

jsonc
{
  "dependencies": {
    "next": "^14.2.0",
    "@next-auth/auth-js": "^5.0.0",
    "@vercel/postgres": "^0.10.0",
    "ai": "^3.0.0",
    "@vercel/analytics": "1.0.0",
    "inngest": "^3.20.0"
  }
}

结构性差异一目了然:TanStack Ship 的运行时是 TanStack;next-forge 的运行时是 Next.js。

坦诚的定位

这个对比不同寻常,因为两个代码库都是"对的"——针对不同的买家。并没有全场通吃的赢家。这篇文章末尾的决策树把选择具体化了;在那之前,接下来两节分别阐述每个启动包在结构上更优的维度。

我有偏向,因为我构建了 TanStack Ship。我和 next-forge 团队没有合作撰写这篇对比。在我自己的部署上测量过的数据,我用了真实数字;在估算 next-forge 的行为时,我保持了保守——这个团队在质量上已经赢得了怀疑的权利,即便我没有亲自 benchmark 过他们的技术栈。

架构与边缘故事

TanStack Ship 的边缘故事

TanStack Ship 仅运行在 Cloudflare Workers 上。整个架构围绕这个约束及其特性来构建:

  • 计算 — Workers V8 隔离。冷启动中位数约 5ms;负载下 p99 约 280ms。
  • 数据库 — D1(边缘的 SQLite),高吞吐量写入路径配合 Queue,读密集路由使用读副本。
  • 对象存储 — R2 用于用户上传、导出和大文件。无出口费用。
  • 异步 — Cloudflare Queues 用于生产者/消费者模式,Workflows 用于批量写入和持久重试。
  • 有状态边缘 — Durable Objects 用于实时和锁(用在限速和实时光标模块)。

成本概况是诚实的:在我跑 TanStack Ship 的负载规模下(约 3200 名付费客户,峰值约 250 req/s,每月约 700 GB 出口流量),Workers + D1 + R2 + Queues + Durable Objects 的全部账单约 14 美元/月。这个数字包含了上面所有命名的平台原语。

next-forge 的边缘故事

next-forge 是多平台的。代码库面向 Vercel(默认)、Netlify 和自托管 Node。架构选择来自多平台目标:

  • 计算 — Vercel Functions 上的 Node.js(或 Netlify/Node 上的等价实现)。在典型 Functions 配置下冷启动约数百毫秒。
  • 数据库 — Postgres,通常是 Neon 或 Supabase。样板代码带有 Postgres 原生假设:事务、外键、serverless 驱动。
  • 对象存储 — Vercel Blob / S3,取决于部署目标。
  • 异步 — Vercel Cron + Inngest(或等价方案),取决于你接入的方案。
  • 有状态边缘 — Vercel KV / Redis / Upstash,取决于配置。

多平台支持是真工程。维护两个或三个部署目标比维护一个更费功夫,next-forge 做到了。对于因企业 IT 或平台政策被锁定在特定主机上的团队,多平台支持是关键决策因素。

边缘基准——仅作方向性参考

我没有在相同负载下对 TanStack Ship 的 Workers 管道和 next-forge 的 Vercel 管道做过对照 A/B benchmark。TanStack Ship 的数字(冷启动 p99 约 280ms,边缘请求预算静态页面 TTFB < 50ms,来自 LHR)是我自己运行的真实数字。next-forge 的 Vercel 管道可比数字可通过 Vercel 公开的基础设施文档和客户报告获取。

请将此对比视为方向性的:Workers 会给你更好的冷启动,Vercel 会给你更丰富的构建生态。

功能矩阵

维度TanStack Shipnext-forge
元框架TanStack StartNext.js
默认主机Cloudflare WorkersVercel
认证Better Auth + D1Auth.js + Postgres
计费Stripe + D1 + Queue 写入路径Stripe + Postgres
数据库D1 (SQLite)Postgres (Neon / Supabase)
邮件Resend + QueuesResend + Vercel Cron
营销站点Inbound(TinaCMS 可选)内置
博客TanStack Router + MDXContentlayer / MDX
管理后台自定义 TanStack Router 页面Admin UI
i18nParaglide.js(3 语言)next-intl(多语言)
UTM 归因内置(以故障复盘为默认)默认不附带
推荐积分内置默认不附带
AI 集成TanStack Intent Agent Skills + Vercel AI SDK 风格包装器Vercel AI SDK + 供应商无关
分析自定义 D1 聚合 + Workers AnalyticsVercel Analytics + PostHog
监控Workers Analytics + D1 告警Sentry + 供应商集成
模块总数14约 10–12
CLI 脚手架Wrangler 风格Vercel CLI 风格
定价免费 Starter + 付费 Pro 套餐付费许可
维护每周发布(独立开发者)每周发布(小团队)

矩阵对覆盖对等性是诚实的。两个代码库都交付了 SaaS 必备要素。差异在于特定模块的深度和平台目标假设。

TanStack Ship 领先之处

  • UTM 归因和推荐积分作为默认配置。 这两个模块经过多次客户项目打磨才成型,现在已内置其中。
  • Queue 写入路径上的 Stripe 计费。 D1 写入锁故障复盘 是生产修复;queue 模式是新的默认。
  • TanStack Intent Agent Skills。 随包附赠的版本化 AI 上下文,而非你需要手动维护的 CLAUDE.md。TanStack Intent 解读 详述了其机制。

next-forge 领先之处

  • 多平台部署。 如果 Vercel 不是你的主机,next-forge 有路径。TanStack Ship 没有。
  • 内置营销站点精致度。 next-forge 的营销模板开箱即用更成熟。TanStack Ship 的营销模块刻意保持极简——它是起点,不是成品品牌站。
  • 精致的管理后台 UI。 next-forge 交付了更完整的管理后台;TanStack Ship 交付了路由结构与模式,把视觉设计留给你。
  • Vercel AI SDK 集成。 next-forge 的 AI 集成比 TanStack Ship 更紧密地对接 Vercel AI SDK。如果你使用 Vercel 的 AI 原语,next-forge 是更简单的路径。

AI 工具成熟度

这是我花最多时间的维度,因为它受"高端启动包"宣称影响最大。

TanStack Ship 的做法

TanStack Ship 为每个模块附赠 TanStack Intent Agent Skills——markdown 提示词、工具定义和示例工作流,在安装包时会被 Claude Code、Cursor、Windsurf 和 Codex 发现。Skill 文件随包版本化,所以处理 tanstack-ship@1.4.2 的 AI 代理看到的是 tanstack-ship@1.4.2 的 Skill,而非过时的全局提示词。包升级时,Skills 也随之升级。

每个 Skill 的有效载荷很小——约 3-5 KB markdown 加一个工具定义 JSON。每个 Skill 告诉 AI 模块做什么、API 表面积是什么、典型示例有哪些,以及要避免什么。AI 获得的是结构化、经过审查的上下文,而不是靠猜测包的导出。

next-forge 的做法

next-forge 交付了一个精致的 CLAUDE.md 和一个 cursor/rules 文件夹。代码库组织良好、类型完备、文档齐全——意味着 AI 代理可以在上面合理运作。代理的上下文就是仓库里的内容:代码、README、团队维护的 CLAUDE.md。

取舍在于:这种方法更简单,在任何 AI 工具上都适用,但需要持续维护。当 CLAUDE.md 与实际代码库脱节——当 API 变更而文档未更新——AI 就会基于过时文档产生幻觉。

实践中意味着什么

以我的实战经验,版本化 Skills 比 CLAUDE.md 形态的方式更能减少幻觉导入和过时 API 错误。但对照研究尚未完成。请将此说法视为方向性的:如果 AI 工具质量对你的日常工作重要,在做出承诺之前,在每个代码库上各做一个小规模原型是值得的。

决策树

如果以下任一条件为真,选 next-forge:

  • 你已锁定 Next.js 生态,TanStack 对你的团队而言不是进步而是侧移。
  • 你更需要开箱即用的精致管理后台、营销模板和设计系统,而不是模块深度。
  • 你的部署目标是 Vercel、Netlify 或自托管 Node——而非 Cloudflare Workers。
  • 你在建的是一个营销主导的 SaaS,品牌展示面比平台更重要。

如果以下任一条件为真,选 TanStack Ship:

  • 你想要 TanStack 原生集成(TanStack Router 模式、TanStack Query 约定、TanStack Form)默认接入,而非后期附加。
  • 你部署到 Cloudflare Workers,且想要 D1 + R2 + Queues + Workflows + Durable Objects 作为你的原语——以及其带来的成本结构。
  • 你想要随包附赠的版本化 AI 上下文(TanStack Intent Agent Skills),而非手动维护的 CLAUDE.md。
  • 你想要 UTM 归因、推荐积分和以故障复盘为默认的 Queue Stripe 计费——这些源自故障复盘系列的模块。

决策树刻意没有中间分支。两个启动包都是对的;正确的启动包取决于买家的生态承诺。


克隆 TanStack Ship 高级启动包:TanStack Ship 仓库 提供了免费 starter 用于评估;Pro 套餐解锁 UTM 归因、推荐积分、AI 集成,以及以故障复盘为默认的计费和邮件模块。完整定价请见 TanStack Ship 定价。

如果你想扩大对比范围,vs-shipfast 对比涵盖了 Next.js + Vercel 领域的主流方案但社区规模较小,vs-makerkit 对比涵盖了 B2B 多租户细分,vs-supastarter 对比涵盖了多语言(React + Vue)备选方案。浏览完整竞品索引可查看系列全部对比页面。