Slapp is a node.js module for creating Slack Apps from simple slash commands to complex bots. It is specifically for Slack — not a generic bot framework — because we believe the best restaurants in the world are not buffets. 🍴😉
Some of the key features of Slapp are:
- Designed for the new HTTP based Slack Events API
- Simple conversation flows with state managed out of process to survive restarts and horizontal scaling
- Conversations support text, interactive message buttons, slash commands, and any other events like reactions.
- Solid foundation with 100% test coverage and using the smallwins/slack client
There are too many differences between major messaging platforms, work/consumer use cases and individual/group messaging scenarios to effectively normalize into a generic library or service. We created Slapp out of our own experiences and pains of building Slack Apps.
Batteries Included on Beep Boop
Slapp works seamlessly on Beep Boop where conversation state, oauth, token management, hosting and scaling are all handled for you. However, Slapp was specifically designed to be Beep Boop agnostic as well.
If you want to run Slapp on your own, you’ll need to implement the Slack oauth flow, a simple conversation store interface and context function that resolves the corresponding tokens and team information for each message. There are many factors that contribute to these aspects of your application being different, and we think it’s best to leave those out of the Slapp core.
In Slapp, conversations are scoped to a team, channel, and user combination. You specify a conversation route to handle the next incoming event in the conversation. On Beep Boop, this state is stored for you out of process, but it is simple to write your own conversation store implementation.
The README on Github is chock-full of details.
Our mission at Beep Boop is to be the most effortless and obvious service to run Slack Apps at scale. We’re creating a seamless developer experience that allows you to focus on creating great bots and integrations while leaving all of the build, provisioning and scaling challenges to us. Let us know how we can be your hero. 🙋