create-w-base
v0.1.2
Published
Create a new Next.js project with NextAuth, Prisma and shadcn/ui
Maintainers
Readme
Create W Base - Next.js Starter Kit
English
A high-performance, opinionated boilerplate for Full Stack applications with NextAuth v5, Prisma, and shadcn/ui.
Quick Start
pnpm create w-base my-app
cd my-app
pnpm install
cp .env.example .env
# Fill in your database credentials
pnpm db:generate
pnpm db:push
pnpm devAccess: http://localhost:3000
Tech Stack
- Framework: Next.js 16 (App Router) + React 19
- Styling: Tailwind CSS v4 & Shadcn UI
- ORM: Prisma 7
- Authentication: NextAuth v5 (Beta)
- Data Fetching: TanStack Query v5
- Forms: React Hook Form + Zod
- 3D Effects: Three.js + React Three Fiber
- Quality: Prettier, ESLint & TypeScript
Folder Structure
src/
├── app/ # Routes, layouts and pages (App Router)
│ ├── (private)/app/ # Authenticated routes
│ ├── (public)/ # Public routes (landing, auth)
│ ├── api/auth/ # NextAuth API handler
│ ├── _components/ # Reusable UI components (shadcn)
│ ├── _hooks/ # Custom hooks
│ └── _lib/ # Utilities
├── features/ # Domain-grouped logic (Auth, etc)
├── providers/ # Context Providers (QueryClient, Theme)
├── services/ # External service clients (Prisma, Auth)
├── types/ # Global TypeScript definitions
prisma/ # Database schema and migrationsAvailable Scripts
| Command | Description |
| :------------------- | :--------------------------------------- |
| pnpm dev | Starts the development server. |
| pnpm build | Builds the application for production. |
| pnpm start | Starts the server in production mode. |
| pnpm lint | Runs ESLint verification. |
| pnpm db:generate | Generates the Prisma Client. |
| pnpm db:push | Pushes schema to database. |
| pnpm db:migrate | Runs database migrations. |
Essential Variables
| Variable | Description |
| :-------------------- | :------------------------------------------------------- |
| DATABASE_URL | Connection string to your PostgreSQL database. |
| AUTH_SECRET | Random string for token security (NextAuth). |
| SESSION_COOKIE_NAME | Session cookie name (default: authjs.session-token). |
| NEXT_PUBLIC_APP_URL | Base URL of the application. |
| GOOGLE_CLIENT_ID | Google OAuth Client ID (optional). |
| GOOGLE_CLIENT_SECRET| Google OAuth Client Secret (optional). |
Portugues
Boilerplate opinativo e de alta performance para aplicacoes Full Stack com NextAuth v5, Prisma e shadcn/ui.
Inicio Rapido
pnpm create w-base my-app
cd my-app
pnpm install
cp .env.example .env
# Preencha as credenciais do banco de dados
pnpm db:generate
pnpm db:push
pnpm devAcesse: http://localhost:3000
Tech Stack
- Framework: Next.js 16 (App Router) + React 19
- Estilizacao: Tailwind CSS v4 & Shadcn UI
- ORM: Prisma 7
- Autenticacao: NextAuth v5 (Beta)
- Data Fetching: TanStack Query v5
- Formularios: React Hook Form + Zod
- Efeitos 3D: Three.js + React Three Fiber
- Qualidade: Prettier, ESLint & TypeScript
Estrutura de Pastas
src/
├── app/ # Rotas, layouts e paginas (App Router)
│ ├── (private)/app/ # Rotas autenticadas
│ ├── (public)/ # Rotas publicas (landing, auth)
│ ├── api/auth/ # NextAuth API handler
│ ├── _components/ # Componentes UI reutilizaveis (shadcn)
│ ├── _hooks/ # Hooks personalizados
│ └── _lib/ # Utilitarios
├── features/ # Logica agrupada por dominio (Auth, etc)
├── providers/ # Context Providers (QueryClient, Theme)
├── services/ # Clientes de servicos externos (Prisma, Auth)
├── types/ # Definicoes globais TypeScript
prisma/ # Schema do banco e migrationsScripts Disponiveis
| Comando | Descricao |
| :------------------- | :--------------------------------------- |
| pnpm dev | Inicia o servidor de desenvolvimento. |
| pnpm build | Compila a aplicacao para producao. |
| pnpm start | Inicia o servidor em modo de producao. |
| pnpm lint | Executa a verificacao do ESLint. |
| pnpm db:generate | Gera o Prisma Client. |
| pnpm db:push | Envia schema para o banco de dados. |
| pnpm db:migrate | Executa migrations do banco. |
Variaveis Essenciais
| Variavel | Descricao |
| :-------------------- | :------------------------------------------------------ |
| DATABASE_URL | String de conexao com seu banco PostgreSQL. |
| AUTH_SECRET | String aleatoria para seguranca dos tokens (NextAuth). |
| SESSION_COOKIE_NAME | Nome do cookie de sessao (padrao: authjs.session-token).|
| NEXT_PUBLIC_APP_URL | URL base da aplicacao. |
| GOOGLE_CLIENT_ID | Client ID do Google OAuth (opcional). |
| GOOGLE_CLIENT_SECRET| Client Secret do Google OAuth (opcional). |
Developed with coffee and code by Willem
