Chess Game in React. En Passant Nearly Broke Me. Checkmate Broke Me Twice.
Chess in React. Nobody asked me to build this. It wasn't on any job description. I needed to prove - to myself - that I could handle complex state management. Sixty-four squares. Thirty-two pieces. Infinite possible game states. React for the board and piece rendering. TypeScript for type-safe game logic - because when you are validating chess moves, a runtime error is not just a bug, it is an illegal move nobody catches. Rendering a board? Easy. Making the game actually follow the rules? That's where it got brutal. Check detection after every single move. Castling requires four conditions to all be true simultaneously. En passant - the most confusing rule in chess - is even more confusing in code. And the difference between stalemate and checkmate? One letter in English. Entirely different logic in TypeScript. Chess taught me more about state management than any Redux tutorial. More about TypeScript than any documentation page. The point was never to build the next Chess.com. The point was to pick something complex and finish it. That kind of thinking - modeling a system with interlocking rules where one wrong state corrupts everything downstream - transfers directly to…