Path A — Self-host the server
One small Go binary. All five tools are baked in via //go:embed; the server picks the right one for each folder of your archive. Adds ACL via .zddc files, the virtual .archive document index, and SSO header passthrough. Stop the server and the directory is still a perfectly valid ZDDC archive — the server is convenience, not lock-in.
After download: chmod +x the file, set ZDDC_ROOT=/path/to/archive, run.
Need a different platform? Build from source at the matching tag.
Path B — Standalone tools
Every tool is a single self-contained HTML file. Open it locally and point it at a folder on your disk — no install, no server, no account. Same on-disk layout the server uses. Use one tool, use all five, mix and match — there is no orchestration to set up.
Your version, forever
Your server may run v0.0.8 next month and v0.1.0 the month after. Your project doesn't have to follow. If you depend on a specific behavior in archive v0.0.5, save that version into your archive — the next server upgrade can't take it away from you. Two ways to do it:
Drop a copy into your archive
Save the tool's HTML at the path the server would serve it from. The server's resolution order picks up real files first — before any cascade or embedded fallback.
curl -o MyProject/archive.html \ https://zddc.varasys.io/releases/archive_v0.0.8.html
Now MyProject/archive.html is yours. The server serves your bytes; nothing about a future --release can change them.
Pin via .zddc
Less invasive — no copies in your archive, just a small config entry telling the server which version to fetch and cache. Closer-to-leaf wins, so subprojects can pin further.
# MyProject/.zddc apps: archive: v0.0.8
Server fetches once on first hit, caches under _app/, falls through to the embedded copy if the fetch fails.
Your archive's tools are yours. The server is convenience; deletion of the server doesn't break your archive — every per-version download above is a real, immutable static file. Save what you trust.
Channels
Three channels, applied in lockstep across all tools. Pre-release channels exist to soak changes; stable is what production runs.
alpha
Active dev iteration. Rebuilds without notice. Look here for the very latest.
beta
Ready for general testing. Has soaked through alpha. Still mutable — pin to a versioned URL for reproducibility.
stable
Ready to ship. Every per-version file is immutable; _stable follows the latest cut. Channel cuts cascade: stable cut resets beta and alpha to track stable.