Skip to content

Fix X social card rendering - #233

Merged
forhappy merged 1 commit into
mainfrom
codex/fix-x-social-card
Aug 13, 2026
Merged

Fix X social card rendering#233
forhappy merged 1 commit into
mainfrom
codex/fix-x-social-card

Conversation

@forhappy

Copy link
Copy Markdown
Contributor

Summary

  • serve the Compass social card from a dedicated .png URL for stricter link unfurlers
  • add explicit X image dimensions and alt text across site and page metadata
  • refresh the 1200×630 artwork with Compass branding and a code-graph visual
  • apply long-lived caching to the rendered image response

Why

X was showing a blank thumbnail even though the extensionless Next.js metadata image route eventually returned a valid PNG. A dedicated image-like URL both improves crawler compatibility and invalidates X's previously failed card crawl.

Impact

New shares of https://compass.crab.build should render a large social card. The same image remains available through the existing Next.js Open Graph and Twitter image routes.

The change has already been published to the production Vercel project and is live at https://compass.crab.build.

Validation

  • npm run typecheck:js
  • npm run build --workspace @compass/web
  • node scripts/check_viewer_assets.mjs
  • rendered /social-card.png locally and verified its 1200×630 PNG response plus generated Open Graph/X metadata
  • Vercel production build completed successfully
  • npm run test:js: 308 unit tests and 81/82 browser tests passed; the remaining pre-existing viewer accessibility test consistently times out because the graph toolbar intercepts the Clear filters click, unrelated to apps/web

@forhappy
forhappy marked this pull request as ready for review August 13, 2026 06:32
@forhappy
forhappy merged commit 40b6b29 into main Aug 13, 2026
14 checks passed
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