Personal
Discord Bot
Discord bot that helps organize gaming meetups by creating groups, proposing events, and collecting RSVPs directly in chat. It was containerized for deployment and self-hosted on my own VPS, with reminder messages to help players keep track of upcoming events.
Overview
A self-hosted Discord bot for organizing game meetups inside a server without sending users to an external app. I built the full TypeScript/Bun implementation: slash command routing, Discord interaction handling, SQLite persistence with Drizzle, timezone-aware scheduling, and the deploy/runtime workflow for a VPS-hosted bot.
What I Built
- End-to-end slash command surface for group management, meetup creation/edit/cancel/delete flows, status views, personal/upcoming meetup lists, and timezone setup.
- The live embed + button interaction system that rewrites RSVP state in place and disables actions when a meetup expires or is canceled.
- Guild onboarding, autocomplete for group names and date/time inputs, and a Bun-based deploy script that pulls, migrates, and restarts the bot under
systemd.
How It Works
- Slash commands let members create groups, manage membership, set a server-wide default timezone, and propose meetups.
- Each meetup is stored in SQLite, posted back into Discord as an embed with Join, Maybe, and Can’t buttons, and linked to its original channel/message ID so edits and cancellations can update the same post in place.
- A background reminder loop runs every minute, finds meetups due for a one-hour reminder, pings only confirmed attendees, and marks reminders as sent to avoid duplicates.
Technical Highlights
- Self-hosted VPS deployment: Deployed the bot to a Linux VPS and configured it with SSH access, environment variables, and a persistent runtime so it could stay online independently from my local machine.
- Dockerized runtime: Containerized the bot with Docker to create a more predictable deployment environment and make the application easier to restart, update, and maintain.
- CI/CD with GitHub Actions: Practiced a basic CI/CD workflow by using GitHub Actions to support automated deployment from the repository to the VPS.
- AI-assisted development workflow: Used the project as a test case for Codex and OpenCode, experimenting with how AI coding tools can scaffold, debug, and iterate on a small but functional application.
- Built for a real coordination problem: Created the bot to help my friend group schedule game nights, track availability, and reduce the manual back-and-forth that usually happens in Discord.