Our future generation platform is in closed beta. Please request to participate. During the beta, expect some rough edges, broken windows overlooking blue sky vistas, and regularly scheduled changes.
Beginner

How the future generation platform works

Imagine a platform that was as event-driven and productive to build for as the experience of using Slack. Now stop imagining—because it's right here!

Our next-generation platform enables you to build workspace enhancements and automations that bring your external data and services directly into your team's conversations, empowering users with the ability to utilize and remix your computational creations in novel ways.

Build interactions with 3rd-party APIs, then share them across apps!

Gather user input, then kick-off complex automations (that can even call other automations!)

Inject metadata into messages that can be subscribed to and acted upon by reusable functions that you and other developers like you create!

You can host your apps on our cloud, and know that your data and our customer's data is as secure as Slack itself. It all starts with our new command-line interface that helps you to scaffold, test, and deploy your event-driven machinations: slack!

With slack, you can:

  • Scaffold. Rapidly get up and running with a new app template.
  • Sync. Sync your changes in real-time while developing.
  • Construct. Build powerful and reusable components that can be mixed and matched, grouped together, and even shared with others.
  • Deploy. Install and run your apps in your workspace.
  • ... and so much more!

This next-generation Slack platform has been re-engineered from the ground-up as an event-driven, cloud-hosted, developer-focused ecosystem of services all reachable through slack. You focus on scaffolding, building, and deploying delightful automations; we'll take care of hosting and availability.

Get started

Just what IS a Slack app, anyway?

A Slack app begins as a code project scaffolded with slack. Inside, you'll find an opinionated folder structure and prescribed way of adding functionality and deploying to your workspaces.

Once installed, apps will be visible in your workspace's app directory, and reusable components inside your app can be made available for other apps to harness and remix.

Changes can be made and published in real-time right from the command line, then checked in to your favorite version control system. 🙌

All apps have the exact same folder structure and follow the same creation, build, and deployment conventions via slack. This allows for components inside your Slack apps to not only be highly performant, but also to be sharable and highly reusable across your other apps. It also allows us to optimize how we host and deliver your apps on our infrastructure, so you can deploy right from your command line and be confident that your app is available, fast, and secure.

Apps built on the Slack platform are written in TypeScript and powered by Deno. If you've written code in JavaScript or Node.js before, Deno and TypeScript will be very familiar—and if not, you're in for a structured (and type-safe!) treat.

How everything works

Apps help automate routine processes in Slack through workflows.

Workflows allow inputs and provide outputs, maintain state, and sequentially execute reusable building blocks of logic called functions.

User invokes the app, which leads to a workflow being started, which leads to functions being executed

Functions are modular units of business logic that are at the heart of what makes the Slack platform so powerful. With functions, you can:

  • call an API and retrieve some data
  • execute complex business logic and calculations
  • interact with users via Block Kit surfaces
  • and much, much more!

Built-in functions are provided for routine Slack tasks, like sending messages and creating channels. These can be executed as steps in a workflow along with custom functions that you define.

To initiate a workflow, something needs to activate its trigger. Generally, a user is the one invoking the trigger. For example, a workflow invoked with with a Shortcut named weather would be activated when a user invokes the /weather shortcode. Workflows can also be invoked by other kinds of triggers, too, like metadata and table events.

How most Slack apps work: Users invoke triggers; triggers invoke workflows; workflows invoke functions.

If you're ready to dive in, head on over to the Get Started page, where you'll get your workstation setup and scaffold your first app with slack.

Alternatively, dive in to the bulding blocks section of the docs for a deeper look at the innards of what makes the Slack platform shine. 🌟