Search Documentation

Search for pages and headings in the documentation

Real-World Documentation Examples

Here are three realistic documentation setups using different CelestialDocs strategies.

Example 1: Simple Library Documentation

Project: A JavaScript library with modest documentation

File Structure:
content/my-lib/
β”œβ”€β”€ introduction.md
β”œβ”€β”€ installation.md
β”œβ”€β”€ getting-started/
β”‚   β”œβ”€β”€ first-steps.md
β”‚   β”œβ”€β”€ configuration.md
β”‚   └── examples.md
β”œβ”€β”€ api/
β”‚   β”œβ”€β”€ overview.md
β”‚   β”œβ”€β”€ core-functions.md
β”‚   β”œβ”€β”€ utilities.md
β”‚   └── types.md
└── troubleshooting.md

Navigation (Single Group, Auto-Generated):
[πŸ“– Learn]
β”œβ”€β”€ πŸ“– API
β”‚   β”œβ”€β”€ Overview
β”‚   β”œβ”€β”€ Core Functions
β”‚   β”œβ”€β”€ Utilities
β”‚   └── Types
β”œβ”€β”€ πŸš€ Getting Started
β”‚   β”œβ”€β”€ Configuration
β”‚   β”œβ”€β”€ Examples
β”‚   └── First Steps
└── πŸ†˜ Help
    └── Troubleshooting

Configuration:

export const SIDEBAR_NAVIGATION = {
    "my-lib": {
        defaultTab: { label: "Docs", icon: "πŸ“–" },
        groups: [
            { id: "api", label: "API", autoGenerated: true },
            { id: "getting-started", label: "Getting Started", autoGenerated: true },
            { id: "help", label: "Help", autoGenerated: true },
        ],
    },
};

Why this works:

  • βœ… Simple structure matches project complexity
  • βœ… Auto-generation requires zero maintenance
  • βœ… Alphabetical ordering is intuitive for API docs
  • βœ… Easy to add new pages

Example 2: Complex Product Documentation (Multi-Tab)

Project: A SaaS platform with user docs and API reference

Navigation Structure:
[Getting Started] [User Guide] [API Reference] [Help]
        ↓
When "User Guide" tab active:
β”œβ”€β”€ πŸ“± Basics
β”‚   β”œβ”€β”€ Dashboard Overview
β”‚   β”œβ”€β”€ Profile Setup
β”‚   └── Account Settings
β”œβ”€β”€ 🎯 Features
β”‚   β”œβ”€β”€ Projects & Teams
β”‚   β”œβ”€β”€ Collaboration
β”‚   β”œβ”€β”€ Automations
β”‚   └── Integrations
└── βš™οΈ Advanced
    β”œβ”€β”€ Advanced Search
    β”œβ”€β”€ Custom Workflows
    └── API Integration

When "API Reference" tab active:
β”œβ”€β”€ πŸ” Authentication
β”‚   β”œβ”€β”€ API Keys
β”‚   β”œβ”€β”€ OAuth 2.0
β”‚   └── JWT Tokens
β”œβ”€β”€ πŸ“‘ REST API
β”‚   β”œβ”€β”€ Users
β”‚   β”œβ”€β”€ Projects
β”‚   β”œβ”€β”€ Tasks
β”‚   └── Comments
└── πŸ”— Webhooks
    β”œβ”€β”€ Event Types
    └── Payload Reference

Configuration:

export const SIDEBAR_NAVIGATION = {
    platform: {
        defaultTab: { label: "Getting Started", icon: "πŸš€" },
        groups: [
            // Default tab items
            {
                id: "getting-started-overview",
                label: "Overview",
                entries: [{ slug: "getting-started" }, { slug: "quick-tour" }],
            },
            // User Guide Tab
            {
                id: "user-guide",
                label: "User Guide",
                tab: true,
                groups: [
                    {
                        id: "basics",
                        label: "Basics",
                        autoGenerated: true,
                    },
                    {
                        id: "features",
                        label: "Features",
                        autoGenerated: true,
                    },
                    {
                        id: "advanced",
                        label: "Advanced",
                        autoGenerated: true,
                    },
                ],
            },
            // API Reference Tab
            {
                id: "api",
                label: "API Reference",
                tab: true,
                groups: [
                    {
                        id: "authentication",
                        label: "Authentication",
                        autoGenerated: true,
                    },
                    {
                        id: "rest-api",
                        label: "REST API",
                        groups: [
                            { id: "users", label: "Users", autoGenerated: true },
                            { id: "projects", label: "Projects", autoGenerated: true },
                            { id: "tasks", label: "Tasks", autoGenerated: true },
                            { id: "comments", label: "Comments", autoGenerated: true },
                        ],
                    },
                    {
                        id: "webhooks",
                        label: "Webhooks",
                        autoGenerated: true,
                    },
                ],
            },
            // Help Tab
            {
                id: "help",
                label: "Help",
                tab: true,
                groups: [
                    {
                        id: "faq",
                        label: "FAQ",
                        entries: [{ slug: "help/faq" }],
                    },
                    {
                        id: "troubleshooting",
                        label: "Troubleshooting",
                        autoGenerated: true,
                    },
                ],
            },
        ],
    },
};

Why this works:

  • βœ… Tabs separate user guide from API docs
  • βœ… Nested groups for API resources
  • βœ… Hybrid approach: manual structure + auto-generation
  • βœ… Each section can grow independently

Example 3: Enterprise Framework (Deep Nesting + Multiple Collections)

