本文由 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 轮换。
// 从零构建: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 小时(是的,我不得不处理退款)。
// 从零构建: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(美元) | 从零构建(美元) |
|---|---|---|---|---|
| 认证 | 2 | 40 | $36 | $1,600 |
| 计费 | 4 | 60 | $72 | $2,400 |
| 数据库 | 1 | 30 | $18 | $1,200 |
| 部署 | 3 | 20 | $54 | $800 |
| 核心功能 | 80 | 480 | $1,440 | $19,200 |
| 首月 Bug 修复 | 12 | 35 | $216 | $1,400 |
| MVP 总计 | 102 | 665 | $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 当:
- 你的跑道少于 6 个月——速度就是生存
- 你的计费模式是标准模式——订阅、一次性或按量付费,ShipFast/Makerkit 都支持
- 你是独立创始人或小团队——你承受不起运维开销
- 你的差异化在于产品本身,而非基础设施——客户不在乎你用 Auth.js 还是自定义认证系统
选择从零构建当:
- 你的跑道在 12 个月以上——有足够时间正确构建
- 你的架构是非标准的——实时协作编辑、复杂多租户、自定义协议
- 你有一支强大的工程团队——能正确构建认证和计费的高级工程师
- 有安全/合规要求——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 产品。
技术债务是真实存在的,但如果你做到以下几点,它是可控的:
- 选择文档完善的 Boilerplate
- 追踪哪些组件造成了最多的摩擦
- 在第二年预算 6 周的迁移工作
如果你想跳过迁移,从一开始就使用为长期可维护性设计的 Boilerplate,TanStack Ship 正是为此而生——边缘优先、TanStack 原生,架构设计上最大程度减少了其他 Boilerplate 带来的迁移债务。