Meowhook Docs

Build Discord webhook messages without guessing.

This is the builder manual: how to send with a webhook, switch to channel delivery for buttons, load existing messages, structure embeds, manage files, stay inside Discord limits, and avoid the small mistakes that usually turn into rejected payloads.

Visual builderChannel buttonsDiscord-style previewTemplates + JSONShare linksFeedback + uploads
Connect webhook
->
Build message
->
Add embeds
->
Preview
->
Send
10 messagesPer sequence
10 embedsPer message
10 uploadsShared by files and embed media
Share safelyWebhook secret stays out of links
Walkthrough

Quick start: the shortest reliable path

If you are brand new to Meowhook, do these steps in order first. The later sections explain each area in more depth.

01

Create a webhook

Make a Discord webhook in the target channel and copy the URL.

02

Paste the URL

Meowhook validates it and shows webhook info when available.

03

Build the message

Write content, add embeds, upload files, or start from a template.

04

Use preview

The preview mirrors visible messages and lets you click back into the editor.

05

Check validation

Send stays disabled until the full sequence is valid.

06

Send or edit

Use message IDs to load, edit, or delete messages from the same webhook.

Drafts, backups, custom templates, and saved webhooks stay in this browser. If you open Meowhook on another device or another browser profile, you will not see them there unless you export or share them first.
Need buttons? Switch the draft to Channel, log in, pick a server, add the bot if asked, then choose a channel before you build the buttons.
Workspace Tour

How people actually move around the app

The screen has five areas, but in practice you will live in two of them and only dip into the others when you need to.

Top bar: JSON, templates, docs, guide, FAQ, feedback, themes, history
Sidebar: drafts, save/load, share, export/import
Editor: webhook URL, message cards, embeds, files, flags
Preview: Discord-style render, zoom, click-to-focus
Action bar: validation, sequence, sending state

What you will touch first

  • Start in the editor. Paste the webhook URL there before you do anything else.
  • Keep the preview open while building. It catches bad grouping, bad spacing, and wrong embed order faster than raw form fields do.
  • Use the action bar as the final check, not the starting point. It is there to tell you what Discord will reject.
  • Ignore the sidebar on your first pass unless you are loading an older draft or importing JSON.

What people usually miss

  • The top bar is mostly support tooling. It is useful, but it is not the main workflow.
  • The sidebar stores local organization, not message logic. It helps you keep drafts straight, but it does not fix bad payloads.
  • Preview is not just cosmetic. Clicking the avatar, content, file block, or embed can jump you back to the exact editor section.
  • If Discord rejects something, the fastest path is usually editor -> action bar hint -> preview click-back, not hunting through every open section manually.
Most Meowhook sessions are basically: editor on the left, preview on the right, action bar at the bottom. The top bar and sidebar matter, but they are support surfaces around the core loop.
Message Builder

What each message card can do

Each card is one webhook message inside the current sequence. You can duplicate, delete, or extend the sequence up to ten messages.

Webhook URL

Validate the webhook, confirm the endpoint, and reuse saved webhook shortcuts stored locally.

Message IDs

Paste a raw message ID or full Discord message link to load, edit, or delete messages sent by the same webhook.

Profile override

Override username and avatar per message without changing the webhook globally.

Content editor

Write message text with markdown preview, quick actions, and an expanded editor with formatting tools and its own undo/redo.

Files

Upload content files and see total upload usage across files plus embed media in one shared slot counter.

Advanced flags

Control message-level behaviors like suppressed embeds and other send-time flags surfaced in preview.

Content editing details

  • Expanded editor supports bold, italic, underline, code, headings, quotes, and link insertion.
  • Escape sequences like \n and \t are interpreted in preview and payload generation.
  • Collapsed section summaries make it easier to scan long message cards quickly.

Message ID rules

  • Load/Edit/Delete only works when the message belongs to the same webhook.
  • Regular user messages cannot be edited through the webhook route.
  • The validation row tells you when the pasted ID is wrong or not owned by this webhook.
Channel Delivery

How buttons and channel sends work

Use this path when you want buttons, custom bot identity, or the Meowhook right-click tools inside Discord.

