IKEA for Web Development - Build PayloadCMS applications faster with reusable components and templates.
PayloadKit is an open source framework that provides a collection of reusable components, blocks, and templates for PayloadCMS. Following the shadcn/ui philosophy, components are copied directly into your project, giving you full control and customization.
- π Lightning Fast - Get your PayloadCMS project up and running in minutes
- π¦ Copy & Paste - Components are copied into your project for full control
- π¨ Modern Design - Built with TypeScript, TailwindCSS, and shadcn/ui
- ποΈ Production Ready - Battle-tested components and configurations
- π§ Customizable - Modify components to fit your exact needs
- π IKEA Philosophy - Templates as minimal shells, registry as reusable intelligence
- ποΈ Smart Database - PostgreSQL by default, MongoDB optional with auto-detection
- βοΈ Deploy Anywhere - Auto-detection Vercel vs VPS with DATABASE_BUILD_URI support
- π³ Docker Ready - Complete development environment with one command
# Install bun (recommended package manager)
curl -fsSL https://bun.sh/install | bash
# or visit https://bun.sh/docs/installation for other methods
# Create with default (blank) template
bunx create-payloadkit@latest my-app
# Create with specific template
bunx create-payloadkit@latest my-blog --template blog
# With custom options
bunx create-payloadkit@latest my-business \
--template business \
--package-manager bun \
--no-git
cd my-app
# 1. Copy environment file
cp .env.example .env
# 2. Generate a secure secret key
openssl rand -hex 32
# Copy the output and replace PAYLOAD_SECRET in .env
# 3. Start PostgreSQL database with Docker
bun run docker:dev
# 4. Run development server
bun dev
# 5. Open admin panel
# http://localhost:3000/admin
# Initialize PayloadKit in your existing PayloadCMS project
bunx payloadkit@latest init
# Add components
bunx payloadkit@latest add call-to-action
bunx payloadkit@latest add hero-block
PayloadKit comes with a complete Docker Compose setup for instant development:
# In your project directory
cd my-app
# Start PostgreSQL database only
bun run docker:dev
# Or start full stack (PostgreSQL + Redis + MailHog + pgAdmin)
bun run docker:dev:full
# View running containers
docker-compose ps
# Stop all services
bun run docker:stop
# Reset database (clean start)
bun run docker:reset
- PostgreSQL 17 - Pre-configured with your .env settings
- pgAdmin (full mode) - Database management UI at http://localhost:5050
- MailHog (full mode) - Email testing at http://localhost:8025
- Redis (full mode) - Caching and sessions
# View database logs
bun run docker:logs
# Connect to database CLI
bun run docker:db
# View all services status
docker-compose ps
Visit our documentation site for:
- Installation guides
- Component library
- CLI usage
- Examples and templates
- Best practices
- π Modular Configuration - Smart database setup with PostgreSQL/MongoDB auto-detection
- π³ Docker Development Setup - Complete environment with PostgreSQL, Redis, MailHog
- βοΈ VPS Deployment Guide - DATABASE_BUILD_URI support for Dokploy and VPS deployments
- Hero Block - Flexible hero sections with title, subtitle, and CTA buttons
- Call to Action - Versatile CTA sections with rich text and buttons
- FAQ Block - Frequently asked questions with shadcn/ui Accordion
- Banner Block - Notification and announcement banners
- Content Block - Rich text content sections
- Feature Block - Feature showcase with cards and icons
- Logo Cloud - Partner/client logo displays
- Quote Block - Testimonials and quote sections
- Statistics - Number displays with descriptions
- RichText - PayloadCMS rich text renderer with Lexical
- CMSLink - Smart link component for internal/external navigation
- Users - Authentication and user management
- Media - File and image management
- Pages - Content page management
- Blank - Minimal foundation with modular config, Docker setup, and shadcn/ui
- Blog - Blog-focused setup with posts and categories (coming soon)
- Business - Marketing website template (coming soon)
- E-commerce - Online store template (coming soon)
- db-config - Smart database with PostgreSQL/MongoDB + VPS support
- collections-config - Modular collections management
- plugins-config - Essential PayloadCMS plugins
- email-config - SMTP/development email setup
- jobs-config - Background tasks with security
- dockerfile-dev - Multi-stage Dockerfile with bun optimization
- docker-compose-dev - Complete development environment
- dockerignore - Optimized .dockerignore for PayloadCMS
# Create new project with blank template
bunx create-payloadkit@latest my-app
# Create with specific template
bunx create-payloadkit@latest my-blog --template blog
# Create with custom package manager
bunx create-payloadkit@latest my-app --package-manager bun
# Skip installation and git initialization
bunx create-payloadkit@latest my-app --no-install --no-git
# Initialize in existing PayloadCMS project
bunx payloadkit@latest init
# List available registry components
bunx payloadkit@latest list
# Add specific components
bunx payloadkit@latest add hero-block call-to-action
bunx payloadkit@latest add Users Media
bunx payloadkit@latest add RichText CMSLink
# Add configuration modules (New!)
bunx payloadkit@latest add db-config
bunx payloadkit@latest add docker dockerfile-dev docker-compose-dev
This project uses bun workspaces:
# Install dependencies
bun install
# Build all packages
bun run build
# Start documentation site
bun run dev:docs
# Start CLI development
bun run dev
# Docker development (New!)
bun run docker:dev # Basic environment (PostgreSQL)
bun run docker:dev:full # Full stack with Redis, MailHog, pgAdmin
payloadkit/
βββ packages/
β βββ core/ # Shared types and utilities
β βββ payloadkit/ # Main CLI for component management
β βββ create-payloadkit/ # Project creation CLI
β βββ templates/ # Project templates (blank, blog, etc.)
βββ apps/
β βββ docs/ # Documentation website
βββ docs/ # Documentation files (New!)
β βββ MODULAR-CONFIG.md # Configuration modulaire guide
β βββ DOCKER-SETUP.md # Docker development guide
βββ registry/
βββ index.json # Registry metadata
βββ blocks/ # PayloadCMS blocks
β βββ hero-block/
β βββ call-to-action/
β βββ faq/
β βββ ...
βββ components/ # React components
β βββ RichText/
β βββ CMSLink/
β βββ ...
βββ collections/ # PayloadCMS collections
β βββ Users/
β βββ Media/
β βββ Pages/
β βββ ...
βββ config/ # Configuration modules (New!)
β βββ db-config/ # Smart database setup
β βββ collections-config/
β βββ plugins-config/
β βββ ...
βββ docker/ # Docker setup (New!)
βββ dockerfile-dev/ # Multi-stage Dockerfile
βββ docker-compose-dev/
βββ dockerignore/
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m "Add amazing feature"
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- PayloadCMS - The headless CMS that powers everything
- shadcn/ui - Inspiration for the copy-paste approach
- Next.js - Framework powering our documentation
- TailwindCSS - Utility-first CSS framework
Built with β€οΈ for the PayloadCMS community