Every tile image gets ImageObject license data so search engines can list it
as Creative Commons, the build writes sitemap.xml with all tile images,
robots.txt points at it, unknown paths get a real 404 instead of the gallery,
and the page gets a descriptive title, canonical, large image previews and
an og.png collage for link previews.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A square, trimmed copy of cat/blink.webp, so it isn't squished in the tab.
Browsers that don't animate favicons show the first frame, eyes open.
Files at the public/ root are no longer gallery tiles.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Generators now live in gen/<section>/<subject>/<action>.js; the section
folder picks where a tile shows in the gallery and isn't part of the URL.
The first 50 are in gen/bw, a dashed divider follows, then gen/color.
First colored ones: fox/sleep, pig/oink, duck/swim, whale/spout,
turtle/walk, owl/blink, crab/dance, butterfly/flutter, dino/stomp,
jellyfish/pulse.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each animation is its own file in gen/<subject>/<action>.js; npm run gen
renders the missing ones to public/ as webp + gif. The homepage grid is
now generated at build time by a small Vite plugin.
First four: ghost/float, heart/beat, cloud/rain, coffee/steam.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>