Skip to content

fix(landing): ship favicon + icons to prod, fix X share preview#51

Merged
johnnichev merged 1 commit intomainfrom
fix/landing-icons-and-og
Apr 8, 2026
Merged

fix(landing): ship favicon + icons to prod, fix X share preview#51
johnnichev merged 1 commit intomainfrom
fix/landing-icons-and-og

Conversation

@johnnichev
Copy link
Copy Markdown
Owner

Summary

  • Fix 404s on favicon and og-image in production — deploy workflow now copies landing/favicon.svg, favicon.ico, apple-touch-icon.png, and landing/assets/* into the built MkDocs site. This was the root cause of the missing X/Twitter share card and the missing browser-tab favicon.
  • Add apple-touch-icon.png (180×180) so iOS Home Screen / Safari pinned tab show the [ • ] brand mark instead of a screenshot.
  • Add favicon.ico (16/32/48 multi-size) as a legacy fallback for older browsers and Windows tile cache.
  • Add og:image:secure_url meta tag — cheap insurance for older Slack/LinkedIn unfurlers that sometimes need it even when og:image is already HTTPS.
  • Collapse 3 wordmark variants to just variant 3 (terminal banner art) — removes ?logo= URL param, localStorage persistence, data-logo attribute machinery, and ~85 lines of variant-switching CSS + markup.
  • New reproducible icon generator: scripts/build_favicons.py redraws the mark from primitives (rectangles + ellipse) rather than rendering the SVG, so CI doesn't need librsvg, cairosvg, or JetBrains Mono installed.
  • Tidy-up: adds .playwright-mcp/ to .gitignore (tool artifact directory).

Test plan

  • Deploy Documentation workflow runs green on merge
  • curl -I https://selectools.dev/favicon.svgHTTP 200 (currently 404)
  • curl -I https://selectools.dev/favicon.icoHTTP 200
  • curl -I https://selectools.dev/apple-touch-icon.pngHTTP 200
  • curl -I https://selectools.dev/assets/og-image.pngHTTP 200 (currently 404)
  • Share https://selectools.dev/?v=3 on X — confirm share card renders with the 1200×630 og-image + tagline (note: the ?v=3 cache-bust forces X to re-crawl past its stale cache)
  • Open https://selectools.dev/ in iOS Safari → Share → Add to Home Screen → confirm the [ • ] icon appears (not a screenshot)
  • Visually confirm the nav wordmark still renders as the 3-row box-drawing terminal art
  • python3 scripts/build_favicons.py runs clean from a fresh clone (reproducibility check)

Notes

  • Squash-merge to match the (#NN) house convention on main.
  • Twitter/X caches share cards aggressively. Even after merge, the first share of the bare selectools.dev URL may still pull the old (empty) card. Append ?v=3 (or any query string) to force a fresh twitterbot fetch.

Deploy workflow now copies landing/favicon.svg, favicon.ico,
apple-touch-icon.png, and landing/assets/* into the built site,
resolving 404s on production GitHub Pages that were breaking the
browser tab favicon and the X/Twitter share card.

- Add apple-touch-icon.png (180x180) and favicon.ico (16/32/48)
  generated by a new scripts/build_favicons.py that redraws the
  [ • ] mark from primitives (no font or SVG-renderer dependency).
- Add og:image:secure_url meta tag for older Slack/LinkedIn unfurlers.
- Collapse 3 wordmark variants to just variant 3 (terminal banner
  art), removing the ?logo= URL param, localStorage state, and
  ~85 lines of variant-switching CSS + markup.
- Add .playwright-mcp/ to .gitignore (tool artifact).
@johnnichev johnnichev merged commit a9a3666 into main Apr 8, 2026
6 checks passed
@johnnichev johnnichev deleted the fix/landing-icons-and-og branch April 8, 2026 03:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant