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.
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:
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 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.
Images
Discord fetches every image itself, so each one has to sit at a public link. The picker offers three sources:
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.