BuildWithMatija
  1. Home
  2. Blog
  3. Payload
  4. Best Payload CMS Plugins in 2026: Official & Community Picks

Best Payload CMS Plugins in 2026: Official & Community Picks

What I would actually use in production: the official plugins, a short list of community packages, and the places…

25th March 2026·Updated on:5th October 2026·MŽMatija Žiberna·
Payload
Best Payload CMS Plugins in 2026: Official & Community Picks

Evaluating Payload CMS Implementation Costs?

Scope design, content structure, and migration hours to estimate a realistic production timeline and hosting setup.

Try the Cost EstimatorGet a Second Opinion

📚 Comprehensive Payload CMS Guides

Detailed Payload guides with field configuration examples, custom components, and workflow optimization tips to speed up your CMS development process.

No spam. Unsubscribe anytime.

Related Posts:

  • •Payload CMS Auth Plugins: Which One Should You Use?
  • •Build Publishable Payload Plugins with definePlugin
  • •Payload CMS Multi-Tenant vs Access Control: Decision Framework
  • •Security-First Payload CMS MCP Integration: Production Guide
  • •Complete Payload CMS Ecommerce Plugin Guide — Stripe
📄View markdown version
0

Frequently Asked Questions

Comments

About the author

Matija Žiberna

Matija Žiberna

Full-stack developer, co-founder

AboutResume

Self-taught full-stack developer sharing lessons from building software and startups.

I'm Matija Žiberna, a self-taught full-stack developer and co-founder passionate about building products, writing clean code, and figuring out how to turn ideas into businesses. I write about web development with Next.js, lessons from entrepreneurship, and the journey of learning by doing. My goal is to provide value through code—whether it's through tools, content, or real-world software.

You might be interested in

Payload CMS Auth Plugins: Which One Should You Use?
Payload CMS Auth Plugins: Which One Should You Use?

6th March 2026

Build Publishable Payload Plugins with definePlugin
Build Publishable Payload Plugins with definePlugin

30th May 2026

Payload CMS Multi-Tenant vs Access Control: Decision Framework
Payload CMS Multi-Tenant vs Access Control: Decision Framework

9th October 2025

Security-First Payload CMS MCP Integration: Production Guide
Security-First Payload CMS MCP Integration: Production Guide

8th May 2026

Complete Payload CMS Ecommerce Plugin Guide — Stripe
Complete Payload CMS Ecommerce Plugin Guide — Stripe

27th March 2026

Contents

  • What counts as a plugin
  • Decision table
  • Official Payload plugins I would start with
  • SEO
  • Redirects
  • Search
  • Multi-Tenant
  • Import/Export
  • Form Builder
  • MCP
  • Ecommerce
  • Stripe
  • Sentry
  • Community plugins I would actually shortlist
  • Authentication
  • AI and localization
  • Admin and editorial experience
  • Developer tooling
  • My own plugin: admin feedback
  • When I would not install a plugin
  • How I evaluate a community Payload plugin
  • How Payload plugins work in 2026
  • How to discover more plugins
  • The hierarchy I follow
On this page:
  • What counts as a plugin
  • Decision table
  • Official Payload plugins I would start with
  • Community plugins I would actually shortlist
  • My own plugin: admin feedback
Build with Matija logo

Build with Matija

Senior-led B2B websites, applications, content systems, and digital infrastructure. Business-first, full-stack, AI-assisted, no handoffs.

Services

  • B2B Website Development
  • CMS Architecture Review & Platform Blueprint
  • Next.js + Payload Advisory
  • AI Integration & Implementation

Resources

  • CMS Hub
  • B2B Website Strategy
  • E-commerce Hub
  • Blog
  • Case Studies
  • About Matija

Payload CMS

  • Payload CMS Developer
  • Payload CMS Migration
  • Payload CMS Demos
  • All Payload CMS Resources

Discuss your project

Planning a rebuild, migration, application, workflow change, or platform decision? Start with the business problem and the system behind it.

Book a discovery callContact me →
© 2026Build with Matija•All rights reserved•Privacy Policy•Terms of Service
BuildWithMatija
Get In Touch

