Feature packed Next.js 13.4 (app router) boilerplate. Zero setup. Edge ready.
Some features depend on environment variables (indicated in features list with π‘) and so require enabling. They are disabled by default so that the app runs without any setup. They can be enabled by uncommenting all lines under where @enable {feature}
appears. Some of these may be optional, indicated with @optional {purpose}
e.g.
/**
* @enable Drizzle
* @optional Store auth data in database
*/
// adapter: DrizzleAdapter(db)
- ποΈ TypeScript - Configured to maximize type safety
- βοΈ T3 Env - Environment variable validation
- π tRPC - Create end-to-end type-safe APIs that work in both client and server components
- β‘π‘ WebSockets - Real-time communication (using Pusher, but can be swapped out for alternatives)
- βοΈ using pusher-http-edge to run on edge, use the nodejs runtime with a stable version if desired
- π integrates with tRPC for end-to-end type-safe events
- π½π‘ Drizzle - ORM with maximal type safety
- ππ‘ NextAuth - Flexible and secure authentication
- βοΈ using next-auth@experimental to run on edge. use the nodejs runtime with a stable version if desired
- ππ‘ integrates with Drizzle to store auth data
- π ESLint - Consistent code standards
- β¨ Prettier - Consistent code styling
- π¨ Tailwind CSS - Utility-first CSS framework
- 𧩠shadcn/ui - Components built with Radix UI and Tailwind CSS
- π MDX - Use markdown with components
- π Absolute imports - Easier and cleaner module imports
- π» VS Code configurations - Configurations for easy debugging
- π§ͺ Vitest - Flexible testing framework
- π React Testing Library - Maintainable component testing
- π integrates with Vitest as your testing framework
- π Playwright - End-to-end testing against multiple environments
- π Bundle analyzer - Analyze bundle sizes in each environment with
pnpm run build:analyze
- π¦π‘ next-pwa - Make your website as a progressive web app (PWA)
- π³ Docker - (local and production) Docker-compose and Dockerfiles for running anywhere
- π GitHub Actions - Robust CI/CD
π Option 1: Clone and deploy with Vercel
π Option 2: Clone and run locally
- Fork or use the template
- Clone your new repository
- Install dependencies and run the development server
-
with pnpm
pnpm install pnpm run dev
-
or with Docker
docker-compose --file docker/dev/docker-compose.yml up
.dockerignore
docker/
- Dockerfile and docker-compose.yml for development and production
π‘ (requires enabling)
.github/workflows/ci.yml
- type-checking and linting (hence these errors are ignored innext.config.mjs
)
π‘ (requires enabling)
src/app/api/auth/[...nextauth]/route.ts
src/components/auth.tsx
src/db/schemas/auth.ts
β store auth data (users, accounts, sessions, verification tokens) in databasesrc/lib/auth.ts
src/components/providers/theme-provider.tsx
src/components/ui/
src/components/theme-toggle.tsx
components.json
src/env.mjs
- configure environment variablesnext.config.mjs
- environment variables are validated at build-time
src/app/examples/client-component/page.tsx
- use in a client componentsrc/app/examples/server-component/page.tsx
- use in a server component
tsconfig.json
- all modifications from create-next-app are explained with commentstypes/reset.d.ts
- using ts-reset to increase type-safety
.vscode/extensions.json
- recommended workspace extensions.vscode/launch.json
- debug configurations.vscode/settings.json
- use project TypeScript version
π‘ (requires enabling)