An open API service indexing awesome lists of open source software.

https://github.com/tlklein/next-shadcn-dashboard-starter

This project is a starter template for building an Admin Dashboard using Next.js 15 and ShadCN UI.
https://github.com/tlklein/next-shadcn-dashboard-starter

Last synced: over 1 year ago
JSON representation

This project is a starter template for building an Admin Dashboard using Next.js 15 and ShadCN UI.

Awesome Lists containing this project

README

          

Next.js Admin Dashboard Starter Template With Shadcn-ui


This project is a starter template for building an Admin Dashboard using Next.js 15 and ShadCN UI. It provides a structured foundation with essential features like navigation, authentication, and UI components to help developers quickly set up an admin panel.




View Demo


## Overview
- NOTE: **Next 15** with **React 19**

This is the general technical framework:

- Framework - [Next.js 15](https://nextjs.org/13)
- Language - [TypeScript](https://www.typescriptlang.org)
- Styling - [Tailwind CSS](https://tailwindcss.com)
- Components - [Shadcn-ui](https://ui.shadcn.com)
- Schema Validations - [Zod](https://zod.dev)
- State Management - [Zustand](https://zustand-demo.pmnd.rs)
- Search params state manager - [Nuqs](https://nuqs.47ng.com/)
- Auth - [Auth.js](https://authjs.dev/)
- Tables - [Tanstack Tables](https://ui.shadcn.com/docs/components/data-table)
- Forms - [React Hook Form](https://ui.shadcn.com/docs/components/form)
- Command+k interface - [kbar](https://kbar.vercel.app/)
- Linting - [ESLint](https://eslint.org)
- Pre-commit Hooks - [Husky](https://typicode.github.io/husky/)
- Formatting - [Prettier](https://prettier.io)
- F1 World Championship Data 1950-2020 - [Kaggle](https://www.kaggle.com/datasets/rohanrao/formula-1-world-championship-1950-2020)

## Feature-based organization

```plaintext
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
```

## Getting Started
- Follow these steps:

Clone the repo:

```
git clone https://github.com/tlklein/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`

You should now be able to access the application at http://localhost:3000.