No black magic, all TypeScript, and fully open-source.
App frameworks give you a backend, but lack CMS-grade admin UI. Payload gives you both.
Its extensibility allows it to power everything from enterprise websites to native apps, and everything in between.
Step 01
payload.config.ts
Step 02
Everything is dynamic and based on your config. No code generation, so no breaking changes when we update. Extend anything.
Get a perfectly clean, reusable schema that scales with you. Fully portable and not Payload-specific.
Powerful and reusable REST, GraphQL and Local Node APIs to power the backend of any project.
A CMS-grade editor generated for you, but still completely extensible in React. White-label, swap in your own components, and more.
Step 03
Every single part of Payload is meant to be extensible. Out of the box, it delivers incredible power with minimal effort, but its code-based nature means that you can build on top of it to power anything you can imagine.
Self-hosted
Nothing is imposed on the structure of your app. Just initialize Payload and pass it your Express app. Maintain your own functionality outside of Payload.
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.
20+ Field Components
Payload’s field types are far and away more robust than any other headless CMS out there. Dynamic fields like Arrays and Blocks unlock incredible potential while purpose-built fields like Relationship and GeoJSON allow for incredibly flexible data modeling.
Extend with Hooks
Both document and field-level hooks expose a ton of potential. Customize output, sanitize incoming data, or easily integrate with third-party platforms. The pattern is extremely powerful.
Custom React Components
Want to add a view to the Admin UI? Simple. How about building a custom field type? Or maybe swap in your client’s branding? Every high-level component in the Admin dashboard is easily swappable with your own React component. Customize existing views or field types—or even add your own routes—with an extremely intuitive API.
You can host it yourself, or let us handle hosting for you on Payload Cloud.