Plume is a featherweight headless CMS you can run for free. Define content types over a REST admin API and get a full GraphQL delivery API for them instantly — no UI to manage, no per-seat pricing.

Quickstart

Bootstrap an admin, define a type, and publish your first entry in five commands.

Content types

Field types, options, relations, and validation rules.

GraphQL API

Queries, filters, sorting, pagination, and the draft/publish workflow.

Authentication

Users, roles, and API keys for your frontend.

Generate an API key

Mint a read-only key for your frontend — no admin login needed.

What you get

  • Dynamic content types — create and modify them at runtime; the GraphQL schema regenerates automatically.
  • GraphQL delivery API — per-type queries with filtering, sorting, pagination, and batched relation resolution.
  • Roles and API keysadmin, editor, and author users, plus read and write API keys for frontends.
  • Runs anywhere — Cloudflare Workers with D1 for zero monthly cost, or Docker with SQLite on any server.

How it works

You never write a database schema. You describe content types as JSON field definitions, and the server stores entries as JSON, generates a matching GraphQL schema, and enforces validation and access control on every request.
Plume is API-only by design. There is no admin dashboard — you drive it with HTTP requests, which makes it scriptable and cheap to run.