27. Contributing to Documentation
27.1 Adding Images
When adding screenshots or diagrams:
- Use descriptive file names:
twitch-dashboard-stream-key.pngnotscreenshot1.png - Optimize size: Max 500KB per image; use PNG for screenshots, SVG for diagrams
- Always include alt text:
- Store in:
docs/images/<SECTION>/, for exampledocs/images/services/. Link with a path relative to the page: the example above is from a page indocs/services/
27.2 Style Guide
27.2.1 Terminology
Use consistent terminology and capitalization throughout documentation:
- Docker (not "docker" or "DOCKER")
- GitHub (not "github" or "GITHUB")
- docker compose (not "docker-compose" or "Docker Compose")
- FFmpeg (not "ffmpeg" or "FFMPEG")
- nginx (not "Nginx" or "NGINX")
- stream key (lowercase in body text)
- environment variable (not "env var" in formal documentation)
27.2.2 Headings
- Use Title Case: "Change Relay Settings" not "Change relay settings"
- Keep headings short and descriptive
- Don't skip heading levels (h2 → h4)
27.2.3 Code Blocks
Always include a language tag:
For placeholders, use angle brackets:
27.2.4 Links
- Use descriptive link text (not "click here")
- Add
{target="_blank"}for external links - Use relative paths for internal links:
../services/twitch.md
27.3 Front Matter
All documentation pages should include front matter:
---
title: Page Title
description: One-sentence summary for search
audience: users|operators|developers
doc_type: tutorial|howto|explanation|reference
tags: [relevant, tags]
lastReviewed: YYYY-MM-DD
version: 1.x
---
27.4 Avoiding Staleness
- Don't hardcode version numbers in prose (use "latest" or reference variables)
- Don't include test counts or specific numbers that change frequently
- Don't duplicate lists that are maintained elsewhere (link to the source instead)
- Update
lastRevieweddate when making significant changes
27.5 Testing Documentation
Before submitting:
- Install the docs dependencies once:
pip install -r requirements.txt - Build locally:
mkdocs serve - Check your links by hand, or run the checker locally:
CI=true mkdocs build --strict. CI checks links only when docs changes are pushed to1.x, after merge, so a broken link fails the deploy rather than the PR. The local check also tests external links, and GitHub may answer them with429when rate-limited: rerun later - Verify code examples are copy-pasteable
- Test any commands/examples you've added
27.6 See Also
- Run the Tests - Running the test suites and CI
- Add a Streaming Service - Extending the system