- Set up your development environment.
- Pick a GitHub issue to work on. The
good first issue
andno scala
tags might be useful. - Communicate with other devs on Discord.
Some issues that need artwork and documentation to be resolved are tagged nontechnical
.
Make an issue. Before creating an issue, make sure that:
- You list the steps to reproduce the problem to show that other users may experience it as well, if the issue is not self-descriptive.
- Search to make sure it isn't a duplicate. The advanced search syntax may come in handy.
- It is not a trivial problem or demands unrealistic dev time to fix. Such issues may be closed.
Report mobile-only bugs to Lichess mobile.
Issue tickets on features that lack potential or effectiveness are not useful and may be closed. Discussions regarding whether a proposed new feature would be useful can be done on the Lichess Feedback Forum to gauge feedback. The developers may also discuss the idea there, and if it is exemplary, a corresponding issue ticket will be made. When you're ready, make an issue ticket and link relevant, constructive comments regarding it in your issue ticket (such as a detailed Reddit post; linking to an empty forum thread with only your own commentary adds no value). Make sure that the feature you propose:
- Is effective in delivering a goal. A feature that adds nothing new is purely fancy; please develop a userscript or userstyle for your personal use instead.
- Doesn't rely on mundane assumptions. Non-technical people have the tendency to measure how difficult / easy a feature is to implement based on their unreliable instincts, and such assumptions waste everyone's time. Point out what needs to happen, not what you think will happen.
- Is unique, if you're aiming to solve a problem. Features that can easily be replaced by easier ideas have little value and may not have to be brought up to begin with.
- Is clear and concise. If ambiguities exist, define them or propose options.
Check out Lichess on crowdin.com.
Also see https://lichess.org/help/contribute.