Publishing was only the first boundary. I added site-level controls for acquisition tactics, budgets, experiments, delivery records, and crawl/index observations so each release can be operated and compared instead of merely launched.
24 versioned techniques · immutable experiment records · IndexNow and XML-RPC automated
The public directory already ran as an immutable Rust release. The next problem was accepting source changes without putting unreviewed records or a live database back on the public request path.
4 source adapters · durable review and media queues · default-off quota-bound publishing
Raw analytics rows were growing much faster than the decisions they supported. I added an opt-in cleanup path that preserves permanent rollups first, shows a dry run, deletes in resumable batches, and guards the final checkpoint and VACUUM.
3,066-byte gzipped tracker · permanent rollups · opt-in 00:05 cleanup with dry run
System pages describe what I can adapt. Work pages document complete builds. These notes isolate implementation decisions that are useful outside one private repository.