Inspiration
Traditional Reddit tournaments are fragile—they depend on active comment sections, fragment votes across threads, and demand too much user effort. I wanted to build a dilemma game you can understand in 5 seconds, playable entirely solo (making it resilient to empty posts), and rooted in identity and controversy. Furthermore, I noticed a massive gap in the ecosystem: while the vast majority of engagement apps focus exclusively on English, there are no similar apps that allow true multilingual interaction. As a solo developer, I set out to change that single-handedly.
What it does
ChainPick is a native Reddit dilemma game powered by a King-of-the-Hill (drag/carry-over) mechanic. A user chooses between two options; their pick becomes the "champion," carrying over to face the next challenger round after round.
- The Flow: After N rounds of escalating tension, the ultimate survivor triggers a viral identity verdict (e.g., "You have been judged: The Corrupt Loyalist").
- The Global Edge: Upon completion, aggregated analytics are revealed across three tiers (Global, Language, and Country). Because most apps center only on English, ChainPick connects diverse communities natively—offering hyper-localized, viral identity content that no other similar app can provide.
How I built it
Handling the entire design, database architecture, and frontend logic alone, I built ChainPick using Devvit, Reddit’s native interactive developer platform.
- Language-as-a-view Architecture: I designed a unified multilingual framework where official content dynamically resolves based on the user's locale context (EN/ES/PT), while user-generated content (UGC) remains native.
- Ephemeral Runs: To ensure instant performance, individual gameplay sessions happen 100% on the client side. I only persist the final champion and the specific duel logs to the database.
- Multi-layer Filtering: I implemented an automated global safety gate to filter out NSFW/hate speech before content even reaches subreddit moderators.
Challenges I ran into
- Clean Aggregation Bias: Standard A vs. B voting creates position bias based on incumbency. I solved this by tracking the explicit roles of "champion" and "challenger" and logging exact duel states, allowing me to mine true retention metrics (like identifying options that act as "the ultimate runner-up").
- Multilingual Moderation: Validating user-generated content across international borders without relying on broken automated translation tools forced us to architect completely separate, independent approval pipelines for each active language.
Accomplishments that I'm proud of
- Solo Execution: Designing, coding, and structuring a complex, multi-language full-stack application entirely on my own within the tight constraints of a hackathon.
- Building an infinitely replayable game loop with minimal base content, thanks to dynamic (random or curated) challenger ordering.
- Achieving a 100% solo-completable experience. Even if a hackathon post has zero previous engagement, a judge or player gets immediate, high-fidelity value.
- Structuring server-side data aggregation to seamlessly segment votes by country and language while keeping the database lightweight and resilient against vote-stuffing.
What I learned
On Reddit, identity is the ultimate vector for virality. Users don't just want to cast a vote; they love having an algorithm analyze their journey, hand them a sharp, shareable persona badge, and show them exactly how they stack up against their own country's demographics. Designing for this "identity payoff" completely supercharges platform retention.
What's next for Chainpick
- Visual Skins & Theming: I plan to roll out my pre-designed 4-layer skin system (featuring themes like Classic, Arcade, and Kawaii). These will serve as aesthetic flavor layers that subreddits, moderators, and users can unlock or purchase using Reddit Gold via Devvit, establishing a direct monetization pipeline.
Built With
- devvit
- react
- reddis
Log in or sign up for Devpost to join the conversation.