Next.jsReact启动器

create-next-app — Next.js 启动器模板

作者 nimbuslab

基于 Next.js App Router 的全栈模板,集成 Better Auth 邮箱密码认证、Drizzle ORM 与 PostgreSQL,并提供交互式初始化脚本和 AI 助手配置文件生成。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

2 个预览视图
桌面端首页1 / 2
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 2

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-14查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

内置 Better Auth 邮箱密码认证,含 scrypt 密码哈希、7 天会话与 cookie 缓存,/dashboard 在服务端校验会话

02

Drizzle ORM 连接 PostgreSQL,schema 集中在 src/db/schema.ts,含 user、session、account、verification 表

03

bun run setup 交互式初始化:检测 Docker、启动数据库、应用 schema、创建演示用户,可选创建 GitHub 仓库

04

可为 Claude Code、Cursor、Gemini CLI、GitHub Copilot、Windsurf 生成对应的 AI 助手上下文文件

05

默认 Server Components,仅在需要状态、事件或浏览器 API 时使用 "use client"

06

Tailwind CSS 与 shadcn/ui(new-york 风格),next-themes 支持浅色、深色和跟随系统主题

模板详细介绍

该模板是一个 Next.js 全栈项目起点,使用 App Router 与 Server Components,默认采用 TypeScript strict 模式。认证由 Better Auth 提供,支持邮箱密码注册登录,会话默认 7 天并在 24 小时后续期,cookie 缓存 5 分钟;受保护的 /dashboard 路由在服务端读取会话,未登录时重定向到 /login。数据层使用 Drizzle ORM 连接 PostgreSQL,schema 集中在 src/db/schema.ts,包含 user、session、account、verification 四张表。UI 基于 Tailwind CSS 与 shadcn/ui(new-york 风格),通过 next-themes 提供浅色、深色和跟随系统三种主题。

项目提供 bun run setup 交互式初始化脚本,可检测 Docker、启动 PostgreSQL、应用 schema、创建演示用户,并可选创建 GitHub 仓库;也可手动执行 bun install、复制 .env.example、docker compose up -d、bun run db:push 和 bun run seed。seed 脚本会创建演示账号 [email protected] / demo1234。数据库既可使用本地 Docker 中的 PostgreSQL 16,也可换成 Neon、Supabase 等托管 PostgreSQL,通过修改 DATABASE_URL 并运行迁移完成切换。

README 明确列出尚未实现的功能:密码找回、邮箱验证、OAuth 提供商(Google、GitHub)、用于保护路由的 src/middleware.ts、带 output: "standalone" 的 Dockerfile,以及 CI 中的自动化测试。这些均位于 Roadmap 中,auth.ts 未配置相应逻辑,模板也未内置邮件服务商。部署方面,README 说明可运行在任何支持 Node 的 Next.js 平台(如 Vercel、Railway、Render),需配置 DATABASE_URL、BETTER_AUTH_SECRET 和 BETTER_AUTH_URL,并在生产数据库上执行 db:generate 与 db:migrate。

Next.jsReact启动器

适合你的项目吗?

适用场景

  • 需要快速搭建带邮箱密码认证和 PostgreSQL 数据层的 Next.js 全栈项目
  • 希望在项目初始化时自动生成 AI 编程助手上下文文件,统一团队与助手的协作约定
  • 使用 Docker 本地运行 PostgreSQL,或切换到 Neon、Supabase 等托管 PostgreSQL 进行开发
  • 作为需要服务端会话校验的受保护后台页面(如 /dashboard)的起点

适合人群

  • 使用 Bun 作为运行时和包管理器的 Next.js 开发者
  • 需要 TypeScript strict 模式与 Drizzle ORM 类型化查询的全栈项目
  • 希望以 shadcn/ui 和 Tailwind CSS 构建界面并支持主题切换的项目
  • 接受当前认证仅覆盖邮箱密码、其余认证能力尚在 Roadmap 的团队

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    推荐流程:bun install、bun run setup、bun run dev;手动流程为 bun install、cp .env.example .env、docker compose up -d、bun run db:push、bun run seed、bun run dev

  2. 2

    必须配置 DATABASE_URL、BETTER_AUTH_SECRET 和 BETTER_AUTH_URL;BETTER_AUTH_SECRET 可用 openssl rand -base64 32 生成

  3. 3

    本地 Docker 的 PostgreSQL 使用 postgres/postgres/app 凭据,仅限开发环境,不应带入生产

  4. 4

    修改 src/db/schema.ts 后运行 bun run db:generate 生成迁移,开发环境可用 bun run db:push 直接应用

  5. 5

    执行脚本请使用 bun run <script>,bun build 不带 run 会调用 Bun 自身的打包器而非项目脚本

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
  • docker-compose.yml 中的 PostgreSQL 使用 postgres/postgres/app 凭据,仅为本地开发用途,不应带入生产环境。
  • 模板未内置邮件服务商,密码找回、邮箱验证和 OAuth 提供商均未配置,需自行实现。
  • 需将 .env.example 复制为 .env 并自行调整配置,其他 .env 文件不会进入 Git。
  • BETTER_AUTH_SECRET 为必填项,需自行用 openssl rand -base64 32 生成。
  • 部署需使用支持 Node 运行 Next.js 的平台,如 Vercel、Railway 或 Render。
  • 生产部署前需针对生产数据库执行 db:generate 生成迁移并用 db:migrate 应用。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

