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.

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 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.

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.

And the rest
- Content types and their fields are rows, not code. Add a "Product" with a price, a gallery and a relation from the admin, and the editor renders it.
- One deployment holds any number of sites, isolated row by row. One admin that switches between them; per-site people and roles.
- Revisions with a diff, scheduled publishing, translations, a parent tree, preview links for drafts.
- A media library that makes responsive WebP variants on upload, on your disk or on S3. Menus, redirects, SEO with sitemap and robots, forms that e-mail you, full-text search.
- A typed hook bus and a plugin engine with settings schemas; webhooks with a job queue, so a publish rebuilds the static site that reads it.
- A WordPress importer, so a client's existing site comes over with its posts, pages, categories and images.
- The CMS never renders pages. Each site is its own front-end reading a published-only GraphQL API; visitors touch the CMS only for forms and search.
Details
- One image, plus Postgres and Redis
From the repository. Open localhost:4000 and sign in as [email protected] / changeme123; production refuses the default secrets.SEED_DEMO=true docker compose -f docker/docker-compose.yml --profile full up -d- 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.