This is a modern Next.js application for the Inovacode landing page and portfolio, featuring a contact form with email notifications.
🎯 Migration Complete: CONCLUÍDO ✅
- ✅ Migrated from Turborepo monorepo to single Next.js project
- ✅ Consolidated database (Drizzle ORM) into unified structure
- ✅ Updated all configurations for single project architecture
- ✅ Vercel deployment optimized with Next.js framework detection
├── app/ # Next.js App Router
│ ├── api/ # API Routes
│ ├── layout.tsx # Root layout
│ └── page.tsx # Home page
├── src/
│ ├── components/ # React components
│ ├── lib/ # Utilities and database
│ ├── styles/ # Global styles
│ └── types/ # TypeScript types
├── public/ # Static assets
└── docs/ # Documentation
-
Install dependencies:
pnpm install
-
Configure environment:
- Copy
.env.exampleto.env.localand fill in your credentials:DATABASE_URL- PostgreSQL connection stringRESEND_API_KEY- For email notifications
- Copy
-
Setup git hooks (recommended):
./scripts/setup-hooks.sh
-
Start development:
pnpm dev
-
Access the application:
- Application: http://localhost:3000
- Contact API: http://localhost:3000/api/contact
This project includes git hooks to maintain code quality and dependency consistency:
- pre-push: Validates frozen lockfile consistency
- Ensures
pnpm-lock.yamlis in sync withpackage.json - Prevents pushes with inconsistent dependencies
- Validates lockfile format and integrity
- Ensures
Setup hooks:
./scripts/setup-hooks.shSkip hooks temporarily:
git push --no-verifypnpm dev- Start development serverpnpm build- Build for productionpnpm start- Start production serverpnpm lint- Lint codebasepnpm type-check- TypeScript type checkingpnpm test- Run testspnpm db:generate- Generate database migrationspnpm db:migrate- Run database migrationspnpm db:studio- Open Drizzle Studio
This project is optimized for Vercel deployment with Next.js framework detection:
- Connect your repository to Vercel
- Configure environment variables:
DATABASE_URL- PostgreSQL connection stringRESEND_API_KEY- Email service API key
- Deploy automatically on push
pnpm build
pnpm startThis project uses Drizzle ORM with PostgreSQL. Database schema is located in src/lib/db/.
Quick setup:
- Set up a PostgreSQL database (Supabase recommended)
- Add
DATABASE_URLto.env.local - Generate and run migrations:
pnpm db:generate pnpm db:migrate
- Database Setup - Complete database configuration guide
- Development Tasks - Implementation backlog
- Technical Design - System architecture
- Features Documentation - Feature-specific guides
- Framework: Next.js 15 with App Router
- Styling: Tailwind CSS v4
- Database: PostgreSQL with Drizzle ORM
- Email: Resend API
- Deployment: Vercel
- Package Manager: pnpm
- Frontend: React 19, Vite, Tailwind CSS, TanStack Router
- Backend: Fastify, TypeScript, Zod validation
- Database: PostgreSQL (Supabase), Drizzle ORM
- Monorepo: Turborepo with pnpm workspaces
- Deploy: Vercel (frontend) + Fly.io (backend)