Skip to main content

Publishing

Navigation IA

Information architecture for docs. How to group pages, how deep to nest, when to split a tab, when to flatten a group. The IA principles behind the sidebar, not the config reference.

The docs sidebar is the contract you make with a reader: "here's the shape of what we document, pick a starting point". Bad IA reads like a sitemap dump. Good IA has hierarchy that matches how users think about the product. This guide covers the principles; for the config syntax, see navigation configuration.

First principle: match user mental models

Docs IA fails when it mirrors your internal team structure instead of users' tasks.

❌ Organised by team that built it
├── Platform Team
│   ├── Auth
│   ├── Rate limiting
│   └── Multi-region
├── Integrations Team
│   ├── Slack
│   └── Stripe
└── AI Team
    ├── Assistant
    └── Embeddings

✅ Organised by user task
├── Get Started
├── Authenticate
├── Common Integrations
│   ├── Slack
│   └── Stripe
├── AI Features
└── Deployment

Users come to docs with a job to do, not an org chart in mind.

The three shapes of docs IA

Most documentation sites fit one of three shapes:

Tutorial-first (narrative)

Best for: beginner-heavy tools, SaaS with a high learning curve. Shape: one long linear sequence. "Start here → Next → Next." Sidebar reads top-to-bottom. Example: React's old docs (pre-new-docs redesign).

Reference-first (lookup)

Best for: mature APIs with experienced users. Shape: heavy top-level categories (Auth / Objects / Webhooks / Errors), flat lists underneath. Example: Stripe, Twilio, AWS.

Task-first (goal-oriented)

Best for: complex platforms with multiple personas. Shape: sections named by user goal ("Deploy", "Authenticate", "Customise"). Mix of tutorial + reference inside each. Example: Vercel, Supabase, NookDocs.

Hybrid (the most common)

Reality: most real docs are 60% task-first + 30% reference + 10% tutorial. Top-level sections are tasks; deep in the reference trees, flat lookup lists. Tutorials siloed in their own section.

The two-click rule

From any landing page, the user should reach the content they want in two clicks: pick a section, pick a page.

Docs landing page
├── Click 1: "Deploy"         (top-level nav)
└── Click 2: "Custom domain"  (sidebar page)
= target page reached

Three clicks is okay but indicates the section could split. Four is too many — the reader either gives up or falls back to search.

Corollary: if your sidebar has three levels of nesting, flatten one. Users don't read past the second indent level. Either:

  • Merge sibling groups together.

  • Split the nested group into its own top-level tab.

  • Move the contents of the deepest groups into their parent (flatten the tree by one level).

Group granularity

Too broad

├── Documentation     (200+ pages, everything the product has)

One group for 200 pages means every page is equally visible — which means none of them are. Readers' eyes glaze.

Too narrow

├── Authentication
├── OAuth 2.0
├── JWT
├── API Keys
├── Session Cookies
├── Webhook Signatures
├── Password Hashing
├── ...

Seven groups for what's really one topic (auth). Fragmented + distracting.

Right

├── Authentication
│   ├── API keys
│   ├── OAuth 2.0
│   ├── JWT tokens
│   └── Webhook signatures

One group covering the domain. Sub-pages for distinct topics within. Reader skims the group header, finds the right page one level down.

Rule of thumb: 5-12 pages per group is the sweet spot. Less than 5 — consider merging with a sibling group. More than 12 — split or nest.

Section order matters

Sidebar order = reading order for first-time visitors. The default reading journey should make sense:

Orientation (1-3 pages)

"Introduction", "Quickstart", "Concepts". Let new readers know WHERE they are and WHAT's possible.

Core workflows (ordered by frequency)

The 80% use cases first. Authentication before advanced configuration. Basic CRUD before webhooks.

Customisation + configuration

Once the reader has something working, they want to tweak it. Theme, branding, per-page controls.

Advanced + edge cases

Multi-region, monorepo setup, self-hosted, custom React components. Late-sequence material.

Reference (lookup, not reading)

Schema reference, component library, API endpoints. Users jump here via search, not linear reading.

Meta (changelog, migration, contribution)

Bottom of the sidebar. Readers seek these specifically.

Tabs vs groups

NookDocs supports tabs (top-level horizontal nav) AND groups (sidebar sections). When to use which:

