Slapp: A New Library for Slack Apps

Mike Brevoort
Aug 2, 2016 · 2 min read

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.

Slapp is on npm as “slapp” and hosted on Github. We will adore your contributions 💃✨. And checkout In or Out 👀, the sample app created with Slapp, running on Beep Boop.

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.

Conversations

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. 🙋

Mike Brevoort

Written by

Just like you but different. Runner, cyclist, parent. Engineering @Slack

Beep Boop HQ

News and tips from Beep Boop HQ, a ridiculously simple hosting platform for your Slack and Messenger bots.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade