Lichess End of Year Update 2022
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 of 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.
Puzzles by Openings
The ever-expanding puzzle set is now also organized by the openings that gave rise to the tactics. Look for your favorite openings on the overview page or follow the recommendations directly from the analysis board.
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 your 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.
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 statistics across rating groups, and are more likely to find useful numbers and games deep into your favorite 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.
A new PGN viewer makes for 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.
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 versions we started to notice erratic CPU spikes after 24 hours of uptime.
Red lines indicate updates/restarts. Frequent bug fix releases after the initial migration masked the issue for a while.
After a call for help, and thanks to the amazing community experts and discussions 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 announce that lila is now using half the CPU compared to previous versions, for similar use.
These improvements were made with the community on our public discord, where you can find (and help) our developers. A more in-depth of our JVM issues can be found on thibault’s blog, as well as his opinion on the improvements Scala 3 brings to Lichess.
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 a clean build. A new custom build script gives much more convenient watching builds for and across the frontend packages.
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 providers under development), tweaks to lag compensation (now also taking into account low-level WebSocket pings), and a fishnet update bringing the latest Stockfish 15.1 for server-side analysis.
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 2022, 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 communications 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.
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 organisational 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 a full-time mobile developer! 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 people (from full-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 learn and 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 budget 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’interet general and investigating options in other countries, including the US. Teams within Lichess have begun reaching out to some of the people willing to volunteer with the 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 have more structure and organisation around them. We plan to share more on these soon!
One of our most critical councils is the Finance Council, led by a Lichess trustee who’s also an economist. The Finance Council ensures Lichess can stay financially viable both today and in the future, considering future risks, making projections, keeping our books up to date, and communicating with our independent accountants and auditors.
Speaking of books, we believe now is a good time to share more details about our finances. As mentioned in a blog publish in October, we retain the services of a French accountancy firm to compile and sign off our annual accounts, which are then reviewed by an independent auditor. This happened for the first time in 2021, and you can see our 2021 accounts.
For the oddballs who don’t enjoy reading French charity accounts, we’ve summarised the important numbers below.
|Salaries and employer taxes||207,933|
|Servers and hosting||68,364|
|Other admin costs||9,549|
Our 2022 numbers will probably be published in the spring (or June at the very latest). At this point, we believe they should show a smaller surplus than the previous year, due to higher expenses, but still a surplus, meaning that our income exceeded our expenses, allowing us to save for bad months. A surplus is always better than a deficit, but with the global inflation we expect a significant increase of our expenses in 2023.
Some interesting facts:
- Our average donation is of 5.64€ - Lichess is grassroot funded!
- About 0.3% of our active userbase donate
- Donors from the US and Germany make up over 50% of our donations
Content & Community
At Lichess we cherish freedom in all its forms. The recent events at Twitter reminded us to create a Mastodon account. Mastodon is a FOSS alternative to Twitter. We encourage all our Twitter followers meet us there.
Thanks to the community which put on great tournaments and events on Lichess! Here’s some of the higher profile events that Lichess hosted, supported or organised:
- Lichess sent two players to a chess World Championship! GM Nodirbek Abdusattorov and GM Hikaru Nakamura were victorious on Lichess over 86,201 entries to win their respective finals and play OTB in Iceland, where Nakamura became World Fischer Random Champion 2022. Many thanks to Charlotte Chess Centre and Offerspill Sjakklubb for their co-organisation of this event with us.
- This year, we organised 25 Titled Arenas, paying out a total of $25,000 in prize money to professional chess players, and helping provide more opportunities and accessible regular prize fund events to the chess community as a whole.
- In total, around 95,000 players took part across all four of our seasonal marathons this year, for a chance to win a coveted seasonal trophy!
- Lichess hosted two United States Chess Federation scholastic tournaments, organised by the Charlotte Chess Centre. That is more than 1,500 children who took part in these national events played on Lichess.
- The Lichess Swiss team hosted over 8,000 tournaments in the Swiss tournament format, breaking over 250,000 members in the team!
- Candidates coverage including video recaps
- The Lichess Twitch and Youtube channels did 119 live streams, mostly using the “Lichess Plays” format where viewers play against strong titled players like IM John Bartholomew, IM Eric Rosen, WGM Sabina Foisor and more.
- Broadcasts growth, added standings feature.
- Grassroots tournament organizing continues to be strong on Lichess. The Lichess Bundesliga had almost half a million participants in 2022, with more than 500 active teams. New teams can be registered for free by contacting the league manager.
- Another grassroots event, the Mega Team Battle, happens every other Friday. It’s a gigantic arena, often with more than 300 teams and thousands of participants.
You may have met some of us at the Montreal meetup. Thanks for coming!
We also worked with a number of other organisations on various projects:
- Over the course of the year, we provided technical support and custom help to over 400 schools or educational institutions, aiding the provision of free, accessible chess education to educational institutions all around the world. Assuming the average student population of public schools, this could be estimated to positively impact 200,000 schoolkids and students!
- We donated content we commissioned and produced for the Candidates Tournament to the Kelantan Chess Association for the Disabled, to produce a limited edition book. All profit from the sale of this book went towards supporting the disabled chess community in Malaysia.
- Members of the Lichess team met with the French Ministry of Education, to discuss projects and initiatives related to the provision of chess education, tech education and FOSS within the French education system.
- We offered free advice and support to over a dozen private companies or other organisations – some outside of chess, looking to get active within it, others within chess relying on code and software we had produced.
- Lichess continued to support Free Open Source Software (FOSS) within the chess ecosystem. In a milestone for chess, in 2022 we welcomed FIDE into the FOSS community, with their game viewer using Lichess AGPL code.
- Several companies within chess began using, or continued to use Lichess FOSS code, licensed under the AGPL, in order to develop their products (such as FIDE Online Arena, GChess, Clono, and many others). Lichess is happy that our FOSS code supports private industry and innovation within chess, where those companies respect the license of the code, the contributions and work of the community, and recognise the impact charitable altruism has on their business.
We hope you enjoyed Lichess in 2022 and wish you a happy new year!