SuperAPI AI Directory

slack-app-scaffold

Office & productivity

View repository

Updated 10-16 08:05

About this skill

Slack App Scaffold

Bolt for JavaScript + Slack CLI is the 2026 default. Optimize for fast local runs, clear handlers, and safe deploys.

Stack (Default)

  • Runtime: Node.js (LTS)
  • Framework: @slack/bolt
  • Tooling: Slack CLI (slack)
  • Config: Slack manifest via CLI-generated project

Core CLI Commands

# Create new Slack app project
slack create my-slack-app
Run locally (socket mode / dev env)

cd my-slack-app slack run

Deploy to Slack-hosted runtime / target env

slack deploy


## Workflow (CLI-First)

1. Identify integration points in existing functionality.
2. Scaffold app with `slack create`.
3. Model capabilities in the manifest (scopes, events, commands, interactivity).
4. Implement handlers in Bolt (events, commands, actions, views/modals).
5. Run locally with `slack run` and validate in a dev workspace.
6. Deploy with `slack deploy`.

## Project Structure (Typical)

```text
my-slack-app/
├── app/
│   ├── app.js              # Bolt app bootstrap
│   ├── listeners/          # Events, commands, actions, views
│   ├── services/           # Integration layer to existing functionality
│   └── middleware/         # Auth, validation, shared guards
├── manifest.json           # Slack app manifest (CLI-managed)
├── package.json
└── README.md

Design rule: keep Slack handlers thin; push real work into services/.

Common Use Cases

  • Notifications: post messages from existing jobs or webhooks.
  • Slash commands: wrap existing scripts or APIs behind /commands.
  • Workflows: compose multi-step flows with Slack-native triggers.
  • Modals: collect structured input, then call existing systems.

Implementation Notes

  • Map each Slack surface to one listener module.
  • Normalize inputs at the edge; pass clean DTOs inward.
  • Acknowledge fast (ack()), then do work.
  • Centralize Slack Web API calls behind a small service.

See references/bolt-patterns.md for concrete patterns.

Verification Steps

# 1) Install deps
npm install

# 2) Run locally
slack run

# 3) Lint/test if present
npm test

# 4) Deploy
slack deploy

Manual checks in Slack workspace:

  • Trigger each command or event once.
  • Validate permissions/scopes match what handlers need.
  • Confirm errors surface as user-visible messages, not silent failures.