lichess.org
Donate

Feature requests and Lichess

What is a feature request?

Things break on Lichess, all the time. The knight suddenly jumps in a "J" instead of an "L." Reporting this to us is not a "feature request", this is a "bug report." Bugs are when the software behaves in a way contrary to what the creator expected. A feature request is when the software behaves in a way contrary to what the userexpects. For example, there is currently no way to order a pizza with Lichess. The Lichess devs did not intend for users to be able to order pizzas with Lichess. If you ask for a way to order a pizza on Lichess you are not reporting a bug, you are asking for something new, you are making a "Feature request"

Lichess is absolutely inundated with feature requests. Via email, social media, the lichess forums. There is an endless ocean of ideas on what the next addition to Lichess should be. On the one hand, this is useful to us, we do sometimes add new features and input from the people who will potentially be using them is valuable. However, there seems to be a lot of misunderstanding from the general public on what you are really asking for with a feature request and why new features are made or not made.

Software, at its base, is made up of code, code written by people. As such, it's easy to confuse it with other things that people write like books or magazines. However, code is fundamentally different from books or magazines in its need to be maintained. Herman Mellville can write Moby Dick170 years ago and it still "functions" today. Software is not nearly as resilient without intervention. Anyone who doubts me can try and open a modern web page with a browser from 10 years ago.

So when you create a new feature you have only done part of the total work that you will eventually invest into it. This is the hidden cost of every new thing on Lichess, it makes every other new thing a little slower to arrive, it also makes every bug a little slower to get fixed. Add enough features willy-nilly and the development of the site grinds down to a snail's pace as the devs quickly begin to regret the number of plates they thought they could keep spinning forever.

But it gets worse! You see, no feature is an island. Features interact with each other, and sometimes they fight! The new cool variant that you suggested? Are the games rated? It has to interact with the rating system. How will people find games? It has to interact with the game seeking system. You must not only maintain the feature itself, but it makes all the other things connected to it slightly harder to maintain as well.

So how do we decide to implement something new? There are no hard-and-fast rules, but generally we favor things that will be used a lot over things that will be used less. We also favor things that already mesh well with the current Lichess infrastructure over things that don't. How do we know that a feature will be popular? Of course, we can't know for sure, but there are certain guesses that are more educated than others. Is something like the feature already available elsewhere and popular? Has it been requested again and again by users?

So keep the feature requests coming, they are certainly useful to help us decide what to work on next. However, keep in mind that your idea may be very good and still not get implemented. The number of potential good ideas is infinite and the number of people to build and maintain them is not.