{"repo":"nicklambourne/slackblocks","free":true,"listed":false,"github":"https://github.com/nicklambourne/slackblocks","clone":"git clone https://github.com/nicklambourne/slackblocks.git","description":":game_die: Native language APIs for building messages using the Slack Block Kit API","language":"Python","stars":75,"topics":["slack","slack-bot","slack-api","python","blocks","typescript"],"license":"MIT","category":"chat-messaging","readme_excerpt":"slackblocks Build Slack messages in Python or TypeScript — without writing JSON by hand. Anyone who has built a non-trivial Slack message knows the drill: a wall of nested Block Kit JSON, five levels deep, where a typo'd field name or an over-long string sails silently through your code and only blows up when Slack rejects the API call. slackblocks replaces that JSON with typed objects that assemble it for you — and that complain at construction time, in your editor and your tests, rather than in production. Why slackblocks ? - Concise — SectionBlock(\"Hello, world !\") / sectionBlock({ text: \"Hello, world !\" }) instead of a ten-line JSON object. - Validated up front — character limits, required fields, mutually-exclusive options, and element-type restrictions are enforced when you construct the block, so you find out before hitting Slack's API. - Typed — full type hints and py.typed in Python; strict types in TypeScript that reject typo'd properties at compile time. - Plays well with the official SDKs — unpack a Message straight into client.chat postMessage( message) with slack-sdk , or pass the payload directly to @slack/web-api 's chat.postMessage . - One library, two languages — the same blocks, the same validation rules, and the same version numbers in both packages, so a team can hop between a Python service and a TypeScript bot without relearning anything. A shared conformance corpus keeps both implementations emitting the same Slack JSON. - Everything Block Kit ships to","default_branch":null,"files":null,"tree":[],"storefront":"/r/nicklambourne","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/nicklambourne/slackblocks/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}