01

Switch to Channel

Webhook mode is best for plain sends. Channel mode unlocks buttons and uses a managed webhook so you can set a custom name and avatar.

02

Log in and pick a server

Meowhook reads the servers you can manage. Servers with the bot installed show a checkmark; others say “needs bot”.

03

Add the bot once

If a server says “needs bot”, click Add bot once. The bot creates a webhook in the chosen channel automatically.

04

Pick a channel and customize

Set a custom username and avatar in the profile section. Link buttons open a URL; custom buttons send their ID to your bot logic.

How channel delivery works

  • Meowhook creates and caches a webhook in the chosen channel via the bot.
  • Messages are sent through this webhook, so custom username and avatar work just like webhook mode.
  • Buttons and message components are supported in channel mode.

Discord app tools

  • Right-click a message and open Apps -> Meowhook.
  • Restore pulls the message back into the builder.
  • Quick Edit, Debug, and Webhook Info are there for fast checks.
You can log in and out from the top-right corner of the page. The server list loads fast because Meowhook only checks bot status for the server you pick, instead of scanning every server up front.
Embeds

How embed structure, fields, and media work

Embeds are modular. You can mix and match content pieces, reorder them, and move whole embeds between messages.

Author icon + author name
Embed title
Description with markdown and multiple lines of text.
Inline field
Inline field
Inline field
Full-width field
Large image area
Footer icon + footer text + timestamp
Thumbnail

Core parts

Titles, descriptions, URLs, color, author, fields, images, thumbnails, footer, and timestamp can be combined as Discord allows.

Fields

Fields can be inline or full-width, moved up or down, duplicated, and removed. Partial fields are highlighted until both name and value exist.

Embed media

Author icons, footer icons, thumbnails, and large images can use URLs or uploaded files, but uploaded versions count toward the same upload budget.

Drag behavior

Embeds reorder inside a message or move to another message. When moved, their attachment ownership moves too and the target message takes over the counts.

A very common miss: the embed looks "filled in" because it has a color bar, author block, or footer, but Discord still treats it as empty. Add a title, description, field, image, or thumbnail, or remove the embed entirely.
Live Preview

Preview is both a renderer and a navigation map

It mirrors the visible message sequence, shows readiness state, and lets you click specific content back into focus.

What renders

Content, embeds, grouped fields, attachments, profile overrides, suppressed-embed states, and sequence grouping.

Click-to-focus

Click avatars for profile settings, content blocks for text, files for uploads, and embeds or fields for their exact editor controls.

Zoom and status

Use zoom controls for visual inspection and watch the ready/incomplete state so you know whether the current sequence can send.

Drafts, Backups, Sharing

How to keep work, reuse layouts, and share designs safely

Meowhook gives you several layers of persistence depending on whether you want local convenience, a full backup, or a shareable URL.

Draft tabs + autosave

Drafts autosave locally, can be renamed and reordered, and stay tied to the current browser profile.

Templates

Use built-in layouts or save local custom templates from your current draft structure.

Backups and export

Save browser backups for quick restore and export JSON when you need portability between devices or profiles.

Share links

Create a shareable design link without exposing the webhook secret inside the URL.

A share link only carries the draft design. Whoever opens it still needs their own webhook URL before anything can be sent.
Sending

What must be true before a sequence can be sent

The action bar is intentionally strict so malformed Discord payloads do not slip through as easily.

Validation

Each message is checked for real content, embed validity, and hard limit violations before send is allowed.

Sequence sending

Messages are sent in order, and progress reflects the current step instead of pretending a partial failure was a full success.

Cooldowns

Rate limits and wait states are surfaced in the UI so you know why uploads or sends are temporarily blocked.

Attachment-specific rules

  • Uploaded files and uploaded embed media share one 10-slot budget per message.
  • URL-based embed images do not consume upload slots because Discord loads them externally.
  • If you imported or loaded a message with files, Meowhook can show them in preview, but you may need to re-upload them before sending again.

Example: looks filled, still invalid

A common webhook mistake is an embed with a color, footer, and author, but no title, description, field, image, or thumbnail. It looks styled, so it feels done, but Discord still treats it as empty. If the send button stays disabled, this is one of the first things to check.

