交给 agent,一小时上站。
登录、支付、积分、后台都已接好的 SaaS 模板,再配上一套规矩、技能和测试,让 Claude Code、Codex、Cursor 写代码不跑偏。
技术栈
- TanStack Start
- React
- TypeScript
- Tailwind CSS
- shadcn/ui
- Vite
- Bun
- Cloudflare
- Node.js
- Drizzle
- better-auth
- Stripe
- Creem
- Resend
和 agent 一起
说出你要什么,剩下的它来做。
- Claude Code
- Codex
- Cursor
- GitHub Copilot
- Windsurf
- opencode
- Zed
- Amp
第 1 步
一条命令跑起来
/setupbun installbun run db:migrate:localbun run devhttp://localhost:3000/第 2 步
支付让 agent 来接
/stripestripe prices create …Wrote ids to plans.tsstripe listencheckout → 200第 3 步
写歪了,测试会拦下
加一个发票功能/add-feature invoices✗ no permission checkAdded requirePermission✓ all tests pass
整个应用,就是这些。
- 应用本体
带会话守卫的外壳:主页、账号设置、套餐与额度。
- 计费
结账、按差价升级、周期末降级、付款记录。
- 管理后台
用户、订阅、订单、额度流水、审计与邮件日志。
- 营销站点
预渲染的落地页、定价、文档、博客与法务页,中英双语。








开箱内容
那些你反正都要写一遍的部分。
- 01
与支付商解耦的付费层
src/features/billing- Stripe
- Creem
- 同一种内部事件
- 升级立即生效,降级周期末生效
- 退款自动撤销升级
- 一个环境变量切换
- 02
无密码登录
src/features/auth- GitHub
- 邮件验证码登录
- 没有密码,也没有找回流程
- 会话存在 D1
- 03
按量计费的积分
src/features/credits- 按套餐每月发放
- 永不过期的加油包
- 不依赖事务的扣减
- 完整账本
- 04
一整套后台
src/routes/_app/admin- 指标与趋势
- 用户、订阅、订单
- 角色与权限
- 审计与邮件日志
- 后台 JSON API
- 05
内容与国际化
src/features/content- MDX 内容
- 博客与文档
- 构建期编译
- 中文 / EN
- 语言放在 URL 上
- 06
无聊但必要的那一半
.github/workflows/ci.yml- 类型检查与 lint
- 单元测试
- Playwright 端到端
- 有未执行迁移就拒绝部署
- CI 持续验证删除配方
- 07
其余的模块
src/features- R2 文件存储
- 事务邮件
- 应用内通知
- 应用内反馈
- 候补名单
- 推广返佣
- 数据分析
- API 密钥
定价
一次付款,之后的更新全包。
ShipKit 授权
$99$149一次性买断
首发价
- 完整源码,放在私有 GitHub 仓库里
- 后续所有更新——像普通 remote 一样 pull
- 你自己的项目不限数量
- 为 Claude Code、Codex、Cursor 准备的规矩、技能和测试
- 安装、支付、部署指南
用 GitHub 登录,付款完成的那一刻仓库邀请就会发出。
数字商品即时交付,售出不退。 退款政策
常见问题
克隆之前,大家通常会问这些。
怎么拿到代码?
我们会邀请你加入一个私有 GitHub 仓库。用 GitHub 登录的话,付款一到账邀请就发出;用其他方式登录,在控制台一键连接 GitHub 账号即可。之后的版本都发布在同一个仓库里——加成 remote 直接 pull。
该用 Stripe 还是 Creem?
都行,也可以同时用。Webhook 路由只做校验、去重,然后把载荷翻译成同一种内部事件;业务模块从不引入支付商的 SDK。PAYMENT_PROVIDER 决定新结账走谁,已有订阅则继续在它原来的通道上续费。
为什么选 Cloudflare Workers,而不是 Node 主机?
因为 D1 和 R2 是绑定,不是需要凭据的外部服务:没有连接串、没有连接池、没有 S3 密钥,而且本地开发跑的就是线上那个运行时。代价是 workerd 禁用了部分 Node 写法——模板已经绕开了真正要紧的那些,比如运行时 eval 的 MDX 方案。
「每个模块都可删除」具体是什么意思?
每个可选模块 = 一个目录 + 几行一句话的注册(schema 汇总里一行、处理器 import 一行、导航一行)。/delete-feature 技能知道每个模块的配方,而 CI 会在每个 PR 上把所有配方跑一遍,一旦配方过期就直接失败。
跑起来要多少钱?
小体量下几乎为零:Workers、D1 和 R2 的免费额度足以覆盖早期流量,唯一always-on 的成本是域名。邮件和支付按用量计费。
ShipKit