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!