Meridian
What Meridian is, what the engine-cms and engine-dmo bundles each include, how this handbook is organised and where to start.
Meridian is a self-hosted content engine for place-based websites. You describe your content types, sites, locales and routes in YAML files, write templates, and run one binary against a PostgreSQL database. The same binary serves the public pages, the staff admin, the APIs and the background jobs.
This handbook is for the developer or integrator building a site on Meridian, and for the coding agent working alongside them. It describes the current engine, and only what is built.
The two bundles
Meridian ships as one binary per bundle. A bundle is the core content platform plus a fixed set of modules compiled into it. Both binaries take the same commands and read the same project layout; a project written for engine-cms runs on engine-dmo unchanged.
| Binary | For | Modules compiled in |
|---|---|---|
engine-cms | Any content site: pages, news, events, guides and collections | AI, Forms, Newsletter, Translation |
engine-dmo | Destination marketing: everything in engine-cms, plus a directory of places and the businesses behind them | AI, Forms, Newsletter, Translation, Directory, CRM, Memberships, Member portal, Claims, Promotions, Member report, Affiliates, Paid listings |
Every module of engine-cms is also in engine-dmo, so the DMO bundle is a superset:
flowchart TB
subgraph dmo["engine-dmo"]
subgraph cms["engine-cms"]
core["Core platform<br/>types, fields, locales, sites, publishing,<br/>media, search, API, MCP, admin, templates"]
cmsmods["AI, Forms, Newsletter, Translation"]
end
dmomods["Directory, CRM, Memberships, Member portal,<br/>Claims, Promotions, Member report,<br/>Affiliates, Paid listings"]
endBoth bundles include the core platform: the five core document types (page, article, event, guide, collection) and your own custom types, every field type, localisation with a shared structure and per-locale text, revisions and scheduled publishing, multiple sites on one install, the media library and image pipeline, search, navigation, redirects, declared endpoints, analytics, the content API, the content MCP, staff accounts with scoped roles, and the template language with its tooling.
engine-dmo adds the listing and area types, landing pages and embeddable widgets, organisations and people, membership tiers, the member portal and member API, ownership claims, paid promotion slots, member reports, affiliate links and paid listings. See Modules and bundles for what each module owns.
Run engine-dmo version (or engine-cms version) to see which bundle and modules a binary has:
engine-dmo version How this handbook is organised
| Section | What it covers |
|---|---|
| Getting started | Getting and installing the engine, your first project, the project layout, the day-to-day development loop and upgrading |
| Concepts | The ideas everything else rests on: sites, locales and routes; documents and publishing; modules and bundles; stable ids; users and permissions |
| Content modelling | Content types, every field type, validation, relations, localisation, and planning and applying schema changes |
| Templates | The template language, the context, filters and tags, components, images, links, SEO, forms, multisite templates, the frontend build and template tests |
| Features | Media, search, navigation, forms and enquiries, redirects, analytics, newsletters and AI assistance |
| DMO | What engine-dmo adds: the directory, partners and the portal, CRM, claims, promotions, landing pages, affiliates, paid listings and member reports |
| Extending | Extensions built as Go plugins, and the first-party extensions |
| Integrating | The content API, the content MCP, webhooks, and moving content in from another system |
| Deploying | Configuration and secrets, the container images, a single-node deployment, backups, upgrades and monitoring |
| Reference | Every command, every configuration file, the template API and every error code |
| For agents | Rules, the order of work and recipes for a coding agent building a Meridian site |
Reading the handbook as Markdown
This handbook is published at https://docs.cherwell.studio and describes the current engine. engine-dmo version says which engine you have; if a page describes something your binary does not do, upgrade the engine to get the newer behaviour.
| Address | What it is |
|---|---|
https://docs.cherwell.studio/llms.txt | Every page by title, address and description |
https://docs.cherwell.studio/llms-full.txt | The whole handbook as one Markdown file |
https://docs.cherwell.studio/llms.mdx/concepts/stable-ids/content.md | One page as Markdown |
Inside a project, engine-dmo docs serve serves that project’s generated template API on localhost.
Where to start
Install the engine
What you need: the binary or a container image, PostgreSQL, and optionally a search service and a mail service.
Your first project
Create a project, apply it to a database, seed it, serve it and sign in to the admin.
The development loop
The commands you run every day: dev up, check, schema plan and apply, render and guide.
Concepts
Sites, locales, routes, documents, revisions, publishing, modules, ids and permissions.
For agents
The working rules and recipes for a coding agent building a site with this handbook.