Apps by Jem Alvarez · Privacy PolicyPrevious versions

Privacy Policy

Apps by Jem Alvarez

This policy explains what information my apps collect, why, who helps me process it, and what choices and rights you have. I've tried to write it in plain English. If anything is unclear, please contact me (section 1).

The short version


Contents

  1. Who I am and how to contact me
  2. Which apps this policy covers
  3. What I collect and why
  4. Legal bases (EEA, UK and Switzerland)
  5. Analytics, error reports and your choice
  6. Purchases and subscriptions
  7. Apple Ads measurement
  8. The contact form
  9. Information I receive from Apple
  10. iCloud sync
  11. Accounts and account deletion (if an app offers an account)
  12. No tracking, no ad SDKs, no sale of personal information
  13. Who processes your information
  14. International transfers
  15. How long information is kept
  16. Your rights
  17. How to make a privacy request
  18. Children
  19. Security
  20. Changes to this policy and previous versions
  21. Language

1. Who I am and how to contact me

My apps are published by Jem Alvarez, an individual developer based in Florida, USA (referred to as "I", "me" or "my" in this policy). For data protection law purposes, I am the controller of the personal information described here.

I haven't appointed a data protection officer, and I haven't appointed a representative in the European Union or the United Kingdom. Wherever you are, including the EEA, the UK and Switzerland, please contact me directly using the details above. You can also complain to your local data protection authority (section 16).

The Terms of Use for every app are Apple's Standard Licensed Application End User License Agreement: https://www.apple.com/legal/internet-services/itunes/dev/stdeula/

2. Which apps this policy covers

This single policy covers all apps published by Jem Alvarez on the App Store, now and in the future, on iPhone and iPad (and, where available, on Mac and Apple Vision Pro), including the widgets, controls, Live Activities, Siri and Shortcuts actions and other extensions that come with them.

Not every app uses every feature described here. Where this policy says "if an app offers" a feature (such as iCloud sync, an account or a device permission), that part applies only to apps that have it. Each app's App Store page also shows Apple's privacy summary for that app.

This policy doesn't cover Apple's or Google's own services (such as the App Store, iCloud, your Apple Account, Apple Ads or your Google Account), or any website I link to. Those companies' own privacy policies apply (section 13).

3. What I collect and why

Information Why it's used Who processes it When
App usage counters: first-launch date, number of launches and sessions, last version opened Features in the app itself, for example deciding when it's appropriate to ask for an App Store rating Nobody. It stays on your device When you open the app
Your app content and settings (whatever you create or choose in the app) To make the app work Nobody. It stays on your device, unless the app offers iCloud sync or an account and you use it (below) When you use the app
Your analytics choice (on or off) To remember and respect your choice Nobody. It stays on your device When you choose, in the prompt or in Settings
iCloud-synced app content (if an app offers iCloud sync) To keep your data in sync across your own devices Apple (iCloud, private database in your own iCloud account) While iCloud sync is on for the app on your device
Usage analytics: a random Analytics ID created by the app; in-app events (for example: onboarding step viewed, main action completed, paywall shown or closed, purchase started, completed or failed with the product ID, rating prompt requested, contact form sent, analytics turned on, app opened from a widget or event link); app installed, opened, closed and updated events; which app it is; device model and type, operating system and version, app version and build, screen size, language and time-zone settings, network type (Wi-Fi or cellular), and technical flags (for example, whether the app is a TestFlight build); a session ID and timestamps To understand how the apps are used and to improve them PostHog Depends on your region and your choice (section 5)
Error reports: technical details of errors the app runs into (error type, where in the app it happened), with the same app and device details To find and fix bugs PostHog Same as usage analytics
Purchase information: a random RevenueCat ID; your App Store purchase and subscription records (products, purchase, renewal and expiry dates, price and currency, store country, status); device type, operating system and app version; language and region setting; the last time the app connected To deliver, verify and restore what you bought, and to see revenue per app RevenueCat Always, from first launch, because it's needed to deliver purchases
Apple Ads attribution token and the campaign result Apple returns for it To learn whether an install came from one of my Apple Ads campaigns, and which campaign, ad group or keyword RevenueCat, which exchanges the token with Apple Same rules as usage analytics (sections 5 and 7)
Contact-form messages: your name (optional), email address, topic and message; technical details attached automatically (which app, app version and build, iOS version, device model, language and region setting, and your RevenueCat ID); with the "Privacy / my data" topic, also your Analytics ID. SplitForms also stores the sender's IP address, user agent, referrer and the time of submission To read and answer your message, and to fix the problem you report SplitForms, which emails it to contact@jemalvarez.com; Cloudflare, which forwards that email; Google (Gmail), where my inbox is stored Only when you choose to send the form
Crash reports and app-usage statistics from Apple To fix crashes and understand how the apps perform Apple Only if you've turned on sharing with app developers in your device settings (section 9)
Account information (if an app offers an account): an account identifier from Apple or Google, your email address (with Sign in with Apple this can be a private relay address), and your name if you choose to share it To create and run your account Supabase; Apple (Sign in with Apple); Google (Google Sign-In) When you sign in
Account data (if an app offers an account): the app content you save to your account or share with other users To provide the app's account features, such as sharing with other users or server features Supabase While you have an account

