Next.js SaaS Starter。
这个项目的定位很清晰——给想快速上线SaaS产品的人提供一套能跑起来的完整框架。你不用从0开始折腾注册登录、付费系统、权限管理这些基础设施,模板里都给你搭好了。对我这种喜欢“快速验证想法”的独立开发者来说,简直是节省时间的利器。
我用它撸了一个 MVP demo,大概半小时就把 Stripe 支付、登录注册、后台管理这些搞定了,整个过程体验非常丝滑。
接下来,我就来手把手带你过一遍这个模板的主要功能和如何使用它。
模板简介
Next.js + Stripe 的SaaS起步模板
这个模板内置了一套完整的SaaS骨架,主要包含以下内容:
-
落地页(首页)带动画终端演示(很炫)
-
支持 Stripe 的付费页面(/pricing)
-
用户/团队的后台页面,可进行增删改查
-
基础的权限控制(团队 Owner 和普通成员)
-
Stripe 的订阅管理功能(集成了 Stripe 官方的客户管理门户)
-
登录注册功能,使用邮箱+密码认证
-
Cookie 存储 JWT,保护登录态
-
全局路由拦截,保护敏感页面
-
Zod 校验的 Server Action 中间件支持
-
用户操作行为记录(Activity Log)
可以理解为一个轻量但“能跑业务”的 SaaS 模板。
技术栈一览
开发者友好,技术栈很主流:
-
前端框架:Next.js
-
数据库:PostgreSQL
-
ORM:Drizzle(轻量,现代)
-
UI 组件库:shadcn/ui(Tailwind + Headless UI)
-
支付集成:Stripe
如果你对这些栈不熟也没关系,照着步骤跟就能用。
快速启动项目
拉代码
git clone https://github.com/nextjs/saas-starter
cd saas-starter
pnpm install
登录你的 Stripe 账号(如果没有,先注册个测试环境)
stripe login
初始化数据库和环境变量
pnpm db:setup
执行迁移和初始化数据
pnpm db:migrate
pnpm db:seed
系统会默认生成一个用户和团队:
-
用户邮箱:
test@test.com
-
密码:
admin123
当然你也可以自己注册新用户(访问 /sign-up
页面)。
本地启动开发服务
pnpm dev
打开浏览器访问:http://localhost:3000
测试 Stripe 支付
使用 Stripe 测试卡片信息:
-
卡号:
4242 4242 4242 4242
-
过期时间:任意未来日期
-
CVC:任意三位数字
上线到生产环境
模板默认支持 Vercel 部署,流程也很简单:
配置生产环境的 Stripe Webhook
去 Stripe 后台添加 Webhook,URL 填写你的域名地址,例如 https://yourdomain.com/api/stripe/webhook
监听的事件建议选:
-
checkout.session.completed
-
customer.subscription.updated
连接 GitHub 仓库,一键部署到 Vercel
添加环境变量
在 Vercel 的项目设置中添加以下变量:
变量名 | 用途 |
---|---|
BASE_URL |
你的线上域名 |
STRIPE_SECRET_KEY |
Stripe 的密钥 |
STRIPE_WEBHOOK_SECRET |
Stripe Webhook 的密钥 |
POSTGRES_URL |
数据库连接地址 |
AUTH_SECRET |
一个加密随机串,使用 openssl rand -base64 32 可生成 |
更高级的付费版本
虽然这个模板已经足够用了,但如果你想要更完整的功能(比如多租户、团队协作、账户账单等),还可以看看下面这些社区里的进阶版本:
苏米碎碎念
我自己在搞一些小工具变现项目时,最大的瓶颈往往不是做功能,而是懒得去搭那些 “非核心业务” 的底层系统,比如登录注册、订阅系统、权限控制。
这个模板最大的好处就是:它不复杂,但关键组件一个不落。你可以基于它快速搭建出一个“能用、能测、能卖”的小产品。