Lichess
Free chess on Scala, MongoDB, and donations
Thibault Duplessis built Lichess as a free, adless chess server — Scala and Play on the backend, MongoDB for billions of games, funded by user donations instead of VC. It publishes costs openly and still treats boring infra as a virtue.
2010–2015
Side project that refused to monetize
nginx
Scala
Play framework
MongoDB
Elasticsearch
WebSocket server
Lichess began as a realtime web app experiment and grew into one of the most popular chess servers online. Duplessis kept the core promise: free for everyone, no ads, MIT-licensed source on GitHub.
The stack from day one was Scala with Play, MongoDB for game storage, Elasticsearch for search, nginx proxying, and a separate WebSocket server talking over Redis. Chess logic lives in the scalachess submodule — boring separation, not microservices cosplay.
Lesson
A side project with a moral stance (no ads, ever) forces infra choices that VC chess apps never need to make.
2015–2020
Outperforming funded rivals on donations
Dedicated servers
Scala
MongoDB
Elasticsearch
Stockfish (Fishnet cluster)
At MiXiT 2015 Duplessis described hosting more than five million new games per month for on the order of $183 in server costs — community-powered Stockfish analysis via donated Fishnet nodes, codebase kept efficient as traffic grew.
The architecture stayed async Scala with Akka streams, games indexed in Elasticsearch, rated games exported to a free PGN database at database.lichess.org. Scale came from code discipline and donated compute, not a Series A.
Lesson
Donated worker nodes (Fishnet) are a cheat code for CPU-heavy features. Let your community supply cycles you cannot afford to rent.
2021–today
French non-profit, open books
Donation-funded hosting
Scala 3
MongoDB
Elasticsearch
Open PGN database
Lichess is now a French loi 1901 non-profit. The 2024 year-in-review blog reports 2023 gross income around €651k — roughly 97% from user donations averaging €5 — with expenses near €577k and a modest surplus.
Costs publish at lichess.org/costs (a public spreadsheet). Salaries and contractors are the biggest line items; the stack did not pivot to hyperscaler cosplay. It graduated to a sustainable charity running boring databases at billion-game scale.
Lesson
Open financials build trust faster than growth hacks. If users fund your servers, show them the spreadsheet.
Sources
- Lichess — Public costs spreadsheet
- GitHub — lichess-org/lila (Scala, MongoDB, Elasticsearch stack)
- Lichess blog — A review of 2024 (donations & expenses)
Facts drawn from public engineering posts and interviews. Numbers are approximate where sources disagree — we're stack advisors, not historians.
Get the right stack for YOUR scale — not theirs
Lichess's stack made sense for Lichess. Yours won't — and copying theirs is how you end up with a $4k/month bill and three unused Kubernetes clusters.
Plan my stack — free