Mira
All docs

Configuration

Every key in mira.config.json, with types and defaults.

Mira reads mira.config.json from the project root. Every key is optional. Unknown keys fail the build, so a typo never passes silently.

{
  "site": {
    "title": "My site",
    "description": "Notes on design and code.",
    "url": "https://example.com",
    "lang": "en"
  },
  "scheme": "dark",
  "transitions": {
    "default": "fade",
    "pairs": { "/posts/ -> /posts/*": "slide-up" }
  },
  "prefetch": { "eagerness": "moderate", "prerender": true },
  "theme": { "ink": "#f4f1ea" },
  "fonts": [
    { "family": "Inter", "src": "/fonts/Inter.woff2", "preload": true }
  ],
  "collections": {
    "posts": { "fields": { "title": "string", "date": "date" } }
  },
  "agents": { "twins": true, "robots": { "*": "allow" } },
  "headers": { "emit": true, "hsts": true },
  "hosts": { "vercel": {} },
  "redirects": { "/old/": "/new/" },
  "budgets": { "page_kb": 14 }
}

site

KeyTypeDefaultMeaning
titlestringMira siteSite name, used in titles, feeds, and llms.txt
descriptionstringnoneDefault page description
urlstringnoneAbsolute origin such as https://example.com; enables canonical URLs, the sitemap, and feeds
langstringenThe lang attribute of every page
imagestringnoneSocial card image under public/, such as /og.png
image_altstringnoneAlt text for the social card
twitterstringnoneThe site’s X handle, such as @example
theme_colorstringnoneBrowser UI color, such as #0b0b0d
same_aslist[]Profile URLs for the site’s structured data

scheme

dark, light, or system. Default dark. See Theming.

transitions

KeyTypeDefaultMeaning
defaultstringfadeTransition when nothing more specific applies
pairsobject{}"<from> -> <to>" keys mapped to transition names

See Page transitions.

prefetch

KeyTypeDefaultMeaning
eagernessstringmoderateconservative, moderate, or eager
prerenderbooleantruePrerender on press

theme

An object of token overrides. Nested keys join with dashes into custom property names: { "radius": { "md": "10px" } } sets --radius-md. Values are strings or numbers. See Theming for the tokens you can set.

fonts

A list of faces with family, src, weight, style, and preload. See Fonts.

collections

Schemas keyed by collection name, each with fields and an optional strict (default true). See Content collections.

agents

KeyTypeDefaultMeaning
twinsbooleantrueWrite Markdown twins, llms.txt, and llms-full.txt
robotsobject{ "*": "allow" }User agent to allow or disallow; wins over the switches below
searchstringallowSearch engine indexing
answersstringallowAI answer engines that fetch and cite pages
trainingstringallowCrawlers that collect pages for AI training
contentbooleantruePublish collections and data files under /_mira/ for agents and MCP

headers

KeyTypeDefaultMeaning
emitbooleantrueWrite _headers and vercel.json
hstsbooleantrueInclude Strict-Transport-Security

hosts

The hosts to write config for, each mapped to its options. Mira writes the host’s own config file on every build. See Deploying for what each one writes.

KeyOptions
vercel, netlify, github, firebase, azure, docker, deno, s3none: {}
cloudflareproject: the Pages project name
renderservice: the service name

An unknown host fails the build and lists the known ones.

redirects

Old paths mapped to new paths or URLs, as permanent redirects. Each one is written in every host’s format, plus a redirect page at the old path. Sources start with /; targets are a path starting with / or an https:// URL. See Deploying.

budgets

KeyTypeDefaultMeaning
page_kbnumbernoneLargest gzipped page size in KB; larger pages fail the build