Payload CMS
By Payload
js and TypeScript that developers configure entirely through code rather than a hosted admin dashboard.
Definition
Payload CMS is an open-source, code-first headless content management system built on Node.js and TypeScript that developers configure entirely through code rather than a hosted admin dashboard.
Overview
Payload is a self-hosted, open-source Headless CMS written in TypeScript and running on Node.js. Unlike SaaS-first tools such as Contentful or Sanity CMS, Payload is installed into a developer's own application, with content schemas, access control, and hooks all defined directly in TypeScript config files rather than configured through a separate hosted service. Because the admin panel, REST and GraphQL APIs, and database layer are all generated from the same config, developers get a fully typed content model end to end, along with fine-grained access control and lifecycle hooks for custom business logic. Payload supports both MongoDB and PostgreSQL as underlying databases, and its admin UI (also built in React) is themeable and extensible with custom fields and components. Being self-hosted and open source, Payload appeals to teams that want full ownership of their data and infrastructure — often deploying it alongside a Next.js front end in the same monorepo — as an alternative to paying for a hosted SaaS CMS subscription.
Key Features
- Code-first configuration of content schemas in TypeScript
- Self-hosted, open-source, full ownership of data and infrastructure
- Auto-generated REST and GraphQL APIs from the config
- Built-in, extensible React-based admin panel
- Supports MongoDB and PostgreSQL as backing databases
- Fine-grained, code-defined access control and field-level permissions
- Lifecycle hooks for custom logic on create, update, and delete
- Deep TypeScript typing across schema, API, and admin UI
Use Cases
Frequently Asked Questions
From the Blog
How to Store and Query Metadata Alongside Embeddings
Design the payload before you index anything: flat, typed, low-cardinality fields for the things you will filter on, with tenant and permission keys applied server-side on every query. Then decide deliberately between pre-filtering and post-filtering, because that choice determines whether restrictive filters return empty results.
Read More AI & TechnologyVector Index Memory Blowups and How to Contain Them
Vector index memory comes from three sources: raw vectors, the graph structure connecting them, and the payloads you stored alongside. Learn to attribute your resident set to each, then apply quantisation, on-disk storage and payload discipline in the order that recovers the most memory for the least quality loss.
Read More