In this tutorial series, we’ll build, launch, distribute, and monetize an app for Slack.
We’ll create a complete app experience, including a user onboarding flow, paid features, public installation, and a landing page with a checkout system.
Our bot will remind teams about forgotten pull requests.
What sets this tutorial series apart is that I won’t leave you on your own after creating a simple local bot. We’ll develop an app that can be listed in the Slack App Directory, where millions of users search for useful apps—not just another to-do list.
This tutorial series is designed for high performers. If that’s you, you’ll enjoy it, as I won’t dwell on theory. After each lesson, we’ll build something tangible—something you can play with or show to others.
By the end of the tutorial series, you’ll be able to share a link to your website or your Slack App Directory listing with friends, family, or colleagues, so they can install and use your bot.
Our bot will help developers with code reviews, addressing a common issue: developers often find reviewing others’ code boring and time-consuming.
You can already familiarize with a code we'll cover: Github Repo
Tutorial Prerequisites
This tutorial series requires experience with JavaScript, Terminal, Git, and AWS. However, every step is explained thoroughly with comments and complete code examples.
Why Build a Bot for Slack?
Slack currently has 38.8 million daily active users, and this number is projected to grow to 47.2 million by 2025. This is a significant increase from 14.6 million in 2019.
Slack also boasts 65 million monthly active users, which is expected to rise to 79 million by 2025.
References:
Examples of Profitable Slack Apps
- Birthday Bot: Charges $1 per active user per month, tracking over 1 million birthdays. You can do the math! BirthdayBot.io
- Officely: A Slack-first app that raised $2M in 2021. TechCrunch Article
- Standuply: Crossed $80K in monthly revenue in 2019. Read their story
How to Generate Bot Ideas
Look for repetitive tasks within your team’s workflow that can be automated. This is how I came up with the idea for ReviewNudgeBot (for code reviews), and my friend Andrew created ExtReviewBot for reviewing Google Chrome extensions.
What Makes This Tutorial Series Unique?
This tutorial series covers the entire lifecycle of developing a real Slack bot product:
- Test and Production Environment: A test environment will allow us to check new features as we develop. You don’t want to release an untested feature to users, and waiting 2 minutes for each deploy just to test a single line of code isn’t practical.
- User Onboarding: We’ll design an onboarding experience for users when they first interact with the bot and when they add it to a Slack channel. Users will also be able to configure the bot from the App Home tab and view their payment plan there.
- Cloud Deployment: Our bot’s backend will run on AWS infrastructure, scalable to thousands of users at minimal cost, thanks to AWS’s free tier. Backend logic, APIs, and databases will be deployed with a single command.
- OAuth for Public Installation: The bot will be installable across any Slack workspace using an installation URL, an “Install to Slack” button, or via the Slack App Directory. Most tutorials only cover single-workspace bots, but we’ll go beyond that.
- Paid Features: Companies are willing to pay for Slack apps that improve productivity. We’ll create a simple web page to accept payments via credit card or PayPal and link subscriptions to specific Slack workspaces.Implementing payments was the biggest challenge I faced while developing ReviewNudgeBot because there’s little practical information on how to implement a complete payment flow for Slack apps.
- Distribution: Apps listed on the Slack App Directory are trusted more by users. If not verified, Slack displays a warning banner that discourages users from paying for the app. We’ll go through the process of preparing and submitting the app to the directory. My first verification took three months, but I’ll share tips to speed up the process.
- Supporting Materials: We’ll build a website, prepare simple Terms of Service and Privacy Policy documents, and more.
Summary
What we will build and do:
- Bot for Slack with complete onboarding flow, Home page, paid features, rich UI components, and responses to user requests
- No-code landing page to install bot and accept payment subscriptions with Paddle
- Deploy to AWS
- OAuth flow for public installations
- Paid features
- Onboarding flow in the Slack app
- Submit app for Slack App Directory
- Local and prod development environment for testing bot and payment features
What tools are used:
- Node.JS
- Paddle API
- Bolt JS
- NGrok
- AWS - CLI, Lambda, DynamoDB, DynamoDB offline, CloudFormation, API Gateway and CloudWatch
- Serverless framework
- Block Kit Builder