Payload has been in the development process for around 2 years before it made its first appearance in the public release (in early 2021) as an open-source self-hosted headless CMS solution. It is promised to be a silver bullet solution for your software problems so here I am to briefly walk you through it and help you find out yourself how much of a truth that bold statement may be.
- CMS type: API
- Website: payloadcms.com
- Founded: 2021
- Company size: 1-10 people
Last update: June 9, 2021
Payload is a CMS that gives you full control over almost anything you can think of. You have the ability to completely customize the visual appearance of the admin UI; set up authentication and access control on a document or field-level; localize and manage complex content by using the diversity of field types that it provides, and a whole lot more. Keep in mind that with great power comes great responsibility. If you are willing to accept in order to have a great amount of flexibility at hand, Payload will be probably a good fit for you.
By default, it is very simple and clean with no distortions and you are free to change it completely as it is fully customizable. Payload’s config file gives you the power to make Payload look any way you want just by exchanging the built-in React components with the ones of your choice.
In addition to swapping default views in the UI such as dashboard and account, it is also possible to replace components that help pick and visualize the content-type field values.
Having a field in which color needs to be selected? Provide a custom color picker component and boost the editing experience.
Payload provides REST and GraphQL APIs which are auto-generated based on the collections defined in the configuration file. There is also a local API that can be useful when using a server-side rendering framework such as NextJS so you no longer need to make a request to a third-party server in order to get data that needs to be displayed.
Authentication can be enabled on any data collection and that collection can then be thought of as a user. Payload provides a new set of operations on authentication-enabled collections which will provide login, logout, reset the password, and some other functions which are part of the general authentication flow that uses JWTs (JSON Web Token).
Payload is still pretty new so there was not much time for the community to build up around it. But it can be expected that it will grow significantly because of the degree of freedom that the CMS provides to its users and how feature-rich it is.
When it comes to official support from creators of the CMS, paying 89$ monthly fee for the highest Pro tier will give you dev-to-dev support which is all you can get in terms of official support at the moment of writing this article.
Payload is completely free for development purposes but once you want to release a project into production, you have the obligation to choose and acquire one of the available licenses (even if you use a free tier).
There are no restrictions in terms of CMS features among all 3 available tiers but limitations apply in regards to the maximum number of users for the admin panel which equals 1 for the free tier. Staging domain support is included in paid tiers and you can also receive dev-to-dev support in the highest Pro tier.
- Highly flexible and customizable
- No restrictions in terms of available features in any of the 3 plans
- Ability to add/extend an existing Node + Express app with Payload
- One central config file as a single source of truth for everything that is set up
- Not only document-level but also field-level hooks and access control
- Ability to implement custom validation logic for any kind of field type
- Starter templates when creating a new project through CLI (blog and todo app) to give you some base ground
- Still young and needs time to build a bigger community for better support
- High flexibility comes with its price which is that on one hand the CMS gives you abstractions but says too little about how to use them. This means it is required that the developer has a certain level of proficiency in order to architect the solution well since there are too few restrictions and the CMS tries to be least opinionated possible
- MongoDB as the only database option
- Lack of visual builder that could help you build up your content model