Project 9 of 10
Scrimmage Bot
A serverless Discord bot for a Roblox football community — daily game polls, availability, and reminder DMs, running around the clock at $0.
Ever try to get fifteen people to say whether they're playing tonight? What if the poll posted itself, counted itself, and nagged the people who hadn't answered?
The goal
The community needed one thing answered every day: who is playing tonight, and at what position. Scrimmage Bot posts a button-vote game poll at noon Eastern, tallies it live in the channel and from DMs, tracks positions and starter-or-depth tiers, and sends reminder DMs at five and eight to anyone who hasn't voted. Players mark availability for the week from a DM grid; admins get a message when a slot has enough starters to schedule.
The copy had to work on Discord mobile, where selects collapse and half the interface is hidden — so every prompt points at the control it means.
Background
There is no server. One Vercel function verifies Discord's Ed25519 signature and routes every interaction; Vercel Cron posts the poll and the reminders; data lives in its own schema on the Supabase project Life Platform already uses. No gateway, no worker, no PC left on — nothing to keep running.
The AI feature was cut on purpose. A planned /query command that answered questions through a local Claude worker would have needed a machine awake around the clock; the bot is better for being fully serverless.
Built with AI
Spec first, then a written v1 plan, then Claude executing under review — the same loop as the bigger projects, on a small enough product that the whole thing shipped in a day and v1.1 the next.
The lesson it taught was about the users, not the code: gamers on phones don't read, so the interface was reworked until it was obvious on a five-inch screen.