The random IDs. The Analytics ID (PostHog) and the RevenueCat ID are random IDs created for the app. They aren't your name, your email address or your Apple Account, and my analytics and purchase records aren't stored with your name or email address. But please note: if you contact me, your email address, your name (if you give it), your message and the technical details listed above, including your RevenueCat ID, come to me. So when you write to me, I can see your purchase records alongside your email address. If you choose the "Privacy / my data" topic, your Analytics ID is attached too, so that I can find and delete your analytics data. Analytics events themselves never contain names, email addresses, free text, contact-form contents or account identifiers.

Internet connections. Whenever an app connects to one of these services, the service receives your device's IP address as part of the connection. PostHog is set up not to store it and not to work out your location from it. RevenueCat uses it only to estimate your country and then discards it. SplitForms stores it with contact-form messages to block spam and abuse. If an app offers an account, Supabase may keep it in sign-in session records and in server logs kept for about a day.

Device permissions. If an app offers features that need access to things like your camera or photos, it asks only when it needs that access, and you can change it at any time in iOS Settings. Unless this policy says otherwise, what an app reads through these permissions stays on your device (or in your own iCloud account, if the app syncs).

Things my apps don't do. They don't use the advertising identifier (IDFA), don't ask for permission to track you (App Tracking Transparency), don't record your screen (no session replay), and don't include third-party advertising SDKs.

If you're in the European Economic Area (EEA) or the United Kingdom, the GDPR or UK GDPR requires me to have a legal basis for each use of your personal information. Swiss data protection law sets similar principles.

Use Legal basis
Delivering, verifying and restoring purchases and subscriptions (RevenueCat) Contract: necessary to provide what you bought (Art. 6(1)(b))
iCloud sync of your app content Contract: providing a feature of the app you chose to use (Art. 6(1)(b))
Creating and running your account and storing account data (if an app offers an account) Contract (Art. 6(1)(b))
Usage analytics and error reports (PostHog), and the Apple Ads attribution token, when you've said yes in the prompt Consent (Art. 6(1)(a)). You can withdraw it at any time with the "Share usage analytics" switch
Usage analytics, error reports and Apple Ads attribution when they run without a prompt (because neither your App Store country nor your device region is in the EEA, UK or Switzerland) Legitimate interests: understanding and improving my apps and measuring my own ads (Art. 6(1)(f)). You can object at any time with the same switch
Answering contact-form messages and emails Legitimate interests: responding to you and fixing problems you report (Art. 6(1)(f)); or contract, where your message is about something you bought
Handling privacy requests and keeping a record of them; disclosures the law requires Legal obligation (Art. 6(1)(c))

Some information, such as your analytics choice, is stored on your device because it's needed to respect your choice. Your app content and settings are stored on your device because they're needed for the app to work.

Using an app never depends on giving consent. If you say no, every feature works the same.

5. Analytics, error reports and your choice

How your region is decided. When an app starts, it first checks two things: the country of your App Store account (storefront) and your device's region setting. If either is in the EEA, the United Kingdom or Switzerland, the app asks for your permission before any analytics starts. Analytics and Apple Ads attribution don't start anywhere until the app knows your region.

