Chess Pretraining

Privacy policy

Last updated 29 July 2026

Chess Pretraining is a small research project run by Brendan Long. This page says exactly what it stores and what happens to it. It is short because the data footprint is small: there are no ads, no analytics, and no third-party trackers.

What we collect

Settings like replay speed live in your browser's local storage and are never sent to the server. The server writes ordinary request logs, which include IP addresses, and the signup rate limiter holds a count per IP address in memory for up to an hour (until the process restarts, in the worst case) — neither is written to the database or tied to your responses.

What it's for

Two things: running Chess Pretraining for you, and the research it exists for. The point of the project is to measure whether dense labeled practice improves chess perception, and how fast — so your responses will be analyzed in aggregate, and results based on that analysis may be published.

Sharing with other researchers

We may share response data with other researchers or publish it as a dataset. What that data contains:

It never contains usernames, email addresses, IP addresses, or password hashes. We do not sell or rent data to anyone, for research or otherwise.

Where the data lives

The app runs on Fly.io, storing a single SQLite database on a volume there, with encrypted backups replicated to Amazon S3 and DNS served by Amazon Route 53. Both the app and its backups are hosted in the United States; which region is an operational choice we may change. Fly.io and Amazon Web Services are the only companies that hold the database, and they hold it as infrastructure providers — they do not get it for their own use.

Cookies

One cookie, the session token described above. No advertising or analytics cookies, because there is no advertising or analytics. If you clear it while playing as a guest, that guest record becomes unreachable for good — there is no other way to find it, which is the same property that keeps anyone else from finding it either. It also means we can't delete it on request: nobody, including you, can point at which record it was. Make an account if you want that option.

Keeping and deleting data

Guest records that answered nothing and went idle are swept automatically. Everything else is kept while the project runs.

If you have an account you can delete it yourself: Settings → Account → Delete account, confirmed with your password. That erases the account, the email on it, its sessions, and every response it ever gave — out of the research data too, not just out of your view. Being signed in is how you prove the account is yours, which is why the button is the main route: the optional email is never verified, so for most accounts there is no address a request could come from.

If you can't reach that button, email self@brendanlong.com from the address on the account and we'll do it by hand. If the account has no email, say so and we'll agree on a way for you to show it's yours — an account nobody can prove they own is also an account anyone could ask us to delete.

Three honest caveats either way. Deleted rows persist in encrypted backups for up to 30 days before those expire. Anonymized data already shared with other researchers or included in published analysis can't be pulled back — though it never contained anything identifying you. And each position keeps a running count of how often it has been answered and how often correctly, which is how the app knows how hard it is; those counters aren't reversible and aren't tied to anyone, so they keep their totals after your rows are gone.

Children

This isn't intended for children under 13, and accounts shouldn't be created by them.

Changes

If what we collect or do with it changes, this page changes, with a new date at the top. The page is versioned in the project repository, so its history is public.

Contact

Questions, deletion requests, or anything else: self@brendanlong.com.