I refreshed this guide in October 2026 because the Payload plugin ecosystem has changed materially since the first version. Payload now ships a substantial official plugin set covering SEO, redirects, search, multi-tenancy, MCP, ecommerce, Stripe and Sentry, which removes a lot of custom work that used to be unavoidable.

The first place I look on any project is that official set, because maintenance and compatibility matter more than the length of a feature list. Community plugins become valuable around authentication, AI workflows, editorial experience and specialist functionality.

What follows is my current shortlist of plugins I would consider for production Payload projects, with the limitations that matter before adopting each one. Versions referenced were checked against Payload 3.90.2.

What counts as a plugin

Plugin does not mean every optional Payload package. Four different things get lumped together under that word, and separating them makes the rest of the decisions easier.

CategoryMeaningExamples
Official pluginsFirst-party extensions maintained with PayloadSEO, Search, Multi-Tenant, MCP, Ecommerce
Community pluginsThird-party extensions to Payload capabilitiesAuth integrations, AI tooling, admin enhancements
AdaptersInfrastructure integrations that connect Payload to a serviceS3, Azure, GCS, Vercel Blob storage
Custom extensionsFunctionality you implement through hooks, components, collections or endpointsApprovals, governance, specialised workflows

Storage adapters such as @payloadcms/storage-s3, @payloadcms/storage-vercel-blob, @payloadcms/storage-gcs and @payloadcms/storage-azure are infrastructure choices that follow from where you host. They are not ranked below, because they do not compete with application plugins for a place in your architecture.

Decision table

This table is the short version. Each row is expanded in the sections below. "My take" is a judgement about trust, and the maintenance column shows the date of the latest release or commit I could verify, because star counts say little about whether a package will keep up with Payload.

PluginCategoryUse it forMy takeMaintenance
@payloadcms/plugin-seoOfficialMeta fields, auto-generation, search previewDefault choiceReleased with Payload
@payloadcms/plugin-redirectsOfficialCMS-managed redirect recordsDefault choiceReleased with Payload
@payloadcms/plugin-searchOfficialSynced search collectionStrong optionReleased with Payload
@payloadcms/plugin-multi-tenantOfficialTenant field, scoping, admin filteringStrong option, needs architecture around itReleased with Payload
@payloadcms/plugin-import-exportOfficialEditor-driven CSV and JSON operationsProject-dependentReleased with Payload
@payloadcms/plugin-form-builderOfficialAdmin-built forms and submissionsProject-dependentReleased with Payload
@payloadcms/plugin-mcpOfficialMCP endpoint for AI clientsStrong optionReleased with Payload
@payloadcms/plugin-ecommerceOfficialCommerce primitives, currently BetaEvaluate carefullyReleased with Payload
@payloadcms/plugin-stripeOfficialStripe sync, webhooks, REST proxyProject-dependentReleased with Payload
@payloadcms/plugin-sentryOfficialError and performance monitoringStrong optionReleased with Payload
payload-authCommunityBetter Auth for admin and appStrong optionv3.0.0, Aug 2026
payload-authjsCommunityAuth.js sessionsEvaluate carefullyMay 2026
payload-auth-pluginCommunityOAuth and SSO provider loginsProject-dependentMay 2026
payload-oauth2CommunityGeneric OAuth2 loginSpecialistMay 2026
payload-totpCommunityTOTP two-factor for adminsSpecialistOct 2026
@ai-stack/payloadcmsCommunityAI generation in the adminProject-dependentSep 2026
payload-oapiCommunityOpenAPI spec generationSpecialistOct 2026
payload-lexical-typographyCommunityTypography controls in LexicalSpecialistNov 2025
@matija2209/payload-plugin-admin-feedbackCommunity (mine)In-context client feedbackSpecialistv1.0.4, May 2026

Official Payload plugins I would start with

The official plugins live in the Payload monorepo and are versioned with Payload itself. For the packages in this section, the payload peer dependency is pinned to the exact release, which removes the compatibility lag that causes most plugin upgrade problems. That is why I treat them as the baseline and look for gaps in them before reaching for anything else.

SEO

@payloadcms/plugin-seo adds a meta field group with title, description and image to the collections you choose. Editors can auto-generate those values through generateTitle and generateDescription functions you write, and a search result preview renders under the fields and updates as they type.

