mk-cms

A headless CMS for the people who build websites for others: one instance, many sites.

Version 0.1. The backend and the admin are complete; a commerce plugin is not started.

The mk-cms admin dashboard: entries per content type, a status breakdown and the recent activity of a small studio site
The demo site that SEED_DEMO imports on first boot

A list that behaves like a list.

Status tabs, sortable columns, a filter, bulk publish, trash and duplicate. Trashed entries can be restored; deleting for good asks twice.

The Post list: All, Published, Draft, Scheduled and Trashed tabs, six published posts with slug, locale and update time

The editor follows the type.

Block content, an excerpt, and a sidebar with status, slug, taxonomies, SEO, schedule, parent and translations. Every field the type defines, nothing it does not.

Editing the post The lighthouse: two content blocks, the excerpt, and the status, slug, taxonomies, SEO, schedule, parent and translations panels

Types are made, not migrated.

Create a content type, add fields of thirteen kinds, reorder them. No deploy, no migration; the schema is data and the editor reads it.

The Content types page: Page and Post on the left with a form for a new type, the Post type open on the right with its content and excerpt fields and the Add field form

And the rest

Details

One image, plus Postgres and Redis
SEED_DEMO=true docker compose -f docker/docker-compose.yml --profile full up -d
From the repository. Open localhost:4000 and sign in as [email protected] / changeme123; production refuses the default secrets.
Runs on
Any Docker host with room for Postgres and Redis. NestJS, GraphQL, Angular on mk-kit.
Licence
AGPL-3.0, free and open source. A commercial licence is available for companies that cannot use the AGPL.
Source
github.com/mkornas/mk-cmsThe README is the manual: read it.