Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A template for building Slack apps with Bolt and Nitro, deployable to Vercel.
Slack Bolt with Nitro is a Vercel-deployable template for building Slack apps using Bolt for JavaScript (TypeScript) and the Nitro server framework. This GitHub template from vercel-partner-solutions wires up a Bolt app entry that initializes @vercel/slack-bolt's VercelReceiver, registers listeners grouped by Slack Platform feature, and exposes a Nitro route handler at src/server/api/slack/events.post.ts to receive Slack events.
Slack Bolt with Nitro is a starter repository for creating Slack apps with the Bolt for JavaScript SDK (written in TypeScript) and the Nitro server runtime. The template takes a Slack app manifest (manifest.json) and environment variables SLACK_BOT_TOKEN and SLACK_SIGNING_SECRET as input, and produces a running Slack bot that listens for events and responds to messages—the sample command hello replies with world!. It runs on Vercel's serverless platform and is maintained by vercel-partner-solutions.
pnpm dev:tunnel script starts the app with ngrok tunneling; you need a free NGROK_AUTH_TOKEN and the Slack CLI's slack run command to test locally.hello in a channel after adding the app, and the bot replies with world!—a quick end-to-end verification that events are flowing.The template follows a straightforward setup path: clone the repository and install dependencies with pnpm, create a Slack app from manifest.json at api.slack.com, and copy the Bot User OAuth Token and Signing Secret into your environment. For local development, add your NGROK_AUTH_TOKEN, run slack app link and then slack run; for production, deploy to Vercel and point the manifest's URLs to your deployment. The VercelReceiver initializes Bolt to process incoming Slack events through the Nitro route handler.
The template requires SLACK_BOT_TOKEN (the Bot User OAuth Token from your Slack app) and SLACK_SIGNING_SECRET (from the Basic Information tab). Both are set in Vercel's environment variables during deployment and in your local .env for development.
Yes, local development uses the pnpm dev:tunnel script to create an ngrok tunnel, and the template asks for a free NGROK_AUTH_TOKEN in your .env file. The Slack CLI's slack run command then starts the local server.
After setup, add the Slackbot to a channel and send hello. The app replies with world!, confirming that the Bolt app is receiving and responding to Slack events through the VercelReceiver.
Yes, once your repository is connected to Vercel with the Vercel Git integration, every commit triggers a new build and deployment. You only need to update the request_url and url fields in your Slack App Manifest to point at your deployment domain.
