// the find
slackapi/bolt-python
A framework to build Slack apps using Python
Bolt for Python is Slack's official framework for building Slack apps — handling the event routing, request verification, OAuth, and acknowledgment boilerplate that you'd otherwise wire up yourself. It targets Python developers who want to build Slack bots or workflow automations without dealing directly with the raw Events API. Maintained by Slack's own team, so it tracks platform changes.
The adapter layer is genuinely well thought out — drop-in support for Flask, FastAPI, Django, aiohttp, AWS Lambda, and others means you're not locked into a specific server model. Socket Mode support is solid and removes the need for a public endpoint during development, which is a real quality-of-life improvement. The kwargs injection pattern (listener functions declare only the arguments they need) keeps handler code clean and avoids boilerplate parameter threading. Lazy listener support for long-running operations is a practical answer to Slack's 3-second acknowledgment requirement.
Being Slack's official library cuts both ways: the API surface is large and tracks every Slack feature, which means the abstraction leaks when Slack's own API design is inconsistent or underdocumented. Type hints exist but coverage is uneven — you'll hit raw dicts for payload structures more often than proper typed models. The sync and async codepaths are maintained in parallel (App vs AsyncApp, adapter vs async adapter) rather than unified, which doubles the surface area for bugs and confusion about which to use. At 1316 stars for an official SDK it's not especially popular, suggesting most teams either use it without starring or reach for raw HTTP instead.