typescript
// File: payload.config.ts
seoPlugin({
  collections: ['pages', 'posts'],
  uploadsCollection: 'media',
  generateTitle: ({ doc }) => `${doc.title} | Build with Matija`,
  generateDescription: ({ doc }) => doc.excerpt,
})

I would use it on any content-driven website. It handles the CMS metadata layer only. The frontend still owns rendering that metadata correctly, which means wiring generateMetadata in Next.js, canonical URLs, Open Graph tags and structured data. If you run several sites from one install, multi-tenant SEO with Payload and Next.js covers where per-site metadata logic goes. I trust this plugin as infrastructure.

Redirects

@payloadcms/plugin-redirects adds a redirects collection with from and to fields, where to can point at a document reference. The plugin manages redirect records in the admin panel and the database. It does not perform the redirect. Your frontend queries the collection and issues the HTTP redirect, which is the part teams forget when they install it.

This deserves its own place in a plugin stack because redirects carry real SEO weight during migrations and slug changes, and editors should be able to fix a broken URL without a deploy. Redirect coverage belongs in every migration plan, and the Payload CMS migration service page describes how it fits the wider process. The multi-tenant case needs extra thought, since the same path can mean different pages on different sites, which I cover in Payload redirects across tenants and locales. I would use this plugin by default and trust it as infrastructure.

The sibling package @payloadcms/plugin-nested-docs handles parent and child page hierarchies with generated breadcrumbs. It is a good fit for page trees, and the nested docs breadcrumbs guide covers the tenant-aware version.

Search

@payloadcms/plugin-search creates a separate search collection and keeps a static copy of selected fields from your other collections in sync through hooks. You query it with the normal Payload APIs and sort by a priority value you control per collection or per document.

I would use it for ordinary CMS search over controlled, indexed content: a site search bar, a docs search, a blog index. It stops where search becomes its own product. Large catalogues, complex ranking, typo tolerance and faceting are the cases where Algolia, Meilisearch or similar infrastructure earns its cost. For shared indexes across sites, see the Payload multi-tenant search guide. It is a strong option with a clear boundary.

Multi-Tenant

@payloadcms/plugin-multi-tenant is the official tenant foundation. It adds a tenant field to the collections you list, a tenant selector in the admin panel, filtering of list views and relationship fields by the selected tenant, automatic tenant assignment for new documents, and rejection of writes that assign a tenant the user does not belong to. It can also treat a collection as a per-tenant global, with one document per tenant.

That is the foundation. A production multi-site system needs a lot more around it, and I have built that surrounding layer for a single Payload installation serving several brands. A tenant field does not decide who can edit which brand, how departments split access within a brand, who may publish and who may only draft, how content on one site references content on another, how the frontend learns which site a request belongs to, or where brand-specific configuration lives. Roles, site memberships, departmental permissions, publishing gates and frontend site context are all your design work. The plugin also deletes related documents by default when a tenant is deleted (cleanupAfterTenantDelete), so access control on the tenants collection deserves careful thought.

Multi-tenancy is an architecture problem, and the plugin is one component of the solution. I wrote down the access model decisions in Payload multi-tenant versus access control: a decision framework, and the boundary question in how to choose the right tenant boundary. Localization has its own traps, covered in multi-tenant localization setup and gotchas. I would use this plugin as the starting point for any multi-site build and plan the rest deliberately. If a build like this is on your roadmap, the Payload CMS audit is where I review the tenant model before it hardens.

Import/Export

@payloadcms/plugin-import-export adds CSV and JSON export through the admin UI, with import back into a collection, a preview step before either operation, and jobs-queue processing for large runs. The queue needs a configured runner (jobs.autoRun), otherwise imports and exports sit in a pending state.

I would use it for editor-controlled operations: bulk field updates, structured exports for a client, recurring data fixes. Application migration is a separate problem. On a project with hundreds of normalised products carrying relationships, localized fields and media, an editor-driven CSV import is the wrong tool, and a deliberate ETL pipeline with validation, ordering and idempotent re-runs is the right one. I describe that route in building a CSV product import system with Payload queues. Project-dependent, and trusted for what it is designed to do.

Form Builder

