Embed Maker

Build a Discord embed with a live preview, copy the JSON for your own bot, or send it straight to a webhook. Supports Components V2 containers and buttons, which the older builders do not.

Message

Text outside the embed. Mentions here ping people; mentions inside the embed do not.

Embed

Images and author

Fields (2/25)

Inline fields sit side by side, up to three per row.

Field 1
Field 2

Buttons

Link buttons. These require Components V2 β€” a classic embed cannot carry them.

Preview

How the message will look in a channel.

Server rules

Read these before posting. Breaking them gets you a timeout, not a warning.

Be decent

No harassment, slurs or witch-hunts.

Stay on topic

Off-topic chat belongs in #general.

180 / 6000 characters

Output

Classic embeds work everywhere. Components V2 adds containers and buttons.

{
  "embeds": [
    {
      "color": 5793266,
      "title": "Server rules",
      "description": "Read these before posting. Breaking them gets you a timeout, not a warning.",
      "fields": [
        {
          "name": "Be decent",
          "value": "No harassment, slurs or witch-hunts.",
          "inline": true
        },
        {
          "name": "Stay on topic",
          "value": "Off-topic chat belongs in #general.",
          "inline": true
        }
      ]
    }
  ]
}

Send to a webhook

Posts straight to the channel. The URL stays in your browser and never reaches us.

Treat a webhook URL like a password β€” anyone holding it can post to that channel. Get one from Channel Settings β†’ Integrations β†’ Webhooks.

Embeds, and what replaces them

An embed is the bordered card a bot or webhook posts instead of plain text: a coloured stripe down the left, a title, a description, up to 25 fields, and images. It is what most rule channels, announcements and bot replies are made of.

Discord has since added Components V2, a newer layout system with containers, sections, media galleries and β€” the part that matters most β€” buttons. A classic embed cannot carry a button at all. Switch the output mode above and this tool emits Components V2 instead, using the same renderer the discords.ai bot posts its own messages with.

One trade-off to know: setting the Components V2 flag disables content, embeds, poll and stickers on that message. The tool handles the conversion, but it means a message is one or the other, never both.

The limits that actually bite

Discord enforces a limit per field and a combined ceiling of 6000 characters across the title, description, every field name and value, the footer and the author. Exceed any one of them and the entire message is rejected with a 400 that names nothing useful. The counter under the preview tracks the combined total as you type, so you find out before you press send rather than after.

The other one people hit: a field with a name but no value, or a value but no name, is rejected outright. Leave both blank and it is simply ignored.

Sending it

Copy the JSON into your own bot, or paste a webhook URL and send it straight to a channel. Create a webhook under Channel Settings β†’ Integrations β†’ Webhooks. The request goes from your browser directly to Discord β€” the URL is never sent to us and nothing is stored. Treat it like a password anyway: anyone who has it can post to that channel until you delete it.

Mentions behave differently inside an embed. @everyone in the message text above the embed pings; the same text inside the embed renders as a mention but notifies nobody.