Payload

A free and open-source TypeScript headless CMS & application framework built with Express, MongoDB and React.

npm Tweet Payload Discord

Payload headless CMS Admin panel built with React ### Features - Completely free and open-source - [GraphQL](https://payloadcms.com/docs/graphql/overview), [REST](https://payloadcms.com/docs/rest-api/overview), and [Local](https://payloadcms.com/docs/local-api/overview) APIs - [Easily customizable ReactJS Admin](https://payloadcms.com/docs/admin/overview) - [Fully self-hosted](https://payloadcms.com/docs/production/deployment) - [Extensible Authentication](https://payloadcms.com/docs/authentication/overview) - [Local file storage & upload](https://payloadcms.com/docs/upload/overview) - [Version History and Drafts](https://payloadcms.com/docs/versions/overview) - [Field-based Localization](https://payloadcms.com/docs/configuration/localization) - [Block-based Layout Builder](https://payloadcms.com/docs/fields/blocks) - [Extensible SlateJS rich text editor](https://payloadcms.com/docs/fields/rich-text) - [Array field type](https://payloadcms.com/docs/fields/array) - [Field conditional logic](https://payloadcms.com/docs/fields/overview#conditional-logic) - Extremely granular [Access Control](https://payloadcms.com/docs/access-control/overview) - [Document and field-level hooks](https://payloadcms.com/docs/hooks/overview) for every action Payload provides - Built with Typescript & very Typescript-friendly - Intensely fast API - Highly secure thanks to HTTP-only cookies, CSRF protection, and more ### Code-first Payload is a CMS that has been designed for developers from the ground up to deliver them what they need to build great digital products. If you know JavaScript, you know Payload. It's a _code-first_ CMS, which allows us to do a lot of things right: - Payload gives you everything you need, but then steps back and lets you build what you want in JavaScript or TypeScript - with no unnecessary complexity brought by GUIs. You'll understand how your CMS works because you will have written it exactly how you want it. - Bring your own Express server and do whatever you need on top of Payload. Payload doesn't impose anything on you or your app. - Completely control the Admin panel by using your own React components. Swap out fields or even entire views with ease. - Use your data however and wherever you need thanks to auto-generated, yet fully extensible REST, GraphQL, and Local Node APIs. ### Quick Start Before beginning to work with Payload, make sure you have all of the [required software](https://payloadcms.com/docs/getting-started/installation). From there, the easiest way to get started with Payload is to use the `create-payload-app` package: ``` npx create-payload-app ``` Alternatively, it only takes about five minutes to [create an app from scratch](https://payloadcms.com/docs/getting-started/installation#from-scratch). ### Documentation Check out the [Payload website](https://payloadcms.com/docs/getting-started/what-is-payload) to find in-depth documentation for everything that Payload offers. ### Contributing If you want to add contributions to this repository, please follow the instructions in [contributing.md](./contributing.md). ### Other Resources ##### Discussions There are lots of good conversations and resources in our [GitHub Discussions board](https://github.com/payloadcms/payload/discussions). If you're struggling with something, chances are, someone's already solved what you're up against. Searching Discussions will often provide very helpful tips and tricks. ##### Discord Join [Payload's Discord channel](https://discord.com/invite/r6sCXqVk3v) to interact with Payload developers in realtime.