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

  1. Content type — you define the fields. For example, Blog Post with title (string), body (text/markdown), and published (boolean).
  2. GraphQL API — appears on its own. blogPosts for the list, blogPost for a single record, createBlogPost for mutations, filters (where) and sorting (orderBy) — one per field.
  3. 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

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.