This Privacy Policy explains how Giani, a product operated by Moonrise Labs Inc.(“Giani,” “we,” “us,” or “our”) collects, uses, and protects information when you use the Giani iOS application (the “App”) and the website at giani.app (together, the “Service”). Giani is a daily Punjabi challenge app with optional social features (Pinds, 1v1, and ranked matchmaking). We try to collect as little information as possible, and only what we need to make the product work.
If you have any questions, email us at support@giani.app.
1. Information we collect
a. Account information
You can sign in to Giani using Sign in with Apple, Sign in with Google, or an email address and password. Depending on which you choose, we receive:
- A unique user identifier issued by Apple, Google, or Giani
- Your email address
- Your name (if you choose to share it)
- Your profile picture URL (Google only, if available)
- A password, if you create an email account. The password is stored hashed by our authentication provider (Supabase). We do not see it in plain text after you sign up.
When you use “Sign in with Apple,” you can choose to hide your email address; in that case we only receive Apple’s private relay email and a user identifier.
b. Profile and progress data
To run the daily challenge, streaks, rating, Pinds, and 1v1 features, we store:
- The username you choose and any profile photo you upload (or a Google profile picture URL, if you signed in with Google and we used it)
- Your current streak and last active date
- Your rating (an Elo-style score that can change when you finish a rating-moving set or a ranked 1v1)
- A history of each question you answered, whether you answered correctly, and your rating before and after that answer
- A snapshot of your rating after completed sets and ranked 1v1s, used to draw your rating graph
- Pind membership (which group you’re in, your role, and the Pind name)
- 1v1 match records: who you played, scores, answers, whether the match was a friend / Pind challenge or ranked, and the rating change if it was ranked
c. What other people can see
Some of the profile above is visible to other signed-in Giani users. That is how leaderboards, Pinds, and 1v1 work. Other users can see:
- Your username and profile photo
- Your rating, streak, and Super badge (if you have Giani Pro)
- That you are in a match or searching, if they are your opponent
- Your display name on a lock-screen notification if you send them a direct 1v1 challenge
While ranked matchmaking is searching, the app may also show a short reel of other users’ names and photos as decoration. Those are the same public names and photos already shown on the leaderboard. Other users cannot see your email, password, or sign-in provider.
d. Feedback you send us
If you submit in-app feedback, we store the message, your display name at the time, your user ID, and the app version. We use this only to respond to you and improve the app. If you report another user, we store your report, the reason you wrote, and who you reported.
e. Device and usage data (analytics)
We use PostHog for product analytics and session replay. This helps us see which screens are confusing, where people drop off, and what to build next. PostHog receives:
- Your Giani user ID (once you sign in) and display name
- App version, build number, and whether this is a debug build
- Your device’s timezone and local date
- Events such as: app opened, app backgrounded, screen viewed, daily set started / completed, question answered, 1v1 started / finished, word-of-the-day audio played, notification permission status, notifications scheduled / tapped, sign in / sign out
- On giani.app, a download click: which button or link, which store, and the campaign parameters on that link
- Session replay screenshots of the app’s UI while you use it (text inputs and images are included so we can debug real issues). Session replays do not capture anything outside the Giani app.
f. Advertising
Giani shows ads to keep the app free. We use Google AdMob, Google’s mobile advertising platform, to serve rewarded and interstitial ads. To serve and measure those ads, AdMob and Google may collect and process:
- Your device’s advertising identifier (IDFA) — only if you allow tracking (see below)
- Coarse location derived from your IP address, device type, and operating system version
- Ad interaction data, such as which ads were shown, tapped, or watched to completion
App Tracking Transparency.Because ads may use your device’s advertising identifier, iOS will show you Apple’s App Tracking Transparency prompt. If you decline, you will still see ads, but they will be non-personalized (not based on your advertising identifier).
Consent in the EEA, UK, and Switzerland.If you are in a region covered by these privacy laws, we use Google’s User Messaging Platform to ask for your consent before showing personalized ads. You can change or withdraw your choice at any time from Settings → Privacy Options inside the app.
Google’s handling of advertising data is governed by its own policies. For details, see how Google uses information from apps that use its services.
g. Notifications
With your permission, we send two kinds of notifications:
- Local remindersscheduled on your device for the daily set, word of the day, streak-at-risk, streak-lost, and 1v1 rematch messages. We record in analytics when you tap them, so we can tell if they’re useful.
- Remote Apple Push notificationsfor a direct 1v1 challenge when you are not in the app. The alert includes the challenger’s display name. Open Pind challenges do not notify the whole group.
To send a remote 1v1 push, we store an Apple Push (APNs) device token for your phone and which environment it belongs to (sandbox or production). The token is tied to the signed-in account. Signing in on a phone that already had a token reassigns it to the new account. Signing out or deleting your account drops that token from our side.
h. Emails we send you
We send a small number of service emails directly tied to your use of Giani:
- A one-time welcome email after you finish onboarding and pick a username.
- A one-time “first set complete” email after you finish your first daily set, summarizing your score and rating.
- A password-reset code if you use email sign-in and ask to reset your password.
- A one-time email the day after you cancel a free trial, asking why you cancelled.
These emails are sent from arsh@giani.app via Resend, our email delivery provider, who receives your email address and the message content only when we send these emails. If you signed in with Apple and chose “Hide My Email,” delivery is routed through Apple’s private email relay, so we never see your real address.
We do not currently send marketing or promotional email. If we ever introduce marketing emails in the future, we will ask for your separate consent and include an unsubscribe link in every such message. To stop receiving any emails from Giani, delete your account (see Section 6) or email support@giani.app.
i. Photos
If you set a profile photo, iOS lets you pick an image from your library. We read only the photo you choose, crop it in the app, and upload the cropped image to our file storage so other users can see it as your avatar. We do not browse the rest of your library.
If you share your daily summary to Instagram or Snapchat, iOS will ask for permission to add the generated image to your Photo Library. We only write the image you generated; that share path never reads your photos.
j. Purchases and Giani Pro
Giani Pro is an optional auto-renewing subscription billed by Apple through In-App Purchase. Apple processes the payment. We do not receive your Apple ID password or card details.
We use RevenueCat to know whether Pro is active on your account, so we can unlock unlimited custom sets, unlimited replays, and hide ads, and so Pro follows you across devices. When you buy, restore, or cancel, RevenueCat receives your Giani user ID and App Store transaction data (the product, the billing period, the expiration date, and whether the plan will renew).
We also store a boolean is_pro on your Giani profile. That flag is how the Super badge is shown to you and to other people in the app (for example on leaderboards, Pinds, and 1v1). It is not used to charge you; Apple remains the merchant of record.
2. How we use your information
We use the data above to:
- Create and maintain your account
- Run the daily set, custom sets, rating, streak, Pinds, 1v1, and word-of-the-day features
- Show your public profile to other users in matchmaking, matches, Pinds, and leaderboards
- Show you your progress history and rating graph
- Send you notifications you opted into, including 1v1 challenges
- Send you the service emails described in Section 1h
- Show ads to keep Giani free (see Section 1f)
- Provide Giani Pro and keep your subscription status in sync (see Section 1j)
- Respond to feedback and user reports you send us
- Debug issues, fix crashes, and improve the app
- Detect and prevent abuse
We do not sell your personal information for money. We do show ads through Google AdMob, which may involve sharing device identifiers with Google as described in Section 1f. Depending on your choices and where you live, this may be treated as “sharing” or a “sale” of information under some U.S. state privacy laws; you can limit it by declining the App Tracking Transparency prompt or adjusting your consent in Settings → Privacy Options.
3. Who we share data with
We share some profile data with other Giani users as described in Section 1c. That is not a sale. It is how the social features work.
We also share data with service providers who help us run Giani, under their own privacy policies:
- Supabase (database, authentication, file storage, hosting) — stores your profile, rating, question history, rating snapshots, 1v1 matches, Pind membership, feedback, user reports, push tokens, uploaded photos, and the is_pro flag described in Section 1j.
- PostHog (product analytics and session replay) — receives the analytics events listed above.
- Resend (transactional email delivery) — receives your email address and the message content only when we send the service emails described in Section 1h.
- Google AdMob(advertising) — receives your device’s advertising identifier (when you permit tracking), IP-derived coarse location, and ad interaction data to serve and measure ads, as described in Section 1f.
- RevenueCat (subscriptions) — receives your Giani user ID and App Store purchase / entitlement data so Pro stays in sync across devices, as described in Section 1j. See RevenueCat’s privacy policy.
- Apple and Google — as your identity providers when you sign in. Apple also processes Giani Pro payments through In-App Purchase, and delivers remote 1v1 notifications through Apple Push Notification service (APNs) using the device token described in Section 1g.
We may also disclose information if required by law, to protect the rights and safety of Giani, our users, or the public, or as part of a corporate transaction (merger, acquisition, etc.). Aside from the ad identifiers shared with Google AdMob to show ads (Section 1f), we do not sell your data to advertisers or data brokers.
4. Where your data lives
Giani’s primary database and file storage are hosted on Supabase in the United States. Analytics data is processed by PostHog in the United States. Subscription data is processed by RevenueCat in the United States. Advertising data is processed by Google (AdMob), which operates data centers globally. Remote push notifications are delivered by Apple. If you use Giani from outside the U.S., your data will be transferred to and processed in the U.S. and other countries.
5. How long we keep your data
We keep your account data for as long as your account exists. If you delete your account (see below), we delete your profile (including your photo and is_pro), question history, rating snapshots, 1v1 records tied to you, Pind membership, feedback, user reports you filed, and push tokens within 30 days. Match history that also involves another player may be kept in a de-identified form so their results still make sense. Aggregated / anonymized analytics (which cannot be linked back to you) may be retained longer. Apple and RevenueCat keep purchase records under their own policies; deleting your Giani account does not cancel a paid Apple subscription.
6. Your rights and choices
Depending on where you live, you may have the right to:
- Access a copy of the personal data we hold about you
- Correct inaccurate data
- Delete your account and associated data
- Object to or restrict certain processing
- Lodge a complaint with your local data protection authority
Account deletion. You can delete your account and all associated data by emailing support@giani.app from the email you signed up with, or by using the delete-account option inside the app Settings. We will delete your data within 30 days as described in Section 5. You can also remove your profile photo or change your username from Settings without deleting the account.
Notifications. You can turn notifications off any time, from inside Giani Settings or in iOS Settings.
Advertising.You can decline the App Tracking Transparency prompt (or turn off “Allow Apps to Request to Track” in iOS Settings → Privacy & Security → Tracking) to get non-personalized ads. In the EEA, UK, and Switzerland, you can change or withdraw ad consent any time from Settings → Privacy Options in the app.
7. Children
Giani is not directed at children under 13 (or under 16 in the EEA / UK). We do not knowingly collect personal information from children in that age range. If you believe a child has given us personal information, email us and we will delete it.
8. Security
We use industry-standard protections, including encrypted connections (HTTPS / TLS), hashed passwords for email accounts, and Supabase row-level security so a user cannot change another user’s account. Some profile fields (username, photo, rating, streak, Super badge) are visible to other signed-in users on purpose, so Pinds, leaderboards, and 1v1 can work. No system is perfectly secure; we can’t guarantee absolute security.
9. Changes to this policy
If we make material changes to this policy, we will update the “Last updated” date at the top and, where appropriate, notify you in the app.
10. Contact
Questions, requests, or concerns? Email support@giani.app.