Skip to content

Version the OG social card filenames - #35

Merged
nathanialhenniges merged 1 commit into
mainfrom
claude/og-versioned-filenames
Aug 16, 2026
Merged

Version the OG social card filenames#35
nathanialhenniges merged 1 commit into
mainfrom
claude/og-versioned-filenames

Conversation

@nathanialhenniges

Copy link
Copy Markdown
Member

Why

The social cards were re-rendered with the 31-theme fact, but they kept the same filenames. X caches social images by URL and offers no purge mechanism, so anyone who had already seen og.png would keep being served the stale 15-theme card indefinitely. Re-rendering in place cannot fix that; only a new URL can.

What changed

The three cards move to a -v2 suffix, and all 11 references move with them:

file references
scripts/build-og.ts the three output filenames
apps/web/src/lib/seo/routes.ts six ogImage entries
apps/web/index.html og:image and twitter:image fallback tags

The old PNGs are deleted rather than left behind, since nothing points at them any more.

The script header now documents the rule, so the next art change bumps to -v3 instead of silently overwriting:

BUMP THE FILE NAME whenever the art changes, and update the matching ogImage entries in lib/seo/routes.ts plus the two fallback tags in index.html.

Verification

Built output confirms each route carries its own card and no stale file survives:

/            og-v2.png
docs         og-docs-v2.png
config       og-config-v2.png

dist/ contains exactly the three -v2 PNGs and no og.png. Lint, 233 tests, typecheck, and build all green.

Note: existing shares of the old URL will 404 for the image rather than showing outdated art. That is the intended trade for cards that were already wrong, and it only affects links posted before this deploy.

🤖 Generated with Claude Code

X and other platforms cache social images by URL with no purge
mechanism, so the 31-theme art re-rendered at the old og.png would
keep serving the previous card to anyone who had already seen it. The
three cards move to a -v2 suffix, and every reference moves with them:
the generator, the six ogImage entries in seo/routes.ts, and the two
fallback meta tags in index.html. The script header now states the
rule so the next art change bumps to -v3 instead of overwriting.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 16, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@nathanialhenniges, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 5 minutes

Limit details: You’ve used all 1 included review currently available under your plan.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: e12169e9-76e5-4628-b55a-40374d6cff3d

📥 Commits

Reviewing files that changed from the base of the PR and between 0210336 and 3f53c7f.

⛔ Files ignored due to path filters (3)
  • apps/web/public/og-config-v2.png is excluded by !**/*.png
  • apps/web/public/og-docs-v2.png is excluded by !**/*.png
  • apps/web/public/og-v2.png is excluded by !**/*.png
📒 Files selected for processing (3)
  • apps/web/index.html
  • apps/web/src/lib/seo/routes.ts
  • scripts/build-og.ts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@nathanialhenniges
nathanialhenniges merged commit 7796b7f into main Aug 16, 2026
3 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