Developer Appreciation: The Lichess Story

Nowadays lichess is one of the most widely used and best loved chess sites in the world. Remarkably it was started a few years back as a hobby project by one young French developer, Thibault Duplessis. To this day it’s remained a totally free service, and is an open source project.

Thank you! Thank you! Thank you! And add a million other thank yous from the chess players around the world you have made your site a second home! ❤

mtnmcallister, Reddit AMA

Initially Thibaut simply wanted to try out certain then new web technologies for fun, and decided to build an online chess game because he liked chess himself and thought it would be relatively simple to build. He was not looking to get any users at all, or to build a large site.

As the site grew in popularity, he continued to work on it as a hobby project, and paid all the running costs for the servers himself. He argued that as the site was his hobby, and he had a well-paid day job to pay for such hobbies among other things, there was no need for anyone else to contribute financially.

Being an open source project, people did of course join up to contribute in other ways, from programming, to translating the site into a large number of languages, to moderating the forums.

Eventually the site became so popular and the feature set so rich that the amount of work needed and the running costs for the servers were beyond what could be managed as a side project. At this point the community stepped in with donor funding, firstly for the servers, and later to pay Thibault a reasonable salary to enable him to work on the site full time.

Last I knew, he was backpacking the world while continuing to work on lichess, funded by a modest salary paid from donations.

I’m not doing office hours; instead I’m traveling around the world, working from everywhere there is an Internet connection.

Some days I will only check in to see if everything is going well, and if I’m not needed to fix an urgent bug, I’ll enjoy a day of hicking, diving, or traveling by bus to a new town.

More often, I’ll wake up early in some cheap hostel, check in with the awesome lichess team on slack, empty the lichess email box (about 50 mails a day, but I get help), and get to work. Fixing the bugs I wrote yesterday, then writing new bugs (a.k.a. features) for tomorrow. Titivating the servers. Reviewing and merging code from contributors. Reading reports and new ideas from the forum. Asking the moderation team and mobile app team how I can help. Taking breaks where I’ll play a few correspondence moves, or a couple blitz games, or check out reddit. Then back to code, and eventually, before I go to sleep, when lichess is the most quiet, I deploy the new fixes and bugs I wrote.

On a good day I can put in about 15h of work. Sometimes 10h, sometimes 5h. In any case I’m on duty 24h/24, 7 days a week; the team has my phone number and will call when something breaks.

TL;DR lichess takes as much work as I can or want to put in.

Thibault Duplessis, Reddit AMA

If you are in interested in Thibault’s tale I can recommend his Reddit AMA, plus this episode of the Perpetual Chess Podcast and the following video:

Both are fascinating, inspiring and rather fun even if you haven’t the slightest knowledge about chess. They deal with topics that all developers and gamers can relate to, and offer interesting insights into matters such as:

  • How to build and scale a site
  • What makes a game site a success?
  • Why open source?
  • How to make a community work?
  • How to handle cheats, trolls and those out to game the system

A big thank you to Thibault and the lichess team for making this wonderful site!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s