字
字节笔记本
2026年2月18日
Open SaaS:免费开源的 React + Node.js SaaS 启动模板
API中转
¥120
本文介绍 Open SaaS,一个免费开源的 SaaS 应用启动模板,基于 React 和 Node.js 构建,具备完整的商业化功能。它由社区驱动,帮助开发者快速启动自己的 SaaS 产品。
项目简介
Open SaaS 是 Wasp 团队开发的开源 SaaS 启动模板,在 GitHub 上已获得 13.4k+ stars。它提供了构建 SaaS 应用所需的全部核心功能,包括用户认证、支付集成、管理后台、邮件系统等。
与其他启动模板不同,Open SaaS 基于 Wasp 全栈框架构建,提供了声明式的开发体验,让开发者可以用更少的代码实现更多功能。
核心特性
- 完整认证系统: 邮箱/密码、Google/GitHub OAuth 登录
- 支付集成: 内置 Stripe 订阅支付支持
- 管理后台: 完整的后台管理系统,支持用户管理、数据分析
- 邮件系统: 集成邮件发送功能,支持交易邮件和营销邮件
- 文件上传: 支持头像上传、文件存储
- 任务队列: 内置后台任务处理机制
- AI 集成: 内置 OpenAI API 集成示例
- 响应式设计: 基于 Tailwind CSS 的现代化界面
- TypeScript: 全栈 TypeScript 支持
- 一键部署: 支持一键部署到 Fly.io、Railway 等平台
技术栈
- 全栈框架: Wasp(React + Node.js)
- 前端: React + TypeScript + Tailwind CSS
- 后端: Node.js + Express + Prisma
- 数据库: PostgreSQL
- 认证: Wasp Auth(支持多种登录方式)
- 支付: Stripe
- 邮件: SendGrid / SMTP
- 文件存储: AWS S3 / Cloudflare R2
安装指南
前置要求
- Node.js 18+
- npm / yarn / pnpm
- Wasp CLI
安装 Wasp CLI
bash
curl -sSL https://get.wasp-lang.dev/installer.sh | sh创建项目
bash
# 使用 Open SaaS 模板创建项目
wasp new my-saas-app -t github.com/wasp-lang/open-saas
cd my-saas-app配置环境变量
bash
cp .env.server.example .env.server
cp .env.client.example .env.client
# 编辑 .env.server 配置数据库、Stripe、邮件等
# 编辑 .env.client 配置前端环境变量启动开发服务器
bash
wasp start访问 http://localhost:3000 查看应用。
项目结构
text
my-saas-app/
├── main.wasp # Wasp 配置文件
├── src/
│ ├── client/ # 前端代码
│ │ ├── components/
│ │ ├── pages/
│ │ └── hooks/
│ ├── server/ # 后端代码
│ │ ├── actions/
│ │ ├── queries/
│ │ └── jobs/
│ └── shared/ # 共享代码
├── public/ # 静态资源
└── .env.* # 环境变量快速开始
1. 用户认证
Open SaaS 内置完整的认证系统:
tsx
import { AuthUser } from 'wasp/auth';
export const Dashboard = ({ user }: { user: AuthUser }) => {
return (
<div>
<h1>欢迎, {user.identities.username?.id}!</h1>
</div>
);
};2. 支付集成
内置 Stripe 订阅管理:
tsx
import { useQuery } from 'wasp/client/operations';
import { getSubscriptionStatus } from 'wasp/client/operations';
const PricingPage = () => {
const { data: subscription } = useQuery(getSubscriptionStatus);
return (
<div>
{subscription?.status === 'active' ? (
<p>您已订阅专业版</p>
) : (
<button>升级到专业版</button>
)}
</div>
);
};3. 后台任务
创建定时任务或异步任务:
typescript
export const sendWeeklyEmail = async (args, context) => {
const users = await context.entities.User.findMany();
for (const user of users) {
await sendEmail({
to: user.email,
subject: '本周更新',
text: '...'
});
}
};部署
部署到 Fly.io
bash
# 安装 Fly CLI
curl -L https://fly.io/install.sh | sh
# 登录
fly auth login
# 部署
wasp deploy fly launch部署到 Railway
bash
# 安装 Railway CLI
npm install -g @railway/cli
# 登录
railway login
# 部署
wasp deploy railway包含的功能模块
| 功能 | 说明 |
|---|---|
| 用户注册/登录 | 邮箱+密码、OAuth |
| 订阅管理 | Stripe 集成 |
| 管理后台 | 用户管理、数据统计 |
| 邮件系统 | 欢迎邮件、密码重置 |
| 文件上传 | 头像、附件 |
| 任务队列 | 异步处理 |
| AI 功能 | OpenAI 集成示例 |
| 博客系统 | 内置博客功能 |
| 文档系统 | 帮助中心 |
相关资源
- GitHub 仓库: https://github.com/wasp-lang/open-saas
- 官方文档: https://opensaas.sh/
- Wasp 框架: https://wasp-lang.dev/
- 问题反馈: https://github.com/wasp-lang/open-saas/issues
许可证
本项目采用 MIT 许可证开源。
分享: