Public website and documentation portal for the SnapDog multiroom audio ecosystem. It contains the product landing page, SnapDog server/client documentation, API reference, and SnapDog OS installation guides.
Requires Node.js 22 or newer.
npm ci
npm run devOpen http://localhost:4321. Production output is generated with:
npm run build
npm run previewsrc/pages/index.astro— landing page and channel-aware OS downloadssrc/content/docs/docs/— Starlight documentation pagessrc/components/— shared landing-page and documentation visualssrc/assets/openapi.json— generated API contract from thesnapdogrepositorysrc/content/docs/docs/api-reference.mdx— generated, visible endpoint and schema referencepublic/— static images and downloadable presentation assets
The snapdog repository generates its OpenAPI contract from the Rust route
registry and synchronizes it through an auto-merge PR. The same workflow
regenerates the visible API reference. Website CI rejects a stale generated
reference, missing REST paths, and schema-bound JSON examples that no longer
match required OpenAPI fields.
When adding or changing an API route:
- Update the Rust OpenAPI annotations and registry in
snapdog. - Run
cargo run --package xtask -- gen-api-spec openapi.jsonand commit it. - Update curated examples in
src/content/docs/docs/api-rest.mdxwhen needed. - Run
npm run docs:generate,npm run docs:check, andnpm run build.
Vercel deploys the Astro site. SnapDog OS release workflows trigger a fresh
deployment after publishing so the landing page resolves the current release
and beta manifests from updates.snapdog.cc.