Privacy

No account, no advertising cookies, no trackers. This is everything.

What is kept in your browser

LaviChess keeps a few small things in your browser's local storage (localStorage). They stay on your device, with two exceptions: when you play or watch online, your player name and the random id in sd:online:device go to our game server (only the id, when you react to or share a game); and if you have a profile, your games, your progress and your game settings are kept with it (see below).

KeyWhat
sd:settingsYour choices: opponent, color, clock, display, board, pieces, what stands on the table, pace, drama camera, light mode and whether you want sound in it, up to three favorite tables and the player name you chose for games with friends.
sd:online:deviceA random id for this browser. It goes to our game server whenever you play or watch a game online, or react to or share a game, so you get your seat back if the connection drops, and so a watcher, a reaction or a share is only counted once.
sd:online:profileYour player code and player name, if you have made one (for correspondence and tournaments). If you logged in with your face, your fingerprint or an email link, a device key for just this phone or computer is kept here instead.
sd:turneringar:v1Class and club tournaments you have created on this device: the code, the name, when each was created and your own key to it.
sd:profiler:v1The profiles that have been used on this device (for "Who's playing?"): id, code, name and portrait.
sd:partier:uppeFor each profile: when the latest game sent from this device was played, so only new games are sent next time.
sd:dagens:synkThe days you solved the daily puzzle on your other devices, fetched from your profile (for your streak).
sd:granskat:v1What the computer saw when it went through your games here in the browser: your mistakes, its better moves and the patterns (for practice on your profile). Not sent to us.
sd:lektioner:v1The lessons: how many steps you have solved in each lesson and when you finished it.
sd:lektioner-repetera:v1Review with Lavi: which lesson tasks you got wrong, when they should come back and how many times in a row you've gotten them right since then. If you have a profile, it's kept there too.
sd:egnapussel:v1Which of the puzzles from your own games you have solved or looked at the solution of.
sd:tankar:v1Your opponent's thoughts: what the house player chose between before each of their moves, kept with the game's code when a game against them ends, for the review. The latest 20 games. Not sent to us.
sd:bordsovning:v1Playing at the table (in the courses' practice against the computer): which step you passed at the table and when, until the lesson has counted it. Removed when you go back to the lesson.
sd:partiThe game you are playing right now against the computer or with a friend on the same screen (the moves, the opponent, the clocks), so you can carry on after a reload. Removed when the game ends.
sd:ladderWhich opponents you have beaten or drawn with (the check marks in the list).
sd:introThe date you saw the intro, so it doesn't play every time.
sd:lattThe date we suggested light mode on this device, so we don't ask again.
sd:audioThe sound volumes, the sound pack and whether the sound is off.
sd:upplastWhich unlocked things for your table we have already told you about, so we only say it once.
sd:reaktioner:v1Which reactions you have given to shared games, so the button shows as pressed (a short checksum of the game, not the game itself).
sd:partier:v1Your games: the code of each game you finished (the same as in a replay link), when it was played and what kind of game it was. With a profile, they're kept there too.
sd:hamtade:v1Games you imported from Chess.com, Lichess or a PGN file: the code of each game (the same as in its link, with the players' names), when and where it was played, which color you had and the game's id on Chess.com or Lichess, so no game is kept twice. At most 500. Not kept on our server, and not kept with your profile.
sd:hamta:v1The usernames on Chess.com or Lichess you imported games from, and when the newest and oldest imported games were played, so you can fetch new games next time. Not sent to us.
sd:dagens:v1The daily puzzle: for each day, its number, the puzzle's id and how you solved it (for your result, your streak and your history).
sd:pussel:v1The puzzle trainer: for each theme, and for the mixed puzzles, the level you chose and how far you have come at each level.
sd:rush:v1Puzzle Sprint: your best score, its date and how many runs you have played.
sd:pusselrating:v1Puzzle training: your puzzle rating, how each theme has gone, which missed puzzles come back and when, and your highest step on the Puzzle Ladder. If you have a profile, it's kept there too.
sd:pusselsett:v1Puzzle training: which puzzles you have had lately (their ids), so they don't come round again too soon.
sd:duell:v1Puzzle Duel: who you played last, and how many times you have won, drawn and lost against each.
sd:oppningstraning:v1Practice the main line (on the opening pages): for each opening and color, how many times you have played the main line to its end, and which lines come back and when. If you have a profile, it's kept there too.
sd:plusWhether the profile on this device has LaviChess Plus and until when, so the gold crown can be shown without asking the server. Only there if the profile has Plus.

The keys start with sd for Schackdags, LaviChess's Swedish sister: the two sites share their code. Your browser also keeps the site's files and the computer's chess program in its cache, and a service worker lets you play without a connection after your first visit, and shows your notifications if you've turned them on.

Statistics

We count visits with our own Umami, without cookies and without recognizing you from one visit to the next. Besides page views, these events are sent, with nothing that points to you:

EventWhat
parti-startA game starts: opponent, color, clock, display and whether light mode is on.
parti-slutA game ends: opponent, result, how it ended, number of moves.
introSomeone watched the intro.
parti-fortsattSomeone continued a saved game: the opponent and how many moves it had.
3d-langsamThe 3D board was too slow and we switched to 2D.
3d-senThe 3D board took too long to arrive and the plain board was shown instead.
latt-forslagWe suggested light mode, and why: the board was slow, the browser is saving data or the device asks for less motion.
latt-lageSomeone switched light mode on or off, and where: in the menu, by the board or in the suggestion.
simultan-startA simul starts: which set of opponents.
fotolageSomeone opened photo mode (the picture is made in your browser and is not sent to us).
klippSomeone saved the highlights as a video: the format and the number of moments. The video is made in your browser and is not sent to us.
pussel-lostA puzzle was solved: the theme and the level (only the first one until the page is reloaded).
dagens-klarThe daily puzzle was finished: its number, the result and the number of mistakes.
dagens-delaA daily result was shared: its number and how (copied or shared).
rush-startA Puzzle Sprint run starts: whether it is your own run or one someone shared.
rush-slutA Puzzle Sprint run ends: the score and why.
rush-delaA Puzzle Sprint score was shared: the score.
svit-slutA climb on the Puzzle Ladder ended: the step it reached.
duell-slutA Puzzle Duel ended: the opponent and how it went.
lektion-startSomeone solved the first step of a lesson: which lesson.
lektion-klarSomeone went through a whole lesson: which lesson.
lektion-repetitionSomeone finished a review with Lavi: how many tasks it had.
vanner-skapaSomeone created a table for a friend: the clock, the color and whether the game should be rated.
vanner-ga-medA friend took a seat at a table.
vanner-slutA game between friends ended: the clock, how it ended, the number of moves.
vanner-igenThe friends played another game.
distans-nyA correspondence game was created: days per move.
distans-antaA correspondence challenge was accepted: days per move.
spela-igenSomeone invited a past opponent to a new correspondence game.
arena-ga-medSomeone joined an arena: which one.
spela-nuSomeone pressed Play on Play now: the time control.
spela-nu-partiPlay now found an opponent: the time control, and whether it was one of the house players.
tittaSomeone watched a game: what kind (friends, arena, correspondence or Play now).
parti-delaSomeone shared the page of a played game: how (copy link, share, WhatsApp, Messenger or text).
parti-reaktionSomeone reacted to a shared game: which reaction.
schackkod-nyA new player code was made.
passkey-nySomeone saved their profile with their face or fingerprint.
passkey-inSomeone logged in with their face or fingerprint.
epost-nySomeone asked to add an email address as a backup.
epost-bekraftadSomeone confirmed an email address as a backup.
epost-inSomeone logged in with a link from their email.
turnering-skapaA class or club tournament was created: school or club, the format and the time control.
turnering-ga-medSomeone joined a class or club tournament: school or club.
diplom-skriv-utWhoever organized a tournament printed the certificates: how many.
partier-hamtadeSomeone imported their games: from where (Chess.com, Lichess or a PGN file) and how many. Never the username.
plus-kassaSomeone went to the payment for LaviChess Plus: what (a plan, questions for the Coach or a gift card), never who.
plus-presentSomeone redeemed a gift card.

The chess engine runs on your device

The computer that plays runs in your own browser, and so does the one on the analysis board. The games you play or paste in are not sent to us. (A game or position opened through a link is in the link's address, which the web server's log keeps for 14 days: see below.)

In the explorer on the analysis board, the Played here tab asks our server which moves have been played in the position on the board. It sends a code for the position, not the game, and the server answers with only the moves, game counts and results: no names, no games. The code is in the address, which the web server's log keeps for 14 days, like every address. The club players' numbers in the explorer come as files from our own server: your browser asks Lichess nothing.

Games you import from Chess.com and Lichess

On My games you can import your games from Chess.com or Lichess, and that only happens when you ask. Your browser then asks the site directly, with the username you typed, and gets your public games: the same games anyone can see there. The request doesn't go through us, and we get no password and nothing else from your account. Chess.com and Lichess see the request like any other visit to their site: your IP address, the username you asked about and that the request comes from LaviChess, but not which page, and not who you're logged in as there.

The games are kept only in your browser (sd:hamtade:v1), with the players' names as the site has them. The username is kept there too, so you can fetch new games next time (sd:hamta:v1). None of it is kept on our server or with your profile, and the computer that goes through the games runs here in your browser. A PGN file you add is read only in your browser too. Remove all imported games on My games deletes all of it.

If you open an imported game, it reaches us like every game page: the page's address, with the whole game and the players' names in it, goes into the web server's log for 14 days and, as a page view, into our statistics, just as for every game (see Links to games). The list on My games doesn't load any game page ahead of time, only the game you open.

Links to games

When you share a game against the computer, the whole game is in the link itself: the moves, the names you played under and the date. Games against the computer are not stored on any server, except when someone shares the game's page or reacts to it: then the link's code and the number of reactions are kept (see below). The web server's log (below) also keeps the page's address, with the link's code, for 14 days. The pages of played games don't show up in search engines.

Playing a friend online

When you play a friend online, our game server runs the game: it checks every move and keeps the clock. So it keeps what that takes, and nothing more: the moves, the names you chose and your browser's random id (so you get your seat back). It's deleted once everyone has left the table: after half an hour, or two hours if the game wasn't finished, and never later than a day. The game server doesn't store IP addresses; it uses them only briefly in memory to stop abuse. If you both choose a rated game, your player codes (as ids) are kept at the table too. There's no chat, only ready-made greetings, and every name is checked for rude words.

Class and club tournaments

The game server keeps the tournament's name, the players' names, the games and the results, and a checksum of the organizer's key (not the key itself). Players are recognized by the browser's random id (sd:online:device), not by any player code. Everything is deleted 30 days after the tournament is over, or right away if whoever organized it deletes it.

Player codes, profiles and competitions

Correspondence games, tournaments and ratings need our game server to remember you between visits. That's what the player code is for. The server keeps what that takes, and nothing more:

  • Your player code: your player name and a checksum of the code (not the code itself), when it was made and last used.
  • Your profile (on the player code): the portrait you drew (no photo), the motto you picked, your favorite table, the games you played (each game's code, at most 500), your progress (which opponents you have beaten or drawn with, the days with the daily puzzle, your puzzle rating with its themes, missed puzzles and highest step on the Puzzle Ladder, the lessons, the lesson tasks that come back for review, and how far you have come practicing the openings' main lines), your choices in the game's menu and your saved tables, and which profiles you have finished a game against online (as ids, at most 40, for Play again). A Play again invitation can only go to someone you have already played.
  • Correspondence games: the moves, the players' names and player codes (as an id), while the game goes on and for 30 days after.
  • Tournaments and cups: the arenas and cups under way, and the winners' names and scores on the results list.
  • Reactions and shares: for a game that someone has reacted to or shared, the game's code is kept (what is in the link: the moves, the names you played under and the date), and how many of each reaction and share it has had, in total and this week. Who reacted or shared is not kept. A game no one has touched for 90 days is deleted. Games of the week shows only the names of our computer opponents, never the players'.
  • Watching a game: nothing is kept. The players see how many are watching, but not who.
  • Play now: while you wait for an opponent, your player code (as an id), your player name, the time control and your rating are in the server's memory, only for as long as you wait with the page open. Nobody else sees who is waiting, only how many. The game is then handled like an arena game: it counts toward the rating and is shown on Watch (below). After the game, the server only remembers which color you had, so you get the other one next time (until it restarts).
  • Against the house players (in Play now, the arenas and the cups): for each house player you have met, how many rated games you have played against them today and the first twenty moves of your rated wins against them (the latest 30), so that the same win doesn't count twice, and the level you're at, so that the one who sits down suits you. The level is only in the server's memory and starts over when the server restarts. All of it goes when you delete your player code.
  • Live games and the archive: anyone can follow the games from Play now, the arenas and the cups on Watch while they are being played: the players' names, the moves, the time control and how many are watching. When a game is over, it's kept in the archive, where anyone can see it: the names, the moves, the time control, the result, the opening and when it was played. We also keep the players' player codes (as ids, never shown), so that a new name follows and the games can be taken out, and the players' average rating rounded to the nearest hundred. The archive keeps the latest 20,000 games; the oldest make room. Games with friends, correspondence games and class and club tournaments are never shown and never kept there. If you turn off Show my games on your profile, your games are never shown, and the ones already in the archive are removed right away. A link to a game that someone has already saved still shows the game, because the whole game is in the link itself. The list and the archive aren't shown in search engines. From the archive we also make a set of data for statistics about the openings and for puzzles later on: the moves, the time control, the result, the day and the rounded rating. It has no names, no player codes, no time of day and no ids from the archive, and it isn't open to others: only we can read it.
  • Logging in with your face or fingerprint (if you added it): the public half of the key, its id, a counter that shows it hasn't been copied, what kind of device it was added on (an iPhone, say) and when. Your face and your fingerprint never leave your phone or computer: they only unlock the key there.
  • Device keys: a checksum for each phone or computer that logged in with a face, a fingerprint or an email link (at most 20). Log out other devices removes all but the one in your hand.
  • Email as a backup (from age 13, if you added it): only a fingerprint of the address, a checksum that can't be turned back into the address. The address itself is never kept. It's used in the moment to send the email, which goes through the Postmark service (in the USA) and stays in their logs for a limited time. The links in the emails work for 30 minutes, work once, and exist only in the server's memory, never on disk.
  • Notifications (if you turned them on): for each phone or computer where you turned them on (at most ten), the address your browser gives us to reach that device, and two keys that make sure only that device can read the notification. Also when you turned them on, which of the two sites you turned them on from (LaviChess or Schackdags, for the language), the device's time zone (how many minutes it is ahead of or behind UTC), which kinds of notifications you want, whether Not at night is on, and any notifications waiting for the morning. A notification travels through Google's, Apple's, Mozilla's or Microsoft's push service, depending on your browser, and says only what happened and the name of the player you're playing, never the moves or anything else about you. If you turn notifications off, or the push service tells us the address no longer works, it's deleted right away. Log out other devices turns them off on the other devices too.
  • Ratings and badges (on the player code): your Live and Correspondence ratings (the number, how certain it is and how much it tends to swing), how many rated games you have played and when the latest was, your last 50 rated results (the date, your opponent's player code as an id, the result and your rating after), the moves and names of the last ten (for the links on your profile), a few counters for the badges (wins and arena games, say) and which badges you have earned and when.
  • Show my profile: if you switch it on, anyone with the link can see your name, your portrait, your motto, your favorite table, your ratings and your badges, nothing else, here and on Schackdags, our Swedish sister site. It's off until you switch it on yourself, and the page isn't shown in search engines.
  • What the person who runs the site sees (an admin, behind a key of their own): numbers (how many profiles, games, tournaments and reports), the reports with their game, which games are under way right now (the player names and the moves), and for each profile the player name, when it was made and last used, the number of games, rating, badges, whether it's shown, whether it's barred, whether it has an email backup (yes or no) and how many login keys it has. Never the player code, the keys or any email address. The admin can change a mean name, bar a profile from rated games or delete it, and every such step is written in a log. When someone reports cheating, an email with the player names and a link to the game goes to hello@lavichess.com.
  • LaviChess Plus (if you buy it): which plan the profile has, until when it lasts and whether it renews, Stripe's ids for you as a customer and for the subscription, in a family which profiles belong to it (as ids), and the questions for the Coach (how many are left this month and how many were bought). For each purchase we keep the profile (as an id), what was bought, the amount, when, and Stripe's id for the purchase, so that a refund goes to the right place. If you withdraw from a purchase, we ask Stripe which email address the receipt went to, to check that the purchase is yours, and send the confirmation there through Postmark. The name and the address you enter then are not kept by us. A gift card is kept only as a checksum of its code, with what it is for and whether it has been redeemed. Stripe's messages to us are kept as ids for 60 days, so that nothing is counted twice, and each month totals are counted (income, refunds, cancellations, questions bought and used) without names. For each purchase, the person who runs the site gets an email with what was bought and the buyer's country as Stripe gives it; the country is not kept. The payment itself is handled by Stripe (Stripe Payments Europe, Ireland), in LaviChess's own account: the card, the email address for the receipt and the payments are with them, never with us. We send Stripe only the profile's id, never the player code or the player name. If you delete the profile, a subscription is canceled, and nothing with us points to you any more.
  • Cheating reports: the game's moves and names, who reported and who was reported (player codes as ids) and when. A report stays until one of us has gone through the game; closed reports are deleted after 90 days.

When you delete your player code, everything that belongs to it goes at once: the name, the rating, the badges, the history, the keys, the notification addresses, the email fingerprint, your games in the archive and the closed reports about you. Only what belongs to others stays: your games in your opponents' history (with the name you played under), and a report about a game none of us has gone through yet. Your profile page isn't kept in the browser; it's fetched from the server every time you open it.

The web server's log

Like most web servers, ours keeps a log of every request: your IP address, the time, the address asked for (with everything after the question mark, so the game in a replay or analysis link too), your browser's name and the page you came from. We use it only to find faults and stop abuse. Only those who run the server can read it, and it is deleted after 14 days.

The Coach (Plus)

The Coach is part of Plus and answers fixed questions about your moves. When you ask, the position, what the computer found (assessments, best moves and continuations, which moves were mistakes) and the question you picked are sent to Anthropic, an American company whose AI, Claude, writes the answer. If you ask for a talk-through of a whole game, the game's moves and result are sent. Your name, your player code and anything else about you are never sent there, and there is no free text to type in.

Anthropic doesn't use what is sent this way to train its AI, and deletes it within 30 days. Only if something looks like it breaks their rules can it be kept longer, at most two years. Anthropic's own description.

On our side, how many questions you have left is kept on your player code. The answers are kept for a while in the server's memory, tied only to the position and the question, so the same question about the same position gets the same answer without costing a question. We also count how many questions are asked each month and what they cost, without knowing who asked.

What is never stored

Your email address, your face or fingerprint, your real name, your age, photos and where you live. Checking the box that you're 13 or older isn't stored either: it's only the condition for adding an email address. There is no account and no chat, and nothing to type about yourself.

Questions

Tentmaker Sweden, a sole proprietorship in Sweden, company registration number 701101-5034. Email: hello@lavichess.com.