Use tabs forUse groups for
Major product areas (Docs / API Reference / Changelog / Guides)Sub-topics within an area (Authentication / Deploy / Integrations inside Docs)
Content that has its own lifecycle (versioned API Reference separate from prose Docs)Related pages that should share the same reading context
Audience switches (Developers tab vs Admins tab)Task clusters (all custom-domain topics in one Deploy group)

Rule of thumb: 3-6 tabs. Fewer than 3 isn't using the tab system; more than 6 crowds the top bar on mobile.

Drill-down vs expand-all

NookDocs supports two sidebar behaviours — the default varies by theme:

Expand-all (drill-down: false)

Every group label is a toggle. Click to expand. State persists per-session. Only one group expanded at a time is common.

Works well for:

  • Reference-heavy docs where readers know what they're looking for.

  • Large sidebars (20+ groups) where showing everything is overwhelming.

Drill-down (drill-down: true, group.root set)

Group label is a link. Click navigates to a group landing page. Sidebar shows the current section's pages only.

Works well for:

  • Task-first IA where each section is a distinct topic with its own landing.

  • Marketing-adjacent docs where the "group landing" can pitch what's inside.

Configure via interaction.drilldown + per-group root frontmatter.

Nested groups — use sparingly

Nested groups create three-level hierarchy in the sidebar:

Tab                      (top nav)
└── Group                (bold label)
    ├── Subgroup         (bold label, indented)
    │   ├── Page         (link)
    │   └── Page
    └── Subgroup

Cost: readers' eyes stop at level 2 (depth-of-field drops off fast). Pages buried in subgroups get less traffic.

Use nesting when: the taxonomy really has three levels (e.g. Integrations → Analytics → 13 providers). 16 flat "Integrations" pages is harder to scan than "Analytics (13) + Privacy (1) + Support (2)".

Avoid nesting when: there are only 2-4 pages in the subgroup. Flatten. We flattened NookDocs's own Integrations IA after realising the subgroup labels added noise.

Tab naming

Tabs have ~60 chars total on desktop, ~30 on mobile before truncation. Keep each tab name 1-2 words:

GoodBad
DocumentationFull Documentation Set
API ReferenceComplete REST API Reference
ChangelogRecent Updates & Releases
GuidesWriting & Publishing Guides
LLM-firstAI & LLM Integration

Two-word tabs beat one-word when the one-word is generic ("Docs", "Info", "Resources" — all meaningless). Three-word tabs are almost always over-explaining.

Group label naming

Same discipline. 1-2 words describing the topic, not the team or the abstraction:

GoodBad
DeployDeployment Operations
AuthenticationAuth & Security Configuration
AI ToolsArtificial Intelligence Integration Layer
AnalyticsMetrics, Reports & Analytics Suite

Verbs-as-labels ("Deploy", "Authenticate", "Customise") read more clearly than nouns-as-labels ("Deployment", "Authentication", "Customisation") because they match user intent.

Empty-state + orphan audits

Monthly IA hygiene:

Every nav group has ≥3 pages

A group with 1-2 pages is a signal — either merge with a sibling group or reconsider whether those pages need their own group.

Every page is in ≥1 nav group

Pages that exist but aren't navigated to are orphans. Either add to a group or delete.

No page is in multiple groups

Duplicates confuse readers. Pick the canonical location; link cross-group via prose if needed.

Sidebar fits one viewport height

Desktop 900px viewport ≈ 40 items visible. If the expanded sidebar scrolls, consider splitting the tallest group into a new tab.

Mobile considerations

On mobile, the sidebar lives behind a hamburger. Opening the menu is one tap; finding the target is the hard part.

  • Tab strip horizontal scroll — all tabs reachable via swipe. Don't let tab count blow past 6.

  • Groups collapse by default on mobile — readers see group headers, tap to expand. Keeps initial view scannable.

  • Search takes priority — on mobile, most users search instead of browse. Make the search affordance prominent.

Topical clusters = SEO

IA choices affect SEO (see linking guide). Strong topical clusters — pillar + supporting pages grouped together — signal topical authority. Scattered pages on related topics (one in "Deploy", one in "Configuration", one in "Advanced") look less authoritative.

When revising IA, consider the SEO cost of moving pages between sections — URL changes need redirects. Don't churn the IA for aesthetic reasons.

Common IA mistakes

Related

Was this page helpful?

Last updated August 7, 2026