Satnaing Shadcn Admin
Free, MIT-licensed admin dashboard built with shadcn/ui, Vite and TanStack Router, with 10+ pages, a global command search and RTL support.
- 15.9k
- GitHub stars
- Free
- Price
- Sep 10, 2026
- Updated
Overview
Satnaing Shadcn Admin is one of the most popular free admin dashboards in the shadcn/ui ecosystem, with over 15k GitHub stars. It's a Vite single-page app built with React 19, Tailwind CSS 4 and shadcn/ui, using TanStack Router for type-safe file-based routing and TanStack Query and Table for data. It covers the screens most internal tools need, all with light and dark mode, responsive layouts and accessibility in mind.
The author describes it as a reusable collection of dashboard UI rather than a starter template, so expect to wire up your own API and data layer. It is MIT licensed and actively maintained.
Pages
- Dashboard with overview cards and Recharts charts
- Tasks and Users, data tables with sorting, filtering, pagination and row actions
- Apps integrations directory and a Chats inbox
- Settings: account, appearance, display and notifications
- Auth: sign in (two layouts), sign up, forgot password and OTP
- Errors: 401, 403, 404, 500 and maintenance pages
- Help center
Features
- Light/dark mode with a theme switcher
- Collapsible sidebar built on the shadcn/ui Sidebar component
- Global search command (⌘K) for jumping between pages
- RTL support, with adjusted dialog, dropdown, select, sheet and sidebar components
- Forms with React Hook Form and Zod validation
- Partial Clerk auth example, plus Zustand for client state
- Tooling: TypeScript, ESLint, Prettier, Knip and Vitest browser tests
Tech Stack
shadcn/ui (Radix UI + Tailwind CSS 4), React 19, Vite, TanStack Router, TanStack Query, TanStack Table, Recharts, Lucide and Tabler icons.
Getting Started
git clone https://github.com/satnaing/shadcn-admin.git
cd shadcn-admin
pnpm install
pnpm run dev
A few shadcn/ui components are customized for RTL, so merge changes by hand if you update them with the shadcn CLI. All other components can be updated as normal.