Domma CMS User Manual

Pages

Updated by Darryl Waterhouse on 29 September 2026 2 min read

Pages are stored as Markdown files in content/pages/. Each file has a YAML frontmatter block at the top followed by the page body in Markdown, with shortcodes anywhere in the body. Edit them at Content > Pages.

URL mapping

File path Public URL
content/pages/index.md /
content/pages/about.md /about
content/pages/services/index.md /services
content/pages/services/design.md /services/design
content/pages/404.md Shown for any missing page, once published

Changing a page's URL Path in the editor moves the file. Menu links to the page follow it, and SEO (when switched on) adds a redirect from the old address.

Frontmatter reference

---
title: My Page
description: A short description for search results.
status: published        # published | draft
layout: default          # a layout from config/presets.json
visibility: public       # public | private | a role | =a role | a list
project: core            # blank = inherit from the URL
tags: [one, two]         # editorial tags - weighted in site search
sortOrder: 99
category: Guides
theme: ocean-light       # optional per-page theme
---
# Page heading
Your Markdown content goes here.

The editor's Page Details tab sets all of these, and the SEO tab sets the page's search title and description.

Drafts and previews

A page with status: draft answers 404 to visitors. Signed in with permission to view pages, you see the real page at its real address with a draft banner and a Publish button. New pages start as drafts.

  • Live Preview in the editor shows the unsaved page as it will look, at desktop, tablet or phone width.
  • Share link (in Live Preview) makes an expiring link that shows one unpublished page to someone with no account. You can withdraw it at any time.

Who can see a page

visibility takes public (the default), private (the level-0 role only), a role name ("that role and above"), =role ("that role only"), or a list of these. A visitor who may not see a page gets a 403. A page in a disabled project answers 404 to everyone. See Users & Roles for how the role ladder works.

A page is added to the navbar or footer in Content > Menus, not in the page editor. See Navigation.

Layouts

Layouts are defined in config/presets.json: default, with-sidebar, minimal, blank, landing, article, product, dashboard and wide. Pick one per page in the editor; new pages use default (pageDefaults in config/content.json). Manage them at System > Layouts.

History

Every save keeps a version. The editor's History tab lists them with their date and time (dd/mm/yyyy HH:mm) and lets you compare it with the editor, restore or delete it, or save a named version. Restoring saves a snapshot of the current page first. Unsaved work is kept as a draft in your browser and offered back if you return.

Custom CSS

The editor's CSS pane edits content/custom.css, which applies to the whole site, not just the page you are on. It is also under System > Site Settings > Custom CSS.