You are browsing as a guest. Sign up (or log in) to start making projects!

38m 31s logged

What I Built

Today I started Echo , an AI Slack bot that acts as a teammate inside your workspace. The idea hit me because our team was constantly switching tabs to look things up, ask questions, check what happened in a channel yesterday. I thought what if there was a bot that just lives in Slack and handles all of that?


What I Did

1. Created the Slack App

Went to api.slack.com/apps and created a new app from scratch.

  • Chose Socket Mode instead of HTTP webhooks, this means the bot connects outbound to Slack, so I don’t need to expose a server or set up ngrok during development. Way easier for local dev.
  • Added the required OAuth scopes: chat:write, commands, channels:history, users:read etc everything Echo would need to read messages and respond.
  • Grabbed the three tokens I’d need:
    • SLACK_BOT_TOKEN (xoxb-…)
    • SLACK_SIGNING_SECRET
    • SLACK_APP_TOKEN (xapp-… for Socket Mode)

2. Initialized the Node.js Project

I’ve used Node.js for my project

npm install @slack/bolt dotenv axios cheerio

Dependencies I’m working with:

  • @slack/bolt — Slack’s official framework for building bots. Handles all the event routing, slash commands, and ack() timing .
  • dotenv — keep tokens out of the code
  • axios — for hitting the HackClub AI API later
  • cheerio — for parsing web content (I’ve planned for search in some cmds)

Problem I Had:

Socket Mode confusion , at first I wasn’t sure whether to use Socket Mode or HTTP. Read through the Bolt docs and realized Socket Mode is the right call for development because I don’t need a public URL. HTTP is for production deployments.

0
14

Comments 0

No comments yet. Be the first!