- [Set up your development environment](https://github.com/ornicar/lila/wiki/Lichess-Development-Onboarding).
- [Pick a GitHub issue to work on](https://github.com/ornicar/lila/issues). The [basic](https://github.com/ornicar/lila/issues?q=is%3Aissue+is%3Aopen+label%3Abasic) and [no scala](https://github.com/ornicar/lila/issues?q=is%3Aissue+is%3Aopen+label%3A%22no+scala%22) tags might be useful.
[__Make an issue__](https://github.com/ornicar/lila/issues/new). However, note that issues that provide little value compared to the required effort may be closed. Before creating an issue, make sure that:
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](http://lichess.org/forum/lichess-feedback) 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](https://github.com/ornicar/lila/issues/new)__ 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:
1. 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.
2. 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.
3. 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.
4. Is __clear and concise__. If ambiguities exist, define them or propose options.