The fine print, in plain words
Cookies
Last updated: 18 October 2026
This policy lists everything jocuriclasice.ro stores on your device: a few cookies, and entries in your browser's local storage (the same kind of technology, covered by the same rules); in the Android and iOS apps the same values are kept inside the app's own webview. jocuriclasice.ro sets no advertising or tracking cookies of its own. The presentation website from which this policy may also be reached sets no cookies and writes no storage of any kind on your device. How we use the data itself is in the privacy policy.
Each line below gives the name, what it is for and how long it lasts. Unless a line says otherwise, an entry is ours (first party) and stays until you change it or clear the app's storage. Which entries are sent to us, and when, is set out in the privacy policy under "What we collect".
Strictly necessary
Always active, without consent: the app cannot work without them, or they keep something you chose. None of them measures anything, advertises or follows you to another site.
Cookies, set by our server:
- better-auth.session_token (__Secure-better-auth.session_token over https): keeps you signed in; seven days, extended while you play, deleted when you sign out. Your browser sends it only to us, and scripts on the page cannot read it.
- better-auth.two_factor: only with two-factor authentication, remembers which sign-in a code belongs to; ten minutes, deleted once the code is checked.
- better-auth.state: only while you sign in with Google, Apple or Facebook, matches the answer to the request; five minutes.
- better-auth.dont_remember and better-auth.trust_device (thirty days): the sign-in library can write these if a sign-in asks not to be remembered, or to remember this browser after two-factor sign-in; nothing in this app asks for either, so in normal use neither is written.
Account and sign-in:
- jocuriclasice.deviceKey: a random key our server creates for a guest profile and this device keeps, the credential that lets that profile sign back in on this device; we store only its hash.
- jocuriclasice.signedIn: remembers that this device has signed in to an account, so a returning player is not handed a fresh guest profile.
- jocuriclasice.session: in the Android and iOS apps only, keeps you signed in after you close the app; held in the device's secure store (Keychain, Android Keystore), never in ordinary storage, a backup or another device; deleted when you sign out. The website stores nothing like it.
- jocuriclasice:accountId: the account you are signed in as, so your avatar and starred games load before the network answers.
- jocuriclasice.oauthVerifier: a one-time secret while you finish signing in with Google, Apple or Facebook in the system browser; deleted the moment sign-in succeeds or fails.
- jocuriclasice.onlineSession: lets you rejoin the online room you were disconnected from; cleared when the match ends.
Settings:
- jocuriclasice.language: English or Romanian.
- jocuriclasice.theme: the table style you picked.
- jocuriclasice.tableSet: the felt, piece rack and card back you picked and which you have earned; worked out on this device and never sent anywhere.
- jocuriclasice.textScale: the text size you picked.
- jocuriclasice.cardFace: the whole printed card, or just rank and suit.
- jocuriclasice.orientationTip: the day the hint that a remi table plays better sideways was last shown, so it comes at most once a day.
- jocuriclasice.ajutor: whether the table explains the rules while you practise alone; never sent anywhere.
- jocuriclasice:playerName, jocuriclasice:guestName and jocuriclasice:avatarSeed: the name you typed, the made-up guest name (like "SwiftFox42", from this device or our server) used until you type one, and your smiley.
- jocuriclasice:reactIds: the in-match reacts you chose.
- jocuriclasice.standings: the level and ring your account last held at each game, so an offline table can show them; written only from our server's answer, replaced when another account signs in, and deciding nothing.
- jocuriclasice.audio: whether music and sound effects are on.
- jocuriclasice.turnNotifications and jocuriclasice.tournamentReminders: whether you asked for a local alert on your turn, or before a tournament slot you joined.
- jocuriclasice.eveningReminder: whether you asked this phone for a reminder to play in the evening; never sent anywhere.
- jocuriclasice.tableChat: whether chat is shown on this device at the table, in the waiting room and in your club; on until you choose; never sent anywhere.
- jocuriclasice.consent: when you accepted the terms on the card, your choice in its "Help improve the app with usage statistics" box ("Analytics" below), your answer about advertising copied from Google's form, where and when you made your latest choice, and the versions of the card and documents you saw, so you are not asked again. It holds no age. While you are signed in, a copy is sent to us, as the privacy policy describes.
Game-local data:
- jocuriclasice.gameFavorites: the games you starred, merged with your account's copy once you sign in.
- jocuriclasice.gameStats, jocuriclasice.playedGames and jocuriclasice.playedGames.offline: a local copy of your played games, plus the offline matches that never leave this device.
- jocuriclasice.lastTable: the game and table you last sat at, so the front door can offer it again.
- jocuriclasice.parkedMatch: one unfinished practice match (the hand, the table and the bots' names), so leaving it is not losing it; replaced by a new game, deleted when abandoned.
- jocuriclasice.variants: the last variant you chose for each game.
- jocuriclasice.dailyHand: for each game, your last today's game, its score, your best, your streak and the days you played (up to a year), so the streak shows offline; it never leaves the device. Playing it signed in is separate: that run reaches us and appears on the day's public board.
- jocuriclasice.showRank and jocuriclasice.showClub: whether other players' ranking place and club show beside their names at the table.
- jocuriclasice.mutes: the opponents you muted at the table, enforced on this device only.
- jocuriclasice.championships.joinedByMe: whether the tournaments screen shows only the ones you joined; cleared when the browser tab closes.
- Offline cache: a service worker stores the app itself (code, images, sounds and texts), so it starts and plays bots offline; no personal data.
Error monitoring is always active, in the web app, on the website and in the Android and iOS apps alike, and nothing is written on your device for it, except the installation identifier below, which the apps write only with your consent to Analytics.
Analytics, only with your consent
Written only after you tick Analytics, on the card or in Privacy options, and never before:
- Keys beginning with ph_ or __ph_: a random identifier and a session id that PostHog, our analytics provider, stores so repeat visits count once; every key under those prefixes is deleted the moment you switch analytics off.
- Installation identifier, in the Android and iOS apps only. A small file the error-monitoring service (Sentry) writes in the app's private storage the first time its native part runs, from the next start after you switch Analytics on: a random identifier attached to that device's error reports and crash-free session counts. It names no account and no person. Switch Analytics off and it is no longer read or sent from the next start; the file goes when the app's storage is cleared or the app is uninstalled.
Third parties: advertising
Written by Google (third party). Google's own consent form may be shown at the first open, before any ad is requested; what keeps your answer to it is written from then on, the rest only once you have answered it. What each answer allows, and how advertising works, is in the privacy policy under "Advertising".
- FCCDCF and FCNEC, on the web, on this site's domain: Google's consent cookies, which remember your answer to Google's consent message; they may be set from the first open, when the message is shown, before any ad is requested.
- Google's cookies on its own domains (doubleclick.net, googlesyndication.com), on the web: if you consent, to serve and count ads. If you refuse, the app loads Google's tag for limited ads instead, which Google documents as using no cookies or other local identifiers to choose, count or cap ads, though it may still use cookies and local storage to detect fraud and invalid traffic, for which Google states that it does not require publishers to obtain consent.
- Keys beginning IABTCF_, in the Android and iOS apps, in the app's preferences store, beside Google's own record that its form was shown: your answer to Google's form, which Google's advertising software reads to decide whether an ad may be personalised; kept until you change it from Privacy options or clear the app's storage.
Nothing of ours is stored for preferences or advertising. Should we ever store anything of our own for either, it will be asked for first, on the card or in Privacy options, and stay off until you turn it on.
How to change your choices
- The card shown on first run, on the web and in the apps, has one button, "Accept the terms and continue", which accepts the terms, and one optional box, unticked until you tick it, which switches Analytics on. Advertising is never asked on the card, only in Google's own form.
- "Privacy options" on the account page re-opens the Analytics box and, where available, Google's form (on the web, its message). Withdrawing consent takes effect from then on.
- Your browser can block or clear storage for this site, and the apps can be cleared from the device's settings. That resets your language, theme, name and consent choices, so the card is shown and the terms must be accepted again.
Contact
This policy is issued by discusdev srl, the operator of jocuriclasice.ro. Questions about it: contact@jocuriclasice.ro.