What this site actually collects, why, and how to get rid of it. This describes study.keino.dev's real, current behavior, not a template filled in with the usual boilerplate.
The short version. Neither drill needs an account, and neither talks to a server while you're signed out. This was once enforced absolutely: a connect-src 'none' header blocked every network request the page could make, even one made by mistake. Adding optional accounts required relaxing that to connect-src 'self', because a browser cannot be told "allow requests only when signed in." So the honest claim is now narrower, and worth stating precisely: this site can never contact anywhere but itself (no analytics host, no tracker, no third party, and that part is still enforced by your browser), and it contacts even itself only after you deliberately sign in. Everything you do stays on your device until then.
Both drills are single static pages. The entire question bank is embedded directly in the page when it loads; nothing is fetched separately, before or during a session. After that one page load, this site's code cannot make another network request at all; it's blocked at the browser level by the Content-Security-Policy header the page ships with, regardless of what the code tries to do.
Your progress lives entirely in your browser's localStorage, under one key, and consists of:
None of it is sent anywhere. Clearing your browser's site data for study.keino.dev deletes all of it, completely and immediately, because we never held a copy.
An account only exists to let your progress follow you to a second device. Skipping it costs you nothing described above; everything in the previous section keeps working exactly the same.
You can sign in two ways:
Once you have an account, here is exactly what's stored, with nothing left out:
The reason timing and your chosen option are recorded at all: a question most people hesitate on is usually badly written rather than hard, and a question where more people pick one particular wrong answer than the right one is usually mis-keyed or genuinely ambiguous. Those two signals are what let a defective question get found and fixed rather than sitting in the bank misleading people. Neither is used to evaluate you individually.
Both are self-serve, from the same place you sign in: open the account panel (the person icon at the top of the hub) while signed in, and you'll find Download my data and Delete my account there. Neither needs a support request, and neither is throttled beyond a plain rate limit meant to stop abuse, not people using their own account.
Export downloads a JSON file with everything the section above describes: your account record, your sign-in sessions (never the session token itself, which would let someone impersonate you), and every answer event tied to your account, every column, both drills. Nothing is summarized or left out.
Deletion asks you to explicitly confirm (a checkbox you have to tick before the button will even submit), then removes your account and every answer event tied to it, not just the row that says you exist. That isn't a promise about app code remembering to clean up; the database itself is built so a deleted account takes its answer events, sessions and linked sign-in methods with it, with no code path that could do one without the other. It's immediate and it cannot be undone. Only what's stored on our servers is affected: study history kept on this device only, from before you ever signed in, is untouched.
Starting a drill over is the narrower version of deletion, for when it's the study session you want to undo, not the account: from the drill itself ("Reset progress" on its log screen) or from the account panel ("Start over" next to Download and Delete), it removes only your synced answers for that one drill. Your account, your sign-in and the other drill's history are untouched. It's immediate and it cannot be undone, the same as deletion, but there's still an account left when it's done. The drill's own button also clears that drill's copy on the device you're using; the account panel's version only reaches what's stored on our servers, so a device carrying its own local history for that drill keeps showing it until you clear it there too.
If you've never signed in, there's nothing to request: we never received your local history in the first place, so clearing your own browser storage is the deletion.
Prefer email, or hit a problem with either control? keino.chichester@gmail.com works too.
This page describes what the site actually does right now, not an aspiration. If something material changes, this page changes with it and the date below moves.