A production-ready Next.js starter template built with modern tools, configured for type-safety, and designed to deploy immediately.
- Next.js 15 - React 19 with Turbopack for blazing-fast development
- TypeScript - Type-safe development with full IDE support
- Hono - Lightweight, ultra-fast type-safe API framework
- Prisma - Type-safe PostgreSQL ORM with auto-generated types
- Better Auth - Full-featured authentication library with multiple providers
- PostgreSQL - Robust relational database (via Docker)
- Tailwind CSS v4 - Utility-first CSS framework
- shadcn/ui - Beautiful, accessible component library built on Radix UI
- next-themes - Seamless dark mode support
- Lucide React - Clean, customizable icon library
- TanStack Query - Powerful async state management and data fetching
- Zod - Runtime type validation and schema validation
- T3 Env - Type-safe environment variables with runtime validation
- Pino - High-performance structured logging system
- ESLint + Prettier - Code linting and automatic formatting
- Husky + lint-staged - Git hooks for pre-commit quality checks
- Node.js 20+
- pnpm (recommended) or npm
- Docker & Docker Compose (for PostgreSQL)
- Install dependencies:
pnpm install- Configure environment variables:
cp .env.example .env.localEdit .env.local and configure the following variables:
DATABASE_URL- PostgreSQL connection stringBETTER_AUTH_SECRET- Secret key for authentication (generate a secure random string)GOOGLE_CLIENT_ID- Google Client IDGOOGLE_CLIENT_SECRET- Google Client SecretNEXT_PUBLIC_APP_URL- Your application URL (default: http://localhost:3000)NEXT_PUBLIC_API_URL- Your API URL (default: http://localhost:3000)
- Setup database:
pnpm db:start && pnpm db:migrate- Start the development server:
pnpm devpnpm dev- Start Next.js development server with Turbopackpnpm build- Build the application for productionpnpm start- Start the production serverpnpm lint- Run ESLint to check code quality
pnpm db:start- Start PostgreSQL containerpnpm db:stop- Stop PostgreSQL containerpnpm db:restart- Restart PostgreSQL containerpnpm db:logs- View PostgreSQL logspnpm db:clean- Remove PostgreSQL container and volumespnpm db:generate- Generate Prisma clientpnpm db:migrate- Run database migrationspnpm db:migrate:deploy- Deploy migrations (production)pnpm db:push- Push schema changes without migrationspnpm db:studio- Open Prisma Studiopnpm db:seed- Seed the databasepnpm db:reset- Reset database and run migrationspnpm db:format- Format Prisma schema
pnpm shadcn- Add shadcn/ui components- e.g.
pnpm shadcn add button
- e.g.
axii-stack/
├── src/
│ ├── app/ # Next.js app directory (pages & routes)
│ │ ├── (auth)/ # Authentication routes
│ │ ├── api/ # API routes (Hono integration)
│ │ └── ...
│ ├── backend/ # Backend logic
│ │ ├── db/ # Prisma schema and database utilities
│ │ └── routers/ # API route handlers
│ ├── components/ # React components
│ │ └── ui/ # shadcn/ui components
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utility functions and configurations
│ │ └── config/ # Configuration files
│ │ └── env/ # Environment variable schemas
│ └── styles/ # Global styles
├── .env.example # Example environment variables
├── docker-compose.yml # PostgreSQL container configuration
└── package.json # Project dependencies and scripts
- Authentication Ready - Pre-configured Better Auth with Google OAuth support
- Type-Safe API - End-to-end type safety from database to frontend
- Database Migrations - Version-controlled schema changes with Prisma
- Dark Mode - Built-in theme switching with persistent preferences
- Code Quality - Automated linting, formatting, and pre-commit hooks
- Docker Support - Containerized PostgreSQL for consistent development
- Structured Logging - Production-ready logging with Pino
- Environment Validation - Runtime validation of environment variables
This project is open source and available under the MIT License.