App Store country or device region in the EEA, UK or Switzerland Everywhere else
Analytics prompt Shown once, before any analytics starts. "Accept" and "Decline" are equally easy Not shown
PostHog analytics and error reports Start only after you accept Start at launch
Apple Ads attribution token Sent only after you accept Sent at launch
Purchases (RevenueCat) Always on, because it's needed to deliver purchases Always on
"Share usage analytics" switch in Settings Yes. Turning it off is as easy as turning it on Yes. You can turn it off at any time

If you decline, or turn the switch off:

Your Analytics ID. Each app's Settings shows your current Analytics ID, with a button to copy it. If you want me to find or delete your analytics data, send me this ID (section 17).

How PostHog is set up. I use PostHog's US Cloud, with one project for all my apps. It's set up to discard your IP address and not to look up your location from it. There's no session replay and no feature flags, experiments or surveys. I've opted out of PostHog using my data to develop or train its products or models.

6. Purchases and subscriptions

All purchases and subscriptions are made through the App Store. Apple is the merchant of record and processes the payment under its own terms and privacy policy. I never receive your card or bank details.

I use RevenueCat to confirm what you've bought, unlock paid features, restore purchases on a new device, and report revenue. RevenueCat identifies you only by a random ID that it creates; it isn't your name, your email address or your Apple Account. If an app offers an account, RevenueCat still uses its own random ID, not your account ID.

RevenueCat runs in every region, whatever your analytics choice, because without it the app can't deliver what you paid for.

To cancel or manage a subscription, use your Apple Account subscription settings (also reachable from Settings → Manage Subscription in the app). Refunds are handled by Apple at https://reportaproblem.apple.com.

7. Apple Ads measurement

Apple Ads is the only advertising I pay for. To learn whether an install came from one of my Apple Ads campaigns, the app can get an attribution token from Apple's AdServices framework and pass it to RevenueCat. RevenueCat exchanges it with Apple for the campaign, ad group and (where available) keyword. This shows me how much revenue each campaign brings in.

8. The contact form

Each app has a contact form in Settings. When you send it:

Please don't include sensitive information (such as health details or passwords) in your message.

9. Information I receive from Apple

Apple collects and handles this information as an independent company under its own privacy policy, including https://www.apple.com/legal/privacy/data/en/app-analytics/

10. iCloud sync

If an app offers sync across your own iPhone, iPad and Mac using iCloud, this applies:

11. Accounts and account deletion (if an app offers an account)

Some apps may offer an account (with Sign in with Apple or Google Sign-In), for example to share data with other users or to use server features. If an app offers an account, this applies:

Deleting your account. You can delete your account at any time in the app, in the account section of its Settings. When you do:

12. No tracking, no ad SDKs, no sale of personal information

13. Who processes your information

Service providers and other recipients

These companies provide the services my apps and I use to handle your information. PostHog, RevenueCat, SplitForms, Cloudflare and Supabase process it only to provide their service to me, under their terms and data processing agreements. My Gmail inbox is a consumer Google account, which Google provides under its own terms and privacy policy.

Provider What it does for my apps Information involved Privacy policy
PostHog, Inc. (US Cloud; one project for all my apps) Usage analytics and error reports Random Analytics ID, in-app events, device, operating system and app details, error reports https://posthog.com/privacy
RevenueCat, Inc. In-app purchases and subscriptions; Apple Ads attribution Random RevenueCat ID, purchase and subscription records, device and app details, Apple Ads attribution token and result https://www.revenuecat.com/privacy
SplitForms (splitforms.com), operated by TownMediaLabs from India; submissions stored in the United States Receives contact-form messages and forwards them to my email Name (optional), email, topic, message, technical details, RevenueCat ID, Analytics ID (privacy topic only), IP address, user agent https://splitforms.com/privacy
Cloudflare, Inc. (US; Email Routing) Forwards email sent to contact@jemalvarez.com (including contact-form messages) to my Gmail inbox, in transit, without storing it in a mailbox Everything in a contact-form message or email to me https://www.cloudflare.com/privacypolicy/
Google LLC (US; Gmail) Hosts the email inbox where messages to me are stored and where I reply to you Everything in a contact-form message or email to me, and our email conversation https://policies.google.com/privacy
Supabase, Inc. (US East region; only if an app offers an account) Sign-in and account data storage Account identifier, email, name (if shared), account data, IP address in session records and short-lived logs https://supabase.com/privacy

