Introduction
DynapiCMS is a headless CMS. You describe content as types (a schema), and a GraphQL API is generated from that description: queries, mutations, filtering, sorting. The schema changes at runtime — add a field and it’s in the API with no server restart.
How it works
- Content type — you define the fields. For example,
Blog Postwithtitle(string),body(text/markdown), andpublished(boolean). - GraphQL API — appears on its own.
blogPostsfor the list,blogPostfor a single record,createBlogPostfor mutations, filters (where) and sorting (orderBy) — one per field. - Schema changes at runtime — add a field and it’s in the API within a second. No server restart, no per-change migration.
What’s in a new project
A new project starts empty: the only content type present is Media — the media library and file uploads are built on it. The standard set — Page for pages, Navigation for menus, landing-page blocks (Hero, Text, Gallery, CTA, and more), 34 types in all — is one button away: “Seed default types” in Content Types. From there, use them as-is or add your own.
Who this documentation is for
- Content & pages — field types, media, SEO, and the site plugin (pages, templates, flows). For those who fill the site.
- API & integrations — GraphQL queries, filters, webhooks, plugins. For developers.
Where to start
- Quickstart — from sign-up to your first GraphQL query.
- First content type — how the schema works.
- GraphQL queries — how to read and mutate data.
This site runs on DynapiCMS
The page you’re reading is a record in the CMS. The text lives as markdown and is rendered on the server. The menu on the left is data too. DynapiCMS dogfoods itself.