Docs / Reach

Discord embeds

Decide what your link looks like in a Discord chat: text, buttons and images, drawn the way a bot's message is.

How it works

Paste a xyst.wtf link into Discord and it usually unfurls into the standard card: a title, a description and the picture of your page. The embed tool, in your dashboard under Tools, replaces that card with a message Discord draws the way it draws a bot's: your text, a coloured accent bar, link buttons and images, in whatever order you stack them.

The tool shows a live preview of the chat, in Discord's dark and light themes, and counts what you have built against Discord's own limits as you go.

Componentsup to 40 in one message
Textup to 4,000 characters across every block
Accentany six-digit hex colour, or none
Spoilerthe whole embed hidden until it is clicked

Both ceilings are Discord's, not ours. A block spends one component, a block with a button or an image spends three, and a row of buttons spends one plus one per button.

The blocks

An embed is a stack of blocks. Six kinds:

Text Text with a button Text with an image Buttons Images Divider
TextDiscord markdown: # headings, **bold**, *italic*, `code`, links and -# small print
Text with a buttona paragraph with one link button beside it
Text with an imagea paragraph with a thumbnail beside it
Buttonsa row of up to 5 link buttons, labels up to 80 characters
Imagesup to 10 images, tiled by Discord
Dividera small or large gap, with or without a line

Every button is a link. A crawled page cannot carry the kind of button a bot answers to, so nothing here needs a bot running.

Where it lives

The same embed can live in three places:

Your profile linkincluded with every plan
Short links that forwardPremium
Just the codeincluded with every plan

Your profile link is the usual case: save the embed once and every paste of xyst.wtf/yourname draws it instead of the standard card. There is one per account.

A short link is an address of your own at xyst.wtf/e/word that forwards a visitor to any page you point it at, a video, a shop, a server invite, and hands Discord this embed on the way. The word is up to 32 characters of letters, numbers and dashes, and each link keeps an embed of its own.

Just the code hands you the tag itself, a <script id="discord:component-embed"> block, for the head of a site you host elsewhere. Nothing is stored; Discord reads the tag and the page itself does not change.

It is a switch, not a one-way door. Remove the embed from the tool and your link goes back to the standard card the next time it is pasted: the title and description from your settings and the picture drawn from your page. Nothing about your page changes either way.

Images

Discord fetches every image itself, so each one has to sit at a public link. The picker offers three sources:

Your profile cardthe picture xyst.wtf already draws for your page, at xyst.wtf/og/yourname.png
Your filesanything in the file host, which keeps images at a link Discord can load
A pasted linkany PNG, JPG, GIF or WEBP that is already online

The profile card is the same image the standard preview shows, redrawn whenever you restyle your page. Putting it in the embed keeps the picture people know while the rest of the message becomes yours to write.

A pasted link is loaded in the tool before it is accepted. If it does not load as an image there, Discord will not be able to show it either. See the file host for keeping images of your own.

When it shows up

Discord keeps a link's preview for a while after the first time it is unfurled, so a change to your embed does not rewrite messages that are already in a channel and may not show in the very next paste either. It shows on the next fresh fetch, which is usually minutes and occasionally longer.

The preview in the tool is drawn from the same blocks Discord receives, so what it shows is what a fresh paste will draw.