π Contributing to the Documentation β
Welcome! This guide will help you contribute to the Tellia documentation. Our docs are built with VitePress, making it easy to write and maintain high-quality documentation.
Quick Start β
Prerequisites β
- Node.js 24+ installed (we recommend using NVM)
- Basic knowledge of Markdown
- The repository cloned locally
Running the Documentation Locally β
Install dependencies from the repo root (if not already done):
bashpnpm installStart the VitePress dev server:
bashpnpm docsOr equivalently from anywhere in the repo:
bashpnpm --filter docs devOpen your browser to
http://localhost:5174
The documentation will hot-reload as you make changes!
NOTE
pnpm dev from the repo root launches the frontend + backend dev servers, not the docs. Always use pnpm docs to work on documentation.
Documentation Structure β
Our documentation is organized in the /docs folder:
docs/
βββ .vitepress/ # VitePress configuration
β βββ config.mts # Site config, navigation, and sidebar
βββ getting-started/ # Onboarding guides
βββ infrastructure/ # Deployment and infrastructure docs
βββ observability/ # Logging, APM, and monitoring
βββ coding-guides/ # Development best practices
βββ skills/ # Shared Claude Code skills (copy into .claude/)
βββ index.md # Documentation homepageWriting Documentation β
Creating a New Page β
Create a new
.mdfile in the appropriate folder:bash# Example: Adding a new coding guide touch docs/coding-guides/my-new-guide.mdAdd frontmatter and content:
markdown# My New Guide Brief introduction to what this guide covers. ## Section 1 Content here...Add the page to the sidebar in
docs/.vitepress/config.mts:typescript{ text: 'π₯·πΏ Coding Guides', items: [ { text: 'My New Guide', link: '/coding-guides/my-new-guide' }, // ... other guides ] }
Markdown Features β
VitePress supports extended Markdown features β read their documentation.
Shared Skills β
Reusable Claude Code skills (e.g. worktree, review-issue) are version-controlled under docs/skills/, one folder per skill holding the complete skill (SKILL.md + any scripts). Because .claude/ is gitignored, this folder is the shared source of truth β teammates install a skill into their own .claude/ by asking Claude to "add the <name> skill" or copying the folder (cp -R apps/docs/skills/<name> .claude/skills/<name>).
The raw skill files are excluded from the rendered site (srcExclude: ['skills/*/**'] in config.mts); only skills/README.md renders. To add a new shared skill, drop it in docs/skills/<name>/ and list it in that README.
Deploying changes β
pnpm --filter docs build && pnpm --filter docs deployConfiguration β
The main configuration file is docs/.vitepress/config.mts. This controls:
- Site metadata (title, description)
- Navigation (top nav bar)
- Sidebar (left sidebar structure)
- Theme customization
- Plugins (we use Mermaid for diagrams)
Tips and Best Practices β
- Preview your changes before submitting a PR
- Check for broken links - VitePress will warn you about dead links
- Use consistent formatting - follow the style of existing docs
- Keep it maintainable - documentation should be easy to update
- Cross-reference related documentation pages
- Version-specific info - note if a feature is version-specific
Getting Help β
- VitePress Documentation: https://vitepress.dev/
- Markdown Guide: https://www.markdownguide.org/
- Ask the team on Slack if you need help