跳转到内容
全部文章
约 4 分钟阅读

用脚手架还是从零开始?先想清楚你要拥有什么

评估脚手架的实用方法:检查它的边界、跑通它的恢复路径、理解你要承担的维护成本。

supastack 团队

把产品工作与重复的基础设施分开

先列出让你的产品有用的功能,再列出它运转所需的基础设施。研究工作流可能是独特的;会话处理、客户拥有的记录与订阅访问通常不是。这份清单比数脚手架首页上有多少功能更能帮你做评估。

第二张清单比看起来长得多。大多数 SaaS 产品都在重复实现同样的一打部件,而且每一个都必须与其他部件正确集成,产品才能开始做任何事情。

从零开始让你直接掌控这些选择,但也要自己负责集成与维护。脚手架改变的是起点。你仍需要理解它的代码,并验证它对你的产品、团队与部署所作的假设。

  • 身份:登录方式、会话、账户找回。
  • 工作区:记录归属、邀请、成员角色。
  • 计费:结账、Webhook、权益、取消。
  • 后台任务:队列、重试、定时、状态跟踪。
  • 交付:事务邮件、文件存储、部署。

比较总成本,而不是标价

脚手架的价格一目了然;从零开始的成本摊在几个月里。诚实地算一遍:组装认证、计费、任务和部署花掉的几周;这些组装自带的集成 bug;以及之后每次供应商更新触发的维护。

脚手架的成本是学习和改造别人写的代码:读它的约定、替换示例内容、偶尔掰弯它画的边界。如果下面的检查进行顺利,这笔交换通常比重造同样的管道便宜;如果进行得糟糕,那是一个不该忽视的警告——今天读不懂的边界,就是明年的生产事故。

评估你将继承的代码

跑一遍安装说明,跟着一条记录从界面走到持久化。检查授权是否位于服务端边界、配置是否经过校验、供应商凭证是否留在客户端包之外。读一个失败路径的测试,而不只是演示界面。

留意示例产品与基础设施变得不可分的地方。如果移除一个演示功能需要改动认证或计费行为,未来的产品工作可能比初始安装看起来更困难。在 supastack 中,使用方产品把领域逻辑留在 Starter Core 之外,通过配置与契约连接——项目结构指南标出了这条线的位置。

  • 每一个没有文档、只能自己摸索出来的安装步骤。
  • 授权在哪里执行,是逐路由还是系统性的。
  • 是否存在反向测试——跨工作区读取、重放的 Webhook——以及它证明了什么。
  • 密钥放在哪里,以及是否有任何一个进了客户端包。
  • 当你试图删掉一个演示功能时,基础设施会发生什么。

先做决定前先跑起来

在承诺之前,先到仓库里待上一天。在 supastack 里这意味着 corepack pnpm install、一份配置好的 apps/web/.env.local,以及本地参考流程:登录、查看权限、提交任务、读取结果。然后 pnpm verify:local 会在 fake 供应商上跑完黄金路径,不需要任何凭证——本地设置指南走查了整个顺序。

然后故意弄坏点什么。同一个任务提交两遍。用错误的工作区调一个 API 路由。重放一个 Webhook。能把普通失败处理得漂亮的 starter,比功能清单更长的值钱——因为在你机器上都弄不坏的东西,迟早要在生产环境里调试。

把取舍说清楚

当脚手架的既有边界符合你的需求、且你能讲清将要依赖的流程时,就选脚手架;当产品约束会迫使脚手架的假设被反复修改时,就自建基础。两种选择都可以是合理的;关键问题是你的团队扛得住哪种维护负担。

为替换示例内容、配置集成、审查数据归属与测试部署预留时间。一个能编译的仓库只是生产验收的起点。发布前,请在客户将要使用的环境中验证真实的登录路径、计费生命周期与恢复行为——发布检查清单逐条列了出来。如果底层技术栈也还没定,如何选择 SaaS 技术栈覆盖了逐层评估;这两个决定互为参照。

