← Portal

Data policy

Last updated 29 August 2026. This is the field-by-field companion to the privacy policy, written from the code rather than from a template. If the two ever disagree, this one is wrong and the code is right - tell us.

Three places data can be

What a guest leaves

FieldWhereWhat it isKept until
namebrowser + leaderboardsThe name you pick. Letters, numbers, spaces, dots, dashes, underscores; 14 characters at most. Shown to everyone on the boards. Required before a score can go up.You change it, remove your scores, or clear this browser.
playerbrowser + leaderboardsA random id your browser generates. It is the write key: it decides which row a submission overwrites. Sent only in submissions, never returned by any endpoint, never shown.Cleared with this browser's data.
pubbrowser + leaderboardsA second random id, unrelated to the first, carried on board rows so the page can highlight yours. Visible to anyone who reads the API.Same.
score, updatedbrowser + leaderboardsYour best in each game and when it was set. The board holds your best only, not every run.Beaten, removed by you, or the site closes.
pendingbrowserUp to 30 runs that could not be sent yet - offline, or waiting for you to pick a name. Each carries a signed run token dated when the page loaded.Sent, or cleared.
muted, rename, synced, claimedbrowserHousekeeping flags: the sound switch, and whether the leaderboards have been told about a name change or a sign-in.Cleared with this browser's data.
game savesbrowserThe Michidex, the Meowney Printer bank, a Michordle streak, Saint Michi's old high score and similar. Each game owns its own; none is ever uploaded.You clear site data in your browser. The Clear this browser button on the account page does not touch these.

Guest rows are not unique by name - two guests can both be "SPARKY". They are unique by the write key, which is why clearing your browser makes you a new guest with a new row.

What an account adds

FieldWhereWhat it isKept until
handle (username)Cognito + leaderboardsThe name you register. Unique across all accounts, case-insensitive, fixed for the life of the account. It replaces the guest name on your rows and draws the .The account is deleted.
email, email_verifiedCognitoUsed to send the sign-up code and password-reset codes. Not shown anywhere public; the account page shows it to you. Not used for any other mail.The account is deleted.
passwordCognitoStored by Cognito as a salted hash. Your browser sends it to Cognito directly over HTTPS; this site's own code never receives it and cannot recover it.The account is deleted.
subCognito + leaderboardsCognito's random id for the account. Your leaderboard rows are keyed acct:<sub> and your public id is derived from it, so no browser-generated id can collide with an account.The account is deleted.
sign-in historyCognitoCognito records when the account was created, confirmed and last signed in, as part of running the pool.The account is deleted.
sessionbrowserThe ID, access and refresh tokens Cognito issued to this browser - an hour for the first two, thirty days for the refresh token. Sent to /api/* as a bearer header on score submissions and account calls so the API can verify the row is yours.Sign out, delete, or thirty days.

What happens to guest scores when you sign in. The first time an account signs in on a browser that has guest scores, those rows are moved into the account: each becomes the account's row for that game if it beats what the account already holds, and the guest row is deleted so you appear once, not twice. Your bests are then pulled from the account on any other device you sign in on, and raised locally if the account's is higher.

What the servers see, briefly

What we do not do

Removing it

All on the account page:

Seeded rows. Each board carries five starter scores written by the site on 19 August 2026 so a new game did not open onto an empty board. They are marked as such in the table, are not anyone's data, and are removed as real scores take their place.

Questions

Ask @lil_runnr on X. The code that does all of the above is small and readable, and this page is meant to describe it exactly.