Companies that process information under their own privacy policies

Apple and Google are independent companies. They aren't my service providers; they handle information under their own terms and privacy policies:

I may disclose information if I'm required to by law, such as by a valid court order or subpoena, or if I believe in good faith it's necessary to protect my rights, your safety or the safety of others, or to investigate fraud. If I sell or transfer an app (or the business behind it), the information related to that app may be transferred to the new owner, who will have to respect this policy for information collected under it. I'll say so on this page before that happens.

14. International transfers

I'm based in the United States, and my service providers process information in the United States (SplitForms is operated from India and stores submissions in the United States; Cloudflare and Google are US companies; Supabase stores account data in its US East region). Apple and Google operate worldwide. This means your information may be processed outside your country, including outside the EEA, the UK and Switzerland.

Where the law requires safeguards for these transfers, they are:

You can ask me for a copy of the relevant safeguards (section 1).

15. How long information is kept

Information How long
On-device information (usage counters, your content and settings, your analytics choice) Until you delete it or delete the app
iCloud-synced content Until you delete it in the app or from iCloud
PostHog analytics events and error reports 1 year
RevenueCat purchase records and Apple Ads attribution results While the app is available, or until you ask me to delete them
Contact-form submissions in SplitForms Deleted after 30 days, including from the trash
Contact-form messages, emails and my replies in my Gmail inbox (Cloudflare only forwards them and doesn't keep them) 24 months after the conversation ends
Account and account data (if an app offers an account) Until you delete your account. No backups are kept; server logs expire after about a day
Records of privacy requests (what was asked, when, and how I responded) 24 months
Crash reports and App Store statistics from Apple As set by Apple

16. Your rights

Everyone. Wherever you live, you can ask me what personal information I hold about you, ask me to correct it or delete it, and turn analytics off at any time in Settings. I won't treat you differently for using any of these rights.

EEA, UK and Switzerland. Under the GDPR, the UK GDPR and Swiss data protection law, you have the right to:

I don't make decisions about you based solely on automated processing that have legal or similarly significant effects.

US state privacy rights. Under the privacy laws of some US states, you may have the right to know what personal information I process about you, to correct it, to get a copy of it, and to have it deleted. I offer these rights to everyone, wherever you live. To use them, contact me as described in section 17; I'll need to confirm your request comes from you. I don't sell your personal information, and I don't share it for cross-context behavioral advertising or use it for targeted advertising. I don't process sensitive personal information, and I won't treat you differently for using your rights.

Other countries. You may have similar rights under your local law. Contact me and I'll help.

17. How to make a privacy request

I'll respond within one month of receiving your request. If a request is complex, the law may allow up to two more months; if so, I'll tell you within the first month.

Verification and what I can find. I may ask for information to confirm a request really comes from you.

18. Children

My apps are meant for a general audience and aren't directed at children under 13 (or the minimum age for consent to online services where you live, which in the EU ranges from 13 to 16). I don't knowingly collect personal information from children. If you believe a child has sent me personal information, for example through the contact form, contact me and I'll delete it. Each app's age rating is shown on its App Store page.

If an app is ever designed for children or placed in the App Store's Kids category, it will follow the extra rules that apply, and this policy will be updated before it launches.

19. Security

I take reasonable steps to protect information, including:

No system is completely secure. If a data breach affects your personal information, I'll notify you and the relevant authorities as the applicable law requires.

20. Changes to this policy and previous versions

I'll update this policy when my apps or the services they use change. When I do, I'll change the "Last updated" date at the top and keep the previous version in the public archive: https://privacy.jemalvarez.com/archive

I don't show a notice in the apps or ask you to give your consent again when this policy changes, so please check this page from time to time.

21. Language

This policy is provided in English only.


Questions? Contact me at contact@jemalvarez.com or through Settings → Contact Us in any of my apps. Support: https://jemalvarez.com · Previous versions: https://privacy.jemalvarez.com/archive