I've been wanting to work with data, and I've also been in (yet another) chess era. So I started working on (yet another!) chess programming project.
You enter your chess.com username, a date range, and a max number of games. The tool fetches your games via the public chess.com API, identifies the ~10-15 most critical positions per game (captures, promotions, large clock drops, pre-checkmate sequences) and runs Stockfish at low depth on each of those positions in a Web Worker right there in the browser.
From that it builds a profile across all your games: - Which piece type you blunder with most - Which openings give you the most trouble - How your avg clock usage correlates with winrate - Endgame performance broken down by material configuration - Piece activity in wins vs losses - Castling timing and its correlation with results - and more, in varying degrees of usefulness
Stack: Vue 3 + TypeScript, chess.js for PGN parsing, Stockfish WASM in a Web Worker.
No backend, no login, no data leaves your browser. Built this for myself but figured others might find it useful. Would especially love feedback from stronger players on whether the insights are actually useful or just noise. So far, even though some stats are obvious (my winrate improves when I think longer, interesting!), it helps to visualise it.
Information/disclaimer: As this web tool runs only in the browser, I have made performance concessions to keep it as light and fast as possible. For this reason, some of the statistics may not be 100% accurate. It's more of a proof-of-concept/experiment. However, if you found it fun, interesting, or you have feedback or feature requests, let me know and I'll be happy to chat. It also uses somewhat experimental features (WASM/service workers) and is prone to some unexplainable bugs sadly. Thanks for reading!!