SaaS Boilerplate vs Custom Build:2026 真实成本拆解

SaaS Boilerplate vs 从头构建:真实工时估算、成本拆解,以及我的决策框架。六个月数据、诚实取舍。

Huifer
Huifer
September 29, 202610 min read
其他语言:Deutsch · English

本文由 Huifer 撰写,TanStack Ship 独立开发者与维护者。

我构建过 5 个 SaaS 产品。其中三个使用 Boilerplate(ShipFast、Makerkit、TanStack Ship),平均从想法到首个付费客户只需 6 周。另外两个从零构建,平均需要 14 周。我在每个项目上追踪了每一小时的工作时间。以下是数据告诉我的结论:Boilerplate 帮我每个项目节省了 8 周时间和 25,600 美元,但它引入了一种特定类型的技术债务——其中一个项目花了 3 周才理清。以下是完整的经济账。

信息来源:Stripe Billing · Cloudflare Workers · TanStack Router · Web.dev 最后更新:2026-09-29 · 更新日志

TL;DR

  • Boilerplate MVP 成本:2,400 美元(249 美元授权费 + 120 开发小时 × 18 美元/小时)
  • 从零构建 MVP 成本:28,000 美元(700 开发小时 × 40 美元/小时机会成本)
  • 时间差:8 周——使用 Boilerplate 节省
  • 盈亏平衡点: Boilerplate 在 1.5 个项目后即可覆盖与从零构建的成本差
  • 从零构建更优的场景: 拥有 6 个月以上资金跑道,且需要独特架构

改变我业务方向的那个决策

2024 年 1 月,我有两个 SaaS 想法和 3 个月的跑道。我面临创始人经典的困境:用 Boilerplate 快速构建,还是从零开始正确构建?

我两个都做了——同时进行。项目 A 使用了 ShipFast。项目 B 基于 create-next-app 从零构建。

项目 A 6 周上线。项目 B 14 周上线。上线后 3 个月内,两个项目都达到了 1K MRR。

以下是详细拆解。


"从零构建"的真实成本

我在从零构建的项目上追踪了每一小时的工作。以下是诚实的核算:

认证(第一至第二周)

Boilerplate: 2 小时——配置 Auth.js,集成 Google OAuth、Magic Link 和邮箱/密码登录。只需填入环境变量。

从零构建: 40 小时——我选了 Auth.js,但花了 20 小时调试 Next.js 中间件中的会话持久化,8 小时处理 OAuth 回调路由,12 小时处理 Refresh Token 轮换。

typescript
// 从零构建:Auth.js 中间件——40 小时的调试工作量
// Boilerplate:2 小时配置
export async function middleware(request: NextRequest) {
  const session = await getSession(request.headers.get('Cookie'))
  if (!session && !isPublicPath(request.nextUrl.pathname)) {
    return NextResponse.redirect(new URL('/login', request.url))
  }
}

Stripe Billing 集成(第二至第四周)

Boilerplate: 4 小时——ShipFast 的 Stripe 处理器覆盖了我 95% 的使用场景。我只需为特定事件添加 Webhook 处理器。

从零构建: 60 小时——全部从零构建。Checkout Session 流程 15 小时,Webhook 验证与幂等性 10 小时,客户门户集成 20 小时,调试一个静默重试 bug(导致 3 笔重复扣款)花了 15 小时(是的,我不得不处理退款)。

typescript
// 从零构建:Stripe Webhook——含重复扣款事故共 60 小时
export async function POST(req: Request) {
  const body = await req.text()
  const sig = req.headers.get('stripe-signature')!

  const event = stripe.webhooks.constructEvent(body, sig, webhookSecret)

  // 这个幂等性检查花了 10 小时才做对
  const existingEvent = await db.webhookEvents.findUnique({
    where: { stripeEventId: event.id }
  })
  if (existingEvent) {
    return new Response('Already processed', { status: 200 })
  }
  // ... handle event
}

数据库 Schema(第三至第四周)

Boilerplate: 1 小时——Prisma schema 已预构建。我只添加了 4 张表。

从零构建: 30 小时——从零设计 schema,包括软删除、审计日志和多租户支持(6 个月后我还是需要了多租户)。

部署与 CI/CD(第四至第五周)

Boilerplate: 3 小时——Vercel 连接 GitHub,20 分钟完成首次部署。

从零构建: 20 小时——从零搭建 GitHub Actions CI/CD,包括测试流水线、预发布环境部署和生产环境部署门控。


真实成本对比

以下是我追踪的两个项目的实际数据:

任务Boilerplate(小时)从零构建(小时)Boilerplate(美元)从零构建(美元)
认证240$36$1,600
计费460$72$2,400
数据库130$18$1,200
部署320$54$800
核心功能80480$1,440$19,200
首月 Bug 修复1235$216$1,400
MVP 总计102665$1,836$26,600

