Privacy

1. Who this is

Opening Punisher is a chess training site operated by one person at openingpunisher.com. Questions about anything on this page go to support@openingpunisher.com.

2. Using the app without an account

Signing in is optional and is not a gate. You can download games, run a scan, solve puzzles and browse the opening explorer as a guest.

As a guest, your work lives in your own browser and nowhere else. Downloaded games, the puzzles a scan produced, and your settings are held in that browser's localStorage and sessionStorage. They are never uploaded. An account is what buys you saving — guest work is session-only by design, and clearing your browser storage erases it permanently, including for us, because we never had a copy.

3. If you create an account

Accounts are handled by Firebase Authentication (Google LLC). Signing in with Google or with an email and password gives us:

We never see or store your password. If you use email sign-in, Firebase handles the credential; if you use Google, we never touch it at all.

Once you have an account, these are stored against your user id:

That data is private to your account. The database rules grant read and write on your records to your signed-in user id and to nobody else; there is no shared or public area, and every other path is denied by default.

One exception worth naming: if you paste a personal Lichess API token into Settings, it stays on that device only and is deliberately excluded from account sync. It is never sent to us.

4. Analytics — exactly five events

There is no analytics product on this site. No Google Analytics, no Segment, no Meta pixel, no session recorder, no heatmaps, no advertising network, no third-party tracker of any kind. What exists instead is five events, recorded by our own server, to answer one question: does a real scan find enough for the app to be worth using?

Every event also carries these four fields and nothing else:

What analytics deliberately does not include

The list of fields above is enforced on the server as an allowlist: the recorder can only produce a record whose every field it already names, with a value inside a fixed range or a fixed set of words. There is no free-text field anywhere in it. This means the following cannot be recorded, even by accident:

Turning it off

The site honours Global Privacy Control and Do Not Track. If your browser or an extension sends either signal, no event is sent at all — the check runs before anything is built, not on the server after the fact. Setting GPC in your browser is the whole opt-out; there is nothing else to click, and the app is not degraded in any way by it.

5. Cookies

This site sets no tracking cookies, and there is no cookie banner because there is nothing to consent to. What the site does use is browser storage on your own device, for the app to work at all:

Clearing site data in your browser removes all of it. If you are a guest, that erases your work; if you have an account, your saved data is on the server and comes back when you sign in again.

6. Other people's servers

Some things the app does necessarily involve a request to somebody else, and any server you make a request to can see your IP address. That is how the web works and it is not something this site can prevent, so it is listed plainly instead:

We do not send any of these your personal information, and none of them is an advertising or analytics relationship. Each has its own privacy policy governing what it does with a request it receives.

One thing worth knowing about downloading games: the games you pull from Lichess or Chess.com are the ones already published on those platforms. The app reads what is public there. Scouting an opponent shows you nothing they have not already made visible on their own account.

7. How long anything is kept

8. Getting rid of your data

You can do all of this yourself, without asking:

To delete your account and everything stored against it, email support@openingpunisher.com from the address on the account. It gets removed, along with the puzzles, repertoires and settings held under it. You can also ask for a copy of what is stored, or for a correction.

Depending on where you live you may have further rights over your personal data — to access it, correct it, delete it, take it elsewhere, or object to how it is used. The same address handles all of them, and there is no charge.

9. Children

This site is not directed at children under 13, and accounts are not knowingly created for them. If you believe a child has made an account, write to the address above and it will be removed.

10. Where data is held

The site and its database run on infrastructure operated by Netlify and Google in the United States. Using the app means your data is processed there.

11. Changes

If this policy changes in a way that affects what is collected or why, the date at the top changes with it.

This section deliberately does not promise a fixed number of events. An earlier draft did, and the number moved the first time the app grew a feature — pgn_exported was added when PGN export shipped, and section 4 was updated to match. Counting is not the commitment worth making, because the count changes whenever the app does.

The commitment that does hold is about kind, not number. Every field in every event is either a whole number inside a fixed range or a single value from a fixed list, and which fields are allowed is decided on our server before anything is written. There is no free-text field anywhere in it. That is why section 4 can state flatly that your username, your moves, your games and your email address are not recorded — not as a rule we promise to follow, but as something the format cannot express in the first place. The material change to watch for is that structure changing: a field that could carry free text, or an event that records something about you rather than about how the app performed. If either ever happens it will be said here in plain terms, and the date above will change.