Banter.bot Devlog
What is it?
Banter.bot is a Slack bot built with Bolt.js that brings jokes, trivia, polls, roasts, and an AI-powered “ask anything” command to a Slack workspace.
Repo: github.com/andrewnolette-netizen/Banter.bot
Getting the basics running
Started small to prove the setup worked: /banterbot-ping (latency check), /banterbot-catfact, and /banterbot-joke, both pulling from free public APIs. Confirmed Bolt.js + Socket Mode worked end to end.
Expanding the command list
Kept building in batches:
Fun & Banter — /banterbot-8ball, /banterbot-roast, /banterbot-choose, /banterbot-hackerize, /banterbot-rate (deterministic score per phrase via a simple hash), /banterbot-fight, /banterbot-fortune (with a local fallback list if the API’s down)
Utility — /banterbot-urban, /banterbot-weather, /banterbot-poll (posts a message with 👍/👎 reactions)
General — /banterbot-qotd, /banterbot-trivia, /banterbot-help (categorized list generated from a single commands array)
Lesson learned: separate data from logic
The help command’s list used to be buried mid-file. Moving it into one commands array near the top made the help menu far easier to keep accurate — and exposed a recurring bug: adding a command’s handler but forgetting the array entry (or vice versa), which happened more than once with /banterbot-ask.
Version control hiccups
Getting onto GitHub took a few tries: forgotten placeholder URLs, GitHub’s password-auth removal (fixed with a Personal Access Token, repo scope), and a rejected push from unrelated histories (fixed with git pull –allow-unrelated-histories). Worth it — code’s versioned and backed up now.
Adding AI
Wanted /banterbot-ask to answer open-ended questions. First version used the Claude API — worked well, but costs per call. Switched to Ollama to run models locally for free instead.
Deploying to Hack Club Nest
Moved off my laptop onto Nest, Hack Club’s free Linux hosting for teen hackers. Had to SSH in, install git/curl/Node from scratch on a bare Debian container (via nvm), and install Ollama directly on the server rather than relying on my own machine.
The CPU reality check
Running an LLM on a shared, GPU-less container is slow — a ~5GB model took nearly a minute on cold load. Switched to a much smaller model (qwen2.5:0.5b) for usability, and learned that interrupting a request mid-load isn’t a real failure, just an interrupted warm-up.
Current status
Bot runs on Nest via systemd (auto-restarts on crash/reboot), with Ollama running as its own service alongside it. Still debugging /banterbot-ask — it turned out the command handler never actually got saved to the file, a good reminder to double-check with grep before assuming a restart will fix things.
Next up
Finish wiring up /banterbot-ask and confirm response times are tolerable
Add a system prompt for more “banter” personality
Consider conversation memory across a thread
Polish the README, maybe add a demo GIF