Last updated: 27 October 2026
Short version: the app runs on your device and keeps your tournament there. The only usage tracking is Microsoft Clarity, which records how the app's screens are used with every piece of text masked, so we never see names or scores. Your tournament itself never leaves your device unless you create a live standings link — and if you do, the scores go on a web page with an unguessable address that you can pause or delete at any time.
Everything you type into Mahjong Director — event settings, player names, seating, scores — is saved only in your device's browser storage. That is what lets the app work with no internet connection at all. It is not sent to us, and we cannot see it.
You can delete it at any time with Start over in the app, or by clearing your
browser or app storage. You can also export an event to a .json file to back it up or
move it to another computer. That file is yours and goes wherever you send it. Exports never
contain your account details or the edit key for a published page.
To learn which parts of the app are confusing and fix them, Mahjong Director uses
Microsoft Clarity, a free usage-analytics service from Microsoft. When you use the
app at mahjongdirector.netlify.app or in the iPhone or Android app, Clarity records
how the screens are used: taps, clicks, scrolling, which screens you open, and technical details
such as device type, browser, screen size, rough location (country or region, worked out from your
IP address) and errors. It sets its own cookies or local storage to recognise a returning visit.
All text is masked. We run Clarity in its strictest setting: every piece of text on the screen, including player names, event names and scores, and everything you type, is replaced before the recording leaves your device. We see the shape of the page, not what is on it. We do not link Clarity data to your account, your email address or your events, we do not use it for advertising, and we do not sell it. Microsoft processes it under its own privacy statement: privacy.microsoft.com. Clarity is not loaded at all when you open a copy of the app saved to your own computer.
There is no advertising and no ad tracking of any kind. Apart from Clarity we do not set any cookies unless you sign in, in which case there is one more, and it is what keeps you signed in.
The one number we keep. So we can tell whether anyone is using the app at all, our server adds one to a daily tally each time the app is opened and each time a live standings page is opened (not each time it refreshes itself). That tally is a date and a count — "212 on 14 October" — and nothing else: no IP address, no device, no cookie, no event, no name. It cannot tell one person from another, or connect two visits.
Everything else about the app is unchanged: it is a single file that runs in your browser, and your tournaments live on your device.
The app can put your standings on a web page that players open on their own phones. This is the one feature that sends your event to us, it is part of the paid Director Plus subscription, and it is never automatic — it starts only when you press Create the live link.
When you do, a copy of that event — player names, seating and scores — is stored on our server
and shown at an unguessable address such as
mahjongdirector.netlify.app/r/k3f9q2xa.
A director with Director Plus can create a club page — an address such as
mahjongdirector.netlify.app/g/tuesday-night-mahjong — and attach live events to it.
The club page shows one ladder ranking the players across every attached event, worked out from
the events already published; nothing extra is uploaded. Players are matched across events by
name, so the club page shows the same names, or the same initials, that the events do.
A director with Director Plus can keep a copy of the event they are running under their account, so it can be restored on any other computer after signing in. It starts only when you press Back up now. From then on, for that event, the app re-saves the copy a short while after each change until you untick Keep it backed up as I go. A backup is the same file Save a backup would write — player names, seating, scores and settings — and nothing else: not your account details, and not a live page's edit key.
With a live link running, a director can let players check themselves in, and let each table send in its round scores, from the live page on their own phone. Both are off until the director switches them on for that page. Nothing to install, no account.
A live standings link is a page about the people at your event, and a club page is a page about them across many events. Please make sure you are entitled to share their names and results. If anyone would rather not appear, use the initials-only option, or leave them off the link entirely. If someone asks you to remove them, please do it — and if they cannot reach you, they can ask us (section 8).
You only need an account for Director Plus. Running tournaments and leagues needs no account at all.
To create one we store your email address and the dates you signed up and last signed in. There is no password: you sign in with a six-digit code we email you, or the link beside it. Both expire after 15 minutes and work once.
We use your email address to send those sign-in codes and essential messages about your subscription. We do not send marketing email, and we do not sell, rent or share your address.
Sign-in emails arrive from mahjong@citrusync.com. CitruSync is the small
Florida outfit that makes Mahjong Director, and it is the sending domain shared by all of our
apps. It is us, not a phishing attempt.
On the web, subscriptions are handled by Stripe. Your card details go directly to Stripe and are never seen by, or stored on, our servers. We keep only your Stripe customer and subscription identifiers, which plan you are on, and whether the subscription is currently active — enough to answer "should this director's live links work?" and nothing more.
In the iPhone and iPad app, subscriptions are sold by Apple through the App Store. (The Android app does not sell subscriptions: a director who subscribed on the web signs in there and has the same account.) Apple does not tell us who you are or how you paid. We keep only the identifier the store gives the subscription, which plan it is, and whether it is active, and we ask the store directly whenever that state might have changed. Refunds for store purchases are handled by the store.
American mahjong tournaments are overwhelmingly adult events, and we expect our users to be adults. Even so, a live standings link is a public page with people's names on it, so:
We do not knowingly create accounts for anyone under 18.
We use a small number of service providers. Each one only receives what it needs.
| Provider | What it does | What it sees |
|---|---|---|
| Netlify | Serves the app | Standard web request data, such as IP address |
| Cloudflare | The server behind live links, accounts and billing | Published events, account emails, subscription state |
| Stripe | Subscription payments on the web | Your name, email, billing address and card details |
| Apple | Subscription payments in the iPhone and iPad app | Your Apple ID and payment details; we see neither |
| Subscription payments in the Android app | Your Google account and payment details; we see neither | |
| Resend | Sends the sign-in emails | Your email address |
| Microsoft (Clarity) | Usage statistics (section 2) | How the screens are used, with all text masked; device and browser type; IP address (used for rough location) |
These providers process data in the United States and elsewhere. We do not sell personal information to anyone, we do not use it for advertising, and we do not use it to train anything.
You can, at any time:
You only have an account if you signed in for Director Plus. To delete it:
Or email support@citrusync.com from the address you signed in with and we will delete it for you within 30 days.
What is deleted, at once and for good: your email address and sign-in records, your subscription record, every live standings page you published (and any check-ins or scores sent to them), every club page and every cloud backup. What is kept: payment records that Stripe, Apple or Google must keep by law (held by them, not us), and the anonymous daily tally described in section 2, which contains nothing about you.
Deleting some data without deleting the account: delete any live standings page from the app (Delete the page), and any club page or cloud backup from your account page. The event itself, on your own device, is never touched by any of this.
Depending on where you live you may have additional rights over your personal information — for example under the UK and EU GDPR, or under California law. We will honour those requests wherever you are, and respond within 30 days.
Everything travels over an encrypted connection. Sign-in tokens and page edit keys are stored only as cryptographic hashes, salted with a secret that is not in the database — so a stolen copy of our database could not be used to sign in as you or to delete your pages. No system is perfect, and we will tell affected users promptly if something goes wrong.
If this policy changes, the updated version is posted here with a new date at the top. If a change materially affects how we handle your information and you have an account, we will email you.
Questions, requests, or a takedown: support@citrusync.com. It reaches the person who makes Mahjong Director.