使用 TypeScript 与 tRPC 实现从数据库到前端的端到端类型安全
saas-boilerplate — Next.js SaaS模板
作者 robinfaraj
基于 Next.js App Router 的 SaaS 启动模板,集成 tRPC、Prisma、TailwindCSS、Stack Auth 与 PostHog,提供类型安全的全栈开发起点。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
基于 Next.js App Router 的文件路由组织页面与布局
集成 Prisma 与 PostgreSQL 管理数据,并提供数据库启动脚本与迁移命令
内置 Stack Auth 认证配置,通过环境变量接入项目凭据
使用 ShadcN 与 MagicUI 组件、TailwindCSS 样式,支持深色与浅色模式
集成 PostHog 分析、Resend 邮件与 Sentry 错误追踪等可选服务
模板详细介绍
该模板是一个面向 SaaS 产品的全栈启动项目,使用 Next.js App Router 组织页面与布局,以 TypeScript 贯穿前后端,并通过 tRPC 在客户端与服务端之间建立端到端类型安全的 API 调用。数据层采用 Prisma 与 PostgreSQL,UI 组件来自 ShadcN 与 MagicUI,样式使用 TailwindCSS,支持深色与浅色模式。认证依赖 Stack Auth,分析依赖 PostHog,数据获取通过 tRPC 封装的 React Query 完成,表单与接口校验使用 Zod。
项目结构按职责划分:src/app 存放路由页面与布局,src/components 存放可复用 UI 组件,src/hooks 存放自定义 React hooks,src/lib 存放核心工具与服务,src/provider 存放上下文提供者,src/server 存放服务端逻辑,src/trpc 存放 tRPC 路由与过程,src/types 存放类型定义。README 提供了克隆仓库、安装依赖、复制环境变量、启动本地 PostgreSQL、执行 Prisma 迁移和启动开发服务器的步骤,并列出必需与可选环境变量。
使用限制方面,该模板需要自行准备 PostgreSQL 数据库与 Stack Auth 项目凭据;邮件、错误追踪和 PostHog 分析为可选配置。代码采用 MIT 许可,可免费使用、修改、商用和分发,但演示图片、字体、图标等第三方素材需单独核对许可,域名、托管、数据库、支付或 AI 等外部服务可能产生额外费用。
适合你的项目吗?
适用场景
- 需要快速搭建带认证、数据库与分析能力的 SaaS 项目骨架
- 希望在 Next.js 项目中使用 tRPC 获得端到端类型安全的 API 层
- 使用 Prisma 与 PostgreSQL 作为数据层,并需要本地数据库启动脚本
- 需要 ShadcN、MagicUI 与 TailwindCSS 组合的响应式界面基础
- 希望以 MIT 许可的代码作为二次开发起点
适合人群
- 熟悉 Next.js、TypeScript 与 React 的全栈开发者
- 需要类型安全 API 与 ORM 集成的 SaaS 项目团队
- 希望自行配置认证、数据库与分析服务的开发者
- 接受按 README 步骤手动完成环境变量与数据库初始化的使用者
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
克隆仓库后使用 pnpm install 安装依赖,并复制 .env.example 为 .env
- 2
需准备 PostgreSQL 数据库,可通过 ./start-database.sh 启动本地实例,再执行 pnpm prisma migrate dev 或 pnpm db:push 同步结构
- 3
必须配置 DATABASE_URL 以及 Stack Auth 的 NEXT_PUBLIC_STACK_PROJECT_ID、NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY 和 STACK_SECRET_SERVER_KEY
- 4
Resend、Sentry 与 PostHog 相关环境变量为可选,按需填写以启用邮件、错误追踪和分析
- 5
使用 pnpm dev 启动开发服务器;Stack Auth 凭据需按其文档指引获取
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 使用认证功能必须自行注册 Stack Auth 并配置项目 ID、可发布客户端密钥与服务端密钥,属于外部服务依赖,需自行承担其账号与费用。
- 必须自行准备 PostgreSQL 数据库并配置连接串,数据库的托管或运行可能产生额外费用。
- 本地启动数据库脚本依赖 Docker 环境,需预先安装并运行 Docker。
- 邮件功能需自行申请 Resend API Key,属于可选的外部服务,可能产生费用。
- 分析功能需自行配置 PostHog 主机与密钥,属于可选外部服务,可能产生费用。
- 错误追踪需自行配置 Sentry 组织与项目,属于可选外部服务,可能产生费用。
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
NEXT_PUBLIC_STACK_PROJECT_ID`: Your Stack Auth project ID
README 原文
`DATABASE_URL`: PostgreSQL connection URL
README 原文
Make sure Docker is installed and running
README 原文
`RESEND_API_KEY`: For email functionality
README 原文
`NEXT_PUBLIC_POSTHOG_HOST` and `NEXT_PUBLIC_POSTHOG_KEY`: For analytics
README 原文
https://github.com/robinfaraj/saas-boilerplate/blob/main/LICENSEhttps://github.com/robinfaraj/saas-boilerplate/blob/main/README.md`SENTRY_ORG` and `SENTRY_PROJECT`: For error tracking
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-02。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 86 / 100
- 技术栈
- Next.js · React
- 网站类型
- SaaS · 启动器
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2024-12-23
- 截图检查日期
- 2026-10-02
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。
查看当时使用的来源资料
SHA-256: e960223ced5f73b9252d0d558ad786597229c852b53f2917303e1a14907ee53a
2026-10-02T20:44:26.180Z
来源文件 / 仓库<h1 align="center">
<br>
SaaS Boilerplate
<br>
</h1>
<h4 align="center">A modern, type-safe SaaS boilerplate built with Next.js 15, tRPC, and Prisma.</h4>
<p align="center">
<a href="#key-features">Key Features</a> •
<a href="#tech-stack">Tech Stack</a> •
<a href="#quick-start">Quick Start</a> •
<a href="#project-structure">Project Structure</a>
</p>
<p align="center">
<a href="https://github.com/robinsadeghpour/saas-boilerplate/blob/main/LICENSE">
<img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License" />
</a>
</p>
<p align="center">
<i>Looking for a mobile app boilerplate? Check out <a href="https://native.express?ref=saas-boilerplate">NativeExpress</a> - The ultimate React Native & Expo boilerplate!</i>
</p>
## Key Features
* Full-stack type safety with TypeScript and tRPC
* Modern file-based routing with Next.js 15 App Router
* Beautiful UI components from ShadcN and MagicUI
* Secure database management with Prisma and PostgreSQL
* Real-time analytics with PostHog
* Responsive design with TailwindCSS
* Dark/Light mode support
* End-to-end type safety from database to frontend
* Production-ready authentication system
* Optimized data fetching with React Query
## Tech Stack
* **Framework**: Next.js 15 with App Router
* **Language**: TypeScript
* **API**: tRPC for end-to-end type-safe APIs
* **Database**: PostgreSQL with Prisma ORM
* **UI Components**: ShadcN UI & MagicUI
* **Styling**: TailwindCSS
* **Analytics**: PostHog
* **Data Fetching**: React Query (through tRPC)
* **Validation**: Zod
## Quick Start
1. Clone the repository:
```bash
git clone https://github.com/robinsadeghpour/saas-boilerplate.git
cd saas-boilerplate
```
2. Install dependencies:
```bash
pnpm install
```
3. Copy the environment variables:
```bash
cp .env.example .env
```
4. Start the PostgreSQL database:
```bash
./start-database.sh
```
5. Run database migrations:
```bash
pnpm prisma migrate dev
```
6. Start the development server:
```bash
pnpm dev
```
## Project Structure
```
src/
├── app/ # Next.js App Router pages and layouts
├── components/ # Reusable UI components
├── hooks/ # Custom React hooks
├── lib/ # Core utilities and services
├── provider/ # Context providers and wrappers
├── server/ # Server-side logic
├── styles/ # Global styles and Tailwind config
├── trpc/ # tRPC router and procedures
└── types/ # TypeScript types and interfaces
```
## Development Guidelines
* Use TypeScript for all files except configurations
* Follow functional component patterns with hooks
* Keep components focused and small
* Use Tailwind for styling with consistent design tokens
* Follow mobile-first responsive design
* Implement proper error handling with tRPC
* Use React Query features through tRPC for data management
## Related Projects
🚀 **[NativeExpress](https://native.express?ref=saas-boilerplate)** - The ultimate React Native & Expo boilerplate with all the features you need to build production-ready mobile apps.
---
<p align="center">
<a href="https://x.com/robin_faraj?ref=saas-boilerplate">Follow on X</a> •
<a href="https://www.youtube.com/@robinfaraj?sub_confirmation=1">Subscribe on YouTube</a>
</p>
> This project is maintained by [Robin Faraj](https://x.com/robin_faraj?ref=saas-boilerplate)
## Environment Variables
### Required Environment Variables
The following environment variables are required for the application to function properly:
- `DATABASE_URL`: PostgreSQL connection URL
- `NEXT_PUBLIC_STACK_PROJECT_ID`: Your Stack Auth project ID
- `NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY`: Your Stack Auth publishable client key
- `STACK_SECRET_SERVER_KEY`: Your Stack Auth secret server key
### Optional Environment Variables
These environment variables are optional but enable additional features:
- `RESEND_API_KEY`: For email functionality
- `RESEND_AUDIENCE_ID`: For newsletter management
- `SENTRY_ORG` and `SENTRY_PROJECT`: For error tracking
- `NEXT_PUBLIC_POSTHOG_HOST` and `NEXT_PUBLIC_POSTHOG_KEY`: For analytics
### Setup Instructions
1. Copy `.env.example` to `.env`
2. Set up the database:
- Make sure Docker is installed and running
- Start the local database using the provided script:
```bash
./start-database.sh
```
- Push the database schema:
```bash
pnpm db:push
```
3. For Stack Auth credentials:
- Visit [Stack Auth Documentation](https://docs.stack-auth.com/overview)
- Follow their setup guide to obtain your project credentials
- Fill in the corresponding environment variables
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

ai-website-cloner-template
Clone any website with one command using AI coding agents
Next.js · 启动器

Next.js SaaS Starter
Next.js SaaS Starter 是 Next.js 官方维护的 SaaS 起点模板,定位介于学习资源和可直接部署的脚手架之间。
Next.js · SaaS

Next.js Commerce
Next.js Commerce 是 Vercel 团队维护的电商启动模板,基于 Next.js App Router 构建,采用服务端渲染、React Server Components、Server Actions …
Next.js · 电商

Next-js-Boilerplate
Next-js-Boilerplate 是一个面向 Next.js 16、Tailwind CSS 4 和 TypeScript 的启动器,核心定位是开发者体验优先。
Next.js · 启动器

tailwind-nextjs-starter-blog
tailwind-nextjs-starter-blog 是一个面向个人技术博客的 Next.js 与 Tailwind CSS 启动模板,其 v2 版本基于 App Router 与 React Server Comp…
Next.js · 博客

next-forge
Production-grade Turborepo template for Next.js apps.
Next.js · 启动器
