Mahjboard ("Mahjboard," "we," "us," or "our") is a mahjong-league scorekeeping and public-leaderboard app operated by Maybe Tomorrow, LLC (maybetomorrow.studio). This Privacy Policy explains what information we collect when you use the Mahjboard app and the public leaderboards we host, how we use it, and the choices you have.
If you have questions about this policy or your data, email us at hello@mahjboard.com.
Who this policy is for
Mahjboard is used by two kinds of people:
- Organizers — people who run a league, hold a Mahjboard account, and enter scores in the iOS app.
- Participants & viewers — players and spectators who view a public leaderboard that an organizer has shared. Participants do not need an account or the app.
What we collect
Organizer account information
When you create an organizer account, you sign in with Sign in with Apple. Through that, we receive your name and an email address. If you choose Apple's private-relay (Hide My Email) option, we receive and fully support that relay address — we receive only that relay address and never your real email, and we'll use the relay address for account-related contact and, unless you opt out, for the optional marketing messages described below.
If you use the optional text-messaging program, you may also verify your own mobile number as a forwarding number for the program's reply-forwarding feature — see Text messages (SMS) below for whether that feature is currently active. If you use the optional email-reminder program, you may also provide your own reply-to email address so a participant's reply lands in your inbox — see Participant emails below.
Content you enter as an organizer
To run a league, you provide content such as:
- League details — name, location, start date, number of sessions, and your branding (logo and brand colors);
- Participant display names — the names you choose to show on the leaderboard for each participant (shown in the app as "Players");
- Scores and attendance you record for each session;
- Participant contact info — only if you use the optional text-messaging and/or email-reminder programs: a participant's mobile number and/or email address, which you or the participant provides so they can receive your league's texts and/or RSVP-reminder and seating-assignment emails, and the content of SMS messages exchanged in both directions (see Text messages (SMS) and Participant emails below).
Aside from those optional text-messaging and email-reminder programs, we do not require or ask you to provide participants' real names, contact details, or any other personal information about your players. For the public leaderboard itself, only the display names and scores you choose to enter ever appear — a participant's mobile number or email address is never shown on a leaderboard.
If you use the optional email-reminder program and assign tables for a session, a participant's display name is also shared with the other participants seated at their table that session, in a seating-assignment email — see Participant emails below for exactly what that email contains and who receives it.
Important — public leaderboards are public. When you publish a leaderboard, it is reachable by anyone with the share link or QR code. That means the participant display names and scores on it are publicly visible by design — that is the whole point of a shareable leaderboard. As the organizer, you are responsible for using display names your participants are comfortable with appearing in public (for example, a first name and last initial, a nickname, or a player number rather than a full legal name).
If you are a participant who appears on a public leaderboard and you'd like your display name changed or removed, contact the organizer who runs your league first — they control the content. You can also email us at hello@mahjboard.com with the leaderboard link and we'll help facilitate a correction or takedown.
How we use your information
- To provide and operate the service — let you sign in, create and manage leagues, enter scores, and generate share cards;
- To render the public leaderboards you publish, at their share URLs;
- To deliver the league text messages that participants opt in to, if you use the optional text-messaging program (see Text messages (SMS)), and to deliver RSVP-reminder and seating-assignment emails to participants who provide an email address, if you use the optional email-reminder program (see Participant emails);
- To contact you about your account, billing, or important service notices;
- To send organizers optional product updates, tips, and occasional offers about Mahjboard — for example, news about what's new. These are optional: every such message includes an unsubscribe link, and opting out never affects the account, billing, or service notices above, which we still need to send you;
- To maintain security, prevent abuse, and debug problems.
Text messages (SMS)
Mahjboard's text-messaging program lets league organizers who use it send their own participants text messages about league sessions — for example, attendance and RSVP reminders and occasional league updates. If your organizer texts you through Mahjboard, here is how it works and how your mobile number is handled:
- How you opt in. You provide your own mobile number to your league — either on the league's RSVP page or by giving it to your organizer, who enters it on your behalf after asking you. Either way we confirm your consent with a one-time text asking you to reply YES before any further messages are sent. Consent to receive texts is not a condition of taking part in a league.
- Message frequency. Message frequency varies by league and by how often your organizer schedules sessions.
- Rates. Message and data rates may apply, depending on your mobile plan and carrier.
- Opting out and help. Reply STOP to any message at any time to stop receiving all texts from that organizer — across every league they run through Mahjboard, not just the one the message was about — or HELP for help. You can also email us at hello@mahjboard.com.
- Message content is stored. Unlike the rest of the app, this program has no in-app inbox — texting happens over real SMS. So that your organizer has a record of what was sent and received, we store the text of messages in both directions: the texts your organizer sends and the replies you send back. Texting through this program is currently one-way: your organizer cannot reply to you through it, and if you reply with anything other than a recognized keyword (like YES, STOP, HELP, or START, and their common variants), that reply is stored as described above but is not forwarded to your organizer's phone, or anywhere else. No Mahjboard employee reads the content, and we don't inspect or act on what it says beyond storing it. (Recognized keywords — YES, STOP, HELP, and START, plus their common variants — are handled separately, and do update your consent status; that's how opting in and out works.) Stored message content is included if your organizer requests a full export of their account data (see "Your privacy rights" below), and is deleted along with the participant, league, or account it belongs to. We also automatically delete stored message content after 12 months, even if the participant, league, or account it belongs to is still active.
- Consent evidence is kept even after deletion. To be able to show that consent was actually given if it's ever disputed, we keep a separate compliance record of your opt-in — your phone number, a hashed IP address, basic device/browser info, and the date and consent wording you agreed to. Unlike the message content above, this consent record is not deleted when the participant, league, or account it relates to is deleted; we retain it for legal and fraud-prevention reasons, consistent with "Data retention & deletion" below.
- Your STOP is kept even after deletion. To make "stop receiving all texts" above permanent, once you reply STOP we also keep a minimal, separate suppression record of that opt-out — your phone number, the organizer it applies to, and when it happened — that is not deleted when the participant, league, or account it relates to is deleted; we retain it for legal and fraud-prevention reasons, consistent with "Data retention & deletion" below. This is scoped to the one organizer whose texts you stopped — it does not affect a different organizer's leagues, even for the same number. We use this record only to make sure that number isn't re-invited by that organizer; we do not keep it for a number that was simply removed without ever replying STOP.
- Your rights over your own messages. You don't have a Mahjboard account, so if you'd like to access, correct, or delete your stored message content, email us directly at hello@mahjboard.com and identify yourself by your phone number and the name of your league; we may need to verify your identity before acting.
We do not sell or share mobile phone numbers, message content, or any SMS opt-in information, with third parties or affiliates for their own marketing or promotional purposes. Mobile numbers and message content are used only to deliver the league messages described above, and are shared solely with our SMS delivery provider and the wireless carriers involved in delivering the message.
Participant emails
Mahjboard's email-reminder program lets league organizers who use it email their own participants two kinds of messages: an RSVP link for upcoming sessions, and, when the organizer assigns tables for a session, a seating-assignment email telling a participant their table for that session. If your organizer emails you through Mahjboard, here is how it works and how your email address — and your display name — are handled:
- How you opt in. You provide your own email address to your league — either on the league's RSVP page or by giving it to your organizer, who enters it on your behalf. Unlike the text-messaging program, email does not require a separate confirmation step before the first message: providing your address and using the unsubscribe link described below are how consent and opt-out work for this channel, consistent with U.S. CAN-SPAM rules for commercial/transactional email. Providing an email address is not a condition of taking part in a league. The same address and the same opt-out cover both email types.
- What we send. An RSVP-reminder email contains a link to your own personal RSVP page — the same page you'd reach from a text message or a link your organizer shares directly. A seating-assignment email, sent only if your organizer assigns tables for a session and only to participants seated that session, contains your table number and, if your organizer set one, a short table description; that session's date, time, and venue; and the display names of the other participants seated at your table that session. It does not include any participant's mobile number, email address, skill level, or tags — only display names.
- Your name is shared with your tablemates. If your organizer sends seating-assignment emails, your own display name is included in the email sent to every other participant seated at your table that session — the same way theirs is included in yours. Unlike the public leaderboard above, this goes only to that session's tablemates, not to the public; but it does put your display name in front of a small group of other participants by email. As with the leaderboard, your organizer controls the display name used and is responsible for using one you're comfortable with here too.
- Opting out. Every email includes a one-click unsubscribe link that immediately and permanently stops both RSVP-reminder and seating-assignment emails to that address for that league's organizer. You can also email us at hello@mahjboard.com.
- Unsubscribes are kept even after deletion. To make "permanently" above true, once you unsubscribe we keep a minimal, separate suppression record of that opt-out — the address, the organizer it applies to, and when and how you opted out — that is not deleted when the participant, league, or account it relates to is deleted; we retain it for legal and fraud-prevention reasons, consistent with "Data retention & deletion" below. This is scoped to the one organizer whose mail you opted out of — it does not affect a different organizer's leagues, even for the same address. We do not keep this record for an address that was simply removed without ever being unsubscribed.
- Replies. If your organizer has set a reply-to address, replying to one of these emails reaches your organizer directly — Mahjboard does not receive, read, or store your reply; we have no inbound email processing of any kind. (This is different from the text-messaging program above, where a reply is relayed through Mahjboard and its content is stored — see Text messages (SMS).)
- We do not store the content of these emails as message history. We keep your email address on file (so we know who to send to and who has unsubscribed), but we do not keep a durable, per-message log of what was sent the way we do for SMS.
- Your rights over your own email address. You don't have a Mahjboard account, so if you'd like to access, correct, or delete your stored email address, email us directly at hello@mahjboard.com and identify yourself by your email address and the name of your league; we may need to verify your identity before acting.
We do not sell or share participant email addresses or display names with third parties or affiliates for their own marketing or promotional purposes. Participant email addresses are used only to deliver the RSVP-reminder and seating-assignment emails described above, and are shared solely with our transactional-email delivery provider (Resend); display names are shared only as described above and under "Content you enter as an organizer."
What we do not do
- We do not sell your information, or your participants' information, to anyone.
- We do not run third-party advertising and do not use ad-tracking or cross-app tracking.
- We do not use your league data to build advertising profiles.
Analytics
To understand how Mahjboard is used and to fix what's broken, we use two privacy-preserving analytics tools. Both are designed to measure usage in aggregate — they do not build personal profiles, do not track you across other apps or websites, and we do not sell any of this data.
- TelemetryDeck (in the iOS app, and from our backend for one event). In the app this tells us things like which screens are used and whether a feature is working — for example, how often scores are entered or a leaderboard is shared. Our backend additionally sends a single signal when a free trial converts to a paid subscription, so we can measure how well the product converts. When you purchase or renew the subscription we also send the purchase amount (converted to US dollars), the storefront country, and the currency, so we can understand revenue in aggregate — never your name, email, payment details, or anything that identifies you. All signals are anonymized: TelemetryDeck does not use Apple's advertising identifier (IDFA), and the per-install identifier is hashed so that signals can't be tied back to you or your Apple account — the backend uses that same hashed identifier and never the raw value. We use it only to improve the product, and data is retained in aggregate.
- Fathom Analytics (on our website and public leaderboards). When you visit mahjboard.com or a public leaderboard, Fathom records anonymous, aggregate stats such as page views, QR-code scans, and rough referrer and country — without cookies and without storing personal data. It is GDPR- and CCPA-compliant by design and does not track visitors across other sites. We use it to understand traffic to our pages, and data is retained in aggregate.
Where your data is stored & how it's protected
Mahjboard runs on Cloudflare. Account and league data is stored in Cloudflare D1 (our database), and uploaded files such as logos and generated score cards are stored in Cloudflare R2 (object storage). Data is transmitted over encrypted connections (HTTPS), and access to production systems is restricted. No method of storage or transmission is ever completely secure, but we work to protect your information using industry-standard practices.
Data retention & deletion
We keep your league data for as long as your account is active so the service works as you expect. You're in control of your content:
- Archive a completed season to keep it for your records;
- Delete a league — when you delete a league, its leaderboard is taken down and its participant display names, scores, any stored participant mobile numbers and/or email addresses, and any stored text-message content for that league are removed. Stored text-message content is also removed automatically after 12 months regardless of deletion — see "Text messages (SMS)" above, and the backups note below this list for the roughly 30-day backup window;
- Opt out of texts — a participant who replies STOP is unsubscribed, and a participant's mobile number is removed when it is deleted from the league or when the league or account is deleted (we keep a minimal suppression record — the number, the organizer it applies to, and when it happened — so we don't text an unsubscribed number again, even after that deletion);
- Opt out of emails — a participant who uses the one-click unsubscribe link is unsubscribed, and a participant's email address is removed when it is deleted from the league or when the league or account is deleted (we keep a minimal suppression record — the address and the organizer it opted out of, and when and how — so we don't email that address again on that organizer's behalf, even if it's later re-entered for a new or re-added participant);
- Delete your account—you can delete your entire account from right inside the app: open the Account screen and tap Delete Account. This immediately removes your account and all associated data—every league, player, and score—from the live service and takes down the public leaderboards you've published. (See the backups note just below this list for the one exception: a copy can persist in our encrypted backups for about 30 days before it ages out.) If you'd rather not use the in-app option, you can also email hello@mahjboard.com from the address on your account and we'll process it for you. We may retain limited records where required for legal, tax, or fraud-prevention reasons. If you had unsubscribed from marketing email, we may keep a minimal record of that (such as a suppressed email entry) so we don't contact you again.
One caveat applies to everything above: backups. We take a daily backup of our database, encrypted at rest by our hosting provider, and keep each one for about 30 days, so we can recover from an outage or a mistake. Old backups are cleared out as part of the next day's backup run, so an individual copy can persist a little beyond 30 days. Anything deleted above is removed from the live service straight away, but a copy can remain in those backups until they age out. We don't use backups for day-to-day lookups or to bring back data someone asked us to delete. If an organizer loses their own data by accident — an unintended league deletion, say — and asks us for help, we may restore that organizer's own data from a recent backup; we never use one organizer's backup data to access another organizer's account. If we do restore from a backup, we re-apply any deletions, account closures, and opt-outs that happened after that backup was taken before the restored data is used again.
We also keep an occasional off-site copy of the database outside our hosting provider, so a problem with that provider cannot take our only backups with it. These are made by hand rather than automatically, are held on company-controlled storage, and follow the same roughly 30-day window as the daily backups. The same limits apply to them as to everything above: we don't use them for day-to-day lookups, and deleted data can persist in one until it ages out.
Your privacy rights (U.S. residents, including California)
Depending on where you live, you may have the right to know what personal information we hold about you and to access a copy; to receive a copy of your data in a portable format; to request correction of inaccurate information; to request deletion; and to opt out of the "sale" or "sharing" of personal information. We do not sell or share your personal information (including for cross-context behavioral advertising), so there is nothing to opt out of — but you may still exercise your other rights, and we will not discriminate against you for doing so. You can also opt out of optional marketing email at any time using the unsubscribe link in any such message — this is separate from, and doesn't limit, the rights described here. The categories of personal information we collect are described above: your name and email (via Sign in with Apple), the league content you enter (league details, participant display names, scores, and branding), and — only if you use the optional text-messaging and/or email-reminder programs — participant mobile numbers and/or email addresses, your own forwarding phone number, and your own reply-to email address. To make a request — including to receive an export of your data in a portable, machine-readable format — email hello@mahjboard.com from the address on your account; we may need to verify your identity before acting.
For users in the EEA and UK
If you are in the European Economic Area or the United Kingdom, Maybe Tomorrow, LLC is the data controller for organizer account data. We process your information to perform our contract with you (providing the Service), to comply with legal obligations, and for our legitimate interests in operating and securing the Service. Where we send the optional marketing messages described above (see "How we use your information"), we rely on your consent or, if you are an existing organizer, our legitimate interest in telling you about similar features of the Service — in all cases subject to your right to object or withdraw consent at any time using the unsubscribe link in any such message. You have the right to access, correct, delete, port, restrict, or object to processing of your personal data, and to lodge a complaint with your local supervisory authority. Our service runs on Cloudflare; where your data is transferred to or stored in the United States, we rely on appropriate safeguards for international transfers. To exercise any right, email hello@mahjboard.com.
Children's privacy
Mahjboard is intended for organizers running their leagues and is not directed at children under 13. We do not knowingly collect personal information from children under 13. If you believe a child has provided us personal information, contact us and we'll remove it.
Changes to this policy
We may update this Privacy Policy from time to time. When we do, we'll revise the "Last updated" date at the top of this page, and for material changes we'll provide additional notice where appropriate.
Contact us
Maybe Tomorrow, LLC — maker of Mahjboard
hello@mahjboard.com