Digital Garden: a Radicle-first publishing system
Two personal sites, a notes site and this portfolio, share one design token system, one accessible foundation, and one publishing pipeline, while staying visually and structurally distinct where it matters: homepage layout, palette, and content model.
The interesting engineering problem wasn't the themes themselves; it was building a compositor that treats "shared" as a hard, checked contract instead of a copy-paste convention. A drift check fails the build the moment a generated file diverges from its source, so the two sites can never quietly grow apart on the things they're supposed to have in common.
Outcome: both sites ship from a single Rust CLI (garden sync /
garden check), with zero manual copy-paste between themes and a
CI-friendly exit code the moment something drifts.