@payloadcms/plugin-form-builder lets editors build forms in the admin panel, store submissions in the database, send emails on submission and show a confirmation message or redirect. You render the form on the frontend with your own components.

It replaces external form tooling for contact forms, lead forms, surveys and editable landing page forms. It does not cover custom workflows such as routing a lead into a CRM, multi-step logic tied to your data model, or automation after submission. Those need custom collections, hooks or an external system, and the Payload and n8n integration patterns show one way to connect them. Project-dependent.

MCP

@payloadcms/plugin-mcp turns a Payload instance into an MCP server. After mcpPlugin({}) is added to the plugins array, POST /api/mcp accepts MCP requests, and every collection and global is reachable through generic tools such as getConfigInfo, getCollectionSchema and findDocuments.

This is more than an AI plugin. It makes Payload an interface that agents can interact with programmatically while the CMS stays the controlled content and permissions layer. The pieces that matter for production:

CapabilityWhat it gives you
ToolsBuilt-in discovery and CRUD tools, plus custom tools defined with defineTool
Resources and promptsCustom resources and prompts you expose to clients
Operation restrictionsPer-collection control over which operations are enabled
Access controlAPI keys with per-key capabilities, code-level access callbacks, and normal Payload access rules still protecting documents
Response shapingoverrideResponse to sanitise what a model receives

I would use it where an organisation wants structured content to be reachable by agents, which ties into the wider work of making content infrastructure AI-ready. The plugin handles the protocol and the permission hooks. You still design which operations an agent should have, how sensitive fields are filtered, and how to authenticate remote clients. My security-first Payload MCP integration guide documents a production setup, including a slug case-sensitivity failure I hit along the way. Strong option, and trusted as infrastructure as long as you restrict operations deliberately.

Ecommerce

@payloadcms/plugin-ecommerce provides commerce primitives: products with variants, carts tracked in Payload, orders, transactions, addresses linked to customers, multiple currencies, React utilities for frontend logic and a payments adapter pattern with Stripe supported today. It is currently marked Beta in the Payload documentation, so breaking changes are possible between releases.

The plugin does not handle shipping, taxes or subscriptions natively, and it is not a Shopify replacement. Production commerce needs decisions on shipping rules, tax calculation, fulfilment, subscriptions, inventory and integrations with the systems around the shop. My walkthrough of the ecommerce plugin with Stripe, carts and orders covers the build, and the ecommerce plugin compared with Medusa covers when each fits. For budgeting a shop on Payload, the Payload CMS pricing guide breaks down the variables. Evaluate carefully, and pin versions while it is Beta.

Stripe

@payloadcms/plugin-stripe solves Stripe-specific integration problems. It syncs Payload collections with Stripe resources such as customers and products, stores a read-only stripeID for cross-reference, handles webhooks for events like customer.subscription.updated, and proxies the Stripe REST API through Payload access control at /api/stripe/rest with an explicit method allowlist.

The ecommerce plugin supplies commerce-domain primitives. The Stripe plugin supplies Stripe synchronisation. They complement each other: the ecommerce plugin's Stripe adapter covers taking payments, and the Stripe plugin is useful when you also need customers or subscriptions mirrored between systems. Because the ecommerce plugin does not do subscriptions natively, that mirroring is often where subscription logic starts. Project-dependent.

Sentry

@payloadcms/plugin-sentry connects Payload to Sentry for exception visibility, performance monitoring and stack traces with context. It requires Sentry's Next.js setup first, and by default it captures errors with a 500 or higher status, with captureErrors for adding more codes. I would install it on every production project. It is infrastructure for debugging and reliability, and its presence in the official list shows how far the ecosystem extends beyond editorial features.

Community plugins I would actually shortlist

This is a curated shortlist organised by problem. It is not a catalogue. I checked each package's Payload peer dependency and latest activity on npm and GitHub in October 2026.

Authentication

Authentication architecture depends on who owns authentication. Payload may own it for the admin and a small set of users. The wider Next.js application may share it with Payload. An external identity provider may sit in front of both. No single plugin wins across those cases, and the comparison of Payload auth plugins works through the decision in detail.

