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.
MeatGrinder