Quickstart

Describe your content as a type — DynapiCMS generates a GraphQL API for it: queries, mutations, filtering, sorting. This guide goes from sign-up to your first working query.

1. Create an account and a project

Sign up at dynapi.ru. The password needs at least 8 characters, a letter, and a digit. After registering you land in the account dashboard — there are no projects yet.

Click Create project and enter a name. DynapiCMS provisions a workspace with its own schema and content database, then drops you into the admin.

2. Add a content type

A content type is your schema. You define the fields, and the GraphQL API is built from them. In the sidebar, open Content types. You’ll see a set of built-in types — Media, Page, Navigation, Author, and around thirty blocks for building landing pages (Hero, Text, Gallery, CTA, and so on). They’re for the site and the media library; now add your own.

Click Create content type. Fill in the name and slug:

Field Value
Name Blog Post
Slug blog-post

The slug sets the GraphQL names: blogPost for a single record, blogPosts for the list, createBlogPost for the mutation. Kebab-case, Latin letters.

In the Add field panel, add three fields:

Field name Type Required
title String yes
body Text
published Boolean

The Text type is a markdown editor with a toolbar and preview.

Click Create. The schema rebuilds at runtime — the blogPost and blogPosts fields appear in GraphQL within a second, no restart, no migrations. You’ll see a “Content type created” toast and land in the type’s item list.

3. Add an entry

In the item list, click Create item. Fill in title, body (markdown), and toggle published. Click Save — the entry is immediately available through the API. There’s no separate publish step.

4. Query the data

Open GraphQL Playground in the sidebar. The playground runs under your session — the token is attached automatically. Run:

query {
  blogPosts(limit: 50) {
    id
    title
    body
    published
    created_at
  }
}

limit is needed to see the full list — the default returns 10 entries.

The same API is reachable from outside via JWT or API key. Create a key under API Keys:

curl -s https://dynapi.ru/cms/graphql \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $KEY" \
  -d '{"query":"{ blogPosts(limit: 50) { id title } }"}'

What’s next