Inspiration
Check-a-Mate was inspired by the idea that chess apps often tell you what the best move is, but not always why it matters in a way that feels personal, fun, and beginner-friendly. We wanted to build a chess coach that feels less like a calculator and more like a real coach with personality.
What it does
Check-a-Mate lets users play chess against Stockfish while receiving coaching from Gemini. The app highlights legal moves, shows an evaluation bar, tracks move history, gives personality-based feedback, and lets players ask the coach questions during the game. It also includes different coach styles, such as casual, aggressive, defensive, and grandmaster-like analysis.
How we built it
We built Check-a-Mate with Python and Streamlit for the interface, python-chess for board logic, Stockfish for engine moves and evaluation, and the Gemini API for AI-powered coaching. We also used custom HTML/CSS overlays to make the board interactive and added sound effects for a more polished chess experience.
Challenges we ran into
One major challenge was making the chessboard interactive inside Streamlit without causing too much lag or screen flickering. We also had to manage Gemini API limits, make sure the AI responses did not get cut off, and balance Stockfish strength so the game felt challenging but still playable. Another challenge was making the coach responses feel varied instead of repetitive.
Accomplishments that we're proud of
We are proud that Check-a-Mate combines a real chess engine with an AI coach that explains moves in a fun and personalized way. The app is not just playable; it feels alive because the coach reacts to the game, changes personality, gives feedback, and helps the player understand what is happening on the board.
What we learned
We learned how to connect multiple tools into one complete app: Streamlit, Stockfish, Gemini, and chess logic. We also learned a lot about handling API limits, improving user experience, managing app state, and designing AI personalities that feel useful instead of robotic.
What's next for Check-a-Mate
Next, we want to make the board smoother with a true frontend chess component, add stronger post-game analysis, detect blunders automatically, include opening recognition, and create a full training mode with puzzles based on the player’s mistakes. We also want to improve the coach so it can remember the player’s weaknesses and give more personalized lessons over time.
Log in or sign up for Devpost to join the conversation.