explaingit

lichess-org/lila

📈 Trending18,212ScalaAudience · developerComplexity · 5/5ActiveLicenseSetup · hard

TLDR

Free, open-source chess server with real-time games, tournaments, analysis tools, and a massive game database. Built in Scala, run as a non-profit with no ads.

Mindmap

mindmap
  root((lila))
    What it does
      Real-time chess games
      Tournaments and exhibitions
      Tactics trainer
      Analysis board
    Features
      Mobile app
      Forums and teams
      Game database
      Computer analysis
    Tech stack
      Scala 3
      Play framework
      MongoDB
      Elasticsearch
      Redis
      TypeScript
    Use cases
      Play online chess
      Study positions
      Host tournaments
      Download games
    Community
      140+ languages
      Non-profit model
      No advertisements

Things people build with this

USE CASE 1

Play real-time chess games against other players online for free.

USE CASE 2

Analyze chess positions using Stockfish engine and share analysis with others.

USE CASE 3

Host or participate in tournaments and simultaneous exhibitions.

USE CASE 4

Download and study over 12 billion historical games from the public database.

Tech stack

Scala 3Play FrameworkMongoDBElasticsearchRedisTypeScriptStockfishWebSocket

Getting it running

Difficulty · hard Time to first run · 1day+

Multiple services required: MongoDB, Elasticsearch, Redis, plus Scala/Play build and Stockfish engine integration.

Open-source software; the explanation does not specify the exact license, but lichess.org is known to use the AGPL, which requires derivative works to be open-source as well.

In plain English

Lila (short for "lichess in scala") is the open-source codebase behind lichess.org, a free online chess server. Unlike most chess platforms, lichess is entirely free to use, has no advertisements, and is run as a non-profit. The platform supports real-time chess games, tournaments, simultaneous exhibitions (where one player faces many opponents at once), forums, teams, a tactics trainer, a shared analysis board for studying positions, and a mobile app. The server is written in Scala 3, a statically-typed programming language that runs on the Java Virtual Machine, built on a modified version of the Play web framework. It handles many tasks asynchronously, meaning it can process many requests at once without waiting, using Scala's concurrency tools. WebSocket connections (which keep a live two-way channel open between browser and server for real-time moves) are handled by a separate companion server communicating over Redis, a fast in-memory data store. Game data, over 12 billion games, is stored in MongoDB and indexed with Elasticsearch for search. Computer analysis is provided by Stockfish, a strong open-source chess engine, deployed across a cluster of donated servers. The web interface is written in TypeScript. All rated games are published in a freely downloadable database. The UI is translated into over 140 languages by community volunteers.

Copy-paste prompts

Prompt 1
How do I set up a local development environment for lichess and run the server?
Prompt 2
Show me how to contribute a new feature to lichess, like a new game variant or UI improvement.
Prompt 3
How does lichess handle real-time chess moves using WebSockets and Redis?
Prompt 4
I want to add a new language translation to lichess. What's the workflow for community translators?
Prompt 5
How can I query the lichess game database and analyze opening statistics?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.