Pros & Cons of Building on Slack as a Platform

When you’re considering building an app nowadays, you’re flooded with choices. You can build a stand-alone application, or build on top of a thousand different platforms that already have a growing market share. After building on Slack for several years, there’s a few lessons that have stuck out when building on a platform like Slack.

Pros

  • Common needs are already handled for you, like authentication & user management. Spend time working on your problem-space rather than the generic pieces every application has to worry about.
  • In a similar vein, you have a lower surface area to worry about with data security since common sensitive items like authentication is already handled.
  • Design constraints let you concentrate on UX, rather than worrying about a million tiny design choices.
    • Slack restricts you to use their blocks design system, which is written as a bunch of JSON - as a backend engineer who hates moving buttons around web pages, absolute godsend. That said, there are still moments of frustration where I want an input type that doesn’t exist, or to add a confirmation to a modal submission, or etc and you just can’t. Overall, it’s a pro though, because it’s rare that you’re completely blocked, usually a little creativity will get you a usable UX, and you avoid the rabbit hole of CSS issues and design decisions.
  • The built-in app marketplace is free marketing.
  • Whenever the Slack platform improves (like adding Huddles, Shared Channels, etc.) it opens up new opportunities.

Cons

  • Sometimes the platforms architecture will limit how you can interact with in a way that forces you to not go with the most common option
  • Occasionally platforms like Slack can cannibalize app features.
    • Slack ate up a bunch of scheduled message apps when they released it natively. Unlike Apple, though, it was clear for a long time that they were going to add it - build at your own risk.
  • Users think any issues with the platform are tied to your app, since that’s what they were using at the time of failure.
  • People aren’t as willing to pay, even if you give them powerful capabilities. There’s a bias because you’re an extension, and not a stand-alone entity.
  • Your growth is (somewhat) limited by the platform’s growth.
    • This is really only a problem if you’re trying to be mega-huge. Indie Hackers and small scale friends, ignore this because it’s the least of your issues.

Other platforms to consider

I was flabbergasted when I realized how many places provide a platform for developers to build apps on top of them. They vary heavily in the quality of developer-experience though, so choose wisely based on the problem you are aiming to solve.

  • Wordpress
  • Shopify
  • Salesforce
  • Airtable
  • Zoom
  • ..a gazillion others