Skip to content

Lichess Development Documentation

Lichess.org is an open-source chess server. This documentation is for developers who want to contribute to the project.

Code + Architecture

The main Lichess code is written in Scala and Typescript. Some of the supporting services are written in Rust.

For a full list of repositories and to see an architecture diagram, see lichess.org/source.

What is lila?

Lichess is primarily written in the Scala programming language. The name for the main Lichess codebase is "lila", which stands for "Lichess in Scala".

Ways you can contribute

Setting up a development environment

There are 3 ways you can run a development environment, with increasing complexity:

  1. lila-gitpod - Will create a development environment in a remote workspace. This doesn't require any setup on your local machine. Try this to get started quickly and see what a development environment looks like on a fresh install.
  2. lila-docker - Run Lichess locally in Docker containers.
  3. Install the dependencies and run all the services on your local machine. See Local Setup for instructions.

Competence development program

Lichess would like to support its contributors in their competence development by covering costs of relevant training materials and activities. This is a small way to further empower contributors who have given their time to Lichess and to enable or improve additional contributions to Lichess in the future. For more information, including how to apply, check Competence Development for Lichess contributors.