A Preview Tool That Uses Each Platform's Real Rules

Most preview tools draw one generic card. Links do not unfurl generically: X wants twitter:card, Facebook shrinks small images, Discord reads theme-color, iMessage ignores the description. This tool draws six cards from six rule sets, from one fetch.

What the Report Shows

Each platform reads a slightly different set of tags and falls back differently when one is missing, which is why a link can look right on Slack and broken on X. The previews use the real rules.

The Open Graph guide covers the rules and the cache refresh tools for when a fix does not show up.

How One URL Becomes Six Cards

Enter a URL and socialpreview.tools fetches the page once from this server, following redirects, and keeps the head. The og:image (and a twitter:image if it differs) is then downloaded once, up to 8 MB, to read its real format, pixel size and weight, because the tag can say 1200 by 630 while the file is a 300-pixel PNG. The head and the measurements come back to your browser, where the analysis runs: each card field is resolved the way the platforms resolve it (og:title, else the title element; twitter:image, else og:image; and so on), every fallback is recorded, and the findings are graded against the documented limits of X, Facebook, LinkedIn, Discord, Slack and iMessage. The previews are then drawn from the resolved values with each platform's layout rules: large card or thumbnail, cropped or not, description shown or hidden.

In paste mode no image is fetched; the previews still draw, using whatever absolute image URLs the tags contain, and the size checks are skipped. The generator uses the same preview code in the other direction: fill in the fields, watch the cards, copy the tags.

What a preview here cannot promise

The cards are faithful to the rules as documented and observed, but every platform changes its layout without notice and applies rules the tag alone cannot reveal: Facebook may show a text card for a brand-new URL until its crawler has fetched the image, LinkedIn may serve a cached card from last month, X may decline an image its own fetcher found too slow. The checker fetches live, so it shows what the page sends now, not what a platform cached earlier; the guide covers how to clear those caches. Pages that render their tags with JavaScript show as the server sent them, which is also what most platform crawlers see.

When a preview looks wrong

The contact page says what to send. The report page carries the URL in its address, so a report can be shared by copying the link.