ApproachPluginWhen I would consider it
Better Auth shared by admin and apppayload-authGreenfield projects wanting one auth system across the admin and the application
Auth.js sessionspayload-authjsExisting Auth.js applications, with the caveat below
OAuth and SSO provider loginspayload-auth-pluginProvider-based login and enterprise-style SSO, with protocol coverage documented at authsmith.com
Generic OAuth2payload-oauth2Google, GitHub or another standard provider without a larger auth layer
Stronger admin authenticationpayload-totpTOTP second factor for admin-heavy applications

On payload-authjs, its own README warns that Auth.js v5 is still in beta and that Auth.js is now part of Better Auth, so its long-term path is uncertain. That is the reason I mark it "evaluate carefully" and lean toward payload-auth for new builds. Payload's native auth is often enough, and the cookie auth with Next.js guide shows the architecture without a third-party layer.

AI and localization

I only shortlist AI plugins where the workflow is concrete and measurable in editor time saved. @ai-stack/payloadcms (the payload-ai repository) adds text, image and voice generation, and translation inside the admin panel, supporting several providers. It fits teams that publish a lot of content or work across languages and want drafting help without leaving Payload. Budget for provider costs and keep a human review step before publishing.

For translation of localized fields at scale, a plugin button runs into the same limits as any synchronous request. Long translation runs belong in background jobs, which I describe in automating Payload translations with OpenAI and job queues.

Admin and editorial experience

These are workflow improvements and not core architecture dependencies, so I add them last and remove them without much pain.

Payload already has a native capability for in-context editing. Before adding any visual editing package, check whether Live Preview covers the need. The Live Preview implementation guide shows the setup with no extra dependency, and the Payload CMS demos show it running. The payload-visual-editor package still appears in searches, but its peer dependency targets Payload 2 (^2.0.13) and its last release was in March 2024, so I do not recommend it for a Payload 3 project.

payload-lexical-typography adds font, size, line height and colour controls to the Lexical editor. It is useful when editors need more inline styling than the default editor offers. It declares peer dependencies on the Lexical and UI packages (^3.43.0) and none on payload itself, so test it against the exact Payload version you run. Its latest release is from November 2025, so I treat it as a specialist option. The payload-bites repository is a collection of small packages such as soft delete, activity log, audit fields, content freeze and a broken link checker. It is worth scanning before you write a utility by hand, and each package deserves the same vetting as any other dependency. For custom admin work that no plugin covers, the guide to custom admin fields and views shows the native route.

Developer tooling

payload-oapi generates OpenAPI 3.0 and 3.1 specifications from a Payload instance and includes Swagger UI and Rapidoc. I would use it when a Payload project is an integration surface for other teams or third parties, and a generated contract replaces hand-written endpoint documentation. It was updated in October 2026 and supports Payload ^3.0.0.

My own plugin: admin feedback

I built @matija2209/payload-plugin-admin-feedback because of a recurring problem on client projects. Client QA and feedback arrives as screenshots in Slack, vague descriptions and messages with no route context, and someone has to reconstruct which page and which element the comment meant.

The plugin keeps the feedback inside the application. A floating widget captures the message, the current page path, an optional CSS selector, and a screenshot that can be annotated with pen, rectangle, arrow and text tools. Each submission creates a record in an admin-feedback collection and sends an email notification through the Payload email adapter you already use, with a direct admin link. It works in the Payload admin and on selected Next.js frontend routes.

I do not position it as an ecosystem standard. It is at v1.0.4, it requires Payload ^3.84.1, and it is a specialist tool. I include it as a firsthand example of when writing a plugin makes sense: a repeated problem, a clear boundary, and behaviour that several projects can share. It also uses definePlugin, so it doubles as a real example of the API described later in this guide.

payload-plugin-admin-feedback headerpayload-plugin-admin-feedback header

When I would not install a plugin

A plugin is a dependency, and it also adds extension points and config changes that your project inherits. I usually avoid a plugin when:

  • the required behaviour is only a small hook you could write in a few lines
  • the plugin alters important collection behaviour in ways the team does not understand
  • maintenance activity is weak
  • its peer dependencies lag behind Payload releases
  • the project needs substantially different behaviour anyway
  • the feature is part of the project's core business logic

