Sushi SaaS 是什么

了解这个 starter 包含什么、已经替你做了哪些产品决策,以及应该采用全部还是部分能力。

Sushi SaaS 是一个采用 MIT 许可、面向订阅制和按量计费产品的源码 starter。它不是托管平台,也不会根据表单自动生成应用。你需要克隆仓库、拥有并维护代码,再根据自己的用户调整其中的产品决策。

文档还是指南?

当任务已经明确,需要针对当前代码执行配置、扩展、验证或运维时,请使用文档。当你需要判断某项默认选择是否适合、理解选择原因,或决定保留、修改、移除什么时,请使用指南。它们服务于同一采用流程中的不同阶段。

适合谁评估

如果你是开发者或小型工程团队,并且已经倾向使用 Next.js、TypeScript、PostgreSQL、Drizzle、Better Auth 和 Stripe,可以评估 Sushi SaaS。当产品还需要组织、多成员共享积分、私有上传、后台任务、多语言 UI 和运营后台时,它的价值最高。

如果你只是在验证落地页、构建无计费的单用户工具,或准备替换上述大部分技术栈,应选择更小的基础。删除从未需要过的契约,通常比从一开始少引入一些更昂贵。

仓库里有什么

仓库包含三个可独立部署的应用和一个可移植 Worker:

  • src/app 客户应用,包括认证、组织、计费、积分、私有存储、预约和付费任务参考;
  • apps/admin 独立管理应用,包括 MFA、读写角色、任务恢复、风控、对账、账单与审计;
  • apps/content-studio 独立 Payload 创作和活动应用,拥有自己的数据库与编辑认证;
  • 可在 VM/容器旁运行或通过调度路径执行的持久 Worker。

Web 与 Admin 共享 SaaS schema 和认证数据,Content Studio 绝不共享;客户身份、同意和投递审计留在 SaaS。公开网站是第四个独立仓库,使产品指导不与应用发布耦合。

你会继承的决策

默认选择选择它的原因何时重新考虑
路由 → 服务 → 模型 → 数据库的水平分层让业务规则和查询各自只有一个明确位置团队已确定另一种架构,并准备同步修改约束测试
每个账户拥有或加入一个组织让计费、文件、积分和限额共享一个租户边界产品确定只会单租户,并愿意完整移除组织作用域
由 Stripe 事件最终确认计费状态把重试和延迟 webhook 视为正常输入使用不同计费供应商或商业模型
管理后台独立部署把运营入口与客户导航隔离运营足够简单,可以明确合并应用与部署边界
五种产品语言让界面文案和错误都可本地化只支持部分语言,并同时移除对应路由、目录与测试

这些是默认值,并不表示所有 SaaS 都应做同样选择。

三种采用方式

  1. 保留完整骨架。 保持边界,替换品牌和示例产品界面,再配置 provider 与业务政策。
  2. 采用部分模式。 复制一项完整能力,例如积分台账或 Stripe 重放处理,并同时带上 migration、测试和运维规则。
  3. 只把它当作参考。 对照自己的系统检查失败处理和不变量,不必引入代码。

不要留下“两套架构”或“两种租户模型”的半迁移状态,否则每次修改都会出现两个看似正确的位置。

仍由你负责的部分

Starter 无法替你决定价格、退款政策、数据保留、法律条款、客服流程、备份目标、反欺诈措施或威胁模型。推荐奖励默认关闭,因为打款规则同时涉及业务和合规。示例文生视频 provider 与预约流程也是集成示例,而不是完整的产品定位。

一次实际评估

  1. 快速开始运行客户应用、管理后台、Content Studio 和 Worker。
  2. 选择一个真实需要的流程——注册、Checkout、上传或积分消费——从路由追到数据库。
  3. 阅读什么情况下 Sushi SaaS 适合你,列出准备保留、修改和删除的默认决策。
  4. 在估算生产工作前阅读部署与安全

源码依据:Sushi SaaS starter commit 2a1a04a

Sushi SaaS 是什么 · Sushi SaaS