← SkillSafe / Slack Desk

The message you are about to post to Slack — checked, rewritten, and turned into Block Kit

Paste raw notes, a finished draft, or an existing Block Kit payload. The browser lints it against the way Slack actually renders mrkdwn, validates every block against the published limits, and previews it. Then pick a lane: review it, compose it, build the payload, or get the Bolt code that posts it.

Both examples ship with a saved model run for every lane, so you can see the whole output — including the Block Kit payload and the Bolt code — without signing in and without spending a credit.

Review reads what you pasted and tells you how it will land.

nothing pasted yet
Drag a file in, or Everything is read in your browser. Nothing uploads until you run.
estimate pending

The check above is free and always runs. The lane below costs credits and needs an account.

What the free half actually checks

Slack's mrkdwn is not Markdown. **bold** posts its asterisks, [label](url) posts its brackets, a # heading posts its hash, and a bare @here notifies nobody. The linter finds those before you paste into Slack and discover it in front of the whole channel.

Block Kit is stricter still. A header must be plain_text. A section holds 3000 characters, a header 150, a button label 75. A message carries at most 50 blocks, a context block 10 elements, an actions block 25. Two elements may not share an action_id. The validator checks all of it and reports the JSON path of every problem — and this app will not show you a payload it could not parse and validate.

Slack, Block Kit and Bolt are trademarks of Slack Technologies. This is an independent tool and is not affiliated with or endorsed by Slack.