Payload CMS Version 0.15.0 brings publishing, versions, performance, more
We’ve just published our biggest version release yet. It comes with over 20 new Payload features and countless quality of life improvements for Payload developers and admin panel users.
We’ve been busy over the past few months. In addition to fixing bugs and adding polish to Payload’s APIs and admin panel, we’ve released a ton of new features — some small, some massive. 0.15.0
is now available on NPM. Payload is now nearing our 1.0
release, and we couldn't be more excited.
New Features
Versions
By far the biggest change that payload@0.15.0
brings is the introduction of Versions, Drafts, and Autosave. Payload now includes a way for you to keep a running history of document changes over time. You can easily go back and compare two versions, and restore changes back to a specific date.
It’s extremely performant and opting in is super easy.
Drafts
In addition to simply storing changes to your documents over time, Payload now includes a full set of draft
functionality where your admins can keep drafts of documents before publishing them. This is super useful when you want to preview changes on your frontend(s) before you actually publish changes, or if you want to build a way to schedule publish dates in the future.
You can use Payload’s existing Access Control to closely manage what users can publish, what users can only save drafts, who can read draft documents, and much more. Check out the docs for more.
Autosave
If you’ve opted into versions
and drafts
, you can now enable Autosave on your collections so that your editors never lose their work again.
It’s a powerful but beautifully simple feature that saves progress as your admins work.
New ways to customize Admin React components
In 0.15.0
, we've introduced a suite of new ways that you can easily customize the Admin UI with custom React components. We now support the following custom components:
Custom Admin routes
You can now easily inject your own routes and views directly into the Payload UI which allow you to build absolutely anything you can think of. Build custom functionality, reports, and utilities right into the Payload admin UI with ease. Check out the docs for more info.
Login
BeforeLogin
- allows you to inject a custom component like a welcome message or instructions above the Login formAfterLogin
- same as above, but below the form
BeforeLogin
component might be usedDashboard
BeforeDashboard
- inject a custom component into the Dashboard view so you can add custom logic and components directly into the Dashboard without having to replace the entire viewAfterDashboard
- same as above, but below the Dashboard
Nav
BeforeNavLinks
- Add your own links, functionality, and whatever you need before the Nav component without having to replace the entire Nav itselfAfterNavLinks
- same as above, but below the Nav sidebar links
Rich Text Upload fields
Payload’s Rich Text Upload functionality just got a lot more powerful by allowing users to add their own fields & data to embedded rich text uploads. For example, if you want to allow your admins to “link” an upload to a post, you can build fields directly into the Rich Text Upload to allow them to “edit” the Upload, and link it to another document or URL. You could also build in alignment controls and sizing controls, but it’s totally open-ended and uses the same field schema that Payload’s collections and globals do. It’s simple but extremely powerful.
Rich Text Indentation & Nested Bulleted Lists
Now, Payload ships with a built-in way to indent copy and nest bulleted lists.
Performance Optimizations
0.15.0
also comes with a suite of performance optimizations to both the API and the React Admin UI.
GraphQL Relationship Population
We’ve reduced the behind-the-scenes database queries that are run by half while querying relationship fields within GraphQL.
Relationship Admin Field
The Relationship field is now significantly more performant when being used with 10+ relationships.
Much more
To view the full list of performance optimizations and changes, check out the Changelog.
Bug Fixes
In addition to all the new features and performance improvements that 0.15.0
brings, we've also fixed a handful of bugs. Since our beta launch, Payload has been put to the test in production projects around the world and our community has been so helpful to us in identifying bugs and writing up detailed reports regarding how to reproduce undesired behavior.
We’re proud of the speed and commitment to solving issues that the Payload team has displayed over the past few months and are confident that this is only the beginning.
For a full list of bug fixes that are shipped with 0.15.0
, check the Changelog.
Breaking Changes
Payload strives to keep breaking changes to an absolute minimum so that you can update Payload with ease. With all of these new features, we’re happy to report that the only breaking change in this minor version release is related to GraphQL errors, which are now structured more according to how a developer might expect them to be returned.
Thanks to GitHub user chladog for the ideas and discussion around how to improve them. If you are handling GraphQL errors on your frontend(s) and would like to know how to migrate to this new version, check here. for more details. Otherwise, you can update to 0.15.0
without fear of any breaking changes!
More to come
It’s a very exciting time for Payload, and we’re getting closer and closer to 1.0. We’re already the most feature-rich TypeScript CMS there is, but with every release Payload gets more stable and more powerful — and it’s only the beginning.
Keep an eye out for more to come — and as always, we’d love to know what you think. Head over to join our GitHub Discussions if you have questions, thoughts, feedback, or feature requests!