Contributing to Documentation
This guide explains how to add or edit documentation.
File Structure
Every markdown document gets its own folder to store assets:
32-billing/
├── _category_.yml # Defines order
├── overview/
│ ├── index.md # Main content
│ ├── billing.drawio # Source file (editable)
│ └── billing.drawio.svg # Rendered for embedding
├── models/
│ ├── index.md
│ └── models.drawio.svg
└── credit-system/
└── index.md
Naming Conventions
Areas (10-19)
- Use Johnny Decimal ranges
- Format:
XX-XX-area-name/ - Example:
10-19-infrastructure/
Categories (21, 22)
- Use two-digit numbers within the area range
- Format:
XX-category-name/ - Example:
21-api-walkthrough/
Pages (No Numbers)
- Use descriptive names without numbers
- Format:
topic-name/index.md - Example:
authentication/index.md
Page Ordering
Page order is controlled via _category_.yml files, NOT by numbering folders:
label: "API Walkthrough"
position: 1
items:
- setup
- api-design
- authentication # To insert, just add a line here
- controllers
To insert a new page:
- Create the folder with
index.md - Add the folder name to the
itemsarray in_category_.yml
Adding Diagrams
We use DrawIO for diagrams. Store both the source and rendered files:
- Create diagram in DrawIO (VS Code extension recommended)
- Save as
.drawioin the page folder - Export as
.drawio.svgfor embedding - Reference in markdown:

Frontmatter
Optional frontmatter for pages:
---
sidebar_label: 'Custom Label'
description: 'Brief description for SEO'
tags: [billing, credits]
---
Best Practices
- One topic per page: Keep pages focused
- Use relative links:
../other-pageor./diagram.svg - Include diagrams: Visual explanations help understanding
- Start with "Why": Explain the purpose before the "how"
- Keep examples real: Use actual code from the codebase