Live reload in a hermetic toolchain
Feb 2026Hermetic toolchains and live-reload dev servers usually fight each other: the build tool wants inputs in a sandbox, the dev server wants to watch the files you are editing.
The trick is to split the two jobs:
bazel build //web:distruns the build inside the sandbox and produces a fully reproducible artifact inbazel-out.bazel run //tools/env:devonly borrows the pinned binaries from Bazel, but runsastro devagainst the real source tree, so hot module replacement sees your edits.
Bazel owns the toolchain; Astro owns the dev loop.