{"title":"Payload vs WordPress","slug":"payload-vs-wordpress","tools":[{"name":"Payload","slug":"payload","category":"cms","type":"hybrid","website":"https://payloadcms.com","pricing":"freemium","pricing_tiers":["Free (self-hosted, MIT)","Free cloud (1 project)","$50/mo Pro","Custom Enterprise"],"open_source":true,"self_hosted":true,"sdk_languages":["javascript","typescript"],"frameworks":["nextjs"],"agent_features":{"rest_api":true,"graphql_api":true,"real_time":false,"content_versioning":true,"webhooks":true},"compliance":["gdpr"],"best_for":"Code-first CMS with native Next.js integration — best for teams building content-heavy apps with React","limitations":"TypeScript-only; relatively newer than Strapi with a smaller community; cloud offering still early; requires Next.js knowledge","verified_by":"editorial","last_verified":"2026-04-28","source_urls":{"docs":"https://payloadcms.com/docs","pricing":"https://payloadcms.com/pricing"}},{"name":"WordPress","slug":"wordpress","category":"cms","type":"hybrid","website":"https://wordpress.org","pricing":"open-source","pricing_tiers":["Free (self-hosted)","WordPress.com from $4/mo","WordPress VIP custom pricing"],"open_source":true,"self_hosted":true,"sdk_languages":["python","javascript","php","ruby"],"frameworks":["langchain"],"agent_features":{"rest_api":true,"graphql_api":true,"real_time":false,"content_versioning":true,"webhooks":true},"compliance":["gdpr"],"best_for":"The largest CMS ecosystem — massive plugin library, REST API for headless use, and the widest hosting options","limitations":"PHP-based architecture; REST API is verbose and less modern than headless-native alternatives; security requires ongoing maintenance; performance depends heavily on hosting and plugins","verified_by":"editorial","last_verified":"2026-04-28","source_urls":{"docs":"https://developer.wordpress.org/rest-api","pricing":"https://wordpress.com/pricing"}}],"category":"headless-cms","last_verified":"2026-05-09","body":"Payload and WordPress are both open-source and self-hostable. Payload is TypeScript-first with auto-generated REST and GraphQL. WordPress is PHP-first with REST only, no native GraphQL. Payload wins on API design, content modeling, and access control.\n\n## Where Payload wins\n\n* **REST and GraphQL auto-generated.** Payload auto-generates full REST and GraphQL APIs from TypeScript collection schemas. REST supports CRUD with depth, joins, locale, sorting, filtering, pagination. GraphQL mirrors the content model with queries, mutations, dev playground, and complexity limits. Typed SDK `@payloadcms/sdk` available. WordPress exposes REST at `/wp-json/wp/v2/` for core types only. GraphQL needs a third-party plugin.\n\n* **Code-first TypeScript schema.** Payload schemas are TypeScript files in version control alongside code. Type-checked, composable without a GUI. Built-in blocks (field groups), conditional fields, drafts, version history, and localization. WordPress content models use PHP `register_post_type` and `register_meta`; structured fields need a third-party plugin like ACF. No WordPress core schema file builder.\n\n* **Operation-scoped access control and API keys.** Payload scopes access per operation (`create`, `read`, `update`, `delete`) at collection, global, and field level, all defined in code alongside schema. API keys work on auth-enabled collections for third-party integration, separate from cookie and JWT auth. WordPress Application Passwords tie to a full user with no post-type or operation restriction.\n\n## Where WordPress wins\n\n* **Existing WordPress installation.** For projects already on WordPress, the headless layer adds on top—existing content, media, authors, and workflows stay unchanged. REST API exposes content to agents without rebuilding the model. This cost benefit doesn't apply to new projects.\n\n## The agentic difference\n\nNeither has a documented native MCP server, so neither is a ready-made agent tool.\n\nPayload's in-process hooks and API design help agent workflows. Lifecycle hooks (`beforeChange`, `afterChange`, `beforeRead`, `afterRead`, `beforeDelete`, `afterDelete`) run at collection, global, and field level in code alongside schema. Agents write to REST or GraphQL with operation-scoped control enforced at schema level, no custom middleware. Jobs Queue handles background work but needs external cron, not event-driven triggers.\n\nWordPress offers REST read/write with Application Passwords that grant full user permissions. No post-type or operation scoping. Reactive patterns need plugin webhooks plus custom retry logic. WordPress core has neither.\n\n## When to pick which\n\n* **Pick Payload** for new projects where agents or API clients are the primary content interface. TypeScript-first schema, operation-scoped control, and auto-generated GraphQL cut integration surface versus WordPress REST-only core with plugin-dependent extensibility.\n\n* **Pick WordPress** when you already run WordPress and just need to expose content to agents—existing content, authors, and workflows stay unchanged.\n\n* **Skip WordPress** for new headless CMS projects for agents. Building webhooks, GraphQL, and content-scoped tokens belongs in the platform. Payload addresses two of those three natively."}