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.shfollowed byrunto 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
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
Documentation
Documentation improvements are always welcome. Issues taggednontechnical 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 taggednontechnical.
Reporting Bugs
Found a bug? Create an issue on GitHub.For mobile-only bugs, report them to Lichess mobile instead.
Suggesting Features
Before creating a feature request:- Discuss on the forum: Post your idea on the Lichess Feedback Forum to gauge community interest
- Wait for feedback: Developers may discuss the idea there
- Create an issue: If the feature is well-received, create an issue and link to the forum discussion
- 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

