App surfaces

Create welcoming spaces for people to use your Slack app. Make it available in a range of possible surfaces.

A surface is anywhere an app can express itself through communication or interaction.

This overview will show you the different canvases on which you can express your app masterpiece. Read on to learn about these app surfaces.

App Home

The App Home is a private, one-to-one space in Slack shared by a user and an app.

Present each of your users with a unique Home tab just for them, always found in the exact same place.

Once enabled, the Home tab is an ever-present space, retaining its content and state until the app chooses to update it. Read our overview of the Home tab to find out more.

Although not every app needs to have a Home tab, the 'always-on' nature of the space makes it the most important surface available to Slack apps.

Use your Home tab to its fullest by reading our guide to using the Home tab.

Compose the contents of your Home tab using Block Kit layout blocks and elements. Our guide to building block layouts will help you learn how.


Modals provide focused spaces ideal for requesting and collecting data from users, or temporarily displaying dynamic and interactive information.

For users, modals are prominent and pervasive β€” taking center stage in Slack ahead of any other interface element.

Modals are consequently short-lived and invoked only when a specific task is to be completed.

Modals contain one to three views that can be chained together to create complex, non-linear workflows. Read our modals overview to learn more.

Apps can only create modals in response to user invocation. A user can invoke your app through interactive features like shortcuts. Read our guide to using modals to find out more.

Each view in a modal can be composed using Block Kit layout blocks and elements. Our guide to building block layouts will help you learn how.


App-published messages are dynamic yet transient spaces. They allow users to complete workflows among their Slack conversations.

Something invokes or provokes the app, and the app responds with a message.

Further action can flow from that message, forming a conversational interface of potentially limitless complexity.

Apps can create messages whenever they want to, as long as they have the relevant permissions and access. Read our guide to sending messages from apps to learn more.

App-published messages can be composed using advanced text formatting and Block Kit layout blocks and elements. Our guide to composing messages will show you the full breadth of what is possible.

Take messages to the next level using interactive components like buttons and select menus. Learn how in our guide to creating interactive messages.

Using app surfaces together

Each surface is an isolated space for apps, but apps shouldn't use them in isolation. Use each surface with other types of surface to create a continuum of functionality that rivals any standalone app.

Imagine a task app that presents a task dashboard that resides in the app's Home tab. A user clicks a button to add a task, and is presented with a modal to input some plain text and select from a list of categories. After submitting, a message is sent to a triage channel elsewhere in the Slack workspace, where another user can click a button to claim the task.

Work through all the possibilities, and get some tips and inspiration, by reading our guides to planning Slack apps.