An open-source, definitive catalog of premium components, templates, and UI kits crafted for modern web experiences.
ShadCN Directory is a beautifully designed, high-performance web directory product engineered for discovering and sharing the best UI components, templates, and boilerplates built around the shadcn/ui ecosystem.
Designed with a strict, monochrome Swiss Minimalist aesthetic, it operates as a turn-key platform for developers to find premium building blocks for their next product, while also serving as a robust, scalable codebase that can be deployed as-is or customized for your own directory needs.
Adding a new ShadCN resource to the directory is simple:
- Sign In — Click the sign-in button and authenticate with your Google account.
- Open the Add Dialog — Click the "+ Add Resource" button on the homepage.
- Paste the URL — Enter the URL of the ShadCN component library, template, or UI kit you want to share. The app will automatically scrape its OpenGraph metadata (title, description, image).
- Submit — Hit submit. Your resource is now sent for review.
- Admin Review — An admin will approve or reject the submission. You'll see its status on your Profile page (
/profile). - Live! — Once approved, the resource appears on the public directory for everyone to discover.
Contributions are welcome! Here's how to get started:
- Fork the repository.
- Clone your fork locally:
git clone https://github.com/<your-username>/shadcn-directory.git cd shadcn-directory pnpm install
- Create a branch for your changes:
git checkout -b feat/your-feature-name
- Set up environment — Copy
.env.exampleor create a.env.localwith the required variables (see Quick Start Guide below). - Make your changes and test locally with
pnpm run dev. - Commit & Push:
git add . git commit -m "feat: describe your change" git push origin feat/your-feature-name
- Open a Pull Request against the
mainbranch with a clear description of what you changed and why.
Note: Please keep PRs focused on a single change. Bug fixes, new features, and documentation improvements are all welcome.
| Technology | Purpose |
|---|---|
| Next.js | Framework (App Router, Server Actions) |
| Tailwind CSS | Styling |
| Shadcn UI | UI Components |
| MongoDB & Mongoose | Database |
| NextAuth.js | Authentication (Google OAuth) |
| Sonner | Toast Notifications |
Ensure you have Node.js and pnpm installed.
git clone https://github.com/avijit07x/shadcn-directory.git
cd shadcn-directory
pnpm installCreate a .env.local file in the root directory and configure the following variables:
# Database
MONGODB_URI=your_mongodb_connection_string
# Authentication (NextAuth)
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your_nextauth_secret_random_string
# Google OAuth Credentials
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
# Admin Access
# Comma-separated list of emails that should have admin access
ADMIN_EMAILS=admin@example.com,moderator@example.compnpm run devThe application will be available at http://localhost:3000.
| Directory | Description |
|---|---|
app/ |
Next.js App Router pages & API routes |
components/ |
Reusable React components |
lib/ |
Utilities (DB connection, rate limiting, OG scraper) |
models/ |
Mongoose database models |
public/ |
Static assets |