Documentation
The documentation site is built with Docusaurus and lives in docs/site/.
Local Development
just docs-dev # Start dev server with hot reload
just docs-build # Build static site to docs/site/build/
just docs-serve # Serve the built site locally
Assets (Videos & Images)
Large assets (demo videos, hero video) are not stored in the repo. They are hosted as GitHub Release artifacts under the docs-assets-v1 tag in a separate tracehouse-assets repository.
The base URL is configured in docs/site/docusaurus.config.ts:
customFields: {
assetsBaseUrl: 'https://dmkskd.github.io/tracehouse-assets',
}
Components access videos via siteConfig.customFields.assetsBaseUrl:
const assetsBaseUrl = siteConfig.customFields?.assetsBaseUrl as string;
<video src={`${assetsBaseUrl}/hero.mp4`} />
To add or update an asset, upload it to the tracehouse-assets repository and reference the filename in the component.
Static images (favicon, logos) are stored normally in docs/site/static/img/.
Deployment
The site is deployed to GitHub Pages via the deploy-docs GitHub Actions workflow (.github/workflows/deploy-docs.yml).
- Trigger: Manual (
workflow_dispatch). Auto-deploy on push tomainis available but commented out. - Build:
npm ci && npm run buildindocs/site/ - Output: Static files in
docs/site/build/uploaded to GitHub Pages
Structure
docs/site/
├── docs/ # Markdown content
│ ├── getting-started.md
│ ├── architecture.md
│ ├── guides/ # How-to guides
│ ├── features/ # Feature documentation
│ ├── development/ # Development guides (this section)
│ └── reference/ # Reference material
├── src/
│ ├── pages/index.tsx # Landing page
│ ├── components/ # React components (features, FAQ)
│ └── css/ # Theme files
├── static/ # Static assets (images, favicon)
├── docusaurus.config.ts # Site configuration
└── sidebars.ts # Sidebar navigation