Privacy Policy
Last updated: June 8, 2026
Plain-English summary first. The detailed sections follow. We don't sell your data. We don't track you across the internet. We collect only what we need to run async multiplayer mahjong, keep your account secure, and fix bugs when the app crashes. If you delete your account, we delete your data.
1. Who we are
Mahj & Friends ("we", "us", "our") is an iOS app for playing American Mahjong asynchronously with friends and groups. This Privacy Policy applies to the Mahj & Friends iOS app and the website at mahjandfriends.com. Mahj & Friends is operated from California, United States.
2. What we collect
To create your account and run multiplayer games, we collect:
- Account info — email address (required for sign-up), full name (display name), and a chosen
@handle. You can edit display name and handle at any time from Settings. - Authentication credentials — managed through Firebase Authentication. We never see your password directly; only an authentication token.
- Profile data — avatar color preference, notification preference, stats-visibility preference (public / friends-only / private), achievements, and "premium" status flag (set by the server when you subscribe).
- Game data — the games you play, hands won, points earned, tournament standings, club memberships, friend connections, and aggregate stats (games played, win rate, current streak, favorite hand pattern). Game state syncs across your devices via Firebase Firestore so async play works.
- User-generated content — club board posts, club names and descriptions, event schedules. Reports you submit about other users (via the in-app Report flow) are stored so we can review them.
- Device info — iOS version, device model, app version. No precise location, no contacts, no microphone, no camera, no photos.
- Crash and diagnostic data — through Firebase Crashlytics, we collect anonymized crash stack traces tagged with your Firebase user ID. The stack traces contain no personal information, only technical details about where the app crashed.
- Analytics events — through Firebase Analytics, we collect coarse-grained events (e.g. "user finished onboarding", "first game started", "friend request sent") to understand how the app is used. Events do not include personal content, hand contents, or chat. Your Firebase user ID is attached so we can see funnels across sessions.
- Push notification token — when you grant permission, so we can let you know it's your turn or a friend invited you to a game. Push notifications launch with Apple Sign-In and APNs configuration; until then, this is not collected.
3. What we don't collect
- We don't read your contacts, photos, location, microphone, or camera.
- We don't track you across other apps or websites.
- We don't sell or rent your personal data to anyone, ever.
- We don't share your gameplay activity, friends list, or stats with advertisers.
- We don't collect health data, financial data, or biometric data.
- We don't store your payment card information; Apple handles all in-app purchases through StoreKit.
4. Why we collect it
- Email — to identify your account, let you sign in, and send password resets. We don't send marketing emails.
- Display name and handle — to identify you to friends and opponents inside the app.
- Game data — to power gameplay: active games, history, leaderboards, stats, tournaments.
- Crash reports — to diagnose and fix app crashes; the user ID lets us correlate crashes to bug reports and confirm fixes.
- Analytics events — to understand how new players move through onboarding and which features get used, so we can improve the app.
- Device identifiers — for Firebase to dedupe sessions, route push notifications, and avoid double-counting analytics events.
5. Third parties we use
The iOS app relies on these services to operate:
- Google Firebase — Authentication, Firestore (real-time database), Cloud Functions (server logic), Crashlytics (crash reporting), Analytics (usage events). See Firebase's privacy documentation.
- Apple — App Store distribution, StoreKit (in-app purchases when premium ships), Sign In with Apple (when wired). See Apple's privacy policy.
- Vercel — hosts the marketing website at mahjandfriends.com (including this Privacy Policy and Terms of Service pages).
We do not currently use any third-party advertising SDKs. If we ever introduce ads on the free tier, we will update this policy first, disclose the ad network, and ask for your tracking permission via Apple's standard prompt. Premium subscribers will never see ads anywhere in the app.
6. Where your data lives
Your account, profile, friends graph, and game data are
stored on Google Cloud Firestore in the us-central1
region (United States). Analytics events and crash reports
flow to Firebase's standard processing infrastructure,
also primarily in the United States. If you use the app
from outside the United States, your data crosses borders
to be processed in the US.
The website (including this page) is hosted on Vercel, primarily on US servers.
7. How long we keep it
- Account data — kept for as long as your account exists.
- Completed games — automatically removed from active storage after 30 days. Match-level aggregates (totals, streaks) are preserved on your profile.
- Abandoned active games (no player engagement for 7+ days) — automatically removed by a scheduled cleanup job.
- Crash reports — retained per Firebase Crashlytics' standard 90-day retention.
- Analytics events — retained per Firebase Analytics' default 14-month retention.
- Account deletion — when you delete your account from Settings → Danger Zone → Delete Account, we run a cascade deletion that removes your profile, handle reservation, friend connections, club memberships, owned clubs (or transfer to a co-admin if one exists), tournament standings, and authentication record. This happens within minutes of your request, not weeks. Some anonymized aggregate stats may remain.
8. Your rights
From inside the app, you can:
- See your data — your profile, stats, games, friends, and clubs are visible in the app. Use Settings → Data → Export My Data to download a full JSON export.
- Edit your data — Settings → Account for profile editing; Settings → Privacy for stats visibility.
- Delete your account — Settings → Danger Zone → Delete Account. This is permanent and cascades server-side.
- Block or report another user — open their profile and use the Block or Report flow.
- Turn off analytics + crash reporting — there is currently no in-app toggle for this; if you want it disabled, email us at support@mahjandfriends.com and we will disable on the server for your user ID.
If you live in the EU, UK, California, or another jurisdiction with specific data-protection laws, you have additional rights including access, rectification, erasure, portability, and objection. Email support@mahjandfriends.com and we will respond within 30 days. We do not sell personal data, so we do not need to offer a "Do Not Sell" option under CCPA — but you can still ask us to delete your data the same way.
9. Children
Mahj & Friends is not directed at children under 13. We do not knowingly collect data from children under 13. If we learn we have, we will delete the account. If you are a parent or guardian who believes your child has created an account, email support@mahjandfriends.com and we will remove it promptly.
10. Security
We use industry-standard security: TLS encryption for every request, Firebase Authentication for sign-in, Firestore Security Rules to enforce per-user access control on every document, and we never store passwords ourselves. Multiplayer game state is enforced server-side by Cloud Functions so a hostile client cannot, for example, dictate the winner of a hand or read another player's tiles. No system is 100% secure. If we ever experience a breach affecting your personal data, we will notify affected users within the timeframes required by applicable law.
11. NMJL attribution
Mahj & Friends implements gameplay following the rules of the National Mah Jongg League ("NMJL"). Hand patterns in the app are based on the official annual NMJL card. Mahj & Friends is independently developed and is not affiliated with or endorsed by NMJL. NMJL® and Mah Jongg® are trademarks of the National Mah Jongg League, Inc. Players who want the official printed card should buy one from nationalmahjonggleague.org and support the League.
12. Changes to this policy
We may update this Privacy Policy from time to time. Material changes will be flagged in the app and the "Last updated" date at the top of this page will change. Continued use of the app after an update means you accept the new version. If you do not accept an updated version, you can delete your account from Settings → Danger Zone.
13. Contact
Questions about this policy, your data, or how to exercise any of the rights above? Email support@mahjandfriends.com. We respond within 30 days, usually much faster.