Inspiration
Every mod team has had this conversation: a borderline post goes up, one mod wants to remove it, another thinks it should stay, and by the time everyone weighs in the moment has passed — or worse, one mod acts unilaterally and the team is divided. Moderation is supposed to be a team effort, but the tools have never reflected that.
I built Mod Vote because the problem is simple and the solution should be too. Mod teams need a way to vote on content decisions privately, asynchronously, and without leaving Reddit. No external tools, no Discord polls, no waiting for everyone to be online at the same time.
What it does
Mod Vote is a private voting tool for Reddit mod teams. A mod sees a borderline post and taps Start Mod Vote from the post menu. The entire mod team gets a modmail notification with a link to vote. Each mod casts their vote — Remove, Keep, or Needs Discussion — directly inside Reddit. When the vote closes, the winning decision executes automatically. Results go to modmail with a full tally and audit trail.
Key features:
- Anonymous or named voting — configurable per vote
- Quorum enforcement — minimum votes required before a result executes
- Automatic execution — Remove actually removes the post via the Reddit API
- Tie-breaking — explicit handling, no silent defaults
- Cancel vote — vote creator can cancel if situation resolves early
- Vote History Dashboard — full history with outcomes, dates, and tallies
- Participation Tracker — shows each mod's participation rate
- Reminder modmail — sent within 2 hours of deadline if quorum not reached
- Escalation on inconclusive — vote creator tagged to follow up
- Welcome modmail on install — mod team gets setup instructions automatically
How I built it
Mod Vote is built entirely on Devvit using the Mod Tool template. The server runs on Hono, a lightweight HTTP framework. All vote data is stored in Devvit's built-in Redis — no external database needed. Notifications use the Reddit Modmail API, and post removal uses the Reddit moderator API.
The architecture is straightforward: menu items in devvit.json point to Hono route handlers. Menu presses show forms. Form submissions write to Redis and send modmail. A shared executeVoteResult function handles the decision logic and is called by both the manual close handler and the deadline expiry check.
Tech stack:
- Devvit (Mod Tool template)
- TypeScript
- Hono (server routing)
- Redis (vote storage and audit trail)
- Reddit Modmail API (notifications)
- Reddit Moderator API (post removal)
Challenges
The biggest challenge was the template architecture. The Mod Tool template uses a web server pattern (Hono + HTTP endpoints) rather than the classic Devvit pattern (Devvit.addMenuItem). All the documentation examples use the classic pattern, so I had to reverse-engineer how forms, menu items, and triggers work in the web server model from scratch.
The second challenge was building on a phone using Termux. No desktop, no IDE, no split screen. Every file edit was done in nano, every error fixed by reading stack traces on a 6-inch screen. It forced me to write clean, simple code because debugging complex code on mobile is genuinely painful.
What I learned
- How Devvit's Hono-based server architecture works end to end
- How to structure Redis keys for a multi-vote, multi-subreddit app
- How Reddit modmail works as a notification channel for mod tools
- That the best mod tools are invisible they fit into existing workflows rather than creating new ones
What's next
- App settings panel for configuring defaults per subreddit
- Vote on comments, not just posts
- Reason categories (dropdown) for searchable vote history
- Minimum mod role requirement for vote creation
- Vote templates for common decisions
Built With
- api
- devvit
- hono
- moderator
- reddit-modmail-api
- redis
- typescript
Log in or sign up for Devpost to join the conversation.