Saavo Starter / 功能

一套完整的生产级 SaaS 基础框架。

Saavo Starter 将八个 SaaS 核心领域整合在同一个 Cloudflare 代码库中:身份验证、Stripe 计费、访问控制、后台管理、分析、安全分发、多语言支持和基础设施。

01 / 08

身份验证与账户安全

内置保护,无需东拼西凑。

通过统一的安全模型连接登录、账户恢复、验证和敏感账户变更。

安全登录 — 提供安全会话和可配置验证的邮箱密码流程。

安全登录

提供安全会话和可配置验证的邮箱密码流程。

社交登录 — Google 和 GitHub OAuth 共享同一套账户生命周期。

社交登录

Google 和 GitHub OAuth 共享同一套账户生命周期。

邮箱生命周期 — 验证地址、重新发送验证码并确认邮箱变更。

邮箱生命周期

验证地址、重新发送验证码并确认邮箱变更。

密码恢复 — 限时重置会话可帮助用户安全地恢复访问权限。

密码恢复

限时重置会话可帮助用户安全地恢复访问权限。

双重身份验证安全 — 支持 TOTP 设置与验证、恢复代码,以及敏感设置变更保护。

双重身份验证安全

支持 TOTP 设置与验证、恢复代码,以及敏感设置变更保护。

  • 恢复代码
  • 二次安全验证
  • Turnstile 加强验证
  • 请求速率限制
  • 账户控制
02 / 08

Stripe 计费与客户账户

从结账到客户历史记录。

完整的 Stripe 流程涵盖一次性产品、订阅、客户资料和购买记录查询。

托管结账 — 一次性付款和订阅的 Checkout 页面会自动适配用户语言。

托管结账

一次性付款和订阅的 Checkout 页面会自动适配用户语言。

购买后的产品 — 客户可以查看产品、方案、访问期限和文档。

购买后的产品

客户可以查看产品、方案、访问期限和文档。

订阅生命周期 — 跟踪方案状态、计费周期、试用期和当前是否有效。

订阅生命周期

跟踪方案状态、计费周期、试用期和当前是否有效。

付款历史 — 清晰展示交易编号、日期、金额、状态和可用文档。

付款历史

清晰展示交易编号、日期、金额、状态和可用文档。

支付管理 — 为管理员分别提供购买和订阅视图。

支付管理

为管理员分别提供购买和订阅视图。

  • 自动税费
  • 优惠码
  • 发票和收据
  • 客户门户
  • Webhook 生命周期
03 / 08

访问控制与生命周期自动化

将付款转化为产品访问权限。

把产品与角色和权益关联起来,并根据购买和订阅状态授予、更新或撤销访问权限。

角色与能力 — 将宽泛的角色与具体业务能力分离。

角色与能力

将宽泛的角色与具体业务能力分离。

开关型权益 — 表示用户是否拥有某项具体产品权利。

开关型权益

表示用户是否拥有某项具体产品权利。

配额型权益 — 跟踪上限、用量、剩余数量、重置和结转。

配额型权益

跟踪上限、用量、剩余数量、重置和结转。

产品访问映射 — 在产品方案中配置访问权限,而不是将其硬编码到回调中。

产品访问映射

在产品方案中配置访问权限,而不是将其硬编码到回调中。

可靠的生命周期执行 — 持久记录授予与撤销操作,并明确幂等、错误处理和重试规则。

可靠的生命周期执行

持久记录授予与撤销操作,并明确幂等、错误处理和重试规则。

  • 生效日期
  • 周期刷新
  • 配额结转
  • 幂等执行
  • 授予与撤销
04 / 08

后台管理与客户支持

管理已经上线的产品。

在一个管理后台中统一管理用户、支付、访问权限和客户支持,并查看操作记录。

后台概览 — 了解当前系统状态,而不是只看华而不实的总数。

后台概览

了解当前系统状态,而不是只看华而不实的总数。

用户管理 — 搜索用户并查看角色、状态和账户详情。

用户管理

搜索用户并查看角色、状态和账户详情。

支付管理 — 分别查看一次性购买和订阅。

支付管理

分别查看一次性购买和订阅。

客服工作台 — 对工单进行优先级排序、回复、添加内部备注、解决和关闭。

客服工作台

对工单进行优先级排序、回复、添加内部备注、解决和关闭。

日志与执行可见性 — 追踪系统、警报、审计、事件和命令的执行结果。

日志与执行可见性

追踪系统、警报、审计、事件和命令的执行结果。

  • 角色管理
  • OAuth 客户端
  • 工单优先级
  • 内部备注
  • 审计轨迹
05 / 08

内置产品分析

了解产品的使用方式。

无需额外引入 SaaS 服务,即可通过第一方分析统一查看流量、用户行为、转化和性能数据。

