Skip to main content

Configuration

Configuration File

Reference for nookdocs.config.json options.

NookDocs is configured via a nookdocs.config.json file in your docs base directory (the repo root for a single repo, or a subfolder for a monorepo).

Minimal example

{
  "name": "My Docs",
  "navigation": [
    {
      "group": "Getting Started",
      "pages": ["introduction"]
    }
  ]
}

Full reference

FieldTypeRequiredDescription
namestringYesYour documentation site name
themeobjectNoTheme customization
navigationarrayYesSidebar navigation groups
apiobjectNoAPI playground configuration
versionsstring[]NoVersion labels
redirectsarrayNoURL redirects
footerobjectNoFooter configuration

Navigation

Navigation is defined as an array of groups:

{
  "navigation": [
    {
      "group": "Group Name",
      "pages": [
        "page-one",
        "page-two",
        {
          "group": "Nested Group",
          "pages": ["nested/page"]
        }
      ]
    }
  ]
}

Page paths are relative to the docs base directory, without the file extension.

Theme

theme is the slug of a built-in theme. It sets the shell layout and the full token set — colors, spacing, typography scale, code-block framing.

{
  "theme": "cedar"
}

Ten ship today: larch (the default), cedar, obsidian, birch, oak, cypress, ember, sage, slate, terminal. See Theme for what each looks like. Older configs may name maple, classic, modern or minimal — legacy aliases that still resolve (maple→larch, classic→cedar, modern→ember, minimal→sage), but write the canonical slug.

Brand overrides

The theme decides how the site is built; these keys override what it chose. They sit beside theme, not inside it.

{
  "theme": "cedar",
  "colors": {
    "primary": "#0f766e",
    "logo": {
      "light": "/logo-light.svg",
      "dark": "/logo-dark.svg"
    }
  },
  "typography": {
    "fontFamily": "Geist Sans"
  },
  "codeBlockStyle": "inset"
}
KeyWhat it overrides
colors.primaryAccent color for buttons, links and focus rings. colors.light / colors.dark set it per mode.
colors.logoLogo images per mode, plus href for where the logo links.
typographyFont family and scale.
codeBlockStyleHow code blocks are framed, when you want a different treatment from the theme's.

theme took an object of these keys in an earlier format. It takes a slug now, and the overrides moved to the top level — a config using the old shape fails validation with "theme must be one of the built-in slugs". Run validate_{project}_config through MCP to check a file before committing it.

Was this page helpful?

Last updated August 11, 2026