Skip to Content
FeaturesContent

Content

Content is managed in Payload via Pages, Posts, and Categories. Pages use a block-based layout builder; posts are a traditional title/slug/content model for blogs. Both are tenant-scoped — each site has its own pages, posts, and categories.

Pages

Pages are the primary way to build your site’s frontend. Each page has a slug (URL path), SEO metadata, and a layout field that contains an ordered list of blocks.

Block-based page builder

The layout field on a Page is a Payload blocks field. In the admin, you add, reorder, and configure blocks to compose the page. Each block renders a section of the frontend — hero sections, feature grids, pricing tables, blog feeds, and more.

Available blocks

There are 15 block types organized by purpose:

Layout

BlockDescription
Hero SectionFull-width hero with optional media (image/video). The primary landing block for most pages.
Logocloud SectionGrid or plain row of logo images. Useful for “trusted by” or partner logos.
Feature Section2-column (icon left) or 3-column (icon top) feature grid. Each feature has an icon, title, and description.
Feature ShowcaseAlternating media + text sections. Each feature can be small, medium, or large. Option to start with media on the left.
Bento SectionFixed bento grid layout (first 5 cells). Each cell has an eyebrow, title, description, and optional media.

Content

BlockDescription
Content BlockRich text (Lexical editor) with headings, lists, blockquotes, and inline media. The most flexible content block.
Content SectionRich text body with an optional image alongside. Supports toggling top padding.
Media BlockSingle media item (image/video) with an optional caption.

Commerce

BlockDescription
Product GridDisplays products from the Products collection in a grid (1, 2, or 3 columns). Can highlight a specific product.
Pricing SectionPricing table with monthly/yearly toggle. Can pull from Products or use manual tiers with features, CTA labels, and highlight.

Social proof

BlockDescription
Testimonial SectionList of testimonials with quote, author name, role, and avatar.
Blog SectionRenders recent posts in grid or list layout with an optional layout toggle. Configurable post limit (1–12).

Engagement

BlockDescription
FAQ SectionAccordion-style list of questions and answers.
CTA SectionCall-to-action section (uses the shared content header for title, description, and buttons).
Newsletter SectionEmail signup form with placeholder text, button label, layout variant (center or horizontal), and optional disclaimer.

Shared section controls

Every section block includes a shared Section tab with:

  • Full width — stretch the section to the edges of the viewport.
  • Variant — background style: background, muted, primary, or secondary.
  • Padding — toggle top/bottom padding.
  • Separators — toggle top/bottom divider lines.
  • Content header — optional eyebrow, title, description, and buttons that appear above the block’s main content.

These controls give you consistent spacing and styling across all blocks without custom code.

Drafts and autosave

Pages have drafts enabled with autosave and scheduled publishing. You can save a draft without publishing, preview it, and schedule it to go live at a specific time. Payload stores up to 100 versions per page.

SEO

Each page has an SEO tab (via the @payloadcms/plugin-seo) where you can override the meta title, description, and preview image. If left empty, the tenant’s default metadata is used.

Posts

Posts are a blog content type with:

  • Title and slug (auto-generated or manual)
  • Rich text content (Lexical editor)
  • Hero image
  • Category (relationship to Categories)
  • SEO tab (same as Pages)
  • Drafts with autosave and scheduled publishing

Posts are listed on the tenant’s /posts page and rendered at /posts/[slug].

Categories

Categories are tenant-scoped labels for organizing posts. Each category has a title and a slug. Assign categories to posts to enable filtered views on the frontend.

Revalidation

When a page, post, tenant, or category is created or updated in the admin, the app automatically revalidates the affected frontend routes. Changes appear on the live site without a manual redeploy or cache purge.