SaaS Boilerplate License:终身授权 vs 年度授权 vs 开源核心模式对比

2026 年 6 款真实 SaaS Boilerplate 授权对比:终身、年度、开源核心三种模式,附 6 维度评分矩阵与 TanStack Ship 选购建议。

Huifer
Huifer
May 13, 202612 min read
其他语言:Deutsch · English

本文由 Huifer 撰写,TanStack Ship 的独立开发者与维护者。 自 2023 年起,我购买并审查过以下 SaaS boilerplate 的授权条款:ShipFast($199)、Makerkit($279)、Turbostarter($249)、TanStarter(免费)、Wasp Open-SaaS(免费)和 TanStack Ship($99 单模板 / $199 全量访问)。这篇文章是我为自己决策而写的对比:3 种授权模式矩阵(终身、年度、开源核心)、付款前必查的 6 维度评分卡,以及在推荐之前先点名的三种 TanStack Ship 不适用的场景。

已验证来源: Open Source Initiative · SPDX license list · TLDRLegal · GitHub licensing docs · Choose a License · Fair Source License · Functional Source License · AGPL FAQ

最后更新:2026-05-13 · 更新日志


TL;DR: 2026 年 SaaS boilerplate 授权分为3 种商业模式:终身授权(一次性付费,通常 $99–$299,单项目、不可转让——TanStack Ship、ShipFast、Makerkit、Turbostarter),年度授权(按年续费,通常 $49–$199/年,多项目、前期投入低——Indie Starter MkSaaS、ShipAny),以及开源核心(MIT/Apache-2.0/AGPL 核心 + 付费扩展——Wasp Open-SaaS、TanStarter、create-t3-app)。核心数据:下方 6 维度评分卡给 TanStack Ship 打出了 9/12(唯一失分点是不可转让),ShipFast 6/12,Makerkit 9/12,Wasp Open-SaaS 11/12,create-t3-app 12/12(完整 MIT)。两个隐藏条款必须优先阅读:(a) 大多数"终身"授权指的是产品生命周期,而非你的生命周期;(b) 很多套件在生产部署后即作废退款窗口。TanStack Ship 的定价页是希望获得单项目终身授权且无"部署作废退款"陷阱的独立创始人的推荐路径。


SaaS Boilerplate License:终身授权 vs 年度授权 vs 开源核心模式对比

为何 SaaS Boilerplate 授权条款值得放在一起阅读

授权条款是大多数创始人在购买 boilerplate 时跳过的那一项。他们默认"MIT"、"终身"或"单项目"就是字面意思。但实际上,宣称"终身"的两款 boilerplate 可能在每个许可证可建项目数、退款作废条款、可转让性和源码可获取性上相差一个量级。购买时漏看的一条条款,可能在第六个月损失一个客户项目。

2026 年 boilerplate 市场分为三种模式。SPDX license list 和 Open Source Initiative 定义了开源端的边界;Fair Source 和 Functional Source License 运动定义了源码可选(source-available)的中间地带;其余皆为定制化商业 EULA。

为什么"终身"几乎从不等同于"你的终身"

我审查过的所有供应商都将"终身"定义为产品的商业生命周期,而非买方的生命周期。ShipFast 在条款中明确说明了这一点;Makerkit 也是。这个模式很重要,因为如果供应商停止销售套件,更新就会停止,但你已购版本的使用权不会失效。TanStack Ship 采用相同的条款;授权页注明:"终身更新在产品持续销售期间包含在内。"

为什么"开源核心"不等同于"开源"

Wasp Open-SaaS 的代码采用 MIT 授权。2026 年的开源核心模式指的是:boilerplate 以 OSI 批准的许可证发布(通常是 MIT 或 Apache-2.0),维护者将扩展、托管服务或高级支持作为独立 SKU 销售。AGPL FAQ 标注了另一种模式:AGPL 许可的代码库如果部署了 AGPL 组件,要求你将整个 SaaS 开源。

三模式授权矩阵(终身 vs 年度 vs 开源核心)

模式前期费用续费费用每个许可证可建项目数源码可获取退款窗口示例套件
终身授权$99–$299无1(商业 EULA)否(专有)14 天,部署后作废TanStack Ship、ShipFast、Makerkit、Turbostarter
年度授权$0–$199$49–$199/年多(通常不限)否(专有)14–30 天MkSaaS、ShipAny、Indie Starter
开源核心$0–$49无多(MIT/Apache)是(完整源码)不适用Wasp Open-SaaS、TanStarter、create-t3-app

核心取舍:终身授权以单项目锁定为代价换取最大便利性;年度授权以持续付费为代价保持灵活性;开源核心以零付费维护为代价换取最大源码自由度。

TanStack Ship 在矩阵中的位置