分析概览 — 结合上下文查看浏览量、访客、访问次数、跳出率和访问时长。

分析概览

结合上下文查看浏览量、访客、访问次数、跳出率和访问时长。

用户获取 — 了解引荐来源、渠道和 UTM 来源。

用户获取

了解引荐来源、渠道和 UTM 来源。

访客与设备 — 探索位置、语言、设备、浏览器和操作系统。

访客与设备

探索位置、语言、设备、浏览器和操作系统。

事件与会话 — 检查自定义事件以及反映产品使用行为的会话。

事件与会话

检查自定义事件以及反映产品使用行为的会话。

漏斗与性能 — 将转化步骤与真实的 Web Vitals 一同衡量。

漏斗与性能

将转化步骤与真实的 Web Vitals 一同衡量。

  • 第一方分析
  • 支持 Do Not Track
  • 留存数据清理
  • 引荐来源与 UTM
  • Web Vitals
06 / 08

OAuth2 与安全模板分发

授权客户端,保护产品。

为公共或机密客户端明确指定授权范围,并确保它们只能访问用户权益范围内的资源。

授权确认界面 — 用户可以查看客户端、授权范围和所请求的访问权限。

授权确认界面

用户可以查看客户端、授权范围和所请求的访问权限。

PKCE 授权 — 使用 PKCE S256 的授权码模式可保护公共客户端。

PKCE 授权

使用 PKCE S256 的授权码模式可保护公共客户端。

OAuth 客户端管理 — 配置客户端、授权类型、授权范围和状态。

OAuth 客户端管理

配置客户端、授权类型、授权范围和状态。

受保护的模板目录 — 仅当授权范围与权益一致时才返回目录条目。

受保护的模板目录

仅当授权范围与权益一致时才返回目录条目。

安全模板下载 — 通过临时 R2 URL 提供下载,并验证下载结果。

安全模板下载

通过临时 R2 URL 提供下载,并验证下载结果。

  • 刷新令牌轮换
  • 一次性授权码
  • 客户端凭据
  • 令牌撤销
  • 基于授权范围的访问控制
07 / 08

多语言、内容与隐私

为更多市场和更清晰的选择做好准备。

多语言路由、文档、搜索元数据、法律页面、主题和隐私控制均可随产品一并发布。

12 种语言路由与支持 RTL 的界面 — 预配置多语言路由,并支持 RTL 布局。

12 种语言路由与支持 RTL 的界面

预配置多语言路由,并支持 RTL 布局。

类型安全的本地化 — 客户端、组件和 HTTP 响应共用一套类型安全的本地化契约。

类型安全的本地化

客户端、组件和 HTTP 响应共用一套类型安全的本地化契约。

文档 — 发布结构化的产品指南和参考内容。

文档

发布结构化的产品指南和参考内容。

SEO 基础配置 — 支持规范链接、多语言替代链接、社交元数据、站点地图和结构化数据。

SEO 基础配置

支持规范链接、多语言替代链接、社交元数据、站点地图和结构化数据。

隐私控制 — 提供可版本化的同意偏好,以及根据同意状态加载的第三方脚本。

隐私控制

提供可版本化的同意偏好,以及根据同意状态加载的第三方脚本。

  • 法律页面
  • 同意状态持久化
  • 脚本加载控制
  • 浅色与深色主题
  • 响应式与 RTL 界面
08 / 08

Cloudflare 原生开发基础框架

始终清晰易懂的基础框架。

即使产品不断发展,运行时服务、数据持久化、异步任务、配置和各部分代码的职责归属仍然清晰明确。

Workers 运行时 — 在 Cloudflare Workers 上运行 Hono 服务和 React 界面。

Workers 运行时

在 Cloudflare Workers 上运行 Hono 服务和 React 界面。

D1、R2 和 KV 存储 — 根据关系数据、对象数据和 TTL 数据的特点选择合适的存储方式。

D1、R2 和 KV 存储

根据关系数据、对象数据和 TTL 数据的特点选择合适的存储方式。

Queues 与调度器 — 运行后台任务、清理任务和权益周期任务。

Queues 与调度器

运行后台任务、清理任务和权益周期任务。

事务邮件 — 发送验证、恢复、计费和安全通知。

事务邮件

发送验证、恢复、计费和安全通知。

类型安全的分层工程 — 验证配置并保持 Schema → DB → Repository → Service → API → UI 的分层结构。

类型安全的分层工程

验证配置并保持 Schema → DB → Repository → Service → API → UI 的分层结构。

  • Durable Objects
  • 存储策略
  • 分层职责
  • 自动化测试
  • Schema 验证

掌控基础框架

从相互衔接的工作流开始,再打造属于自己的产品。

Saavo Starter 不仅提供源代码,也清楚呈现代码背后的运行流程,让后续修改依然易于理解。

获取 Saavo Starter