Payload CMS — Open Source Fullstack Next.js Headless CMS
Payload is the open-source headless CMS and app framework built on Next.js. TypeScript-first, code-configured, with instant admin panel, auth, and file uploads.
Ready-to-run agent install
This asset can be installed after the agent chooses its runtime, checks the plan, and runs the matching command.
npx -y tokrepo@latest install f40e26c8-349e-11f1-9bc6-00163e2b0d79 --target codexRun after dry-run confirms the install plan.
What it is
Payload is an open-source, fullstack Next.js framework that gives you an instant backend with a headless CMS, admin panel, authentication, file uploads, and more, all configured in TypeScript code. Unlike traditional CMS platforms that are GUI-configured, Payload uses a code-first approach where your content schema is your source of truth.
Version 3.0 is built directly into Next.js, eliminating the traditional backend/frontend separation. MIT licensed.
How it saves time or tokens
Payload generates the entire admin UI and API from your TypeScript configuration. Define a collection with fields, and Payload gives you a CRUD admin panel, REST API, GraphQL API, access control, and hooks without writing any frontend or API code. Built-in authentication with email/password, magic links, and OAuth removes the need for a separate auth system. Version history and draft/publish workflow are included, not add-ons.
How to use
- Create a new Payload project:
npx create-payload-app@latest my-project
cd my-project
npm run dev
- Open http://localhost:3000/admin, create your admin user, and start building.
- Define a collection in your Payload config:
import { CollectionConfig } from 'payload';
const Posts: CollectionConfig = {
slug: 'posts',
admin: { useAsTitle: 'title' },
access: {
read: () => true,
create: ({ req }) => !!req.user,
},
fields: [
{ name: 'title', type: 'text', required: true },
{ name: 'content', type: 'richText' },
{ name: 'status', type: 'select',
options: ['draft', 'published'] },
{ name: 'author', type: 'relationship',
relationTo: 'users' },
],
};
Example
Using Payload's Local API in a Next.js page:
import { getPayload } from 'payload';
import config from '@payload-config';
export default async function BlogPage() {
const payload = await getPayload({ config });
const posts = await payload.find({
collection: 'posts',
where: { status: { equals: 'published' } },
sort: '-createdAt',
limit: 10,
});
return (
<div>
{posts.docs.map((post) => (
<article key={post.id}>
<h2>{post.title}</h2>
</article>
))}
</div>
);
}
Related on TokRepo
- Coding tools — More fullstack frameworks on TokRepo.
- Content tools — Browse CMS and content management tools.
Common pitfalls
- Running Payload with SQLite in production causes performance issues with concurrent users. Use PostgreSQL or MongoDB for production.
- Not configuring access control on collections exposes data publicly. Define read/create/update/delete access functions for every collection.
- Overusing richText fields when structured fields (text, number, select) would be better. Structured fields enable typed queries and validation.
Frequently Asked Questions
Payload 3.0 supports PostgreSQL and MongoDB as primary databases. SQLite is available for local development. The database adapter is configured in your Payload config.
Yes. Payload exposes REST and GraphQL APIs automatically for all collections. You can build any frontend (React, Vue, mobile apps) that consumes these APIs. The admin panel is optional for content editors.
Payload is code-first (TypeScript config) while Strapi is GUI-first (content types built in admin). Payload 3.0 is built into Next.js while Strapi is a standalone backend. Payload includes more built-in features (access control, versions, hooks).
Yes. Payload supports multi-language content with field-level translations. Configure locales in your Payload config and each localizable field stores content per language.
Yes. Payload is MIT licensed and fully open source. There are no feature restrictions in the open-source version. Payload Cloud is an optional hosted service.
Citations (3)
- Payload GitHub— Payload CMS open-source headless CMS
- Payload Docs— Payload documentation and guides
- Next.js Documentation— Next.js App Router for fullstack React
Related on TokRepo
Source & Thanks
- GitHub: payloadcms/payload — 41.7K+ ⭐ | MIT
- Website: payloadcms.com
Discussion
Related Assets
Decap CMS — Git-Based Headless Content Management System
Decap CMS (formerly Netlify CMS) is an open-source headless CMS that stores content directly in your Git repository. It provides a rich editing UI on top of static site generators like Hugo, Gatsby, and Next.js, letting editors work through a web dashboard while developers keep full version-control workflows.
KeystoneJS — Superpowered Headless CMS for Node.js
A programmable headless CMS and application backend built with GraphQL, React, and TypeScript that lets you define schemas in code and auto-generates an Admin UI and API.
Strapi — Leading Open Source Headless CMS
Strapi is the most popular open-source headless CMS with 71K+ stars. Visual content-type builder, REST & GraphQL APIs, RBAC, and extensive plugin marketplace.
Directus — Open Source Backend & Headless CMS for Any Database
Directus wraps any SQL database with instant REST & GraphQL APIs, an admin app, auth, file storage, and automation — no migration or proprietary schema needed.