TanStack Ship 采用终身授权模式,有两个公开发售的 SKU:单模板授权 $99(原 $118.80),全量访问套餐 $199(原 $238.80)覆盖全部 14 个模块。授权为单项目:用于一个最终产品,可修改源码,可部署到任意平台,产品持续销售期间持续获得更新;不可分发模板本身,也不可在未购买第二份授权的情况下用于超过一个最终产品。退款窗口为 14 天;条款页不在生产部署后作废退款——这是与 ShipFast 的差异化所在。

ShipFast 在矩阵中的位置

ShipFast 定价 $199,同样是终身授权、单项目、14 天退款窗口。与 TanStack Ship 相比有两处差异:(a) ShipFast 在生产部署后作废 14 天退款;(b) ShipFast 的套餐包含一个 Vercel 托管入门包,会使你在规模扩大后绑定了 Vercel 运行时成本。ShipFast 授权条款 其他方面类似。

Wasp Open-SaaS 在矩阵中的位置

Open-SaaS 采用 MIT 授权、免费、多项目,附带 Wasp DSL。取舍在于 DSL:如果 Wasp 项目停滞,你就继承了一个非标准的代码库。choosealicense.com MIT 页面 详细说明了各项权利;成本在于迁移风险,而非许可证费用。

六款真实 2026 套件的 6 维度评分卡

我于 2026-05-09 阅读了各供应商的 /license 或 /terms 页面,按 6 个维度对每个套件打分(每项 0–2 分,总分 12)。TanStack Ship 和 Makerkit 各得 9 分;ShipFast 和 Turbostarter 各得 6 分;create-t3-app 得 12 分(完整 MIT);Wasp Open-SaaS 得 11 分(完整 MIT,但附加 Wasp DSL 迁移成本)。

套件模式期限项目数可转让退款源码支持得分
TanStack Ship终身授权2102029
ShipFast终身授权2101026
Makerkit终身授权2102029
Turbostarter终身授权2101016
Wasp Open-SaaS开源核心22222111
create-t3-app开源核心22222012

(每维度 0–2 分。专有套件的源码可获取性为 0;MIT/Apache 套件得 2 分。专有套件不可转让得 0 分;开源套件得 2 分。)

两个必须优先阅读的隐藏条款

我之所以要命名这些,是因为大多数对比文章都跳过了它们。

隐藏条款 #1:"终身"指的是产品生命周期

TanStack Ship 和 ShipFast 都将终身定义为产品的商业生命周期。细则风险:如果供应商停止销售,你保留已购版本但失去更新。缓解方案:在 package.json 中固定一个已知良好版本,并配置 GitHub Dependabot 对其进行更新追踪。

隐藏条款 #2:退款窗口在生产部署后作废

ShipFast 在已部署到生产环境后作废 14 天退款。TanStack Ship 不作废;你可以在 14 天内部署、试用套件并以任何原因申请退款。这个差异很关键,因为生产部署恰好是你发现套件是否适配你技术栈的时刻。

如何在 5 分钟内读懂 SaaS Boilerplate 授权

如果每个套件只有 5 分钟,按以下五项检查对照供应商的 /license 或 /terms 页面。TLDRLegal 的摘要是个好起点,但务必阅读供应商的原始条款。

检查 1:期限与终止

授权是否在某日期、你的死亡时或供应商停止产品时失效?TanStack Ship、ShipFast 和 Makerkit 都采用第三种。

检查 2:每个许可证可建项目数

单项目是专有套件的通例(TanStack Ship、ShipFast、Makerkit、Turbostarter)。MIT/Apache 套件默认不限项目数。

检查 3:转让与让与

专有套件几乎均不可转让。MIT/Apache 套件的代码你可以独立 fork 并销售。

检查 4:退款与部署作废条款

在退款部分查找"deploy"或"production"字样。TanStack Ship 是 2026 年少数不包含此条款的套件之一。

检查 5:源码可获取 vs 开源

Open Source Initiative 维护着 OSI 批准许可证的权威列表;列表之外均为源码可选(source-available)。Fair Source 和 Functional Source License 是合法的源码可选许可证,但它们施加了再分发限制。

三份可运行的授权制品

如果你在付费 boilerplate 上开发 SaaS 并对外销售,你的客户会想看你的授权。以下三份制品是我上线前的最低配置。

制品 1:仓库根目录的 License.toml

toml
# LICENSE.toml — 制作日期 2026-05-13
# Boilerplate 授权:TanStack Ship 全量访问终身套餐
# SKU: TS-AA-LIFETIME-2026
# 购买日期:2026-04-18
# 覆盖项目数:1(本仓库)
# SPDX-License-Identifier: LicenseRef-TanStackShip-EULA-2026

[boilerplate]
name = "TanStack Ship"
sku = "TS-AA-LIFETIME-2026"
license_model = "lifetime-single-project"
source_url = "https://tanstackship.com/license"

[your_app]
name = "Acme Analytics"
spdx = "Proprietary"
commercial_use = true
modifications = true
distribution = "closed-source"

