Docs / Project / Documentation & Site Build

Documentation and wrst.io

wurster-lab contains the Eleventy source for the wrst.io documentation surface in site/.

The canonical documentation remains in the repository-level docs/ directory. Every public Markdown document already contains the Eleventy navigation front matter used by the site.

Before a site build, the docs are synchronized into site/src/docs/:

npm run docs:sync
npm run docs:build

For local development:

npm run docs:serve

The export helper also performs the docs synchronization before creating a Wurster Lab ZIP. This keeps every shared lab snapshot self-contained: runtime source, MeatGrinder, format implementation, tests, documentation and the future website live in one workspace.

The website is a presentation layer. Wurst itself has no dependency on wrst.io.

Monorepo Pages and runtime releases

wrst.io stays inside the Wurster monorepo. A push to main runs .github/workflows/pages.yml, synchronizes the public Authority discovery files, Wurster Web and canonical Markdown docs, builds Eleventy and deploys site/_site to GitHub Pages.

The Pages artifact explicitly includes hidden files. This is required because WRST.IO publishes its static trust discovery under /.well-known/.

Desktop runtime releases are intentionally separate from normal source pushes. Local npm run dist:mac:arm64 and npm run dist:mac:x64 builds are useful smoke tests, but dist/ remains gitignored so installer binaries do not bloat Git history. To publish a runtime version, first make the package version final, then push the matching tag:

git tag v0.20.0
git push origin v0.20.0

.github/workflows/release.yml verifies that the tag exactly matches the root package version, runs the test gate, builds Windows x64 on a Windows runner, Apple Silicon on an arm64 macOS runner and Intel macOS on an Intel runner, then publishes a GitHub Release with SHA-256 checksums. The Runtime page derives the repository from GitHub Actions and links directly to these versioned assets.