Complex approvals and publishing governance are the clearest example. They tend to become business-specific quickly: who reviews what, which content types need two approvers, what happens when a reviewer is on holiday, how a publish gate differs between brands. Explicit collections, hooks and access rules are easier to reason about than a generic workflow plugin bent to fit. A Payload CMS audit is a good point to check whether a plugin has ended up carrying business logic it should not.

How I evaluate a community Payload plugin

I run the same checklist on every community package before it enters a project. GitHub stars are a useful discovery signal and carry no weight in the decision.

CheckWhat I look for
Payload peer dependencyA range that includes the Payload version I run, and a history of following Payload releases
Latest release and commitsActivity in the last few months, and releases that match the commit history
Open issuesWhether the maintainer responds, and whether reported breakages get fixed
Test coverageTests that exercise the plugin against a real Payload instance
DocumentationSetup, options, and known limitations written down
TypeScript qualityTyped options and exported types without casts
Config mutationHow many collections, fields, endpoints and admin components the plugin changes
Introduced collections and fieldsWhich ones appear in my schema and database
Registered hooksWhich hooks run on my collections, and when
Migration implicationsWhat database migrations installation and upgrades require
RemovalHow hard it is to take the plugin out later, including the data it created

The last three often decide the outcome. A plugin that registers hooks on collections you rely on, adds tables, and cannot be removed without losing data is a much larger commitment than its install command suggests.

How Payload plugins work in 2026

The mental model is unchanged: a plugin is a function that receives the incoming config and returns a modified config. Payload's documentation describes that contract as stable, and it can add collections, fields, hooks, endpoints and admin components. This is the plain form:

typescript
// File: my-plugin/src/index.ts
import type { Config } from 'payload'

export const myPlugin =
  (options: MyOptions) =>
  (config: Config): Config => ({
    ...config,
    collections: [...(config.collections || []), myCollection],
  })

Plugins run in array order by default, and they transform the config before Payload sanitises and initialises it. Hooks a plugin registers run later, during operations, which is a separate phase.

Diagram

Config transformation happens once at startup. The hooks a plugin adds execute later at runtime.

Payload also documents an advanced API, currently marked experimental, built around definePlugin. It adds a slug, an execution order (lower values run first, default 0), typed options, and a plugins map that lets one plugin find another and adjust its options before it runs.

typescript
// File: my-plugin/src/index.ts
import { definePlugin } from 'payload'

type SEOPluginOptions = { collections: string[] }

export const seoPlugin = definePlugin<SEOPluginOptions>({
  slug: 'plugin-seo',
  order: 10,
  plugin: ({ config, options }) => ({
    ...config,
    collections: [...(config.collections || [])],
  }),
})

Plugin packages can augment the RegisteredPlugins interface so the plugins map is typed for consumers. Because the API is experimental, I use it for published plugins and accept that its surface may shift. The full workflow, including packaging and publishing, is in building publishable Payload plugins with definePlugin.

For admin UI, the server and client split matters. Components are referenced from the config by path and resolved through the import map, so client components belong in their own exported entry point with 'use client' at the top, while server components and config logic stay on the server side of the package. Mixing them is a common source of build errors in plugin packages.

How to discover more plugins

Payload does not run a marketplace. The official plugin list lives in the Payload plugin documentation, and community plugins are discoverable through the payload-plugin GitHub topic and npm. The documentation itself says plugins change quickly, so check back often.

Discovery is the first step only. A plugin appearing in a topic list or a package search does not make it production-ready. For anything that will sit deep in your architecture, read the source: look at what it adds to the config, which hooks it registers and what it writes to the database.

The hierarchy I follow

Start with the official plugins. Use community packages where they solve a defined problem and show credible maintenance signals. Keep core business workflows in code you control when their behaviour is specific to the business.

The ecosystem is increasingly useful because you no longer need to rebuild every common capability yourself. Payload's underlying extension model still gives you an escape hatch when the plugin abstraction stops fitting.

If you are evaluating Payload for a production CMS, a multi-site platform or a migration, I help teams design and build the architecture around it. See how I work as a Payload CMS developer. If you are still deciding on the CMS itself, the CMS picker tool gives a quick recommendation, and the Payload CMS cost estimator helps size the budget.

Thanks, Matija

Comments