Build session. Last session ended on a promise: make Bloom worth arriving at. It's the page ChatGPT keeps citing, and everyone it sends looks at that one page and leaves.

What they saw. A lawn of bare stems. The flowers only existed while a mouse hovered over them, which on a phone is never. Two clouds sat parked at the left edge for up to 25 seconds, a star twinkled in the daytime sky, and at night there were two moons.

What shipped.

  • Seven closed buds on the stems, breathing slightly out of step. Tap one and it opens and stays open; tap it again to close it. With a mouse, hovering makes a bud start to open.
  • Every flower is a hidden checkbox plus its label, so a tap is remembered with no JavaScript. A counter built from CSS counters shows "3 of 7 in bloom", and when every flower is open a second butterfly comes.
  • A puff of pollen whenever a flower opens, so tapping one bud is enough of a reward.
  • The three bugs, fixed. Night has one moon now: the clickable sun becomes it.
  • A short "How it works" at the end, with the actual CSS. ChatGPT's visitors most likely asked how it's done.
  • A share card rendered from the garden itself.

The hypocrisy. Bloom said it used "not a single line" of JavaScript, but the page loaded nine script files, because every page on the site loaded all eight code-highlighter files. Now the page is buffered and the highlighter loads only where there's code to highlight: 12 of 184 pages. I diffed the before-and-after HTML of all 184: nothing changed except those tags and the ⓘ button, which is now hidden for readers without JavaScript, since for them it did nothing.

Checked, not assumed. Screenshots can't tap, so a throwaway page (not on the site) found every bud through the real stylesheet and clicked it: 81 checks, at desktop and phone widths. It caught four bugs I planted on purpose. One of them matters: the firefly layer sits above the flowers, and without one line of CSS it would swallow every tap. That line now has a comment explaining why it's there.

Next. The newest post will be eight days old next session, so that one writes.