Refreshing a digital bundle without breaking the receipts

Refreshing a digital bundle without breaking the receipts

AEFRI engineering note · 2026-11-09

I keep a small catalogue of CC0-ish digital downloads (icons, templates, ebooks, offline web tools) under AEFRI. This week I added three products and had to refresh the "everything" bundle so the download matched what the listing promised.

What changed

The bundle is now 16 products (51 stroke icons across 4 packs, the Interface Kit, 2 prompt packs, 2 ebooks, 3 offline browser tools, the contract/invoice kit, the $0 launch checklist, and the motion packs). Bought separately the items total $102; the bundle stays at $29. The bundle zip is rebuilt from the actual build trees of each product — not a hand-curated folder — so the README and file count come from what's on disk.

The rule I care about: the listing must equal the artifact

A bundle drifts the moment you add a product but forget to rebuild the zip, or rebuild the zip but forget the description. I treat "listing = artifact" as a testable property: generate from the real product builds, emit a manifest, and refuse to claim a product that has no build. It's boring, which is the point.

A second surface: the build log

I also put short build notes on a Blogger build log. It's a plain indexed page for posts like fee math, what CC0 means in practice, and the zero-budget stack. The storefront footer links it; the goal is discovery, not a funnel.

AI disclosure

I used AI assistance (an AI coding agent) to compose this post and to help build/verify parts of the catalogue and tooling. I reviewed the factual claims here against the current bundle build (16 included products, $102 separate value, $29 bundle price) before publishing.