Repository navigation
feat(seo): play a silent loop as the link preview (DCN-50) - #9
Conversation
The home page and other pages that use the site-wide share card now declare /og/og-video.mp4 as og:video, so iMessage, Discord and Telegram play it. og:image and the Twitter tags are unchanged. Docs pages set their own card and get no video. Fixes DCN-50 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
DCN-50 Add og:video animated link preview
ProblemA dithercn.dev link pasted into iMessage, Discord or Telegram shows a still card. Leo approved a short silent loop of the site as the link preview, and these apps play an GoalThe home page, and any page that falls back to the site-wide share card, declares the approved video as Acceptance criteria
How to verifyBuild with Out of scope
Created with Claude Opus 5.5 in Claude Code. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
[Medium impact] The change reaches pages that use the site's default link-preview details. The PR appears safe to merge, with a small correction recommended for the declared video height.
|
ApprovabilityVerdict: Needs Human Approval Macroscope's review found this PR requires human approval — This change adds an automatically active Open Graph video integration and a production MP4 asset for link previews. The declared 2400×1260 dimensions are also disputed by an unresolved review comment reporting a 2400×1240 asset, which could affect preview sizing. You can add or adjust custom eligibility rules. Learn more. |
Summary
A dithercn.dev link pasted into iMessage, Discord or Telegram shows a still card. The home page, and any page that falls back to the site-wide share card, now declares a silent 6-second loop as
og:videoso those apps play it. Slack and X keep the existing/ogimage.seo/metadata.ts baseMetadata.openGraph images: [{ url: SITE.OG_IMAGE, 1200x630 }] # unchanged + videos: [{ url: SITE.OG_VIDEO, secureUrl, type: "video/mp4", 2400x1260 }] public/ +└── og/og-video.mp4 # H.264, no audio, 460 KBDocs pages build their own
openGraphwithcreatePageMetadata, which replaces the layout's, so they keep only their per-page card.Evidence
Built with
SITE_URL=https://dithercn.dev pnpm build, served withnext start, and compared with production.curl -s https://dithercn.dev/hasog:imagehttps://dithercn.dev/ogand noog:video.After: the only difference in the og/twitter tags is five new lines:
/docsand/docs/installation: noog:video, andog:imageis still/og/docs/installation/image.png./og/og-video.mp4:200,Content-Type: video/mp4,Accept-Ranges: bytes;curl -r 0-99returns206.pnpm check,pnpm test,pnpm buildandpnpm typecheckall pass.Not tested: a real unfurl in iMessage, Discord or Telegram, which needs the deployed URL.
Merge Danger
Door: two-way. Reverting removes the tags and the file. Apps that already cached a preview keep it until their cache expires.
Blast radius: share metadata on the home page, the 404 page and any page using the default card. Adds a 460 KB static file.
Fixes DCN-50
Created with Claude Opus 5.5 in Claude Code.
🤖 Generated with Claude Code
Note
Add Open Graph MP4 video to site SEO metadata
Adds
SITE.OG_VIDEOin site.ts pointing to a new silent loop asset atpublic/og/og-video.mp4. The base metadata in metadata.ts now includes this video entry, using MP4 type and 2400×1260 dimensions, so link previews can play the loop.Macroscope summarized f021c80.