-
-
XP-based leaderboard showing top community contributors
-
Voting interface with classic AITA judgment options (YTA/NTA/ESH/NAH)
-
Mad-lib template filling interface with real-time scenario preview
-
Main menu with four core actions: Create, Vote, Ranks, and Help
-
Category selection interface showing six drama types plus random option
Inspiration
Reddit's AITA community is absolutely massive - millions of people sharing their worst moments and getting judged by strangers. But I noticed something: the best posts aren't always real situations, they're the ones with perfect dramatic tension. So why not cut out the messy reality and just focus on creating the most entertaining moral dilemmas possible?
What it does
AITA Generator turns moral judgment into a game. Users pick a category like "Family Drama" or "Workplace," then fill in mad-lib blanks to create scenarios. The twist? Every scenario becomes a real Reddit post that other players vote on using the classic YTA/NTA/ESH/NAH system. You earn XP for creating scenarios and casting votes, with leaderboards tracking the community's top drama creators and judges.
How we built it
React frontend with TypeScript, running on Reddit's Devvit Web platform. I hand-crafted 50+ templates across six categories, each with carefully placed blanks that create maximum dramatic potential. Redis handles all the game logic - user XP, vote tracking, scenario rotation, and leaderboards. The voting system integrates directly with Reddit's post system, so every vote updates both the game state and the actual Reddit post data.
Challenges we ran into
The voting optimization was brutal. My first approach took 5+ seconds to find an unvoted scenario because it was checking each one individually against Redis. With 50+ scenarios and multiple users, this meant 150+ database calls just to find one valid scenario. I had to completely rewrite it using batch operations - now it batches vote checks, filters immediately, and finds scenarios in under 500ms.
Template rotation was another puzzle - how do you ensure users don't see the same scenarios repeatedly while keeping the system fast? My solution tracks recent templates per user with automatic cleanup, but balancing freshness with performance took several iterations.
The trickiest challenge was preventing voting manipulation while maintaining user engagement. I needed to ensure users couldn't vote multiple times on the same scenario, track their voting history efficiently, and still make the "find next scenario" experience feel instant. The solution required coordinating three different Redis data structures and handling edge cases like scenarios being deleted mid-vote.
State management across Reddit posts was unexpectedly complex. When users vote, the data needs to update in Redis, sync with the Reddit post's postData, and reflect immediately in the UI. Getting all three to stay consistent while handling network failures and concurrent votes required careful transaction design and fallback strategies.
Accomplishments that we're proud of
Built a complete UGC ecosystem that actually generates engaging content. The template system creates surprisingly varied scenarios despite the constrained format, and the XP progression keeps people coming back. Most importantly, it feels native to Reddit - voters don't even realize they're playing a game until they check the leaderboard.
What we learned
Community-driven games need different thinking than single-player experiences. The content creation has to be as rewarding as the consumption, or the whole system breaks down. I also discovered that sometimes the best user experience comes from hiding complexity - players don't need to understand Redis optimization to enjoy finding scenarios quickly.
What's next for AITA Generator
User-generated templates are the obvious next step - let the community expand beyond my initial 50+ scenarios. I want to add scenario categorization based on voting patterns (most controversial, clearest verdicts, etc.) and seasonal challenges where users compete to create the most engaging content. Long-term, this template system could work for other judgment formats beyond just AITA.

Log in or sign up for Devpost to join the conversation.