Privacy
What we store (very little) and why
Last updated
The short version
- Stockfish runs in your browser. Positions are not sent anywhere while they are analysed.
- Your reviews and settings are saved in your browser, not on our server.
- Our server stores only what you choose to send it (shared reports and contact messages) plus anonymous counters for puzzles and the opening trainer.
- Our code sets no cookies, shows no ads and loads no analytics or tracking scripts. We do not sell or rent anything we store.
Analysis happens on your device
The engine, Stockfish 19 compiled to WebAssembly, is downloaded from this site and runs inside your browser tab. When you review a game or analyse a position, the moves, positions and evaluations stay on your device. We cannot see what you analyse. The coach page also works locally: it reads the reviews saved in your browser and calculates its insights there.
What your browser stores
The site uses your browser's local storage and session storage, which only this site can read. Nothing in this list is sent to us. Delete a single review from the analysis page, or clear this site's data in your browser settings to remove all of it.
| Key | Where | What it holds |
|---|---|---|
| chessblood.reports.v1 | Local storage | Your twelve most recent reviews: the moves, the PGN headers (player names, ratings, event and date when the game has them), the engine's evaluations and the grades. |
| chessblood.pref.* | Local storage | Preferences: analysis depth, board colours, puzzle theme, and the username you entered on the coach page. |
| chessblood.puzzles.v1 | Local storage | Puzzle statistics: solved and failed counts, your streak, and the IDs of recently solved puzzles. |
| chessblood.trainer.v1 | Local storage | Opening trainer progress: how often you have completed each line and how many times without a mistake. |
| cb:sidebar-collapsed | Local storage | Whether the sidebar in the app is collapsed. |
| chessblood.pending | Session storage | Games handed from an import form to the analysis page. Removed when they are loaded, and when you close the tab. |
When you ask for new puzzles, the IDs of puzzles you recently solved are sent along so you do not get repeats. The server uses them for that request and does not store them.
Importing games from Chess.com and Lichess
When you enter a username, our server asks the public Chess.com API or the Lichess API for that player's recent games and passes them to your browser. The username is part of the request. Responses may be cached for up to an hour so that repeated requests do not hit Chess.com or Lichess again. Our code does not keep a record of the usernames you look up.
For Lichess, your browser sometimes talks to lichess.org directly: when you open a single Lichess game by its ID, and when Lichess has temporarily limited our server. In those cases Lichess receives your request and IP address, as it would if you visited its site. Games on both platforms are public, and their own privacy policies cover what they hold.
What our server stores
A small API stores four kinds of record. Nothing else you do on the site reaches it.
Shared reports
- When
- Only when you press Share on a review.
- What
- The whole report: moves, PGN headers (which can include player names, ratings, event, site and date), engine evaluations and grades, with the time it was created and a count of how often it has been opened.
- How long
- Until it is removed. Anyone with the link can open it. Email us the link and we will delete it.
Contact messages
- When
- When you send the contact form.
- What
- Your name, email address, subject, message and the time you sent it. If a notification channel is configured, a copy is forwarded to it so we see new messages.
- How long
- As long as we need it to deal with your message. Ask us to delete it at any time.
Anonymous usage events
- When
- When you finish a line in the opening trainer, or solve a puzzle.
- What
- The kind of event and a few details: the opening, the line and your number of mistakes; or the puzzle's ID. A timestamp is added. No name, account, IP address or cookie is attached.
- How long
- Indefinitely, as the totals behind the counters on the home page.
Puzzle attempts
- When
- When you finish a puzzle served by our server, solved or not.
- What
- The puzzle's ID, whether it was solved, how long it took and when. Nothing identifies you.
- How long
- Indefinitely, to show how often each puzzle is solved.
Logs, rate limits and hosting
- The API writes one log line per request: the method, the address requested (including any query string), the status code and how long it took. It does not log IP addresses.
- To stop abuse, the API and the game import service count requests per IP address. Those counts are kept in memory only, for between one minute and one hour depending on the service, and are never written to disk.
- The website is hosted on Cloudflare. As with any host, Cloudflare processes your IP address and the details of each request in order to deliver the pages and protect the service, and may keep technical logs under its own privacy policy.
- The fonts are served from this site, so loading a page does not contact Google or any other font service.
Your choices
- Delete reviews from the analysis page, or clear this site's data in your browser to remove everything stored locally.
- Do not press Share if you do not want a review stored on our server. Downloading the PGN keeps everything on your device.
- To have a shared report or a contact message deleted, email hello@chessblood.com with the link or the address you wrote from.
Changes to this page
When the site starts storing something new, or stops, this page changes with it and the date at the top is updated. Questions about privacy are welcome on the contact page.