lichess.org
Donate
2024

2023

Tilted arena tournament 2024

Chess engine
Happy new year!

Like that, 2022 is over! Is it just us , or does it feel like it has flown by? 2022 has been an unprecedentedly eventful year for chess , and it's been no exception for us at lichess. Thank you to everyone who makes it possible - to all those who volunteer, to all those who share their spare CPU power , to all those who spread the word about lichess and course to all those who financially support us.

Here's a recap of some of the work we've done over the course of the year.

New features

____________________________________________________________________________

Puzzles by openings

The ever-expanding puzzle set is now also organized by the openings that gives rise to the tactics. Look for your favourite openings on the overview page or follow the recommendations directly from the analysis board.

Notifications

A new preference page gives you granular control over notification types and how they're delivered. Streamers going live, study invites, and forum mention notifications are now available for devices & push to browser. You can also once again find the option to receive a daily recap email of your correspondence games we added earlier this year.

A new push-to-many system allows efficient delivery of streamer live notifications to thousands of online subscribers. We have plans for additional multicast notifications in the future.

Opening explorer

We optimized the opening explorer to the point that it can now serve all rated lichess games (rather than a sample, as before) without requiring more expensive hardware. You can now see what players in the lower rating brackets are playing, more easily do sound statics across rating groups, and are more likely to find useful numbers and games deep into your favourite lines. Along the way,we made small improvements, like adding performance ratings to the personal opening explorer and adding arrows to indicate moves in referenced games.

More

A new PGN viewer makes fo better embedded games in forum posts and is available as a standalone widget for third-party projects. The coordinate trainer now has a reverse mode where you can practice notation by naming the highlighted squares and more options to customize your training.

There's also been countless bug fixes progress on planned features , and many smaller improvements. We've been slacking on keeping the changelog in sync ( sorry , check back soon ) , but until then, or if you want to follow everything live , check out the commit log on GitHub. The commit messages are often understandable even for the non-programmers among us.

Technical Updates
________________________________________________________________________________

Backend

In July , @arex gave a talk at the TNG Big Tech Day 2022 . It gives a great overview of the latest state of our backend architecture.

Scala 3 and the JVM

One of the mammoth tasks of the last few months has been upgrading the version of scala(the programming language that much of lichess uses) from version 2 to version 3. Now that we're out of the woods there , we're pleased to say there have been major performance gains across the board and that lichess is running more efficiently than ever!

However it was not all a smooth ride , and the migration surfaced some long-standing issues! In the first updated version we started to notice erratic CPU spikes 24 hours of uptime.

Red lines indicate updates/restarts. Frequent bug fixes realeases after the initial migration masked the issue for a while.

After a call for help, and thanks to the amazing community experts and discussion on forums across the web, we nailed it to bad JVM code cache tuning.

As stressful as this was, we're ultimately lucky it happened, because we learned a lot about profiling the JVM and got useful hints along the way. Using jvm-async-profiler we optimized our production setup and are pleased to annouce that lila is now using half the CPU compared to previous versions, for similiar use.

These improvements were made with the community on our public discord, where you can find ( and help) our developers. A more in-deapth of our JVM issues can be found on thibault's blog, as well as his opinion on the improvements Scala 3 brongs to Lichess.

Frontend builds

We switched from rollup to esbuild and yarn 1 to pnpm, for major build time improvements, on the order of 10 minutes down to 2 minutes for clean build. A new custom build script, gives much more convenient watching builds for and across the frontend packages.

More

Other notable changes include the addition of a new server lila-http ( rust, axum ) to offload large tournaments, the addition of an API that allows using external engines on the analysis board ( official provides under development), tweaks to lag compensation ( now also taking into account low-level WebSoket pings), and a fishnet update bringing the latest stockfish 15.1 for server-side analysis.

MODERATION
___________________________________________________________________________

We're typically fairly quiet on specifics around moderation, but this year we have decided to pull back the curtain a little on total activity, to highlight the huge contribution that our moderation team makes to keeping lichess a fun place to be. In 2023 our team closed over 650,000 reports including 91,000 reports of cheating, almost 340,000 reports of communication infractions, 82,000 reports of sandbagging or boosting, and 138,000 miscellaneous reports for other disallowed behaviors. Many of these reports were created automatically by lichess itself, but a huge number also come from you, the users of lichess. We have many systems in place but your reports really do help us keep lichess fun for all. Here's more about reporting, fair play , and communication guidelines.

Reports are not the only mechanism we use to identify where actions need to be taken, but in total, combined with our other systems, lichess flagged over 61,000 accounts for cheating using external assistance, flagged over 25,000 accounts for sandbagging or boosting, sent almost 200,000 warning messages to users for various infractions removed chat permissions from 60,000 accounts, and communicated with users over 33,000 times through our appeals system.

These numbers may seem high to some, or low to others. Lichess has many millions of active users with millions of games played each day. The vast majority of users follow the rules, are well-behaved, and play fairly, so thank you!

We also added a new AI-based cheat detection tool, kaladin, that we spoke about in the mid-year update.

Organisation
_______________________________________________________________________________________

The lichess team is always growing, which is both great in general, and necessary with the ever-growing size, complexity, and offerings of our site, mobile app, and other software. You can read about 25 of our contributors in our advent calendar post!

As well as growing in size, we've also been putting a huge amount of effort into updating our organizational structure and processes, to ensure we keep offering a great platform to all our users (and contributors) for the future.

Some of the organisational highlights this year include:

  • hiring @veloce as full-time mobile devloper! Given we rely almost entirely on small community donations, hiring another full-time developer is a major step for us, and one we're very excited about. The new app is developed in the open and will start accepting contributions when the foundations are set.
  • Additionally, over this year we've significantly increased the number of skilled and experienced members of the team we regularly contract to work for us. Just under 20 peole (from ful-time to quite casual part-time) are hired by us (roughly equivalent to 6 full-time positions). We hope to increase this to provide more support to our users, more improvements, and more efficiency overall. Plus, to increase professional opportunities within chess.
  • Ensuring our staff and team have the freedom to learnand try out new skills to continue developing professionally is really important to us. The freedom to try new things and fail with no expectations or risks is vital in learning. So we set up a small bugdet to allow anyone in the team to ask for help in any books, training courses, or software they might need to learn new skills or develop existing ones.
  • Over 500 people got in touch with us to support our work in moving to an association d'internet general and investigating options in other countries, including the US. Teams witthin lichess have begun reaching out to some of the people willing to volunteer with most relevant skills we need right now .
  • Working with traditional print media to implement DMCA procedures.
  • We've established and set up several "councils " ( like committees within the charity organisation) to help us manage and handle some of the areas within Lichess. These largely existed informally before , but now