Build and publish the documentation
The documentation source, theme and deployment live in this repository. The site is configured for https://docs.tensorviz.dev/. The marketing website stays in its separate private repository and links to the docs; contributors do not need access to the website code or its deployment credentials.
index.md: docs overview.README.md: guide index.- Markdown guides,
reference/andimages/: documentation content. .vitepress/: configuration, theme, content preparation and verification.public/: logos and static assets.- Documentation workflow: checks and Firebase Hosting deployment.
- Hosting configuration: static docs site, deployed as
hosting:docs.
Contribute and preview
Edit the original Markdown or use Edit this page on GitHub on a published page, then submit a pull request. GitHub offers a fork to contributors without write access. Edit links map generated pages to their original files on main.
From the repository root:
npm ci --prefix docs
npm run dev --prefix docsBefore submitting changes:
python3 tooling/docs/check_links.py
npm run build --prefix docs
DOCS_BASE=/tensorviz/ npm run build --prefix docsThe build writes docs/.vitepress/dist/, with articles such as /quickstart.html at the docs host. It exports Markdown for Copy page, View Markdown and /llms.txt, and verifies rendered links, anchors, source-edit links, Markdown downloads and font licenses. /build-info.json identifies the source repository, commit and prefix. Generated content stays in ignored folders; edit the sources.
Publishing with GitHub Actions and Firebase
GitHub Actions builds the docs from this repository and publishes the checked artifact to Firebase Hosting. This follows the website's deployment approach; GitHub Pages is not involved. Publishing does not require changing repository visibility. Deployment stays disabled until the hosting identity is configured.
An administrator completes this setup once:
Create a dedicated docs Hosting site. It may share the website's Firebase project, but must have a different site ID. Attach
docs.tensorviz.devin the Firebase console and apply the exact DNS records Firebase supplies. Wait for Firebase to provision its HTTPS certificate.Create a docs deployment service account and grant Firebase Hosting Admin (
roles/firebasehosting.admin) on the selected project. Also grant a project custom role containing onlyserviceusage.services.get; the Firebase CLI uses it to check whether the Hosting API is enabled. Do not reuse or extend the website's deployment identity. Hosting roles apply to the project; use a separate Firebase project if the docs identity must be unable to deploy the website's Hosting site. The workflow's target selection is not an IAM boundary.Create a dedicated Workload Identity provider for GitHub's issuer
https://token.actions.githubusercontent.com. Mapgoogle.subjecttoassertion.subandattribute.repository_idtoassertion.repository_id. Restrict the provider's attribute condition to this repository,main, this workflow and its publishing events:textassertion.repository_id == '1435323397' && assertion.repository_owner_id == '328278954' && assertion.ref == 'refs/heads/main' && assertion.workflow_ref == 'tensorviz-org/tensorviz/.github/workflows/docs.yml@refs/heads/main' && assertion.event_name in ['push', 'workflow_dispatch']Grant
roles/iam.workloadIdentityUseron the docs service account to onlyprincipalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.repository_id/1435323397. No service-account JSON key or Firebase login token is needed in GitHub.Configure these repository Actions variables. A GitHub deployment environment or paid environment-protection feature is not required:
Variable Value DOCS_FIREBASE_PROJECT_IDFirebase project containing the docs site DOCS_FIREBASE_SITE_IDThe dedicated docs Hosting site ID DOCS_WORKLOAD_IDENTITY_PROVIDERFull projects/…/locations/global/workloadIdentityPools/…/providers/…resource nameDOCS_DEPLOY_SERVICE_ACCOUNTDocs service account email DOCS_PUBLISH_ENABLEDtrueonce setup is completeRun Documentation from
mainfor initial publication. Accepted docs changes onmainthen publish automatically.
Pull requests build with read-only repository access. Only the separate deployment job on main can request a Google identity and publish the artifact. It selects the docs target from the configured site ID, then deploys only hosting:docs. The configuration contains no functions, database rules or website source. The build needs no website checkout, production Canvas key or model weights.
Provider setup is described in Google's authentication action. Site targeting is described in Firebase's multisite guide.
Verify the overview, quickstart, local search, GitHub edit links and Markdown download at the custom domain before switching website links. The website's old /docs/ URLs can then redirect to this host, retaining article paths and anchors. Keep the existing preview available until that cutover succeeds. When moving the website's old /docs/ routes, use Firebase regex redirects: ^/docs/?$ to https://docs.tensorviz.dev/, and ^/docs/(?P<path>.+)$ to https://docs.tensorviz.dev/:path. The named capture retains trailing slashes on directory-style article URLs.
Guide images use the shared Canvas renderer with a source-preview fixture. They illustrate controls; they do not show measured runtime shapes.