Web Dev Tools

Chat Bots & Bot Frameworks

Slack, Discord, Telegram, WhatsApp, SMS — building bots in TypeScript.

Slack

  • @slack/bolt — official Slack app framework; events, slash commands, modals, app home, OAuth.
  • @slack/web-api — lower-level client when you don't need the framework.
  • @slack/socket-mode — for websocket apps that don't need a public URL.
  • Slack Block Kit Builder — visual builder for message blocks.

Discord

  • discord.js — the standard; complete coverage of the Discord API.
  • Discord.py (Python) — non-JS alternative.
  • Sapphire Framework — opinionated framework on discord.js.
  • @discordjs/voice — voice channels.

Telegram

  • grammY — modern TS-first; the default.
  • telegraf — older but still used.
  • node-telegram-bot-api — minimal API client.

WhatsApp / SMS

  • Twilio SDK — SMS, MMS, WhatsApp Business; the default.
  • MessageBird / Bird — alternative.
  • Vonage (formerly Nexmo) — alternative.
  • @whiskeysockets/baileys — unofficial WhatsApp Web library; reverse-engineered, against ToS for production.
  • WhatsApp Cloud API (Meta) — official; requires Business verification.

Email-style bots

  • Inbound email parsing: Postmark Inbound, SendGrid Inbound Parse, Resend (recently added inbound), CloudMailin, ImprovMX.
  • See Email for sending.

SMS specifically

  • Twilio Messaging — gold standard.
  • Vonage, Plivo, Sinch — alternatives.
  • AWS SNS — cheap, less ergonomic.
  • MessageBird/Bird — global focus.

Voice / IVR

  • Twilio Voice / Programmable Voice, SignalWire (Twilio fork; cheaper), Daily / LiveKit (see Realtime Video).
  • AT&T <voice> clones — niche.

Microsoft Teams

  • @microsoft/teamsfx — Teams Toolkit SDK.
  • Bot Framework SDK (Microsoft) — for cross-Microsoft surfaces.

Patterns to know

  • Idempotent webhooks — bots receive the same event twice; handle with a dedupe key.
  • Rate limits — every platform has one; back off + queue.
  • Slash command "ack within 3 seconds" — defer long work, post a follow-up message.
  • OAuth flow per workspace / server — store tokens per install; rotate on re-install.
  • Rich messages — Slack Block Kit, Discord embeds, Telegram inline keyboards. Don't send walls of text.

Where to host bots

  • Cloudflare Workers — perfect for slash commands and webhooks. No cold start.
  • Vercel — fine for webhook handlers; less great for long-running.
  • Fly.io / Railway / Render — when you need a long-lived socket connection (Slack Socket Mode, Discord gateway).
  • Inngest / Trigger.dev — for follow-up async work; see Workflow Engines.

Pick this if…

  • Slack: @slack/bolt.
  • Discord: discord.js.
  • Telegram: grammY.
  • SMS / WhatsApp: Twilio.
  • Long-lived connections (Discord gateway): host on Fly / Railway, not serverless.
  • Slack but no public URL needed: Socket Mode.

On this page