从零构建采用脚手架
你拥有每一条约定、集成与失败模式产品代码;管道是有人维护的
早期速度慢——得先铺管道快——第一天就能做功能
风险藏在你还没发现的接缝里你还没检查的边界里
何时是正确选择你的约束打破了常见假设它的边界符合你的产品需求

关于脚手架的常见问题

买还是造的争论总能激起强烈的观点。这些问题才真正推动决定。

  • 正经产品用脚手架有风险吗? —— 大量生产环境的 SaaS 跑在买来的地基上。风险不在脚手架本身,而在继承你从没检查过的代码。在依赖边界之前先把它们读一遍。
  • 怎么判断一个样板还在被维护? —— 看最近的提交、文档化的更新路径、覆盖失败场景的测试,以及用细节而非路线图承诺来回答的 issue。
  • 如果脚手架的选择和我不一致怎么办? —— 先分清偏好和约束。给 UI 换皮很便宜;与会话模型或租户边界较劲可不便宜。结构性错配就是自建的理由。
  • 以后还能离开脚手架吗? —— 代码归你所有,没有什么可迁出的——真正的问题是,当你不断修改时它的管道还是不是资产,这正是产品代码与基础设施代码可分离之所以重要。
  • 脚手架到底能省多少时间? —— 大致等于认证、计费、任务和部署本会花掉的那几周,减去学习和改造所继承代码需要的那几天。

常见问题

14 个问题

supastack 是什么?

supastack 是用于构建 AI 驱动 SaaS 产品的模块化基础。它把通用基础设施整合在一起,让你专注于产品专属的功能。

它支持 Web 和移动端吗?

支持。supastack 包含 Next.js 与 Expo 应用,作为 Web 与移动端体验的起点。

包含哪些认证方式?

Better Auth 覆盖邮箱/密码、OTP 与社交登录。个人工作区随账户一起开通,产品记录从第一天起就有边界。

AI 是如何支持的?

supastack 包含可配置的多供应商 AI、用量追踪、预算,以及加密的自带密钥(BYOK)支持。

订阅如何处理?

对于基于该套件构建的产品,Stripe 计费、订阅与权限构成付费访问的基础。供应商密钥仅存于服务端。

我的产品专属代码放在哪里?

产品专属功能保留在独立的代码库中,产品通过配置接入 supastack 的基础模块。

supastack 如何定价?

套件为一次性购买、终身更新:单框架 249 美元(限时优惠价,较常规价 349 美元优惠 100 美元),或全框架(Next.js、iOS、Android)499 美元(限时优惠价,较常规价 599 美元优惠 100 美元),每个额外开发者席位 75 美元。套件本身没有订阅。本站结账后通过邮件发送许可证密钥,仓库访问通过 GitHub 邀请授予。

工作区如何界定我的数据?

用户记录按 workspaceId 划定边界。身份、权限、AI 用量、计费事件与审计条目都留在个人工作区边界内。

后台任务如何工作?

Trigger.dev 是明确的任务运行时。JobRunner 契约只承诺 enqueue、status 与 cancel——工作流语义保持 Trigger.dev 专有且显式。

邮件与营销触达有何不同?

事务性邮件覆盖产品工作流,如任务完成通知。冷触达与营销活动属于产品自身的范畴,不在本套件的邮件模块内。

移动端购买如何运作?

移动端已支持 RevenueCat 原生购买和恢复购买,访问权限由服务端验证。发布前需配置商店账户并完成设备测试。Web 计费保持独立。

AI 供应商密钥存放在哪里?

自带密钥凭证经过加密且仅存于服务端。密钥在日志中被脱敏;用量与预算在工作区级别保持可见。

结账支持哪些付款方式?

Stripe 托管结账接受银行卡,在 Stripe 账户启用后还可提供支付宝与微信支付——方便中国买家。钱包授权为异步确认,付款完成后许可证页面会立即更新。

我能申请退款吗?

获得代码仓库访问权限后,supastack 将永久归你所有,因此无法退款。但请放心,你将获得包含终身更新的完整源代码,可为你自己或客户构建并发布无限数量的产品。你只需注意不能转卖代码,也不能将仓库作为启动模板二次分发。

CN