This is a starter template using the following stack:
- Framework - Next.js 15
- Language - TypeScript
- Auth - Clerk
- Error tracking -
- Styling - Tailwind CSS v4
- Components - Shadcn-ui
- Schema Validations - Zod
- State Management - Zustand
- Search params state manager - Nuqs
- Tables - Tanstack Data Tables • Dice table
- Forms - React Hook Form
- Command+k interface - kbar
- Linting - ESLint
- Pre-commit Hooks - Husky
- Formatting - Prettier
If you are looking for a React admin dashboard starter, here is the repo.
Pages | Specifications |
---|---|
Signup / Signin | Authentication with Clerk provides secure authentication and user management with multiple sign-in options including passwordless authentication, social logins, and enterprise SSO - all designed to enhance security while delivering a seamless user experience. |
Dashboard (Overview) | Cards with Recharts graphs for analytics. Parallel routes in the overview sections feature independent loading, error handling, and isolated component rendering. |
Product | Tanstack tables with server side searching, filter, pagination by Nuqs which is a Type-safe search params state manager in nextjs |
Product/new | A Product Form with shadcn form (react-hook-form + zod). |
Profile | Clerk's full-featured account management UI that allows users to manage their profile and security settings |
Kanban Board | A Drag n Drop task management board with dnd-kit and zustand to persist state locally. |
Not Found | Not Found Page Added in the root level |
Global Error | A centralized error page that captures and displays errors across the application. Integrated with Sentry to log errors, provide detailed reports, and enable replay functionality for better debugging. This page enhances user experience by providing a friendly error message and options to navigate back to safety. |
src/
├── app/ # Next.js App Router directory
│ ├── (auth)/ # Auth route group
│ │ ├── (signin)/
│ ├── (dashboard)/ # Dashboard route group
│ │ ├── layout.tsx
│ │ ├── loading.tsx
│ │ └── page.tsx
│ └── api/ # API routes
│
├── components/ # Shared components
│ ├── ui/ # UI components (buttons, inputs, etc.)
│ └── layout/ # Layout components (header, sidebar, etc.)
│
├── features/ # Feature-based modules
│ ├── feature/
│ │ ├── components/ # Feature-specific components
│ │ ├── actions/ # Server actions
│ │ ├── schemas/ # Form validation schemas
│ │ └── utils/ # Feature-specific utilities
│ │
├── lib/ # Core utilities and configurations
│ ├── auth/ # Auth configuration
│ ├── db/ # Database utilities
│ └── utils/ # Shared utilities
│
├── hooks/ # Custom hooks
│ └── use-debounce.ts
│
├── stores/ # Zustand stores
│ └── dashboard-store.ts
│
└── types/ # TypeScript types
└── index.ts
Note
We are using Next 15 with React 19, follow these steps:
Clone the repo:
git clone https://github.com/Kiranism/next-shadcn-dashboard-starter.git
pnpm install
( we have legacy-peer-deps=true added in the .npmrc)- Create a
.env.local
file by copying the example environment file:cp env.example.txt .env.local
- Add the required environment variables to the
.env.local
file. pnpm run dev
To configure the environment for this project, refer to the env.example.txt
file. This file contains the necessary environment variables required for authentication and error tracking.
You should now be able to access the application at http://localhost:3000.
Warning
After cloning or forking the repository, be cautious when pulling or syncing with the latest changes, as this may result in breaking conflicts.
Cheers! 🥂