Privacy Policy
The short version
- Grainlock has no accounts, no login and no server that holds your data.
- What you create in Grainlock stays on your iPhone.
- Grainlock cannot see which apps you use or for how long. Apple does not show it that information.
- There are no ads and no tracking. We use product analytics to learn which screens and steps people use, so we can improve the app. It never includes your Grains, your name or anything about the apps you lock.
- Data leaves your phone in three cases only: Apple and RevenueCat handle your subscription, PostHog receives product analytics and crash reports, and a support message goes out if you choose to send one.
- If you join the early-access list on our website, we keep your email address to send you your launch code. Nothing else.
- Our website counts visits without cookies. It sets a cookie and records your visit only if you allow it in the cookie bar.
- We do not sell or share your data.
This policy covers the Grainlock app for iPhone ("Grainlock", "the app"), the Grainlock website, and the team that makes it ("we", "us"). It explains what information the app handles, where that information goes, and what you can do about it.
1. Data that stays on your iPhone
Grainlock stores the following only on your device, in the app's own storage and in a storage area shared with Grainlock's Screen Time extensions. We never receive a copy.
- Your Grains: the commitments you write, and when you last read them.
- Your lock schedule: the times of day your chosen apps are locked.
- Your app selection: stored as an opaque token issued by Apple. Grainlock cannot read app names from it. It only keeps a count of how many apps, categories and websites you picked.
- Streak and unlock history: the days you kept your lock, and when and how you unlocked.
- Onboarding answers: the answers you give during setup. The choices you tap are also sent as analytics (see section 5).
- Display name: the name you type in, used only to greet you in the app. It does not identify you to us.
- Settings: for example, whether reminders are on, and the email address you last entered in the support form, so you do not have to type it again.
Grainlock has no cloud sync. If you delete the app, all of this is deleted with it. Whether it appears in your own iCloud or computer backups of your iPhone is up to your device's backup settings, which we do not control or see.
2. Screen Time
Grainlock uses Apple's Screen Time frameworks (Family Controls, Managed Settings and Device Activity) for one thing: to lock the apps you chose, at the times you set, until you unlock them.
- Apple's app picker gives Grainlock an opaque token. Grainlock cannot see app names, website names or how long you use any app.
- No Screen Time information is collected, sent off your device, sold or shared.
- You can withdraw Grainlock's Screen Time access at any time in iOS Settings, or turn locking off inside Grainlock.
3. Notifications
If you allow them, Grainlock schedules reminders on your iPhone itself. These are local notifications. We do not operate a push notification server, and no notification content passes through us.
4. Subscriptions
Grainlock is sold as an auto-renewing subscription through the App Store.
- Apple processes your payment. We never see your name, Apple ID, card or billing address. Apple's handling is described in the Apple Privacy Policy.
- RevenueCat, our subscription service, receives your App Store purchase and subscription status together with a random identifier that Grainlock generates. That identifier is not linked to your name, email or any other account. RevenueCat also receives the technical details any internet request carries, such as IP address, device model and OS version. We use this to know whether your subscription is active. The same identifier also labels our product analytics (section 5). See the RevenueCat Privacy Policy.
5. Product analytics and crash reports
Grainlock sends usage events to PostHog, an analytics service, so we can see where people get stuck and what to improve. We use it for nothing else.
- Screens and actions: which screens you open, and events such as finishing a setup step, viewing the paywall, starting a subscription (which plan and whether it had a free trial), creating or editing a Grain, unlocking, pausing, changing your schedule and sending a support message. For these events we record only that they happened and a few fixed options, such as how you unlocked. The text you write is never included.
- Onboarding choices: the options you tap during setup, such as the goals, blockers and deadline you pick from the lists shown. These are preset choices, not free text. Your display name is not sent.
- Crash and error reports: if the app hits an error, the technical details of that error.
- Device details: app version and build, iOS version, device model, screen size, language, region and time zone.
- Approximate location: PostHog estimates your country and city from the IP address of the request. It does not use GPS or your precise location.
- A random identifier: the same one RevenueCat uses (section 4), so that analytics and subscription status refer to the same install. It is not linked to your name, email or Apple ID.
Analytics never include your Grains, your display name, your support messages, your email address, or any Screen Time information. We do not use analytics for advertising and do not combine them with data from other companies to track you. We keep analytics only as long as we need them to understand how the app is used.
6. Support messages
If you send a message from Settings, Support, the app sends:
- the email address you enter,
- your message and the reason you pick,
- the app version and build, your iOS version and your device language and region setting (locale),
- the time you pressed Send.
This goes to our support inbox through Formspree, a form delivery service. We use it only to read and answer your message. We do not add your email to any mailing list. We keep support messages only as long as needed to resolve your request, and delete them no later than 12 months after the last reply. If you never open the support form, none of this is sent.
7. The website and early-access list
Before Grainlock launches, you can join the early-access list on the Grainlock website by entering your email address. When you do, we store:
- your email address,
- the time you signed up and which form on the page you used,
- the country our hosting provider estimates from your IP address. We do not store the IP address itself.
We use this only to email you an early-access code when the app launches, and to tell you how to redeem it. We do not send newsletters, sell the list or share it with anyone. The list is hosted by Vercel (the website) and stored with Upstash (a database service). We delete the list no later than 6 months after launch. Your browser remembers that you joined, on your own device, so the form does not ask again. Your email address is never sent to PostHog; we only count that a signup happened, which form was used and the country.
Website analytics. The website also uses PostHog to see how people find and use it:
- Without a cookie (the default, and if you press Decline): we count page views, where you came from (the referring site and any campaign tags in the link), clicks on the page, how far you scroll, whether a signup worked, and page speed, together with browser, device type and the country and city PostHog estimates from your IP address. Nothing is stored on your device. PostHog recognises repeat visits within one day only, from a hash of your IP address and browser that changes daily.
- With a cookie (only if you press Allow): PostHog sets a first-party cookie with a random identifier, so it can recognise later visits from the same browser, and records your session on the page (a session replay: mouse movement, scrolling and clicks) so we can see where the page is confusing. Everything typed into form fields, including your email address, is masked and never recorded.
Your choice is kept in your browser. Change it at any time with "Cookie settings" at the bottom of every page.
8. What Grainlock does not do
- No advertising, and no advertising identifier (IDFA).
- No tracking across other companies' apps or websites.
- No analytics beyond what sections 5 and 7 describe, and no analytics used for advertising.
- No selling, renting or sharing of personal information.
9. Legal basis (EEA, UK and Switzerland)
We process early-access list emails on the basis of your consent, which you give by joining and can withdraw at any time, support messages on the basis of our legitimate interest in answering you, product analytics and crash reports, and cookieless website analytics, on the basis of our legitimate interest in keeping the app and website working and improving them, the website analytics cookie and session replay on the basis of your consent, which you can withdraw with "Cookie settings", and subscription status on the basis of performing our contract with you: providing the app you subscribed to. Everything else stays on your device and is not processed by us.
10. Your rights and choices
- Erase on-device data: delete the app.
- Website cookie: use "Cookie settings" at the bottom of any page of the website to allow or decline it, or clear the site's data in your browser.
- Leave the early-access list: email us at the address below and we will remove your email address.
- Erase support messages: email us at the address below and we will delete them.
- Erase analytics: email us and we will delete the analytics tied to your install. Because analytics are not linked to your name or email, we may ask for details, such as roughly when you installed the app, to find them.
- Access, correct or object: depending on where you live (for example under the GDPR, UK GDPR or California law), you may have rights to access, correct, delete or object to the processing of your personal information. Contact us and we will respond within 30 days. You can also complain to your local data protection authority.
- Subscription: manage or cancel in iOS Settings, then your name, then Subscriptions.
11. Children
Grainlock is meant for the adult owner of the device, who applies restrictions to their own apps. It is not directed at children and has no parental control features. We do not knowingly collect personal information from children under 13 (or the minimum age in your country). If you believe a child has sent us a support message, contact us and we will delete it.
12. International transfers
RevenueCat, PostHog, Formspree, Vercel and Upstash process data in the United States. Where data from the EEA, UK or Switzerland is transferred there, it is covered by those providers' transfer safeguards, such as Standard Contractual Clauses.
13. Changes
If this policy changes, we will update this page and the effective date above. If a change affects what leaves your device, we will say so in the app before it takes effect.
14. Contact
Grainlock
Email: support.trygrain@gmail.com
Or use Settings, Support, inside the app.