Site Configuration

config/site.yaml defines your site's identity and content structure.

Full reference

# Site identity
title: "My Site"
description: "A site built with Dune CMS"
url: "https://example.com"

# Author
author:
  name: "Your Name"
  email: "you@example.com"        # optional

# HTML metadata (becomes <meta> tags)
metadata:
  og:type: "website"
  og:site_name: "My Site"
  twitter:card: "summary_large_image"

# Taxonomy types enabled for this site
taxonomies:
  - category
  - tag
  - author

# Route aliases (URL → URL)
routes:
  "/docs": "/documentation"
  "/blog/rss": "/api/feed"

# Redirects (301 by default)
redirects:
  "/old-page": "/new-page"
  "/legacy/post": "/blog/post"

# Home page slug override (optional — auto-detected if omitted)
home: "welcome"

# Additional CORS origins for the REST API (optional)
cors_origins:
  - "https://app.example.com"

# RSS & Atom feed settings (optional)
feed:
  enabled: true        # Set to false to disable /feed.xml and /atom.xml
  items: 20            # Number of most-recent dated pages to include
  content: "summary"   # "summary" (excerpt) or "full" (full HTML)

# Sitemap settings (optional)
sitemap:
  exclude:             # Route prefixes to omit from /sitemap.xml
    - "/private"
    - "/members"
  changefreq:          # Per-route changefreq overrides (longest prefix wins)
    "/": "hourly"
    "/blog": "daily"

Key fields

title and description

Your site's name and tagline. Used in templates and <meta> tags.

url

The canonical base URL. Important for generating absolute URLs in sitemaps and Open Graph tags. Set this to your production domain.

taxonomies

An array of taxonomy type names. This defines WHICH taxonomies your site uses. Content pages can then use any of these in their frontmatter taxonomy block.

Default: ["category", "tag"]

home

The slug of the page that serves as the site's home page (/). Optional — if omitted, Dune auto-detects the home page by taking the slug of the first ordered top-level page in the content tree. Falls back to "home" if no ordered pages exist.

Set this explicitly if Dune picks the wrong page, or if your home content folder has an unusual name:

home: "start"   # serves /content/start/ at /

cors_origins

Additional origins allowed to make cross-origin requests to the REST API. The origin derived from site.url is always permitted. Add extra origins for headless or decoupled frontends hosted on a different domain:

cors_origins:
  - "https://app.example.com"
  - "https://staging.example.com"

Without this list, API requests from other domains will be blocked by the browser (CORS policy).

feed

Controls RSS 2.0 and Atom 1.0 feed generation. See RSS & Atom Feeds for full details.

Key Default Description
enabled true Set to false to disable both feeds and hide <link> discovery tags
items 20 Number of most-recent dated pages to include
content "summary" "summary" (auto-generated excerpt) or "full" (fully rendered HTML)

sitemap

Controls sitemap generation. See Sitemap for full details.

Key Default Description
exclude [] Route prefixes to omit from /sitemap.xml. Exact and prefix match.
changefreq {} Per-route <changefreq> overrides. Longest matching prefix wins.

routes and redirects

routes are aliases — both URLs serve the same content. redirects send visitors to a new URL with a 301 status. Use redirects for old URLs you want to retire; use routes for permanent alternative paths.