Skip to main content
Lichess is a free, open-source chess server that welcomes contributions from developers worldwide. Whether you’re fixing bugs, adding features, improving documentation, or translating the site, your contributions help millions of chess players.

Getting Started

1. Set Up Your Development Environment

Before you start coding, you’ll need to set up your local development environment:
  • Follow the Lichess Development Onboarding guide to configure your system
  • Clone the repository and run ./lila.sh followed by run to start the server
  • The development server will be available at http://localhost:9663

2. Find Something to Work On

The best way to start contributing is by finding an issue that matches your skills:

Good First Issues

Issues specifically tagged for newcomers to the codebase

No Scala Required

Frontend and UI issues that don’t require Scala knowledge

Non-Technical Issues

Issues requiring artwork, documentation, or design work

All Open Issues

Browse all open issues to find something that interests you

3. Join the Community

Connect with other Lichess developers on Discord to:
  • Ask questions about the codebase
  • Discuss feature ideas before implementing them
  • Get help with your development environment
  • Collaborate with other contributors
Before starting work on a feature, consider asking in the Discord programming channels whether the change is desired. This can save you time and ensure your contribution will be accepted.

Types of Contributions

Code Contributions

Lichess is built with:
  • Backend: Scala 3 with Play Framework 2.8
  • Frontend: TypeScript and snabbdom
  • Styling: Sass for CSS generation
  • Database: MongoDB for game storage, Redis for real-time communication
See the Code Style guide for coding standards.

Documentation

Documentation improvements are always welcome. Issues tagged nontechnical often need documentation work.

Translations

Lichess is available in over 140 languages thanks to community translators. Help translate at Lichess on Crowdin. See the Translations guide for more details.

Artwork and Design

Graphic designers and artists can contribute to issues tagged nontechnical.

Reporting Bugs

Found a bug? Create an issue on GitHub.
Before creating an issue, make sure to:
  1. List the steps to reproduce the problem
  2. Search existing issues to avoid duplicates using GitHub’s advanced search
  3. Verify it’s not a trivial problem or one requiring unrealistic dev time
For mobile-only bugs, report them to Lichess mobile instead.

Suggesting Features

Before creating a feature request:
  1. Discuss on the forum: Post your idea on the Lichess Feedback Forum to gauge community interest
  2. Wait for feedback: Developers may discuss the idea there
  3. Create an issue: If the feature is well-received, create an issue and link to the forum discussion
Make sure your feature request:
  • Is effective in delivering a goal (not just cosmetic)
  • Doesn’t rely on assumptions about implementation difficulty
  • Is unique and can’t be easily replaced by simpler alternatives
  • Is clear and concise with no ambiguities
Feature requests that lack potential or effectiveness may be closed. Focus on explaining what needs to happen, not what you think will happen technically.

Competence Development Program

Lichess supports contributors by covering costs of relevant training materials and activities. This helps empower contributors and enables future contributions. Learn more at Competence Development for Lichess contributors.

Next Steps

Pull Request Guidelines

Learn how to create effective pull requests

Code Style Guide

Follow Lichess coding standards

Build docs developers (and LLMs) love