Reference
Docs site maintenance
Maintain the Astro/ZueDocs site without mixing JavaScript tooling into the Rust root.
Workspace boundary
Everything required by the web app lives in docs/:
docs/package.json
docs/bun.lock
docs/astro.config.mjs
docs/vercel.json
docs/scripts/
docs/src/
The repository root intentionally has no Node package or Astro configuration.
Development
just docs-install
just docs-dev
Validation
just docs-test
just docs-check
Astro check is sufficient locally; GitHub Actions builds the production output before deploying to Vercel.
Vercel
Set the Vercel project Root Directory to docs and connect its GitHub repo,
but keep git.deploymentEnabled: false in the committed vercel.json. The
.github/workflows/docs.yml workflow responds to docs/** changes on
main, validates Astro, and deploys with the Vercel CLI. Rust-only and
Cargo changes never request a Vercel deployment, so they cannot use its
daily deployment quota through this pipeline.
The one-time setup provisions a project-scoped CI token as the VERCEL_TOKEN
GitHub Actions secret and saves the two non-sensitive project IDs as Actions
variables. The GitHub workflow builds and deploys Astro’s static
output with --prebuilt, avoiding broad settings calls that may fail with
restricted tokens. Agents use only just docs-check for local Astro
validation. just docs-test validates both the GitHub path
filter and the retained local Git diff helper docs/scripts/should-build.mjs.
It is deliberately not wired to ignoreCommand, because a canceled
Vercel Ignored Build Step still counts toward deployment quotas.