Frontend System Design1 min readPremium

Design an Online Chess Game – Frontend System Design

68. Design an Online Chess Game

We’ll walk through the frontend system design for a live chess client like Chess.com or Lichess: a board you can drag, legal-move dots on pointerdown, two clocks that must not lie, and a reconnect that snaps to the correct ply. You’ll see why the browser generates legal moves and why that generation is never the source of truth, why a DOM board beats a canvas here, and how an animation may trail a server ply by one slide and no more.

This is not a chess-engine question. You are not asked to write alpha-beta. It is also not a chat app. Chat can drop a message and survive. A chess client that applies the wrong ply, or that flags a player the server has not flagged, has a broken game.

Problem Statement

Design the frontend for a real-time online chess game.

Requirements:

  • Play rated and casual games at bullet, blitz, and rapid time controls
  • Show legal-move hints and last-move highlights as soon as the pointer goes down
  • Keep... premium content.
Premium

Keep reading with Premium

Get the rest of this guide plus every premium question, solution, and system design deep dive.

  • All premium solutions
  • System design deep dives
  • Company-specific prep

4.9/5 from our users