Privacy policy
Last updated 2026-10-22
Xiangqi School is a free site for learning and playing Xiangqi (Chinese chess), run as a personal project. This page says what it keeps about you, where, and why. In short: without an account everything stays in your browser; with an account we keep your email, username and your play, only to run the site. No ads, no tracking, nothing sold.
Without an account
Lesson progress, puzzle and bot ratings, game records, saved analyses and settings are stored in your own browser (IndexedDB and local storage). They are not sent to us. The engine runs in your browser too. Clearing the site's data in your browser deletes them.
The site is hosted on GitHub Pages, which, like any web host, receives your IP address and browser details when pages load. See GitHub's privacy statement.
With an account
- Account details: your email address, username, the language you signed up in, and when the account was made; the avatar and country you may choose for your profile. A password, if you set one, is stored only as a hash.
- Sign-in with Google, Microsoft or GitHub: we receive your email address, name and profile picture link from that service. We use them only to sign you in and to suggest a username. We don't receive your password there, your contacts or anything else.
- Your play: lesson progress, settings, stars, streak days, games against bots, puzzle attempts, ratings and saved analyses.
- For online play: your birth month and year (no day), so that players under 16 get the protections below and lose them by themselves on turning 16; the players you block, the challenge links you make, and your online games: the moves, the clock readings each browser reported, whether your page lost focus during your turn, when each report reached us, the chat phrases each browser sent and received, and after a rated game each browser's engine analysis of it, used to settle results and for fair play (see the fair play policy), and what each game says about sportsmanship (left, stalled, aborted, or a very slow start; see the sportsmanship policy). While you look for a quick-pairing game, your rating, filters and the time you started are kept until you're paired or stop. Reports you make about another player, and reports about you, are kept with the moderators' decisions and an unchangeable log of every moderator action, so cases can be reviewed and appealed; reporters never see who else reported, and nobody sees report counts. A game's detailed record (the per-move reports, analyses and chat) is deleted 12 months after the game, unless a report, an undecided case or an appeal about one of its players is still open; the game itself (players, moves, result and rating change) stays in your history. To help moderators sort reports, the details of a reported game (the usernames, the report's reason and note, the game's chat, result and fair-play figures; never an email address) may be sent to an AI service, currently Anthropic's Claude, which suggests whether the report holds up. When the simple automatic checks or that service are confident, a private, reversible step may follow on its own: the report is closed, the reported player's chat is paused for 7 days, or an offensive username is replaced with a temporary one until the player chooses another. A moderator reviews every such step and can undo it; anything public (a mark, a suspension, refunds) is always decided by a person.
Accounts are run by Supabase, which stores this data for us in the United States (AWS, Oregon). Only you can read your account data from the site; the database's access rules block everyone else. The exception is your public profile, which anyone can see: your username, online ratings and completion rate (the share of your recent games you didn't leave, stall or abort), and, if you're 16 or older, your avatar, country and when you joined, and your list of online games. Opponents see your avatar in a game only if you're 16 or older too. Like on other chess sites, a finished online game (the players, moves, result and rating changes) can be opened and replayed by anyone, unless one of its players is under 16: then only its two players can open it. Games in progress are never shown to others.
In online games the two players' browsers normally connect directly, which shows each player's internet (IP) address to the other. Settings → Online play → "Don't share my network address" sends your games through our server instead; players under 16 always play that way. To set up a direct connection, your browser asks a public STUN server (run by Google or Cloudflare) for its own internet address; that server sees your IP address but nothing about you or the game.
Google user data
Information received from Google is used only to sign you in to Xiangqi School. Our use and transfer of it adheres to the Google API Services User Data Policy, including the Limited Use requirements. It is not shared with anyone, not used for advertising, and not used to train AI models.
Coaching
On the coaching page a player can link a coach. A linked coach can see the player's finished online games, their Game Reviews and ratings: not chat, not games in progress, nothing else, and there are no messages between them on the site. In those games an opponent under 16 who isn't also the coach's student is shown only as "an opponent under 16". We keep the links (who, when, how they ended), a list of every game a coach opened, which the player can see on the coaching page, and reports about coaches. A player under 16 gives a parent's or guardian's email: we send it one fixed email asking them to confirm, keep the address only until they answer (then a one-way hash of it, to recognise them again), and their choice to let the child link coaches without asking each time. Emails are sent through Gmail. Either side, or the guardian, can end a link at any time; ended links are kept with the account. Coaches must be 18 or over.
Account security
Signing in and playing never need more than your password or sign-in service. If you add a passkey or an authenticator app, Supabase keeps its public key or the app's secret. If you ask for codes by email before sensitive changes, we keep only a hash of each code for 10 minutes, and which sessions gave one. When you change your email we keep both addresses, the dates, and how the change ended (approved, denied, or after the 10-day wait) with the account, so a disputed change can be checked; links in those emails are stored only as one-way hashes. A request to link a coach by email keeps only a masked form of the address you typed (like "j***@example.com").
Feedback and donations
The feedback page keeps what you write, its kind, the page you came from, the site version and your language, and, if you're signed in, your account (so you can be answered only if you tick "you may reply"). To limit floods from guests we keep a hash of your network address salted afresh each day, never the address itself. Moderators read feedback; an AI service (currently Anthropic's Claude) may sort it into themes. Feedback is kept 12 months once dealt with, 24 months at most. Please don't put personal details in it.
Donations are made on Stripe or GitHub Sponsors, which handle the payment and its details under their own policies; the site itself receives no payment details.
What we don't do
No advertising, no analytics or tracking scripts, no tracking cookies, and we never sell or rent your data. Signing in uses your browser's local storage, not cookies.
Keeping and deleting your data
We keep account data while the account exists. In Settings → Account you can download all of it as a JSON file, and delete your account: it is deleted 10 days after you ask (signing in before then cancels it), and then everything in it is gone for good. To correct anything else, email jianjetzhu@gmail.com.
Children
Before an account is made we ask for your birth month and year and your country, and apply the minimum age there (13 in most places; 14 to 18 in some). Younger players can use everything as a guest, with their progress kept in their own browser; we don't keep the answer.
Child profiles (under 13)
A parent or legal guardian aged 18 or over can make up to 3 profiles for their children under 13, from their own account (Settings → Child profiles). This section is our notice to parents.
- What we keep: the nickname, birth year and country the parent gives, and the child's lessons, puzzles, bot games, ratings, saved analyses and settings, so their progress is saved. No email, password, photo or full name of the child. Each profile signs in with an internal address that receives no mail.
- Why: only to run the site for the child. No advertising, nothing sold, nothing used to train AI.
- Who sees it: only the parent, and the child on the parent's device. A child profile has no online play, chat, public profile, leaderboard or coach other than the parent, and is never shown ways to donate. Nothing is disclosed to anyone else.
- Where, and who processes it for us: Supabase, on servers in the United States, stores it; emails to parents go through Gmail. They process it only to provide their service to us.
- Consent: before anything is kept for good, the parent reads this notice, agrees, and confirms from a link we email them; a second email follows a day later. Korean parents also type their consent. A child in Vietnam aged 7 or over is also asked, the first time.
- How long: until the parent deletes it. Unconfirmed profiles are deleted after 14 days; a profile unused for 24 months is deleted, after an email warning a month before. A record of the consent (the parent's email, the date, the notice's version) is kept 3 years after a profile ends, as proof.
- The parent's rights: see and download everything, and delete the profile at once (which also withdraws consent), in Settings → Child profiles. From 13 the parent can turn the profile into the child's own account, keeping its history.
- Mainland China: child profiles aren't offered there for now.
The person responsible for children's data is the operator named below.
Changes and contact
If this policy changes, the date at the top changes too. Questions: jianjetzhu@gmail.com.
Operator: Xiangqi School 象棋学堂Postal address: P.O. Box 10000, Cupertino, CA 95014, USA
Email: jianjetzhu@gmail.com