Project: Multi-product documentation ecosystem

Collection 1: "docs" (General Documentation)
[Learn] [Patterns] [Help]
    ↓
β”œβ”€β”€ πŸš€ Getting Started
β”‚   β”œβ”€β”€ Installation
β”‚   β”œβ”€β”€ Configuration
β”‚   └── First Application
β”œβ”€β”€ πŸ“š Core Concepts
β”‚   β”œβ”€β”€ Architecture Overview
β”‚   β”œβ”€β”€ Components
β”‚   β”‚   β”œβ”€β”€ View Layer
β”‚   β”‚   β”œβ”€β”€ State Management
β”‚   β”‚   └── Routing
β”‚   β”œβ”€β”€ Services
β”‚   β”‚   β”œβ”€β”€ HTTP Client
β”‚   β”‚   β”œβ”€β”€ Authentication
β”‚   β”‚   └── Data Services
β”‚   └── Advanced
β”‚       β”œβ”€β”€ Performance Optimization
β”‚       β”œβ”€β”€ Testing
β”‚       └── Deployment

Collection 2: "api" (API Reference)
[v1 Legacy] [v2 Current] [v3 Beta]
    ↓ (when v2 selected)
β”œβ”€β”€ πŸ” Authentication
β”œβ”€β”€ πŸ“‘ Resources
β”‚   β”œβ”€β”€ Users
β”‚   β”œβ”€β”€ Organizations
β”‚   └── Data Models
└── πŸ”§ Advanced
    β”œβ”€β”€ Rate Limiting
    β”œβ”€β”€ Error Handling
    └── Webhooks

Configuration:

// Two separate collections
export const CONTENT: ContentConfig = {
    systems: [
        {
            id: "docs",
            dir: "content/docs",
            route: "/docs",
            defaultDocRedirect: "/docs/getting-started",
        },
        {
            id: "api",
            dir: "content/api",
            route: "/api",
            defaultDocRedirect: "/api/v2/overview",
        },
    ],
};

export const SIDEBAR_NAVIGATION = {
    docs: {
        defaultTab: { label: "Learn", icon: "πŸ“–" },
        groups: [
            {
                id: "getting-started",
                label: "Getting Started",
                tab: true,
                entries: [
                    { slug: "getting-started/installation" },
                    { slug: "getting-started/configuration" },
                    { slug: "getting-started/first-app" },
                ],
            },
            {
                id: "concepts",
                label: "Core Concepts",
                tab: true,
                groups: [
                    {
                        id: "architecture",
                        label: "Architecture Overview",
                        entries: [{ slug: "concepts/architecture" }],
                    },
                    {
                        id: "components",
                        label: "Components",
                        groups: [
                            { id: "view-layer", label: "View Layer", autoGenerated: true },
                            { id: "state-mgmt", label: "State Management", autoGenerated: true },
                            { id: "routing", label: "Routing", autoGenerated: true },
                        ],
                    },
                    {
                        id: "services",
                        label: "Services",
                        groups: [
                            { id: "http", label: "HTTP Client", autoGenerated: true },
                            { id: "auth", label: "Authentication", autoGenerated: true },
                            { id: "data", label: "Data Services", autoGenerated: true },
                        ],
                    },
                    {
                        id: "advanced",
                        label: "Advanced",
                        autoGenerated: true,
                    },
                ],
            },
        ],
    },
    api: {
        defaultTab: { label: "v2 Current", icon: "πŸ“‘" },
        groups: [
            {
                id: "v1",
                label: "v1 Legacy",
                tab: true,
                groups: [{ id: "resources", label: "Resources", autoGenerated: true }],
            },
            {
                id: "v2",
                label: "v2 Current",
                tab: true,
                groups: [
                    { id: "auth", label: "Authentication", autoGenerated: true },
                    {
                        id: "resources",
                        label: "Resources",
                        groups: [
                            { id: "users", label: "Users", autoGenerated: true },
                            { id: "orgs", label: "Organizations", autoGenerated: true },
                        ],
                    },
                    {
                        id: "advanced",
                        label: "Advanced",
                        autoGenerated: true,
                    },
                ],
            },
            {
                id: "v3",
                label: "v3 Beta",
                tab: true,
                groups: [{ id: "beta-features", label: "Beta Features", autoGenerated: true }],
            },
        ],
    },
};

Why this works:

  • βœ… Multiple collections for different products
  • βœ… Deep nesting for complex concepts
  • βœ… Tabs for version management
  • βœ… Hybrid approach scales to 1000+ pages
  • βœ… Each section independent but same codebase

Choosing Your Structure

Use Simple (Example 1) when:

  • Documentation is small (< 50 pages)
  • Content doesn’t have major sections
  • Auto-generation ordering works

Use Multi-Tab (Example 2) when:

  • Multiple audiences (users vs. developers)
  • Separate concerns (guides vs. API)
  • Medium documentation (100-500 pages)

Use Enterprise (Example 3) when:

  • Multiple products or versions
  • Deep hierarchies needed
  • Large documentation (500+ pages)
  • Complex organization

This Site as Example

This documentation site demonstrates all concepts through its own structure:

[Overview] [Getting Started] [Navigation System] [Configuration]
           [Generation Strategies] [Content] [Advanced Topics]

Each tab contains:
- Nested groups (Core Concepts > Entries, Groups, Nested Groups)
- Auto-generated sections (patterns, help)
- Hybrid approach (pinned important pages)
- Multiple pages demonstrating the feature

This is a working example of everything you’ve learned!