Meridian handbook

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.

BinaryForModules compiled in
engine-cmsAny content site: pages, news, events, guides and collectionsAI, Forms, Newsletter, Translation
engine-dmoDestination marketing: everything in engine-cms, plus a directory of places and the businesses behind themAI, 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"]
  end

Both 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

SectionWhat it covers
Getting startedGetting and installing the engine, your first project, the project layout, the day-to-day development loop and upgrading
ConceptsThe ideas everything else rests on: sites, locales and routes; documents and publishing; modules and bundles; stable ids; users and permissions
Content modellingContent types, every field type, validation, relations, localisation, and planning and applying schema changes
TemplatesThe template language, the context, filters and tags, components, images, links, SEO, forms, multisite templates, the frontend build and template tests
FeaturesMedia, search, navigation, forms and enquiries, redirects, analytics, newsletters and AI assistance
DMOWhat engine-dmo adds: the directory, partners and the portal, CRM, claims, promotions, landing pages, affiliates, paid listings and member reports
ExtendingExtensions built as Go plugins, and the first-party extensions
IntegratingThe content API, the content MCP, webhooks, and moving content in from another system
DeployingConfiguration and secrets, the container images, a single-node deployment, backups, upgrades and monitoring
ReferenceEvery command, every configuration file, the template API and every error code
For agentsRules, 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.

AddressWhat it is
https://docs.cherwell.studio/llms.txtEvery page by title, address and description
https://docs.cherwell.studio/llms-full.txtThe whole handbook as one Markdown file
https://docs.cherwell.studio/llms.mdx/concepts/stable-ids/content.mdOne page as Markdown

Inside a project, engine-dmo docs serve serves that project’s generated template API on localhost.

Where to start