Introduction
Lichess is a non-profit, ad-free online chess platform that handles millions of games per day. Built in Scala on the Play Framework, it demonstrates that a complex real-time web application can be fully open source while competing with commercial alternatives.
What Lichess Does
- Hosts real-time chess games with multiple time controls (bullet, blitz, rapid, classical)
- Provides puzzles, studies, analysis boards, and tournament systems
- Integrates Stockfish for server-side game analysis available to all users
- Offers a comprehensive REST and WebSocket API for third-party apps
- Supports team leagues, simultaneous exhibitions, and Swiss/Arena tournaments
Architecture Overview
Lichess runs on the Play Framework (Scala) with MongoDB as the primary datastore and Redis for caching and pub/sub. Real-time game communication uses WebSockets routed through a Rust-based service called lila-ws. The Fishnet distributed computing network offloads Stockfish analysis across volunteer machines. The frontend is TypeScript with Snabbdom for reactive DOM updates.
Self-Hosting & Configuration
- Requires JDK 21, sbt, MongoDB 6+, Redis 7+, and Node.js for asset compilation
- Use the
lila-dockerrepository for a containerized development setup - Configure via
conf/application.conffor database URLs, ports, and feature flags - Fishnet (analysis) and lila-ws (WebSocket) are separate services to deploy
- Development mode auto-reloads on Scala source changes via sbt
Key Features
- Entirely free with no ads, subscriptions, or pay-to-win features
- Sub-100ms move latency through optimized WebSocket infrastructure
- Built-in opening explorer with millions of master and Lichess games
- Accessibility-first design with screen reader support and keyboard navigation
- Transparent Glicko-2 rating system with public rating distribution data
Comparison with Similar Tools
- Chess.com — commercial with ads and premium tiers; Lichess is fully free and open source
- Scid — desktop-only database tool; Lichess is a full online multiplayer platform
- PyChess — smaller community, fewer features; Lichess has a much larger player base
- en-croissant — local analysis GUI; Lichess provides cloud analysis and multiplayer
FAQ
Q: How does Lichess sustain itself without ads? A: Through patron donations. The non-profit model keeps costs low with efficient infrastructure.
Q: Can I use the Lichess API for my own app? A: Yes, the API is free and well-documented. Rate limits are generous for authenticated requests.
Q: Is self-hosting practical for a club or school? A: Yes, though it requires several services. The Docker setup simplifies local deployment.
Q: What languages is Lichess available in? A: Over 80 languages via community translation on Crowdin.