The documentation portal for Gears — a Rust runtime for composable, secure-by-default platform components.
Built with Astro + Starlight, authored in Markdown/MDX, and shipped as a static site to GitHub Pages.
Content is ephemeral. Documentation lives in gears-rust/docs/web-docs/ (the source of truth). When you build or develop this site, a pre-step syncs the latest content:
- Local dev:
pnpm dev(ormake docs-previewfrom gears-rust) runspredevhook → syncs content from gears-rust → serves atlocalhost:4321 - CI deploy:
.github/workflows/deploy.ymlon merge to main (or ondocs-syncevent) → fetches gears-rust → syncs → builds → deploys to Pages
No content is committed to this repo — src/content/docs/ is gitignored.
-
Node.js 22.13 or newer (required by pnpm 11)
-
pnpm 11+ — enable it with Corepack (bundled with Node):
corepack enable pnpm
cd gears-rust
make docs-previewThis clones the docs site into .web-docs-preview/ and starts it at localhost:4321 with your local docs/web-docs/ content (including uncommitted edits).
With gears-rust as a sibling directory:
GEARS_RUST_PATH=../gears-rust pnpm devOr just pnpm dev (defaults to ../gears-rust).
pnpm install # install dependencies
pnpm build # build static site into ./dist
pnpm preview # preview the production build locally
pnpm check # type-check content and components (astro check)
pnpm lint:md # lint Markdown content (markdownlint)
pnpm links # check internal links in ./dist (run after build)These checks also run in CI on every push (.github/workflows/deploy.yml).
src/
components/ # Astro/Starlight UI components
content.config.ts # content collection config
layouts/ # page templates
astro.config.mjs # site config, sidebar, theme
public/ # static assets (images, diagrams)
scripts/
sync-docs.mjs # pull docs from gears-rust
sync.config.mjs # sync configuration
.github/workflows/
deploy.yml # fetch gears-rust → sync → build → deploy
Note: src/content/docs/ is gitignored; it's synced fresh from gears-rust.
- Edit documentation in
gears-rust/docs/web-docs/ - Preview locally:
cd gears-rust && make docs-preview - Commit & push to gears-rust main
- Automatic deploy:
notify-docs.yml(in gears-rust) dispatches adocs-syncevent →deploy.yml(here) fetches, syncs, builds, and deploys to Pages
One PR, one review, one merge → docs auto-published.
Translation dashboard (Lunaria) is available at /i18n (admin only). Content has no git history on this site (ephemeral model), so automated git-based progress tracking is not available. This is acceptable while translation volume is low; revisit if translations grow.
See LICENSE.