Skip to main content

Mintlify Wiki — Layout & Structure Reference

How the live wiki at internal-wiki.xoxoday.com is laid out: navigation structure, where each menu/widget sits, sidebar behaviour, footer layout, and AI assistant placement. Use this to replicate the same structure in a different Mintlify documentation project.
For the visual styling (custom CSS, hover galleries, dot-grid background), see style.css at repo root.

1. Page-level layout — what sits where

Mintlify’s default chrome with our customizations. The wiki uses a 3-column layout on desktop:
On mobile, the left sidebar collapses behind a hamburger; the right TOC disappears entirely.

2. Top navbar

Configured in docs.jsonlogo and navbar. Currently navbar.links is empty. If you want extra buttons in the top-right (e.g. “Dashboard”, “Sign up”), add them like:
No top tabs. Mintlify supports a tabs strip immediately below the navbar (for splitting docs into “Guides / API Reference / Changelog” etc.). We don’t use it. The wiki’s structure lives entirely in the left sidebar.

3. Left sidebar — the actual navigation structure

The sidebar is built from docs.jsonnavigation.groups. 6 top-level groups in this order:
Critical setting: "interaction": { "drilldown": false } at the root of docs.json. This makes clicking on a group label (like “Products”) only expand/collapse the group — it does NOT navigate to the first child page. Without this, Mintlify auto-navigates to the first sub-page, which is confusing when users just want to browse.

Nesting depth

  • 1 level (e.g. “Getting started” → home page) — simple list
  • 2 levels (e.g. “Company” → “Teams” → pages) — most common
  • 3 levels (e.g. “FAQs” → “Empuls” → “Rewards & Recognition” → pages) — used for RFP repository where there’s genuine topical hierarchy
Avoid going beyond 3 levels — the sidebar gets hard to scan.

Hidden pages

Some .mdx files exist in the repo but are not in docs.json — they’re stub pages, hidden from the sidebar until content lands. Tracked in STUB_PAGES.md at the repo root. Currently 19 hidden pages (HR policies stubs, sales playbook stubs, etc.).

4. Right sidebar — Table of Contents

Auto-generated by Mintlify from h2 and h3 headings on the current page. No config needed. Shows page sections with click-to-jump anchors. Hidden on mobile and when the page has fewer than 2 headings.

5. AI Assistant (“Ask AI”)

Enabled by default on Pro/Enterprise Mintlify plans. No explicit config in docs.json — Mintlify includes it automatically. Where it appears:
  • Inside the top-center search bar as an “Ask AI” option (modern Mintlify default)
  • Can also appear as a contextual menu in the page header (where users can pick “Copy”, “View as Markdown”, “Open in ChatGPT”, “Open in Claude”)
We haven’t customized AI placement; Mintlify’s default behaviour is used. Indexing: The AI uses the wiki’s content as its knowledge base. To explicitly include hidden/stub pages in AI’s index, add to docs.json:
We don’t currently set this — only nav-visible pages are indexed.
Top-center of the navbar. Mintlify default — full-text search across all pages. Triggered by Cmd/Ctrl + K or clicking the bar. No config needed. Works out of the box.

7. Theme toggle

Top-right of the navbar. Toggles between light and dark mode. Mintlify default — no config needed. Light mode uses background.color.light = #F7F9FF (frosty blue-white). Dark mode uses background.color.dark = #06182D (deep navy).
Configured in docs.jsonfooter:
Left: social icons → LinkedIn, YouTube, Instagram. Center & right: two columns of link groups. Configured as:

9. Article-level UI elements (Mintlify defaults)

These appear inside the main content area, automatically:

10. Background and theming (visual chrome)

Configured in docs.json:
  • decoration: "gradient" → adds a soft top-edge gradient glow (Mintlify built-in)
  • color.light / color.dark → base background colours for each theme
On top of this, style.css adds a subtle dot-grid pattern via CSS — only visible if style.css is loaded (Pro plan custom CSS feature). Brand colour scheme:
Used by Mintlify for links, CTA buttons, active sidebar items.

11. Replicating this layout in a new wiki

Copy these files first:
Then in docs.json, swap these brand-specific bits: Keep these settings as-is for consistent UX behaviour:

12. Patterns we follow for new pages

When adding a new section to the wiki, the consistent layout is: Sidebar nesting rule: 1–2 levels deep is best. Go to 3 levels only when there’s a real categorical hierarchy (like the RFP repository’s product → module → topic structure). Hub-page pattern: Whenever a section has more than ~4 pages, create a landing/hub page first that summarises each sub-page in 3-4 lines with a link. Used on:
  • Onboarding Hub (/onboarding/overview)
  • Asset Library (/asset-library)
  • RFP Attachments (/rfp-attachments)
  • KPIs Hub (/people/kpis)
  • Xoxo Academy (/people/learning/xoxo-academy)
Stub page pattern: Pages that are work-in-progress get a <Info>**Stub** ...</Info> banner at the top and are removed from docs.json nav until content lands. Tracked in STUB_PAGES.md. Cross-section linking: Use absolute paths like /asset-library/empuls (relative to wiki root). Mintlify resolves these correctly.

13. Quick reference: every Mintlify config key we use

That’s the complete set. Everything else (search, AI assistant, theme toggle, TOC, breadcrumbs, prev/next nav, “Was this helpful?”) is Mintlify’s default and needs no config.