Problem
The reader needed to feel like part of the shop: handmade, seasonal, and a little odd. It also needed to work as a page. The unopened letter and illustration needed room, and the opening view needed to fit without an unnecessary scroll. Even a haunted craft shop has layout requirements.
Decisions and implementation
The shop began as a few small fictional happenings. I chose the recurring format and name, shaped the visual references and character rules, and reviewed AI-generated stories and illustrations for continuity. That gave the reader a consistent world to present.
I set the experience requirements and directed AI-assisted implementation. For autumn, that meant stamps, fall colors, and vines reaching into the blank edges. The first vines were very well behaved: symmetrical and tucked into corners. I asked for looser growth, softer transparency, and a curl around a lower corner.
The date and time needed one clear home. I consolidated repeated labels and removed the extra scroll in the unopened view, so the letter could be the first thing a reader noticed. The decorative decisions had to survive the actual opening and reading flow.
Illustrative reconstruction · No private story art
Keeping the shop stocked
I configured recurring AI-assisted story and illustration generation around the archive’s continuity and visual references. I connected that workflow to publication: once a complete story and accepted image are archived and pushed, Cloudflare rebuilds the Eleventy reader. Each new letter gets a place in the shop without a separate manual publishing step.
Generation and publishing have separate jobs. The publication checks keep the handoff predictable:
Publication checks · Source reviewed October 19, 2026
| Condition | Expected result and recorded check |
|---|---|
| Complete, approved pair | Joins the public archive on rebuild. The arrival test adds a later accepted pair without editing the curated publication list. |
| Image has not arrived | Stays pending. The catalog test covers an approved record arriving before its image. |
| Approval or checksum conflict | Stops publication. Catalog tests reject unreviewed selections, changed bytes and contradictory approval evidence. |
| Archive retry | Reuses accepted art. Archiver tests cover duplicate retries, immutable accepted versions and recovery after push failure. |
Even a haunted shop benefits from sensible stock control.
Validation and refinement
I checked the whole experience: the unopened page, the moment of opening, and the letter itself. The vines needed enough presence to feel intentional while leaving the story in charge. That review caught the extra scroll and competing date and time labels.
The publication tests also cover a new approved story/image pair joining the archive automatically, without changing the curated publication list. That checks the handoff between archived content and a new public page.
Evidence and result


The public reader presents illustrated letters from the fictional shop. It provides a direct way to see the reading experience described here: visit Felt Presence.
My documented decisions include the seasonal treatment, stamps, vine placement, reading flow, and the handoff from recurring generation to automatic publication. Completed, approved installments publish from the private archive; unfinished pairs wait.
Limits and lessons
The puppet theatre above is an alternate-universe portfolio illustration, not a reader screenshot or a new story installment. The source archive and original art references remain private; the process diagram is a labeled reconstruction. I owned the creative direction, experience requirements, implementation guidance, and iterative review; the implementation was AI-assisted.
Atmosphere lives in small decisions. Vine placement, a repeated timestamp, or one awkward scroll can change the whole feeling. Getting those details right is part of making the story readable.
