💡 Inspiration
I wanted to make a competitive, multiplayer game that wasn't just another clicker and used Reddit's core strengths. Community Chess is the ultimate asynchronous social challenge. The real inspiration came from realizing I could use a data-driven approach to solve the classic problem: how do you make a community chess game fair without relying on cheatable ELO self-reporting?
🤔 What it does
Community Chess Showdown is a single-player Devvit app where the entire subreddit plays as White against a challenging, custom-calibrated 1700 ELO AI. The app runs a social experiment by splitting players into two voting tiers:The Crowd: The majority votes on 4 randomized, limited moves.The Analysts: Players who have proven their skill are promoted and vote on unlimited moves, injecting their high-quality choice into the Crowd's limited options $\mathbf{30\%}$ of the time.
⚙️How I built it
I used the Devvit Web template with React for the frontend UI (the interactive board and buttons) and TypeScript on the backend.
Chess Engine: I integrated the chess.js library to handle FEN state, move validation, and to power my simple, fast 1700 ELO AI logic.
Team System: I used the Devvit KV Store (Redis) to track user vote counts, determine Analyst status, and store the game's FEN.
Automation: The game runs asynchronously using a Devvit Scheduled Job which automatically ends the community vote, executes the moves, and makes the AI's response move every 3 minutes.
Kiro Integration: I leveraged Kiro to rapidly generate all the complex, repetitive boilerplate: Redis database queries, server handler integration, the Scheduled Job setup, and the React UI components for the countdown and vote tally.
💪 Challenges
The biggest challenge was juggling the complex logic on a tight deadline. Specifically:
The Time Constraint: Integrating the move validation to check if a vote was submitted within 30 seconds of the window opening was complex and required careful design around the asynchronous nature of the Devvit server.
Data Integrity: Initially, I tried to implement a prediction model, which was too difficult to verify. I successfully pivoted to the current, more stable logic that rewards consistent high-quality, fast submissions.
🎁Accomplishments
I'm most proud of three things:
The ELO-Bypassing Logic: I solved the core cheating problem by creating a reliable, data-driven system that uses submission speed and accuracy to verify skill, not self-reported ELO.
The Reveal Sequence: I built a polished, multi-state frontend (countdown, Kahoot-style reveal, notation flash) that makes the community's choice a dramatic event.
Completing it Solo: I built a complex, full-stack, stateful asynchronous game from scratch on a new platform (Devvit) in under 43 hours.
📒What I've learned
The most valuable lesson was how critical scoping and tool-use are in a hackathon. By using Kiro to instantly generate the tedious Redis and server handler boilerplate, I saved hours and was able to focus entirely on the custom game logic that actually matters to the judges. I also learned that stable, lightweight data modeling (like the vote counter in Redis) is better than complex machine learning for rapid prototyping.
📈What's next for Community Chess
ELO Progression: Implement a system where the AI opponent's ELO increases with every community win, providing a continuous challenge.
Add story/plot: The game will progress will chapters lead to new bots with personality and stories, while humans can explore the different stories of the people players play against. For example: a farmer who used to be taught by his grandfather grandmaster can give you some planting/harvesting/life lessons while playing or unlocking his line/ new endings.
Built With
- kiro
Log in or sign up for Devpost to join the conversation.