Next.js Admin Dashboard Starter
Next.js admin dashboard with App Router, shadcn/ui, server components, route groups for auth/dashboard layouts, and Vercel-ready deployment.
Code
A Next.js admin dashboard leveraging the App Router’s layout system, server components for data loading, and route groups to cleanly separate auth and dashboard concerns.
Quick Start
Option A: Vercel template (one-click deploy)
Deploy the official Vercel admin template directly from the dashboard, then clone the generated repo locally.
Reference: Vercel Admin Dashboard Template
Option B: Community starter (6.2k stars)
git clone https://github.com/Kiranism/next-shadcn-dashboard-starter.git
cd next-shadcn-dashboard-starter
npm install && npm run dev
App Router Layout Groups
The key architectural pattern is using route groups to apply different layouts without affecting the URL structure:
app/
(auth)/
login/page.tsx # /login
register/page.tsx # /register
layout.tsx # Centered card layout, no sidebar
(dashboard)/
page.tsx # / (dashboard home)
analytics/page.tsx # /analytics
users/page.tsx # /users
settings/page.tsx # /settings
layout.tsx # Sidebar + header layout
layout.tsx # Root layout (providers, fonts)
(auth)/layout.tsxrenders a minimal centered layout for login/register flows.(dashboard)/layout.tsxrenders the sidebar, header, and breadcrumb navigation.- Neither group name appears in the URL.
Server Components for Data Loading
Server components let you fetch data directly in the component without client-side state management:
// app/(dashboard)/users/page.tsx — runs on the server
export default async function UsersPage() {
const users = await db.user.findMany();
return <DataTable columns={columns} data={users} />;
}
No loading spinners, no useEffect, no client-side fetch. The HTML streams to the browser with data already rendered.
Key Patterns
- Route Groups for separate auth/dashboard layouts
- Server Components for zero-waterfall data loading
- Parallel Routes for modal overlays (
@modalslot) - Middleware for auth redirects before rendering
- shadcn/ui for consistent, accessible components