Example: preview works, resend fails

If you load an old webhook message that had files, Meowhook can often show the attachment in preview because Discord already has a URL for it. That does not mean your browser still has the original upload blob needed to send it again. If Meowhook tells you to re-upload, it is not being picky; it is avoiding a broken resend.

Power Tools

Stuff you actually start using after day one

These are not the features you notice in the first thirty seconds. They are the ones you end up relying on once the builder becomes part of your normal workflow.

What becomes muscle memory

  • Undo and redo: especially after moving embeds between messages, clearing sections, or trying a bigger template change than you meant to.
  • Preview click-back: faster than scrolling through a long message card once a draft gets dense.
  • Section summaries: they matter once one message grows into a proper multi-embed payload instead of a tiny test draft.
  • Theme switching: not because it is flashy, but because different contrast setups make spacing and alignment mistakes easier to spot.

When the extra tools are worth it

The JSON editor is useful when someone hands you a raw payload or when you are comparing Meowhook output to Discord docs line by line. The feedback form is worth using when something visual is off and a screenshot explains it faster than a paragraph. Mobile mode is good enough for edits and checks, but if you are building a long multi-message draft from scratch, desktop is still the better place to do it.

If you only build one habit here, make it this: do the risky change, look at the preview immediately, and hit undo fast if the draft starts drifting. That sounds obvious, but it is the difference between experimenting comfortably and babysitting every tiny change.
Limits

The Discord limits Meowhook is built around

These are the numbers that most often decide whether a payload is accepted or rejected.

ItemLimitWhy it matters
Messages per sequence10A single draft can send up to ten webhook messages in order.
Embeds per message10Every message card can hold up to ten embeds.
Uploaded attachments per message10Files plus uploaded embed media share the same slot budget.
Message content2,000 charsWhitespace-only text is treated as empty content.
Embed title256 charsOver-limit titles will be rejected by Discord.
Embed description4,096 charsMarkdown still counts against the raw length.
Fields per embed25Each field needs a name and value for a valid result.
Field name / value256 / 1,024 charsInline mode changes layout, not the character budget.
Footer text2,048 charsCan be combined with a timestamp.
Total embed characters6,000 charsDiscord counts the whole embed object.
Troubleshooting

What usually goes wrong

These are the mistakes and Discord responses people actually run into while testing webhook messages.

Messages you will actually see

  • Message not found - wrong ID or different webhook: the pasted message was not sent by this webhook, or the ID/link is wrong.
  • Nothing to send: the message has no text, no valid embed content, and no uploaded file.
  • Field row incomplete: one embed field has only a name or only a value.
  • Embed needs visible content: color, footer, or author styling is present, but there is still no title, description, field, image, or thumbnail.
  • Too many uploaded attachments: content files and uploaded embed media together went over Discord's 10-upload cap for one message.
  • Files need to be re-uploaded: imported or loaded file metadata is present, but the browser no longer has the real upload blob needed to send it again.

Fast debug order

  • Check the webhook first. If the webhook row is not valid, nothing else matters yet.
  • If you are using buttons, make sure the draft is in Channel mode and the selected server says Ready.
  • Look at the action bar message. It usually tells you exactly which message or embed is blocking send.
  • If load/edit/delete fails, assume webhook ownership mismatch before assuming the app is broken.
  • If uploads stop working, count embed images too. They use the same 10-slot budget as regular files.
  • If something only exists in preview after an import, re-upload it before you trust it as sendable.

Load or edit will not work

This almost always means the message belongs to another webhook. Webhook routes can only edit messages created by that same webhook.

Send button never enables

Usually one embed is technically empty, one field row is partial, or the current message has a limit violation that is easy to miss in a long draft.

Buttons are locked

Switch the draft to Channel mode, then confirm the selected server says Ready before you expect buttons to send.

Uploads look fine but fail later

If you refreshed, imported, or loaded an older draft, preview URLs can survive as display data even though the original local file no longer exists for a real upload.

Draft is missing on another machine

That is expected. Draft storage is local until you export it, make a backup in the same browser, or generate a share link.