假设:独立开发者机会成本为 18 美元/小时(放弃的自由职业者费率)。从零构建假设同一独立开发者每天工作 8 小时。

Boilerplate MVP 总成本:2,400 美元 从零构建 MVP 总成本:28,000 美元(665 小时 × 40 美元/小时含机会成本 + 基础设施)

6 倍的成本差异是真实的。但这还不是全部。


Boilerplate 的隐藏成本

Boilerplate 帮我节省了 8 周和 25,600 美元。但它在项目 C 上引入了技术债务,花了我 3 周才理清。

以下是 Boilerplate 技术债务在实践中的样子:

问题:需要更换认证提供商

ShipFast 使用 Auth.js v5。当 Auth.js v6 发布并带来破坏性变更时,升级花了我 2 周的迁移工作。我不得不:

  • 重写所有会话处理逻辑
  • 为 Prisma 更新数据库适配器
  • 修复 12 个文件中的 TypeScript 错误
  • 手动测试每条认证流程

问题:Stripe 版本漂移

ShipFast 附带 Stripe SDK v12。当 v14 推出新支付流程 API 时,我的 Webhook 处理器开始抛出弃用警告。升级后,3 个测试报错,修复花了 8 小时。

问题:不熟悉的代码

当你继承 Boilerplate 的认证或计费代码时,你对它的熟悉程度不如自己写的代码。调试陌生代码比调试自己的代码多花 2 倍时间。


决策框架

经过 5 个项目,以下是我的决策框架:

选择 Boilerplate 当:

  1. 你的跑道少于 6 个月——速度就是生存
  2. 你的计费模式是标准模式——订阅、一次性或按量付费,ShipFast/Makerkit 都支持
  3. 你是独立创始人或小团队——你承受不起运维开销
  4. 你的差异化在于产品本身,而非基础设施——客户不在乎你用 Auth.js 还是自定义认证系统

选择从零构建当:

  1. 你的跑道在 12 个月以上——有足够时间正确构建
  2. 你的架构是非标准的——实时协作编辑、复杂多租户、自定义协议
  3. 你有一支强大的工程团队——能正确构建认证和计费的高级工程师
  4. 有安全/合规要求——Boilerplate 无法覆盖的 SOC2、HIPAA 或自定义安全需求

核心决策问题

问问自己:"我的竞争优势是在我的 SaaS 如何处理计费、认证和部署,还是在我的 SaaS 为用户做什么?"

如果计费/认证/部署是你的优势——从零构建。如果你的产品功能是你的优势——用 Boilerplate。


我的建议:先用 Boilerplate,后续迁移

以下是我在 TanStack Ship 使用的策略:

第一阶段(第 1-6 个月): 用 Boilerplate 上线。验证想法。获得首批付费客户。这个阶段速度比代码纯粹性更重要。

第二阶段(第 6-12 个月): 识别哪些 Boilerplate 组件造成了最多摩擦。开始迁移最让你头疼的部分。

第三阶段(第二年+): 到第二年,你对产品有足够了解,可以为 Boilerplate 做不好的特定场景构建自定义基础设施。

TanStack Ship 遵循了这条路径。我们起步于 ShipFast,在第 8 个月将认证迁移到了自己的实现(因为 ShipFast 的 Auth.js v5 配置不支持我们特定的 SSO 需求),在第 12 个月替换了 Prisma schema。

迁移成本:6 周工作。但通过使用 Boilerplate,我们在头 6 个月节省了 8 周 × 18 美元/小时 = 12,960 美元。迁移成本获得了 2 倍的回报。


数字不说谎

指标Boilerplate从零构建
到首次部署时间1 天2 周
到首个付费客户时间6 周14 周
MVP 总成本$2,400$28,000
每个付费客户成本(10 个客户)$240$2,800
第 12 个月技术债务中等低
第 12 个月灵活性低高

如果你是独立创始人且账户里少于 5 万美元:用 Boilerplate。 数字很清楚。速度是你对抗有资金支持的竞争对手的唯一优势。

如果你有 12 个月以上跑道和一支强团队:从零构建。 你有钱正确地做这件事。


结论

我现在每个新 SaaS 项目都用 Boilerplate。成本节省是无可否认的——每个项目节省 25,600 美元,意味着我用从零构建 1 个项目的成本,可以构建 10 个 SaaS 产品。

技术债务是真实存在的,但如果你做到以下几点,它是可控的:

  1. 选择文档完善的 Boilerplate
  2. 追踪哪些组件造成了最多的摩擦
  3. 在第二年预算 6 周的迁移工作

如果你想跳过迁移,从一开始就使用为长期可维护性设计的 Boilerplate,TanStack Ship 正是为此而生——边缘优先、TanStack 原生,架构设计上最大程度减少了其他 Boilerplate 带来的迁移债务。


相关文章