Overview
Composable Payload CMS plugins — add media optimization, seeding, icons, fonts, and surgical cache revalidation one package at a time. Each works standalone in any Payload + Next.js project.
Payload Plugins is a composable suite of Payload CMS
plugins published under the @pro-laico/* scope. Each is an independent package.
Add only the ones you need. Every plugin is zero-config and drop-in — install it, register the factory, and it works. They snap together when you want more, and none depends on another.
The plugins
payload-seed
Bootstrap a whole site's content from typed seed files. Cross-file references resolve in dependency order, media uploads and all, behind an ENABLE_SEED kill switch.
payload-images
Serve any image at any size on demand. Stores only the original, crops around the subject, and caches every rendered variant — no pre-declared sizes.
payload-icons
Manage SVG icons in the admin and inline them anywhere. Uploads are optimized and themeable on save; a drop-in <Icon name> component renders them.
payload-fonts
Self-host custom typefaces without touching the build. Uploads are subset to WOFF2 and served to next/font/local through an export endpoint and CLI.
payload-mux
Add Mux-backed video to any collection. Uploads go straight to Mux with public or signed playback, virtual URLs, two-way delete, and an admin uploader.
payload-revalidate
Edit one document and only the pages that show it go stale. Tags are derived on reads and busted on writes, with a map of exactly what revalidates when.
payload-dev-tools
Build Payload projects faster. A floating dev toolbar, /dev pages inside your app, and a machine-readable app snapshot for AI agents.
Get started
Every plugin installs the same way:
pnpm add @pro-laico/<plugin>Each package exports a (opts) => (config) => config factory, as both the default and a
named export. Register it in your Payload config's plugins array:
import { buildConfig } from 'payload'
import { pluginName } from '@pro-laico/<plugin>'
export default buildConfig({
// ...
plugins: [pluginName()],
})Requirements: Payload ^3 and React 19. Next.js is per-plugin — payload-revalidate (16+),
payload-images, and payload-dev-tools need the App Router; payload-icons and payload-fonts
need it only to render icons / serve fonts; payload-mux and payload-seed don't need it at all.
See Conventions → Requirements. Every package works
standalone — you never need to install more than the one you want.
Setup specifics — env vars, generate:importmap, next.config changes — live on each
plugin's page. Start there once you've picked a plugin.
How they compose
Each plugin stands alone, but they're built to snap together: no plugin imports another — they discover each other through plain Payload config markers, so any combination works. See Conventions for the factory shape, the zero-config defaults, the shared Assets group, and how composition works.
See it wired end-to-end in the
example apps:
service-co
runs every plugin on one fictional studio site, and each content plugin has a focused
sandbox (seed-sandbox, images-sandbox, icons-sandbox, fonts-sandbox, mux-sandbox).
Payload Plugins is not affiliated with Payload CMS in any capacity.