Guide
Component embed vs Open Graph in Discord
Open Graph supplies title, description, image, and theme-color when Discord cannot render a component embed. A component embed is richer HTML-adjacent JSON Discordbot reads from the same URL. You should always send OG tags, even on a perfect embed, because older clients and failed crawls fall back.
What each is for
OG answers “what is this link?” A component embed answers “what can I do?” — Buy, Docs, RSVP. Tinycord writes both on GET /p/{slug}.
If the JSON is invalid, over 40 nodes, or blocked by a WAF, users still see a respectable OG card instead of nothing.
Which one should you ship?
Both. Keep complete Open Graph tags on every page, then add a component embed where a button helps: launches, pricing, docs, events, and waitlists.
You can compare them side by side on the Tinycord homepage: paste a URL and switch between the plain link tile and the card with buttons.
Common questions
- Does Discord still use Open Graph tags?
- Yes. Open Graph title, description, image, and theme-color are the fallback whenever Discord does not render a component embed for a link.
- Can an Open Graph preview have buttons?
- No. Open Graph only describes the page. Clickable link buttons need a Discord component embed on the same URL.
Try it on your own page
Or browse the examples gallery.