Files
exploded-cluster/README.md
T
jwright 7f7035b98f mirror rev 4: evidence-verified rewrite, six-diagram artefact set, front-end and build-gate hardening
Content corrected against upstream docs, deployed-version source and the live
config: retention/GC semantics (untagged manifests including digest-only
pull-through entries are GC-eligible; keepUntagged is v2.1.19+, not deployed),
warm-cache guarantees (tag pulls revalidate upstream per open issue; digest
pulls serve locally), retry arithmetic (buildah --retry counts retries: 16 max,
not 12), five-upstream flat-namespace routing stated as observed risk with a
proposed prefix redesign, auth-canary design validated against longest-match
policy precedence with the Docker-client caveat, coalescing reframed from
deadlock to design with the restart as recovery-not-root-cause. Adds fact
panel, contents, failure-mode and cache test matrices, decision table, open
verification register and primary-source references. Front-end: grid full-bleed
(no viewport units - no scrollbar overflow), shell-level skip link, real
1600x872 intrinsic dims injected from bytes, lazy below-fold plates, AA
code-comment contrast, scene engine rewritten (IO-gated, rAF-coalesced, live
reduced-motion, hidden-tab pause, zero guards). Assembler: per-page gates plus
mirror-specific required/banned content assertions. README describes the
multi-page site honestly.
2026-08-25 08:08:18 +10:00

3.1 KiB

The Teaching Lab (learn.bztmon.com)

A multi-page static technical learning site: scroll-driven teardowns of infrastructure the author actually operates. Dark engineering-dossier aesthetic (void #070b14, cyan #3fbaf5, magenta #e879f9), dependency-light by design, strict security posture.

Pages

Route Page Source
/ The Teaching Lab - chapter directory pilot/index.tpl.html
/cluster Chapter 01: The Exploded Cluster - eleven-course container-platform teardown pilot/arc.tpl.html + pilot/manifest-*.json
/mirror Chapter 02: The Mirror - a zot pull-through registry, its failure modes and operations pilot/mirror.tpl.html + pilot/mirror.js

Build

bash build.sh -> dist/. The assembler (pilot/assemble-arc.mjs, plain node, no dependencies) wraps each page in a shared document shell (canonical/OG metadata, build revision, skip link), content-fingerprints every file under /assets/ (immutable-cached by nginx), splits page scripts into external fingerprinted files, injects intrinsic image dimensions (WebP and JPEG parsed from the actual bytes) with deliberate lazy/eager loading, and runs per-page preflight gates: no inline scripts (CSP script-src 'self' with no exceptions), exactly one h1, unique ids, no dangling anchors, no unresolved placeholders, and page-specific content assertions. A failed gate fails the build.

Ship: podman build (multi-stage: node builds dist/, nginx-unprivileged serves it, both digest-pinned) -> push to the estate registry -> digest-pinned deploy via GitOps. nginx/ carries the runtime config: strict CSP, HSTS, no-cache HTML with immutable fingerprinted assets, security headers on every location.

Accessibility and performance

Skip link on every page (hidden until keyboard focus), one h1 per page, stable section anchors, reduced-motion honoured live (effects also pause when the tab is hidden or the scene is off screen), intrinsic image dimensions to prevent layout shift, below-fold images lazy-loaded, system font stacks (CSP permits no third-party fonts).

Layout

Path What
pilot/ page templates, page scripts, scene manifests, the assembler
assets/dist/ production heroes and diagrams for /cluster
assets/mirror/ plates for /mirror
content/ course source notes
nginx/ runtime config baked into the image
tools/slicer.html slice editor: load a hero, tune cut lines, export a scene manifest
prompts/ image prompt contract for the house visual style
exploded-cluster.html, ec2-part*.html v2 (parked, superseded by /cluster)
gsap.min.js / st.min.js GSAP 3.13 + ScrollTrigger, fingerprinted at assemble time

The slicing rule (load-bearing - read before touching the arc engine)

Parts occlude each other in 2D, so every slice carries a hidden notch where the part in front covers it. Animating collapsed -> hero only ever increases occlusion, so notches stay buried. Never overshoot past the hero layout and never fan parts sideways - either exposes the tears. Region boundaries overlap upward by EPS; expanding downward would ghost.