Vite + TypeScript, no framework. One health board page proves the whole path: fetch /api/health, render per-upstream verdicts. Biome and tsc join the just ci gate; dev mode proxies /api to the daemon. arr-daemon embeds web/dist via include_dir: build.rs runs pnpm when available, accepts ARR_WEB_DIST prebuilt, and falls back to a placeholder only in debug so the node-less CI rust job keeps working. Closes #6 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>