Open-source Payload CMS plugins for A/B testing, content presets, inline comments, and scheduled publishing on serverless. Use them individually in any Payload project, or together as part of the Ideal CMS toolkit.
At FocusReactive we build projects on different CMSs — Sanity, Storyblok, Strapi, and Payload. Each platform has its own unique features and limitations, and sometimes a project needs a feature one CMS has but another doesn't.
So we decided to build all of that into one open-source project — we call it Ideal CMS. Best features from every CMS we've worked with, available as Payload plugins. You can use the project with everything integrated, or install individual plugins to get the features you need. This often helps our clients free up budget for things we believe should be included from day one.
Every plugin in this repository works independently in any Payload project. For new projects, we recommend starting from the repository that combines all of these plugins together with the basic setup you'll need.
a-b-testing.mp4
Native experiments with a dynamic percentage of traffic going to each content variant. Control everything from the same page you're working on — page variants, middleware, and analytics adapters included.
- Package:
@focus-reactive/payload-plugin-ab
Multiple pre-configured block configurations you can use to build up your pages. It's like having multiple versions of default values — because content teams prefer editing over creating from scratch.
comments.mp4
A way to collaborate inside the CMS. Inline field comments, mentions, annotations — helpful for both the content team and developers, letting everyone leave feedback directly inside the admin.
publish-scheduling.mp4
Payload CMS natively supports scheduled publishing, but not for serverless platforms like Vercel. Since that's where we deploy most of our projects, we built a plugin that makes it work.
| Package | Version | Description |
|---|---|---|
@focus-reactive/payload-plugin-ab |
A/B testing plugin — page variants, middleware, analytics adapters | |
@focus-reactive/payload-plugin-presets |
Presets plugin — save and apply reusable block configurations | |
@focus-reactive/payload-plugin-comments |
Comments plugin — inline field comments, mentions, annotations, and collaboration | |
@focus-reactive/payload-plugin-scheduling |
Schedule publication plugin — schedule documents to publish at a future date |
The apps/dev folder is a minimal dev project with plugins pre-installed, to run and test locally. Backed by SQLite — no external database required.
- Bun installed
- Node.js
^18.20.2or>=20.9.0
-
Clone the repository
git clone https://github.com/focusreactive/payload-plugins.git cd payload-plugins -
Install dependencies
bun install
-
Configure environment variables
Create
apps/dev/.envwith the required values:cat > apps/dev/.env <<EOF DATABASE_URL=file:./dev.db PAYLOAD_SECRET=replace-me-with-any-random-string EOF
-
Start the dev server
bun run dev
-
Open the admin panel
Visit http://localhost:4040/admin and create your first admin user. Every plugin in this repo will be loaded and ready to try.
Let's grow the Payload CMS ecosystem together. Issues, discussions, and PRs are all welcome.