Before we get pumped up about all the goodness that 2023 is about to bring, we should be a bit retrospective and be thankful for what's been accomplished in 2022.
🌟 We went from 500 to 8.8K GitHub Stars 🌍 Added 17 languages, thanks to our amazing community 🚀 Shipped 137 new features 💥 Closed 337 issues 🧑💻 Added 1,359 commits 💰 Raised a $4.7M seed round 🙋♀️ Hired 6 new team members
The Payload team has spent a ton of time carefully planning our roadmap for 2023 and beyond, and we've identified an absolutely massive list of new features and functionalities that are coming in 2023.
First and foremost, we're building Payload Cloud. If you look through our Discord or GitHub Discussions, many users often find devops and hosting as the most challenging aspect of using Payload in production. There are great ways to host modern websites like Vercel and Netlify, but when it comes to deploying a CMS, there's more to handle than just the API layer.
To host a CMS, you need to sign up for a database provider, permanent file storage on AWS S3 or similar, and the API layer as well—in most cases a long-running Node service that can be scaled horizontally as needed. Then you have to worry about a CI pipeline to automatically deploy when new code is pushed to your repo, and ensure that you have blue/green deployments configured so that your service never goes down when a new deployment goes live.
Payload Cloud will automatically handle all of this for you, and it will function similarly to how Vercel and Netlify do. By connecting your Git repo, you'll automatically get a database, permanent file storage, build pipeline, and of course scalable Node infrastructure to run your CMS. And it will be very cost-effective.
In addition to Payload Cloud, we've got a massive roadmap of new features and optimizations on the way throughout 2023. Here's a look at just a few of the larger ones.
Payload already has great TypeScript DX and can do powerful things like automatically generate TS interfaces for your collections and globals, but we're going to take it further by more strongly typing certain areas of the API - specifically, Payload's Local API.
We're also going to expand on these auto-generated interfaces by exposing utilities that allow you to customize the depth
of these interfaces so that you can write completely type-safe hooks, access control, and more.
One of the most commonly requested features is to support additional databases like Postgres, and we've got this at the top of our radar. Immediately following the release of Payload Cloud, the team will be investing effort into expanding our database support to include more databases like SQLite and Postgres. There's a lot of work to be done here, but we've already got pretty great abstractions in place that will allow us to minimize the work involved here.
Alongside of additional database support, we'll be expanding on the way that data migrations are handled, providing examples and a first-class API way to handle migrating data from one shape to another as your schema changes.
As I write this, a full ecommerce implementation on top of Payload is being built and it will showcase how to integrate a payment provider like Stripe into Payload to power the entirety of an online store—without the need for signing up for a third-party ecommerce service. You'll be able to power entire ecommerce experiences, SaaS platforms, and more, directly within Payload. The boilerplate we're building will make this extremely simple, and you'll be able to catapult your engineering efficiency for even the most complex of business logic requirements.
This one's also in progress right now and we're making great headway. Soon, Payload's UI and APIs will allow you to run bulk operations on your documents, including deleting many and updating many, with a beautiful and simple UX. You'll be able to perform very powerful operations against many documents at once, all without compromising the power of Payload hooks and access control.
We've recently made the move from Babel to SWC for the transpilation of Payload configs (and got a great performance boost as a result), but there's more to come. We plan to expose a way for Payload developers to choose their browser bundler, and we'll start by supporting Turbopack.
Some of Payload's admin UI components are already exposed and reusable in your own projects, but we plan to amass and expose a collection of every single useful UI component so that you have a UI arsenal to rely on as you build custom UI into Payload's React admin panel.
You can already build powerful layout-building functionality directly into your Payload projects thanks to the blocks field but we're going to take this a step further to allow you to build a Gutenberg-like "live preview" of your frontend, directly in the Payload admin UI, using custom blocks that you build and provide. Combined with our component library above, this will be a powerful way to dramatically improve the admin editing experience for your team.
Right now, Payload and its community have built a plethora of plugins that expose new functionality on top of Payload like password-protecting pages, bi-directional relationships, cloud storage, SEO, form building, and more—but we're going to centralize these plugins into one spot and make a bigger effort on surfacing the power that they provide.
Payload already has everything it needs to be able to be deployed serverlessly (or even on the edge) via its Local API, but we're going to do some work to make it easier for you to do so. Lots more coming here, so stay tuned.
Large open-source frameworks typically have an "examples" directory that showcases how to do common tasks with the framework and we're going to be investing time into building something similar, directly into Payload.
These are just some of the new features we've got on our roadmap. To see the whole list, check out this Discussion on GitHub.
We're trying to change the CMS status quo by delivering editors with a great experience, but first and foremost, giving developers a CMS that they don't absolutely despise working with. All of our new features are meant to be extensible and work simply and sanely.
Getting started with Payload is easy—and free forever. Just fire up a new terminal window and run the following command: