Skip to content

Rot4tion/payloadcms-shadcn-admin

Repository files navigation

PayloadCMS Shadcn Admin

🚧 Work in Progress - This project is under active development and exploring distribution approaches.

A drop-in replacement UI layer for PayloadCMS built with TailwindCSS and shadcn/ui components. Create unlimited custom admin panels while keeping the original PayloadCMS admin intact.

✨ Key Features

  • Multiple Admin Panels - Add custom admin interfaces for different user roles without modifying the original PayloadCMS admin
  • Shared Core - All admin panels share the same PayloadCMS hooks, providers, context, and authentication
  • Modern UI - Built with TailwindCSS v4 and shadcn/ui components for unlimited customization
  • No Lock-in - Only replaces UI/layout while keeping all PayloadCMS functionality intact

📸 Screenshots

Target UI (Customized)

The goal is to create highly customized admin panels like this marketplace seller dashboard:

Customized Admin UI

Current Development State

Current UI state (minimal customization, for testing purposes):

Current Demo UI

🎯 Use Cases

Role Route UI
Super Admin /admin Original PayloadCMS Admin
Marketplace Seller /store-admin Custom Shadcn/TailwindCSS Admin
Blog Author /blog-admin Custom Shadcn/TailwindCSS Admin
Customer Support /support-admin Custom Shadcn/TailwindCSS Admin

All custom admin panels use the same PayloadCMS authentication, data layer, and API - only the UI changes.

📦 Distribution (Under Consideration)

We are exploring two distribution approaches:

Option 1: CLI-based (like shadcn)

  • Download components directly into your source code
  • Maximum customization flexibility
  • Manual updates

Option 2: Package-based

  • Install as npm package
  • Automatic updates
  • Less customization flexibility

🏗️ Project Structure

src/
├── app/
│   ├── (payload)/           # Original PayloadCMS admin routes
│   └── (shadcn-admin)/      # Custom admin panel routes
├── components/
│   ├── payloadcms/          # Converted PayloadCMS components
│   │   ├── next/            # Next.js integration (views, layouts, templates)
│   │   └── ui/              # Core UI components (elements, fields, forms)
│   └── ui/                  # Base shadcn/ui components

🔄 Migration Status

All PayloadCMS UI components have been converted from SCSS to TailwindCSS:

Category Components Status
Core UI Button, Card, Modal, Drawer, Popup, Table, Pagination ✅ Done
Form Fields Array, Blocks, Checkbox, DateTime, Email, Group, Number, Password, Point, RadioGroup, Relationship, RichText, Row, Upload, Select, Slug, Tabs, Text, Textarea ✅ Done
Graphics Icons, PayloadLogo ✅ Done
Layout Nav, NavWrapper, DocumentHeader, DocumentTabs, FormHeader, DefaultTemplate ✅ Done
Views Login, List, Document, Dashboard, NotFound, Unauthorized, Account, API ✅ Done

⚠️ Current Limitations

  • Plugin Fallback Not Supported - PayloadCMS plugins that use @payloadcms/ui components are not yet supported. These plugins will not render correctly in custom admin panels. Fallback support is planned for future releases.

🛠️ Tech Stack

  • Styling: TailwindCSS v4
  • Components: shadcn/ui, Radix UI
  • Database: PostgreSQL (via @payloadcms/db-postgres)

🚀 Getting Started

Prerequisites

  • Node.js ^18.20.2 or >=20.9.0
  • pnpm ^9 or ^10
  • PostgreSQL database

Installation

  1. Clone the repository
git clone <repository-url>
cd blank-template
  1. Install dependencies
pnpm install
  1. Set up environment variables
cp .env.example .env
# Edit .env with your database credentials
  1. Start development server
pnpm dev

📄 License

MIT

🤝 Contributing

This project is in early development. Contributions, ideas, and feedback are welcome!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages