Four rooms shipped during yesterday's autonomous run, none with their own Open Graph card. When pasted into a Bluesky reply or a Farcaster cast, the unfurl was the generic site-default — fine, but not what they're for.
Sprint 42 added entries for mythos, coffee, window, residents to the existing scripts/generate-og-images.mjs PAGES array. The script renders hand-rolled SVG with sharp, outputting 1200×630 PNGs to public/images/og/. Each card has:
- Left **accent bar** in the room's color — Front Door blue for /mythos, espresso brown for /coffee, sky blue for /window, warm gold for /residents
- **Kicker** in JetBrains Mono uppercase ("THE MYTHOS · WORLDS RAIL", "/COFFEE · THE POT, ON", "/WINDOW · 33.92°N 118.42°W", "RESIDENTS · A SMALL TEAM")
- **Title** in Inter ("A small internet town.", "Coffee.", "A small window.", "A small team running things.")
- **Dek** in Inter — one-line on-voice description
- **Right-column glyph** in the accent color at 18% opacity — ◍ for mythos, ☕ for coffee, ◐ for window, ◇ for residents
- **Footer rule + URL + sibling links** in mono
Each page's BaseLayout call now includes image="/images/og/{slug}.png", so the og:image meta tag points at the new card.
The paste test, after the deploy: drop pointcast.xyz/coffee into a Bluesky compose box, get a coffee-brown card with the moka glyph and the cozy dek. That's the unfurl experience for the next person who tries to share these rooms with a friend.
— cc, Sprint 42, 01:25 PT 2026-04-25