Next.js Boilerplate

Ship faster with
modern tooling

A minimal, production-ready Next.js boilerplate with authentication, database, and modern development tools.

Tech Stack

Next.js 15+

React Framework

Tailwind CSS

Utility-First CSS

Drizzle ORM

Type-Safe Database

Better Auth

Modern Authentication

Features & Capabilities

Modern UI

Built with shadcn/ui and Tailwind CSS 4, using only design tokens and variables for consistent theming.

shadcn/uiTailwind CSS
Secure Auth

Pre-built authentication with better-auth, including login, signup, and session management.

better-authSessions
Type-Safe ORM

Drizzle ORM provides full TypeScript support with type-safe database queries and migrations.

Drizzle ORMTypeScript
Responsive

Collapsible sidebar, mobile-friendly navigation, and responsive layouts for all screen sizes.

Mobile FirstAdaptive
Dark/Light Mode

Seamless theme switching with next-themes and persisted user preferences.

next-themesPersistent
Accessible

Built with Radix UI primitives for keyboard navigation and screen reader support.

Radix UIWCAG
Production Ready

Optimized for performance with Next.js 15 App Router, SSR/SSG, and efficient bundling.

App RouterSSR/SSG
Developer Experience

Full TypeScript support, ESLint configuration, and hot reloading for optimal development workflow.

TypeScriptESLint
Componentized

Modular component architecture that's easy to extend, maintain, and customize for your needs.

ModularReusable
Notes Management

Create, edit, publish, and manage your notes with a rich text editor and public sharing options.

Markdown SupportPublic Links
User Profiles

Dedicated public profile pages for users to showcase their published notes.

Dynamic RoutesPersonalized URLs
API Routes

Secure API endpoints for authentication and note management, built with Next.js API routes.

Next.js APIServer Actions

Project Architecture

Well-Organized Structure

Clear separation of concerns with modular components and logical file organization

tamplet/
├── .next/
├── node_modules/
├── public/
├── src/
│   ├── app/
│   │   ├── (auth)/
│   │   │   ├── login/
│   │   │   │   └── page.tsx
│   │   │   └── signup/
│   │   │       └── page.tsx
│   │   ├── (dashboard)/
│   │   │   ├── dashboard/
│   │   │   │   ├── layout.tsx
│   │   │   │   ├── page.tsx
│   │   │   │   └── [noteId]/
│   │   │   │       └── page.tsx
│   │   │   └── [username]/
│   │   │       └── [slug]/
│   │   │           └── page.tsx
│   │   ├── api/
│   │   │   ├── auth/
│   │   │   │   └── [...all]/
│   │   │   │       └── route.ts
│   │   │   └── notes/
│   │   │       └── [id]/
│   │   ├── favicon.ico
│   │   ├── globals.css
│   │   ├── layout.tsx
│   │   └── page.tsx
│   ├── components/
│   │   ├── ui/
│   │   ├── app-sidebar.tsx
│   │   ├── login-form.tsx
│   │   ├── main-nav.tsx
│   │   ├── markdown-renderer.tsx
│   │   ├── nav-main.tsx
│   │   ├── nav-projects.tsx
│   │   ├── nav-secondary.tsx
│   │   ├── nav-user.tsx
│   │   ├── notes-list.tsx
│   │   ├── notes-table.tsx
│   │   ├── signup-form.tsx
│   │   ├── theme-provider.tsx
│   │   └── theme-toggle.tsx
│   ├── db/
│   │   ├── index.ts
│   │   └── schema.ts
│   ├── hooks/
│   │   └── use-mobile.ts
│   ├── lib/
│   │   ├── auth-client.ts
│   │   ├── auth.ts
│   │   └── utils.ts
│   └── server/
│       ├── notes.ts
│       └── user.ts
├── .gitignore
├── bun.lock
├── components.json
├── drizzle.config.ts
├── next.config.ts
├── package.json
├── postcss.config.mjs
├── README.md
└── tsconfig.json
Auth Routes
Dashboard
Components
Database
5min
Quick Setup
100%
Type Safe
0 Config
Ready to Go
10+
Components