Discord Embed Builder
Design embed-style Components V2 messages visually, or paste a webhook payload containing legacy embeds and convert it — with a measured, high-fidelity preview and webhook delivery built in.
No account required for the core builder. Nothing posts until you confirm it.
The embed look, built on Discord's current layout system
A classic Discord embed is a colored card: accent stripe, title, description, thumbnail, image, fields and footer. DWEEB builds that same visual identity with Discord's Components V2 — a Container carries the accent color, Sections pair text with a thumbnail, Media Galleries hold the artwork — and shows the result in a live preview measured against the real Discord client.
The difference is what you gain: real headings and subtext, multiple media blocks, separators, and buttons or select menus in the same card. You design the message visually; DWEEB produces the JSON Discord actually accepts and sends it through your webhook when you confirm.
Everything an embed did, and where it goes now
| Classic embed part | Modern equivalent in the builder | What improves |
|---|---|---|
| Accent color stripe | Container accent color | Familiar stripe, same hex value |
| Title + URL | Heading text (optionally linked) | Three heading sizes instead of one |
| Description | Text Display | Full markdown including subtext and lists |
| Thumbnail | Section with a thumbnail accessory | Text wraps beside it deliberately |
| Large image | Media Gallery | Up to 10 items with spoiler support |
| Fields grid | Stacked Text Displays | Readable on mobile instead of a cramped grid |
| Footer + timestamp | Subtext line or dynamic timestamp token | Timestamps render in each reader's timezone |
| — (not possible) | Buttons and select menus in the card | Link buttons work on any webhook |
Already have embed JSON? Paste it
The JSON panel accepts a legacy content-plus-embeds payload and converts it into editable Components V2, with a conversion report that names every field that cannot map exactly — polls, stickers, inline field grids, provider video. Nothing is silently dropped, and you can adjust the converted layout visually before sending.
- Import a webhook payload containing an embeds array
- Keep the accent color, title, description, thumbnail, image and footer text
- Get warnings for anything with no modern equivalent before you apply
- Export the converted JSON, or send it directly through a webhook
Embed limits vs Components V2 limits
The editor tracks both budgets for you: imports are validated as embeds, and everything you build afterwards is validated against the Components V2 ceilings before send.
| Constraint | Classic embeds | Components V2 in DWEEB |
|---|---|---|
| Text budget | 6,000 characters across all embeds | 4,000 characters across all text fields |
| Structure cap | 10 embeds, 25 fields each | 40 components, 10 top-level blocks |
| Interactive controls | None on the embed itself | Buttons and selects in the same card |
| Validation in DWEEB | Checked on import | Enforced live while you edit |
Free, local by default, no account for the core builder
The embed builder is the same core DWEEB editor: free for noncommercial use, no account required, and your working draft stays in the browser by default. Send through any pasted incoming webhook or a connected server and channel — nothing posts until you review and confirm it. Interactive components need an app-owned destination, and the builder labels that requirement before you commit to it.
Frequently asked questions
What is a Discord embed?
An embed is the coloured card Discord renders instead of plain text: an accent stripe down the left, a title, a description, an optional thumbnail and large image, a grid of fields and a footer. Only webhooks and apps can send one — the normal message box cannot.
Does this builder produce embed JSON or Components V2?
It does not export a native classic-embed payload. It builds the embed's visual identity with Components V2 and sends that. A webhook payload containing an embeds array can be pasted and converted, and the resulting V2 message can be exported as JSON at any point.
What happens to my old embed JSON when I import it?
The accent colour, title, description, thumbnail, image and footer text carry across into editable Components V2 blocks. Anything with no exact modern equivalent — inline field grids, polls, stickers, provider video — is named in a conversion report rather than silently dropped, so you can decide what to do with it before applying.
Do I need a bot to send an embed?
No. Any incoming webhook URL will post an embed-style card, including its images and link buttons. A bot or application-owned webhook is only needed once a button or select menu has to respond to a click.
Can I put buttons inside an embed?
Not in a classic embed — Discord attaches components beside a legacy embed rather than inside it. In Components V2 the buttons and select menus sit in the same container as the text and media, which is one of the main reasons to build the card this way.
How much text fits in one message?
Classic embeds share a 6,000-character budget across all embeds in a message. A Components V2 message has a 4,000-character budget across every text field, and the builder counts against it live so you know before you send rather than after Discord refuses it.
Documentation and testing
Learn or start from a proven design
Build the message now
Use the visual editor free, or start from an editable Components V2 template.
Open DWEEB →