O `docker-compose.yml` sobe um PostgreSQL 16 em `localhost:5432` com usuário `postgres`, senha `postgres` e banco `app`. São credenciais de desenvolvimento local e não devem ir para produção. O `.env.example` já vem com a `DATABASE_URL` correspondente.

README 原文

O que **não** vem pronto e está no [Roadmap](#roadmap): recuperação de senha, verificação de e-mail e provedores OAuth. Nenhum dos três está configurado no `auth.ts` e o template não traz provedor de e-mail.

README 原文

Copie o `.env.example` para `.env` e ajuste. Nenhum outro arquivo `.env` entra no Git.

README 原文

| `BETTER_AUTH_SECRET` | sim | Segredo de assinatura das sessões. Gere com `openssl rand -base64 32` |

README 原文

Funciona em qualquer plataforma que rode Next.js em Node, como Vercel, Railway ou Render. O caminho é o mesmo:

README 原文

3. Gere a migração com `bun run db:generate` e aplique com `bun run db:migrate` contra o banco de produção

README 原文
https://github.com/nimbuslab/create-next-app/blob/main/LICENSEhttps://github.com/nimbuslab/create-next-app/blob/main/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-14。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 85 / 100
技术栈
Next.js · React
网站类型
启动器
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-09-10
截图检查日期
2026-10-14

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

审核声明: codex-user-requested-batch-review-20261015 · 2026-10-15

查看当时使用的来源资料

SHA-256: d45cff09afa8a7a39c264443424c3378408f7ba7dda0bbafcbcc2b5f18fef487

2026-10-14T17:04:49.995Z

来源文件 / 仓库
<div align="center">

# create-next-app

**Template full-stack Next.js com autenticação, banco de dados e configuração pronta para agentes de IA.**
Next.js 16 com App Router, React 19, Better Auth, Drizzle ORM sobre PostgreSQL e shadcn/ui.

[Read in English](./docs/README.en.md)

[![CI](https://github.com/nimbuslab/create-next-app/actions/workflows/ci.yml/badge.svg)](https://github.com/nimbuslab/create-next-app/actions/workflows/ci.yml)
[![Next.js](https://img.shields.io/badge/Next.js-16-FF5500)](https://nextjs.org)
[![React](https://img.shields.io/badge/React-19-FF5500)](https://react.dev)
[![licença](https://img.shields.io/badge/licen%C3%A7a-MIT-FF5500)](./LICENSE)

[Instalação](#instalação) · [Quick start](#quick-start) · [Stack](#stack) · [Scripts](#scripts-disponíveis) · [Roadmap](#roadmap)

</div>

---

## Por que create-next-app

- **Autenticação funcionando desde o primeiro `bun run dev`**: Better Auth com e-mail e senha, sessão com cache de cookie e `/dashboard` protegido no servidor
- **Banco tipado de ponta a ponta**: Drizzle ORM sobre PostgreSQL, com todo o schema em um único arquivo
- **Setup interativo**: detecta Docker, sobe o PostgreSQL, aplica o schema, cria o usuário de demonstração e, se você quiser, cria o repositório no GitHub
- **Configuração para agentes de IA**: gera o arquivo de contexto do assistente que você usa, com a stack e as convenções do projeto já preenchidas
- **Server Components por padrão**: `"use client"` só onde existe estado, evento ou API de navegador
- **Tema escuro por padrão**: `next-themes` com alternância entre claro, escuro e a preferência do sistema

## Instalação

### Com a CLI da nimbuslab

```bash
bun add -g @nimbuslab/cli
nimbus create meu-app --app
cd meu-app
```

### Clonando o template

```bash
git clone --depth 1 https://github.com/nimbuslab/create-next-app.git meu-app
cd meu-app
rm -rf .git
```

## Quick start

Com o setup interativo, que cuida do banco e do arquivo `.env`:

```bash
bun install
bun run setup
bun run dev
```

Se preferir fazer tudo na mão:

```bash
bun install
cp .env.example .env
docker compose up -d
bun run db:push
bun run seed
bun run dev
```

Abra [http://localhost:3000](http://localhost:3000). O `bun run seed` cria um usuário de demonstração:

- E-mail: `[email protected]`
- Senha: `demo1234`

## Stack

As versões abaixo são as declaradas no `package.json` e no `docker-compose.yml` deste repositório.

| Peça | Versão | Papel |
|---|---|---|
| [Next.js](https://nextjs.org) | `16.3.0` | App Router, Server Components, Turbopack |
| [React](https://react.dev) | `19.2.8` | Biblioteca de interface |
| [TypeScript](https://www.typescriptlang.org) | `^5` | Tipagem estática em modo `strict` |
| [Better Auth](https://better-auth.com) | `^1.3.10` | Autenticação e sessões |
| [Drizzle ORM](https://orm.drizzle.team) | `^0.44.0` | Consultas tipadas |
| [drizzle-kit](https://orm.drizzle.team/docs/kit-overview) | `^0.31.0` | Migrações e Drizzle Studio |
| [PostgreSQL](https://www.postgresql.org) | `16-alpine` | Banco relacional (imagem do `docker-compose.yml`) |
| [Tailwind CSS](https://tailwindcss.com) | `^4` | Estilização utilitária, configuração via CSS |
| [shadcn/ui](https://ui.shadcn.com) | estilo `new-york` | Componentes acessíveis sobre Radix UI |
| [Bun](https://bun.sh) | `1.3+` | Runtime e gerenciador de pacotes |

O `package.json` não fixa a versão do Bun: `1.3+` é a faixa em que o template é desenvolvido e a CI usa a mais recente. O campo `engines` exige Node `>=18` para quem rodar o build fora do Bun.

## Estrutura do projeto

```
.
├── .github/workflows/ci.yml     # typecheck, lint e build
├── docker-compose.yml           # PostgreSQL 16 local
├── drizzle.config.ts            # configuração do drizzle-kit
├── scripts/
│   ├── ai-configs.ts            # modelos de config por assistente de IA
│   ├── seed.ts                  # cria o usuário de demonstração
│   └── setup.ts                 # assistente de configuração inicial
└── src/
    ├── app/
    │   ├── (auth)/
    │   │   ├── login/page.tsx
    │   │   └── register/page.tsx
    │   ├── api/auth/[...all]/route.ts   # handler do Better Auth
    │   ├── dashboard/                    # rota protegida
    │   ├── globals.css                   # tokens de tema
    │   ├── layout.tsx
    │   └── page.tsx                      # página pública
    ├── components/
    │   ├── theme-provider.tsx
    │   └── ui/                           # componentes shadcn/ui
    ├── db/
    │   ├── index.ts             # cliente Drizzle e pool do pg
    │   └── schema.ts            # tabelas user, session, account, verification
    └── lib/
        ├── auth.ts              # configuração do Better Auth (servidor)
        ├── auth-client.ts       # cliente de autenticação (navegador)
        └── utils.ts             # helper cn()
```

## Scripts disponíveis

| Comando | O que faz |
|---|---|
| `bun run dev` | Servidor de desenvolvimento com Turbopack |
| `bun run build` | Build de produção |
| `bun run start` | Servidor de produção a partir do build |
| `bun run lint` | Verifica o código com ESLint |
| `bun run lint:fix` | Aplica as correções automáticas do ESLint |
| `bun run typecheck` | `tsc --noEmit` |
| `bun run setup` | Assistente de configuração inicial |
| `bun run seed` | Cria o usuário de demonstração |
| `bun run db:generate` | Gera arquivos de migração a partir do schema |
| `bun run db:push` | Aplica o schema direto no banco (desenvolvimento) |
| `bun run db:migrate` | Roda as migrações geradas (produção) |
| `bun run db:studio` | Abre o Drizzle Studio |

Use sempre `bun run <script>`. `bun build` sem o `run` chama o bundler do próprio Bun, não este script.

## Banco de dados

### Local, com Docker

```bash
docker compose up -d
bun run db:push
bun run seed
```

O `docker-compose.yml` sobe um PostgreSQL 16 em `localhost:5432` com usuário `postgres`, senha `postgres` e banco `app`. São credenciais de desenvolvimento local e não devem ir para produção. O `.env.example` já vem com a `DATABASE_URL` correspondente.

### Provedor gerenciado

Serve qualquer PostgreSQL, como [Neon](https://neon.tech) ou [Supabase](https://supabase.com). Troque a `DATABASE_URL` no `.env` e rode as migrações:

```bash
bun run db:generate
bun run db:migrate
```

### Alterando o schema

Edite `src/db/schema.ts` e depois:

```bash
bun run db:generate   # gera a migração
bun run db:push       # ou aplique direto, em desenvolvimento
```

### Drizzle Studio

```bash
bun run db:studio
```

Abre em [https://local.drizzle.studio](https://local.drizzle.studio).

## Autenticação

Configurada em `src/lib/auth.ts` com [Better Auth](https://better-auth.com) e o adaptador do Drizzle.

O que vem pronto:

- Cadastro e login com e-mail e senha
- Hash de senha com scrypt, o padrão do Better Auth
- Sessão de 7 dias, renovada a cada 24 horas, com cache de cookie de 5 minutos
- `/dashboard` protegido: `src/app/dashboard/page.tsx` lê a sessão no servidor e redireciona para `/login` quando não existe

O que **não** vem pronto e está no [Roadmap](#roadmap): recuperação de senha, verificação de e-mail e provedores OAuth. Nenhum dos três está configurado no `auth.ts` e o template não traz provedor de e-mail.

## Configuração para agentes de IA

O `bun run setup` pergunta qual assistente você usa e gera o arquivo de contexto correspondente, com a stack, a estrutura de pastas e as convenções do projeto:

| Assistente | Arquivo gerado |
|---|---|
| Claude Code | `CLAUDE.md` |
| Cursor | `.cursorrules` |
| Gemini CLI | `.gemini/GEMINI.md` |
| GitHub Copilot | `.github/copilot-instructions.md` |
| Windsurf | `.windsurfrules` |

Os modelos ficam em `scripts/ai-configs.ts`.

## Adicionando componentes

```bash
bunx --bun shadcn@latest add dialog
bunx --bun shadcn@latest add table
```

O `components.json` já aponta para `src/components/ui` e para os tokens em `src/app/globals.css`.

## Variáveis de ambiente

Copie o `.env.example` para `.env` e ajuste. Nenhum outro arquivo `.env` entra no Git.

| Variável | Obrigatória | Descrição |
|---|---|---|
| `DATABASE_URL` | sim | String de conexão do PostgreSQL, lida por `src/db/index.ts` e por `drizzle.config.ts` |
| `BETTER_AUTH_SECRET` | sim | Segredo de assinatura das sessões. Gere com `openssl rand -base64 32` |
| `BETTER_AUTH_URL` | sim | URL pública da aplicação |
| `NEXT_PUBLIC_APP_URL` | não | Base do cliente de autenticação. Sem ela, o padrão é `http://localhost:3000` |
| `NODE_ENV` | não | `development` ou `production` |

## Deploy

Funciona em qualquer plataforma que rode Next.js em Node, como Vercel, Railway ou Render. O caminho é o mesmo:

1. Provisione um PostgreSQL e pegue a connection string
2. Configure `DATABASE_URL`, `BETTER_AUTH_SECRET` e `BETTER_AUTH_URL` no ambiente
3. Gere a migração com `bun run db:generate` e aplique com `bun run db:migrate` contra o banco de produção
4. Faça o deploy

Gere o segredo com:

```bash
openssl rand -base64 32
```

## Roadmap

- [ ] Recuperação de senha
- [ ] Verificação de e-mail
- [ ] Provedores OAuth (Google e GitHub)
- [ ] `src/middleware.ts` com o matcher das rotas protegidas
- [ ] `Dockerfile` com `output: "standalone"` para self-hosting
- [ ] Testes automatizados na CI

## Contribuindo

Leia o [guia de contribuição](./CONTRIBUTING.md) antes de abrir um PR. Em resumo: branch a partir da `main`, commits em português seguindo Conventional Commits, e `bun run typecheck`, `bun run lint` e `bun run build` verdes antes de pedir revisão.

O [código de conduta](./CODE_OF_CONDUCT.md) vale para todo mundo que participa do projeto.

## Suporte

Dúvidas, bugs e sugestões vão para as [Issues](https://github.com/nimbuslab/create-next-app/issues). Falhas de segurança seguem o processo descrito em [SECURITY.md](./SECURITY.md).

## Licença

[MIT](./LICENSE) © [nimbuslab](https://nimbuslab.com.br)

---

<div align="center">

Construído em Brasília, DF, Brasil

</div>
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。