The modern alternative to headless WordPress

Built with TypeScript and React, Payload is a next-generation content management system compared to Wordpress, hyperfocused on a superior developer experience and better security.

wordpress logo is left in the blurry void
editing a post screen in payload
payload logo in a black box floating in the void

Building with Payload can be done quickly and effectively, thanks to its code‑based customization and developer‑friendly features.

Microsoft - Payload ClientMicrosoft - Payload Client
Sowmya Reddy Peta, Engineer
Microsoft front end screenshots

Leave yesterday's technology in the past

Headless by nature, Payload is config-based and purpose-built, delivering GraphQL and local node APIs out-of-box, along with unmatched flexibility.

Don't Frankstein WordPress. Lean on Payload to power anything you can think of.

Payload vs WordPress




01

Point, click, edit.

Payload's visual editor empowers marketers to create and edit as they browse, delivering a powerful tool that pairs nicely alongside its first-class developer experience.

Explore Visual Editing
Use Payload Visual Editing to update rich text, relationships, media, and more
02

Customize access control

Secure your data by writing access control functions based on either a document or field level. Build out your own RBAC or any access control pattern you need. It's simple yet significantly more powerful than working with WordPress user roles.

Explore Docs
1
const Orders = {
2
// ...
3
access: {
4
create: () => true, // Everyone can create
5
read: ({ req: { user } }) => {
6
if (user) {
7
return { // Users can only read their own
8
owner: { equals: user.id, },
9
};
10
}
11
12
return false; // Not logged in? Can't read any
13
},
14
update: ({ req: { user } }) => {
15
// Only Admins can update Orders
16
if (user.roles.includes('admin')) return true;
17
return false;
18
},
19
delete: () => false, // No one can delete
20
},
21
};
22
23
03

Built-in localization

Unlike WordPress, Payload natively offers localization down to the field level. Alongside i18n support, get robust internationalization and localization capability without the hassle of managing multiple plugins.

Explore Docs
1
import { buildConfig } from 'payload/config'
2
3
export default buildConfig({
4
collections: [
5
// collections go here
6
],
7
localization: {
8
locales: [
9
{
10
label: {
11
en: 'English', // English label
12
nb: 'Engelsk', // Norwegian label
13
},
14
code: 'en',
15
},
16
{
17
label: {
18
en: 'Norwegian', // English label
19
nb: 'Norsk', // Norwegian label
20
},
21
code: 'nb',
22
},
23
],
24
defaultLocale: 'en',
25
fallback: true,
26
},
27
04

Extend your admin UI with ease

The WordPress dashboard is mess of jQuery, React, and PHP. Payload's admin UI is fast, minimal, and most important of all, completely extensible in React.

Explore Docs
1
import { buildConfig } from 'payload/config'
2
3
import {
4
MyCustomNav,
5
MyCustomLogo,
6
MyCustomIcon,
7
MyCustomAccount,
8
MyCustomDashboard,
9
MyProvider,
10
MyCustomAdminAction,
11
} from './customComponents'
12
13
export default buildConfig({
14
admin: {
15
components: {
16
Nav: MyCustomNav,
17
graphics: {
18
Icon: MyCustomIcon,
19
Logo: MyCustomLogo,
20
},
21
actions: [MyCustomAdminAction],
22
views: {
23
Account: MyCustomAccount,
24
Dashboard: MyCustomDashboard,
25
},
26
providers: [MyProvider],
27
},
28
},
29
})
30
05

Meet every security standard

WordPress is the most commonly targeted CMS and its plugins can expose you to endless vulnerabilities. Payload comes instantly more secure and supports features like SSO, HTTP-only cookies, CSRF protection, rate limiting, and more.

Explore Security
Auth admin and external login
06

Config-Based vs "Plugins"

In WordPress, you might combine three or four plugins just to add post types, meaning you need to manually migrate changes between environments. With Payload, you write your schema in code, version control it, and migrate changes easily.

Explore Docs
1
import { buildConfig } from 'payload/config';
2
import { mongooseAdapter } from '@payloadcms/db-mongodb';
3
import { viteBundler } from '@payloadcms/bundler-vite';
4
import { lexicalEditor } from '@payloadcms/richtext-lexical';
5
6
export default buildConfig({
7
admin: { bundler: viteBundler() },
8
db: mongooseAdapter({}),
9
editor: lexicalEditor({}),
10
collections: [{
11
slug: 'pages',
12
fields: [
13
{ name: 'title', type: 'text', required: true },
14
{ name: 'content', type: 'richText', required: true },
15
],
16
}],
17
globals: [{
18
slug: 'header',
19
fields: [{ name: 'nav', type: 'array', relationTo: 'pages' }],
20
}],
21
});
22
23
07

Next.js vs PHP

Written top-to-bottom in TypeScript, Payload harnesses Next.js for top-tier performance and scalability, with the option to build on Express. With WordPress, you're stuck writing outdated PHP.

Explore Docs
Payload and Next.js icons

Connect with us.

Whether you need help from our active community or have questions about using Payload at the enterprise level, we’re here to help.