A modern, production-ready Next.js starter kit with everything you need to build fast, beautiful, and responsive web applications.
- ⚡️ Next.js 15 with App Router
- 🎨 Tailwind CSS for styling
- 📦 TypeScript for type safety
- 🎯 ESLint & Prettier for code quality
- 📱 Responsive design
- 🎨 shadcn/ui components
- 📊 Drizzle ORM for database
- 🔐 Better-Auth for authentication with role-based permissions with type-safe checks
- 📧 React Email for email system with Mailpit for local email testing
- ☁️ LocalStack for local AWS service testing (e.g., S3)
- 🔒 next-safe-action for type-safe server actions
- 📊 shadcn-table for data tables
- 🔄 React Hook Form for forms
- 📝 Zod for validation
- 🎨 Tailwind Animate for animations
- 📱 Mobile First approach
- 🧪 Playwright for E2E testing
- ⚡️ Vitest for unit testing
src/
├── app/ # Next.js app router pages and layouts
├── components/ # Reusable UI components
├── config/ # Configuration files
├── emails/ # Email templates using React Email
├── lib/ # Utility functions and shared logic
├── server/ # Server-side code (DB, Auth, API logic)
└── env.js # Environment variables validation
e2e/ # End-to-end tests with Playwright
├── auth/ # Authentication-related tests
├── navigation/ # Navigation flow tests
├── fixtures/ # Test fixtures and helpers
└── utils/ # Test utilities
temp/ # Temporary files and folder
├── localstack/ # LocalStack configuration for AWS services
├── mailpit/ # Mailpit configuration for local email testing
├── playwright-report/ # Playwright test reports
└── playwright-results/ # Playwright test results
-
Clone the repository
git clone https://github.com/yourusername/nextjs-starter-kit.git cd nextjs-starter-kit
-
Install dependencies
pnpm install
-
Set up environment variables
Edit
.env
with your configuration. -
Start the development server and Docker services
The
docker-compose.yml
includes services like Mailpit for email testing and LocalStack for emulating AWS services (like S3) locally.docker-compose up -d # Start Mailpit, LocalStack, and other services pnpm dev
-
Open http://localhost:3000 with your browser to see the result.
-
For email testing, access Mailpit at http://localhost:8025
dev
- Start development server with Turbopackbuild
- Build for productionstart
- Start production serverlint
- Run ESLintlint:fix
- Fix ESLint issuestypecheck
- Run TypeScript compiler checkformat:write
- Format code with Prettierformat:check
- Check code formattingdb:push
- Push schema changes to the database (SQLite)db:generate
- Generate DB migration filesdb:migrate
- Apply DB migrationsdb:studio
- Open Drizzle Studio GUIemail:dev
- Start React Email development servertest:unit
- Run unit tests with Vitesttest:e2e
- Run Playwright E2E teststest:e2e:ui
- Run Playwright tests with UI mode
For more information about the technologies used in this starter kit:
- Next.js Documentation
- Tailwind CSS Documentation
- shadcn/ui Documentation
- Drizzle ORM Documentation
- Better-Auth Documentation
- next-safe-action Documentation
- Mailpit Documentation
- Vitest Documentation
- Playwright Documentation
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.