- Set up your development environment.
- Pick a GitHub issue to work on. The good first issue and no scala tags might be useful.
- Communicate with other devs on the #lichess IRC channel on freenode or Discord.
Make an issue. However, note that issues that provide little value compared to the required effort may be closed. 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 demand unrealistic dev time to fix.
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 wastes 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.