Configure um projeto tRPC profissional com Next.js App Router, TypeScript, Prisma, autenticação e todas as ferramentas necessárias.
Produtividade: Ambiente bem configurado acelera desenvolvimento e reduz bugs de configuração.
Escalabilidade: Estrutura sólida permite crescimento do projeto sem refatorações drásticas.
# 🚀 Criar projeto Next.js
npx create-next-app@latest saas-trpc-app --typescript --tailwind --eslint --app --src-dir
# 📁 Entrar no diretório
cd saas-trpc-app
# 🔧 Instalar dependências principais
npm install @trpc/server @trpc/client @trpc/react-query @trpc/next
npm install @tanstack/react-query @tanstack/react-query-devtools
npm install zod
npm install superjson
npm install next-auth
npm install @prisma/client prisma
# 🎨 UI e formulários
npm install @hookform/resolvers react-hook-form
npm install lucide-react
npm install clsx tailwind-merge
# 🔧 Dependências de desenvolvimento
npm install -D @types/node
npm install -D prisma
# 🗄️ Inicializar Prisma
npx prisma init
# 📝 Configurar schema inicial
# Editar prisma/schema.prisma
# 🔄 Gerar cliente Prisma
npx prisma generate
# 🗃️ Criar e aplicar migrations
npx prisma migrate dev --name init
# 📄 .env.local
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/saas_trpc"
# NextAuth
NEXTAUTH_SECRET="seu-secret-super-seguro"
NEXTAUTH_URL="http://localhost:3000"
# OAuth (opcional)
GOOGLE_CLIENT_ID="seu-google-client-id"
GOOGLE_CLIENT_SECRET="seu-google-client-secret"
# tRPC
TRPC_SECRET="outro-secret-para-trpc"
saas-trpc-app/
├── src/
│ ├── app/
│ │ ├── api/
│ │ │ ├── auth/
│ │ │ │ └── [...nextauth]/
│ │ │ │ └── route.ts
│ │ │ └── trpc/
│ │ │ └── [trpc]/
│ │ │ └── route.ts
│ │ ├── (dashboard)/
│ │ │ ├── dashboard/
│ │ │ │ └── page.tsx
│ │ │ └── layout.tsx
│ │ ├── (auth)/
│ │ │ ├── login/
│ │ │ │ └── page.tsx
│ │ │ └── register/
│ │ │ └── page.tsx
│ │ ├── globals.css
│ │ ├── layout.tsx
│ │ └── page.tsx
│ ├── components/
│ │ ├── ui/
│ │ │ ├── button.tsx
│ │ │ ├── input.tsx
│ │ │ └── form.tsx
│ │ ├── auth/
│ │ │ ├── login-form.tsx
│ │ │ └── register-form.tsx
│ │ └── providers/
│ │ ├── auth-provider.tsx
│ │ └── trpc-provider.tsx
│ ├── server/
│ │ ├── auth/
│ │ │ └── config.ts
│ │ ├── db/
│ │ │ └── client.ts
│ │ └── trpc/
│ │ ├── trpc.ts
│ │ ├── context.ts
│ │ └── routers/
│ │ ├── _app.ts
│ │ ├── auth.ts
│ │ └── user.ts
│ ├── lib/
│ │ ├── utils.ts
│ │ ├── validations.ts
│ │ └── trpc.ts
│ └── types/
│ └── index.ts
├── prisma/
│ ├── schema.prisma
│ └── migrations/
├── .env.local
├── next.config.js
├── tailwind.config.js
├── tsconfig.json
└── package.json
Type Safety End-to-End:Desde o banco de dados até o frontend, tudo tipado.
Desenvolvimento Ágil:Hot reload, autocompletar e detecção de erros em tempo real.
Produção Ready:Configurado para deploy, monitoramento e escalabilidade.