payload-cms
Assists with building content management systems using Payload CMS with a code-first approach. Use when defining collections in TypeScript, configuring access control, customizing the admin panel, or integrating with Next.js. Trigger words: payload, payload cms, headless cms, collections, admin panel, content management, payload fields.
Usage
Getting Started
- Install the skill using the command above
- Open your AI coding agent (Claude Code, Codex, Gemini CLI, or Cursor)
- Reference the skill in your prompt
- The AI will use the skill's capabilities automatically
Example Prompts
- "Write a blog post about the benefits of AI-assisted development"
- "Create social media copy for the product launch announcement"
Documentation
Overview
Payload CMS is a code-first headless CMS where collections and fields are defined in TypeScript, auto-generating an admin panel, REST/GraphQL APIs, and TypeScript types. It supports PostgreSQL, MongoDB, and SQLite, and integrates directly into Next.js applications with the Local API.
Instructions
- When defining collections, create TypeScript config objects with
slug,fields,access, andhooks, using field types like text, richText, relationship, upload, array, group, and blocks. - When setting access control, use function-based permissions at the collection, field, and operation level (create, read, update, delete), and create reusable access functions like
isLoggedInandisAdmin. - When building flexible pages, use blocks field type so editors compose pages from predefined block types, and define reusable field groups as functions for DRY configuration across collections.
- When managing content workflows, enable versions with
versions: { drafts: true }for draft/published states and full revision history. - When integrating with Next.js, use
@payloadcms/nextto run Payload inside the Next.js app, and use the Local API (payload.find(),payload.create()) in Server Components for typed, fast access without HTTP. - When customizing the admin panel, replace specific components with custom React, add custom views for new pages, and configure live preview for real-time frontend content previewing.
- When building reusable content structures, use relationships over manual ID references for auto-resolution and validation, and define singleton globals for site settings, navigation, and footer.
Examples
Example 1: Build a blog CMS with Next.js
User request: "Set up Payload CMS for a blog with categories, authors, and rich text"
Actions:
- Define
posts,authors, andcategoriescollections with relationships - Configure rich text editor with custom blocks (code, callout, image)
- Enable drafts and versions on the posts collection
- Integrate with Next.js using the Local API for Server Component data fetching
Output: A fully featured blog CMS with typed API, auto-generated admin panel, and Next.js integration.
Example 2: Create a multi-role content workflow
User request: "Set up Payload with editor, reviewer, and admin roles with different permissions"
Actions:
- Define user collection with role field (editor, reviewer, admin)
- Create access control functions for each role and operation
- Apply field-level access to restrict sensitive fields to admins
- Add custom publish workflow actions (submit -> review -> publish)
Output: A role-based CMS where editors create, reviewers approve, and admins manage all content.
Guidelines
- Define reusable field groups as functions for DRY configuration across collections.
- Use access control functions, not middleware; Payload enforces them on all entry points (REST, GraphQL, Local API).
- Enable versions on content collections;
versions: { drafts: true }prevents accidental publishes. - Use relationships over manual ID references; Payload auto-resolves and validates them.
- Use the Local API (
payload.find()) in Next.js Server Components; it is faster than HTTP and fully typed. - Keep admin customizations minimal; the auto-generated panel covers most needs.
- Use blocks for flexible page building so editors compose pages from predefined block types.
Information
- Version
- 1.0.0
- Author
- terminal-skills
- Category
- Content
- License
- Apache-2.0