Skip to content

Navbar, footer and reserved fields

navbar-links, footer, content, $schema, and the three reserved keys.

navbar-links[].labelstringrequired

Link text, 1–60 characters.

navbar-links[].urlstringrequired

Destination.

navbar-links[].style"minimal" | "filled" | "outlined"default: minimal

Visual treatment.

navbar-links[].externalbooleandefault: false

Marks the link as leaving the site.

footer.socials[].platform"twitter" | "github" | "discord" | "linkedin" | "youtube" | "website"required

Which social icon to render.

footer.socials[].urlstringrequired

Absolute URL.

footer.columns[].labelstringrequired

Column heading, 1–60 characters.

footer.columns[].linksobject[]required

At least one { label, url }.

footer.statusobject

{ label, url? } — a minimal status region. No indicator enum, no polling.

footer.columns[].links[].url and footer.status.url are base-prefixed when root-relative — write /quickstart, not /docs/quickstart. This is the opposite of links in page prose, which must carry the prefix themselves. footer.socials[].url is always taken verbatim.

content.dialect"reed" | "fern" | "mintlify"default: reed

How to interpret component props in your MDX.

See Content dialect — this is the field migrated projects almost always need.

$schemastring

Editor-only JSON Schema hint. Accepted and otherwise completely ignored by Reed.

It has no effect on any other field’s validation, so adding, removing or hand-editing it is always safe.

These three keys are accepted and ignored. They are placeholders for future functionality, and their contents are not validated.

Do not infer support from their presence. Multi-version, multi-product and multi-language documentation are architectural features, not a few extra fields, and none of them is implemented. Writing a versions block today produces exactly one version of your site, silently, because nothing reads it.

They exist in the schema so that a config carrying them does not fail the strict unknown-key check — not as a preview of behaviour.