Payload
Headless CMS with an admin panel, where developers define content in code and editors publish, running on Workers with D1 and R2
Payload admin panel editing a page with live preview
Payload is an open-source headless CMS and backend that lives inside a Next.js app. Developers define collections, fields and access rules in TypeScript, and editors get an admin panel with drafts, live preview and localization. Payload’s Cloudflare template runs it on Workers with D1 for the database and R2 for uploads; it needs Workers Paid because of the bundle size.
In Payload the content model is code. A payload.config.ts file defines collections, fields, access control and hooks, and Payload builds the admin panel, the REST and GraphQL APIs and TypeScript types from it. Editors work in that admin panel with drafts and versions, live preview, localization and uploads, and developers can also read the same data directly from Next.js server code. The Cloudflare template in the Payload repository starts with two collections: Users, who sign in to the admin panel, and Media for uploads stored in R2. Data lives in D1 through Payload’s SQLite adapter, which can also use D1 read replicas. The Deploy to Cloudflare button asks for names for the Worker, the D1 database and the R2 bucket and for PAYLOAD_SECRET, and the deploy script runs Payload’s migrations before deploying through OpenNext. Some features do not work on Workers yet. Image resizing and cropping are off because sharp cannot run there, and GraphQL support is not guaranteed while an upstream Workers issue is open. The same codebase also runs on Node.js with PostgreSQL, MongoDB or SQLite.
Built for: Developers who build Next.js sites or apps and want a code-configured CMS and admin panel in their own Cloudflare account
An alternative to: Contentful, Sanity
What you can use it for
- Content backend for a marketing site, blog or docs built with Next.js
- Admin panel and API for an app’s own data
- Editorial work with drafts, versions and live preview
- Media library stored in your own R2 bucket
Deploy
One-click
requires Workers Paid
The button copies the Cloudflare template from the 3.x branch of the Payload repository and asks for names for the Worker, D1 database and R2 bucket and for PAYLOAD_SECRET.
Deploy button with one secret, PAYLOAD_SECRET. New collections are added in code, followed by pnpm payload migrate:create and a redeploy.
Good to know
Needs Workers Paid: the bundle exceeds the 3 MB Worker size limit of the free plan. On Workers, image resizing and cropping are off because sharp does not run there, and GraphQL support is not guaranteed. The template starts with only users and media, so content collections are written in code and need a migration before each deploy. Workers logs are off by default.
Cost on Cloudflare
Paid Cloudflare plan required
The template needs Workers Paid ($5 a month) because its bundle is larger than the 3 MB Worker size limit on the free plan. D1 and R2 then come with their usual included allowances.
The estimate is based on Cloudflare’s documented limits and the app’s configuration. What you pay depends on your usage and plan.
Where this comes from
- Repositoryhttps://github.com/payloadcms/payload
- App websitehttps://payloadcms.com
- Documentationhttps://payloadcms.com/docs
Listing history
- Oct 9, 2026 · Payload listed
Similar apps
All CMS & Publishing apps
Open-source Astro CMS from Cloudflare for blogs and marketing sites, with a WordPress-style admin and sandboxed plugins
- Deploy
- One-click
- License
- MIT
- GitHub stars
- 13.8k stars
- Last commit

Self-hosted CMS that publishes podcasts, posts, photos and links as a website, RSS feed and JSON Feed on Cloudflare
- Deploy
- CLI
- License
- AGPL-3.0
- GitHub stars
- 4.1k stars
- Last commit

Self-hosted blog with a browser editor, comments and RSS, deployed to your Cloudflare account by GitHub Actions
- Deploy
- Manual
- License
- MIT
- GitHub stars
- 3.1k stars
- Last commit