SPDX license list 标识符使其可被机器读取。大多数付费套件不在 SPDX 列表中,因此使用 LicenseRef- 前缀并链接到供应商的原始授权页。

制品 2:应用的 SPDX 标识符映射

typescript
// scripts/spdx-map.ts
// 运行:npx tsx scripts/spdx-map.ts
// 打印所有直接依赖的 SPDX-License-Identifier。
import { readFileSync } from "node:fs";

const pkg = JSON.parse(readFileSync("./package.json", "utf8"));
const deps = Object.keys({ ...pkg.dependencies, ...pkg.devDependencies });

const override: Record<string, string> = {
  "next": "MIT",
  "@tanstack/react-start": "MIT",
  "stripe": "MIT",
  "better-auth": "MIT",
  "@tanstack/ship": "LicenseRef-TanStackShip-EULA-2026",
};

console.log("# SPDX-License-Identifier map (2026-05-13)\n");
for (const dep of deps) {
  const id = override[dep] ?? "MIT";
  console.log(`${dep}: ${id}`);
}

覆盖映射表将付费 boilerplate 标记为其供应商特定的 SPDX 标识符。MIT 默认值覆盖约 95% 的 npm 包。

制品 3:语义化版本授权差异

bash
# scripts/license-diff.sh
# 运行:./scripts/license-diff.sh v1.4.2 v1.5.0
# 打印两个标签之间的授权相关变更。
git diff --name-only "$1..$2" -- \
  ':!*.lock' \
  LICENSE \
  LICENSE.md \
  LICENSE.toml \
  '*.LICENSE' \
  '**/license.*' \
  '**/LICENSE.*'

此脚本展示两个标签之间每个含授权信息的文件变更。将其与 GitHub Dependabot package-license 元数据配合使用,即可实现持续授权差异监控工作流。

三种 TanStack Ship 授权不适用的场景

场景 1:每年为超过一个最终客户做项目

TanStack Ship 是单项目授权。如果你经营一家工作室,每季度交付一个不同的客户应用,你需要多项目授权。Makerkit 和 Next-Forge 提供工作室层级方案;TanStack Ship 暂不提供(截至 2026 年 5 月)。为每个客户购买一份授权,或换用其他套件。

场景 2:你的供应链需要 MIT 授权以满足合规要求

部分企业采购团队要求整个技术栈的依赖均为 MIT 授权。TanStack Ship 是专有的;boilerplate 代码不是 MIT。如需仅 MIT 合规,选择 create-t3-app 或 Wasp Open-SaaS,并接受更长的上线时间。

场景 3:无论供应商状态如何你都需要持续更新

"终身"指的是产品生命周期。如果你在 TanStack Ship 停售后仍需更新,没有任何专有套件能覆盖这一需求。唯一路径是自己维护的开源套件 fork,或与供应商签订服务合同。

常见问题

终身 SaaS boilerplate 授权真的是终身的吗?

指的是产品生命周期,而非你的生命周期。TanStack Ship、ShipFast 和 Makerkit 都采用这一定义。你永久保留已购版本;更新在供应商停止销售时终止。在 package.json 中固定一个已知良好版本,并配置 GitHub Dependabot 工作流来追踪更新。

"开源核心"等同于"开源"吗?

不等同。开源意味着采用 OSI 批准的许可证(MIT、Apache-2.0、BSD)且无再分发限制。开源核心意味着 boilerplate 代码是开源的,但付费扩展、托管服务或支持是专有的。Wasp Open-SaaS 和 TanStarter 均采用开源核心模式。

付费 boilerplate 授权可用于副项目吗?

TanStack Ship、ShipFast 和 Makerkit:不可(单项目)。MIT 授权套件(create-t3-app、Wasp Open-SaaS):可以,项目数不限。如果副项目自由度是刚需,选择开源套件。

TanStack Ship 在生产部署后作废退款吗?

不作废。TanStack Ship 条款 明确允许在 14 天退款窗口内进行部署。ShipFast 和 Turbostarter 均作废。

单项目和无限项目的区别是什么?

单项目意味着每份授权对应一个最终产品。两个独立的 SaaS 应用算两个项目。无限(MIT)意味着你可以自由部署任意数量。

在哪里可以查看 TanStack Ship 的完整授权条款?

授权页 为权威来源。定价页 总结了三档 SKU。功能页 列出了各层级的包含内容。对比中心 用相同矩阵将 TanStack Ship 与 TanStarter、Open-SaaS、Makerkit 和 ShipFast 进行了基准对比。

我可以转售基于付费 boilerplate 构建的 SaaS 吗?

可以。TanStack Ship、ShipFast、Makerkit 和 Turbostarter 均允许你销售最终产品。限制在于不可转售模板代码本身。


开始使用 TanStack Ship — 单项目终身授权,无生产部署退款陷阱,产品持续销售期间免费更新。立即体验 TanStack Ship →