Privacy policy
The full text below is the policy shipped with the app.
Brainy Grid Privacy Policy
Last updated: 2026-11-09
Brainy Grid is a graphic-dictation app for children. It is built so that a child’s data stays on the child’s device. This policy explains, in plain language, what is stored locally, what leaves the device and when, and how to delete it.
The app is developed and published by Inna Stetsiura, an individual developer, who is the controller of the data described below. Contact: brainygrids@gmail.com (postal address in section 12).
The short version
- We do not collect personal information from your child. Your child’s drawings, the photos of them, everything derived from them (cut-outs, overlays, recognition masks) and your child’s exact age never leave the device, in any mode. Nothing that identifies your child leaves it, unless you, as the parent, choose to create a family account and put a nickname and an age band into it (section 2). With an account, the numbers of an attempt (match percentages, the skill breakdown, the error analysis) sync between your family’s devices; no picture ever does.
- We never target advertising at your child. The app shows no ads, contains
no advertising code, uses no advertising identifiers (IDFA/AAID) and does no
tracking, and no data, your child’s or yours, is ever used to show ads to
your child. The only thing about the app that can ever reach an advertising
network is a single step number, for example “started a free trial”, which
Apple itself, not the app, may pass on, with no identifier of you, your
child or the device (section 5). Our ads are for parents, and our website
brainygrid.comis made for parents, not for children; its analytics and advertising tags are described in section 4, and none of them is in the app. - You stay in control. The app works fully offline without an account. An account is optional, is created by an adult behind a parental gate, and exists for exactly two purposes: carrying the subscription to another device and syncing progress across your family’s devices. With or without an account, the app reports anonymous usage events, such as which setup steps were completed or that a subscription was taken out, labelled with a random install number and nothing else (section 5); you can switch them off in the parent settings. You can erase everything at any time (section 7).
- The app is built to the rules that apply to children’s apps: COPPA (US), the GDPR including Art. 8 (EU/EEA), the Apple Kids Category Guidelines and the Google Play Families Policy.
1. Data that stays on the device only
Stored in app storage on your device and never sent to us:
- photos of the child’s drawings and images derived from them (overlays, cut-outs, recognition masks and the pixel geometry behind them);
- exact date of birth / exact age of the child;
- app settings, language, selected theme;
- the schedule of the local reminders described below.
Recognition of the drawing runs entirely on the device: the captured photo is processed locally, is never uploaded to our servers — not even temporarily — and is not sent to any external recognition service.
Local reminders. With the parent’s permission the app can show up to three reminders to come back, scheduled for the evenings of the second, fifth and twelfth day after the last time the app was opened. These are LOCAL notifications only: they are scheduled by your device’s own notification scheduler, we never request a push token, we send no remote push, and no information about you, your child or your use of the app is transmitted to us or to anyone else in order to deliver them. The reminders are addressed to the adult, name no child and carry no advertising. They can be switched off at any time — in the parent dashboard behind the parental gate, or in your device’s system settings for the app — and switching them off clears the schedule, as does “Erase all data” (see section 7).
This data is deleted when you delete the child’s profile in the app, when you use “Erase all data” (see section 7), or when you uninstall the app.
2. Data collected when an adult creates a family account
A family account is created only behind the parental gate (an arithmetic challenge) and only after the adult explicitly ticks “I’m over 18 and agree to the Privacy Policy and the Terms of Use”. With no account, none of the following is collected — with one exception, the last row of the table: the fact that a subscription screen was shown reaches RevenueCat.
| Data | Purpose | Stored with |
|---|---|---|
| Parent’s email | Sign-in, password reset | Supabase (EU), Resend (EU) |
| User ID | Links the family’s data and the subscription | Supabase (EU) |
| Child’s name (nickname) | Shows whose progress it is | Supabase (EU) |
| Child’s age band (“4–5”, “6–7”, “8+”) | Difficulty selection | Supabase (EU) |
| Profile avatar and theme | Appearance on other devices | Supabase (EU) |
| The adult’s answer to “what do you want the app for” (a choice from a fixed list, e.g. “spatial thinking”) | Tailors the tips shown to the parent | Supabase (EU) |
| Numeric practice metrics (dictations completed, time, match percentages) | Progress sync and the parent report | Supabase (EU) |
| Numbers of a single attempt: match percentages, the skill breakdown, which steps went wrong, the difficulty and length of the dictation | The parent report and the progress history on the family’s other devices | Supabase (EU) |
| Subscription status and expiry | Premium access on all family devices | Supabase (EU), RevenueCat |
| The fact that a subscription screen was shown | Improving the subscription offer | RevenueCat |
When a child’s name is entered, the app explicitly recommends a nickname or a made-up name. We do not verify whether the name is real and never ask for a surname.
If you create the account with Sign in with Apple, you may choose Apple’s
“Hide My Email”. In that case Apple never gives us your real address: it gives
us a relay address ending in @privaterelay.appleid.com, that relay address is
what is stored as your account email, and Apple forwards to your real inbox any
email we send there. Everything in the app works the same way with a relay
address.
We do not collect: photos, exact date of birth, address, phone number, location, contacts, clipboard contents, advertising identifiers.
3. Who we share data with
We do not sell the app’s data and do not share it for advertising or profiling (the website’s own tags are described separately, in section 4). It is processed only by our processors, acting on our instructions:
- Supabase — database and authentication. The project is hosted in the European Union (Frankfurt); EU parents’ data does not leave the region.
- RevenueCat — subscription management on top of App Store and Google Play. Receives the user ID, purchase history and the fact that a subscription screen was shown; we do not pass device advertising identifiers to it. So that the subscription works on every family device, our server verifies its status directly with RevenueCat using that identifier — no new data about you or your child is collected in the process.
- Resend — delivery of account emails (address confirmation and password reset) sent in the European Union. Receives the parent’s email address and the text of that email, nothing else. We do not track opens or clicks.
- Apple / Google — payment processing and, if you use them, Sign in with Apple and Google sign-in. Payments are handled by them; we never see card details. When you sign in this way, we receive from them an account identifier and, on the first sign-in only, an email address — nothing about your child is passed to them. Separately, in the first moments after a fresh install, the app may ask Apple or Google which of our own advertising campaigns the install came from (section 5). This is a question about our advertisement, not about you: on iOS the request carries only a one-time token the system itself issues and nothing else — no account, no sign-in session, not even the app’s own random install number; on Android there is no network request from the app at all, as the answer comes from the Play Store app already on the device.
We may disclose data where required by law.
4. The website (for parents, not the app)
The website is separate from the app, and it is made for parents, not for
children: it is where adults learn about the app and choose it, and the app
never sends your child to its pages. Sections 1–3 and 5 describe the app;
this section describes only the website. Our website brainygrid.com — the
pages you are reading right now — measures its own audience with
Google Analytics via Google Tag Manager
(Google Ireland Limited). This happens only on the website and only if you
press “Accept” in the cookie banner: until then no cookie is set and no
analytics request is sent. If you accept, Google receives your IP address,
browser type and the page you are on, and stores an anonymous cookie
identifying the browser — not you.
The website may also use advertising tags to measure how well our ads work: Google Ads conversion tracking (Google Ireland Limited, loaded through Google Tag Manager), the Meta Pixel (Meta Platforms Ireland Limited), the TikTok Pixel (TikTok Technology Limited) and the Pinterest Tag (Pinterest Europe Limited). The same rule applies: they load only if you press “Accept” in the cookie banner, which then names the ones in use. If you accept, each of them receives your IP address, browser type, the page you are on and what you do on the website — for example, opening a FAQ answer, downloading a printable sheet or pressing the App Store or Google Play button — and may set a cookie to recognise the browser. They use this to measure and improve our ad campaigns, to show our ads again to people who visited the website or opened our short link (described below), and to show our ads to people similar to them. Our ads are aimed at adults: we never direct advertising at children, on the website or anywhere else. Their own privacy policies govern what they do with it. The website does not sell anything and sends them no purchase data. When you press the App Store or Google Play button, a short label of where you came from is added to the link: the campaign name if you arrived from an ad, otherwise the kind of site that sent you (for example a search engine). The App Store or Google Play then show us how many downloads each label brought, as a total count, not per person.
We also give creators who mention the app a short link, brainygrid.com/get,
that sends a phone straight to the App Store or Google Play. It opens a small
page that moves on to the store at once; if you come back to it later, the same
page shows what the app is, a store button and our free printable sheets. To pick the store, our server looks at the browser type your phone sends
with the request (iPhone or Android); it is used for that moment only and is not
stored or logged. On a computer, and on an iPad that presents itself as a Mac,
the link opens our home page instead. The store link carries the same kind of
short label: the creator’s name from the link, or just “link” if it has none.
Where you are asked before any tags load (see below), no cookie is set and no
advertising tag is loaded on the way. If you open the link from the United
States and your browser does not send the Global Privacy Control signal, the
page shows a short notice and, for at most a second and a half before the store
opens, loads the
same advertising tags as the website (the Google Ads tag is loaded directly
rather than through Google Tag Manager); they record that the link was opened
and, if you come back and press the store button, that you pressed it. The notice has an “Opt out” link: it opens the store
without loading the tags and remembers your choice, like “Decline” in the
website banner, and a choice you already made on the website applies here too.
Separately, and without cookies, the website counts presses of the App Store and Google Play buttons, and taps on that short link that lead to a store, on our own server (Supabase, see section 3). Each count records only which store, that same label, the language of the page (none for the link) and where on the page the button was, or that it was the link. It contains no IP address, no browser details and no identifier, so it cannot be linked to you or to the app. We keep these counts for 12 months.
If you visit from the United States, the analytics and advertising tags described above are switched on by default, and the cookie banner says so. You can opt out by pressing “Decline” in the banner; the choice is stored in your browser and applies to every later visit. If your browser sends the Global Privacy Control signal, we treat it as an opt-out: the tags stay off unless you press “Accept”. Visitors from everywhere else are asked first, as described above.
You can withdraw consent at any time by clearing this site’s data in your browser.
There is one file on brainygrid.com the app can open: behind the parental gate
it can open a printable grid-paper sheet (a PDF file) in the system browser, so
that a child without squared paper can print some. It is the PDF file itself, not
a web page: it loads no analytics, no tag manager and no pixels, sets no cookie,
and nothing about your child is sent with the request. Only an adult who has
solved the gate’s arithmetic task can open it.
5. Anonymous usage events (the app)
The app has no analytics SDK and sends nothing to Google. It reports two things about how it is used, and both go to our own server (Supabase, see section 3) or to RevenueCat — never to an analytics provider, an advertising network or a data broker:
- Usage events. The app records which steps of the first-run setup were completed, that the short in-app tour was finished, that a first drawing was started and scanned, and that a subscription screen was opened or its prices were shown. After setup it also records, at most once per day for each, whether on that day the app was opened, a dictation was started, a drawing was saved, the journal was opened, and the parent dashboard or a drawing’s report was opened — only that it happened that day, not which dictation, what score, how many times or for how long. Each event carries a random install number, the platform, the app version and the time. We use it to find where people get stuck in the app and which parts of it are actually used — nothing else.
- Which campaign the install came from, recorded once per install. If
you installed the app after seeing one of our ads, the app asks the platform
itself — Apple’s AdServices framework on iOS, the Google Play Install Referrer
on Android — which of our campaigns the install is attributed to, and records
the answer as one more event under the same random install number. What is
recorded is only a description of the advertisement: the source
(Apple Search Ads, Google Play, or “organic” when the install came from no
campaign at all) and the campaign, ad group, keyword or link labels our own
ads carry — on iOS these are plain numbers, not even names. No advertising
identifier (no IDFA, no AAID) and no click identifier are involved: we never
ask for one, the app shows no App Tracking Transparency prompt because none is
needed, and click identifiers that may appear in a store link (
gclidand the like) are deliberately discarded before anything is stored. Nothing about you or your child is sent to Apple or Google in these requests, and no attribution provider or analytics SDK is involved. We use this to know which campaigns bring people who actually use the app, and for nothing else. - How far an install from an ad got, told to Apple (iOS only). Through Apple’s own SKAdNetwork and AdAttributionKit frameworks the app tells the system a single step number — from 0 to 63, plus “low”, “medium” or “high” — for example “started a free trial” or “paid”. Apple itself, not the app, may later pass that number to the advertising network whose ad led to the install, without any identifier of you, your child or the device, and only if enough installs share it. No advertising network code is in the app and the app sends nothing to any network itself. This helps our ads reach parents whose families actually use the app. It is off when “Help improve the app” is switched off in the parent settings.
- That a subscription was taken out, as one more event: whether it started as a free trial or as a payment, the plan’s term (for example monthly or annual), and which subscription screen it came from. No price, no currency, no product or receipt identifier and nothing identifying the purchase or the purchaser is recorded. Restoring an earlier purchase records nothing.
- How a free trial ended, as one more event, only on the device where the trial was started and only when the app is opened again afterwards: whether it turned into a paid subscription, whether renewal was switched off during the trial, or whether it ended without payment. The app reads this from the subscription status it already receives; nothing new is sent to RevenueCat or anyone else, and the event carries nothing beyond the install number, app version and time listed above.
- Subscription screen shown, which goes to RevenueCat, so that we can see which offers work.
The random install number is not an identity. It is generated on the device and is not linked to your account, your child’s profile, a name, an age, a photo or a drawing — none of those are ever sent with an event, and the request carries no sign-in session at all, so the number cannot be joined to an account even on our side. It is not an advertising identifier (no IDFA, no AAID) and is never used for advertising, profiling or building a profile of a person. It changes when the app is reinstalled, when you use “Erase all data”, and automatically at least every 90 days. Events are kept for 12 months (section 6).
Under COPPA this is “support for the internal operations of the website or online service”: we use these events solely to analyse and maintain how the app works, specifically the first-run funnel (which setup step people stop at), which parts of the app are used from day to day, subscription-screen views, which of our advertising campaigns an install came from, and whether a subscription was taken out. We do not use them to contact a child, to serve or target advertising, to build a profile, or for any other purpose, and we do not disclose them to anyone for such purposes. In particular, knowing which campaign an install came from is used to judge our own advertising after the fact, in totals; it is not used to target any advertising at anyone, and no advertising is shown in the app at all.
The IP address of the request is visible to our hosting provider (Supabase) in its gateway logs, as it is for any request to any server; it is not written into the events table and is not used to identify anyone.
Turning it off. In the app → gear icon → parental gate → “Settings” → on this device → “Help improve the app”. Unticking it stops the recording and the sending immediately and discards anything not yet sent. Because the number identifies no one, we cannot find past events belonging to a particular device on request (GDPR Art. 11) — switching the setting off and reinstalling the app is what removes the link entirely, and everything is deleted by the 12-month retention period in any case.
6. Retention
- Practice events (numeric attempt metrics) are kept for no longer than 12 months and are then deleted automatically by a daily server job.
- Anonymous usage events (section 5) are kept for no longer than 12 months and are then deleted automatically by the same kind of daily job. The random install number they carry is replaced at least every 90 days, so events older than that cannot be tied to the newer ones.
- Child profiles, aggregate statistics and account data are kept for as long as the account exists: they are current state, not a log.
- A child profile deleted in the app disappears from the device immediately and stops syncing. On the server it is marked as deleted: the name, age band and appearance settings are erased, leaving only the deletion marker (so the profile cannot come back from another family device) and the numeric practice metrics — which are removed by the retention period above or by deleting the account.
- After account deletion, all data associated with it is removed from the server immediately and irreversibly.
7. How to delete your data
- A child’s profile: in the app → gear icon → parental gate → “Children” → trash icon on the profile.
- Everything on the device: in the app → gear icon → parental gate → “Sync & account” → “Erase all data”. This permanently removes all child profiles, drawing photos and images derived from them (from disk), the attempt history, statistics and app settings; the app returns to its first-launch state. The interface language is kept. If you signed in, your cloud data stays — the next item removes that.
- The whole account: in the app → gear icon → parental gate → “Family account” → delete account. All server-side data tied to the account is removed, including profiles, statistics and practice events. To wipe both the server and the device in one action, a signed-in parent gets an “Erase and delete account” button in the “Erase all data” dialog.
- If you cannot sign in, write to brainygrids@gmail.com and we will delete it on request.
8. Children and parental consent
The app is directed to children of roughly 4–8 years old, therefore:
- everything involving the account, purchases and external links sits behind a parental gate — a randomly generated arithmetic challenge;
- only an adult creates the account, and only after explicitly confirming they are over 18 and agree to this policy and to the Terms of Use;
- in the child-facing part of the app nothing can be sent outward: there is no share sheet, no saving to the photo library, no links to a browser or mail client;
- the child’s personal information under COPPA (US) and the GDPR (Art. 8, EU) — above all drawings and exact age — stays on the device, so no “collection” of it takes place in the COPPA sense;
- the one persistent identifier the app does use — the random install number of the anonymous usage events (section 5) — is used only for the internal operations named there, never for advertising, profiling or contacting a child, and an adult can switch it off behind the parental gate;
- no advertising is shown in the app, and none of our advertising, anywhere, is aimed at children: it is addressed to parents and leads to the website, which is made for parents (section 4).
If you believe a child created an account without your knowledge, write to brainygrids@gmail.com and we will delete the account and its data.
9. Your rights
If you are in the EU/EEA or the UK, you have the rights of access, rectification, erasure, restriction and portability, and the right to lodge a complaint with a supervisory authority. Legal bases: performance of a contract (operating the account and subscription), your consent (creating the account), which you may withdraw by deleting the account, and our legitimate interest in knowing whether the app works (the anonymous usage events of section 5), which you can switch off in the parent settings.
For the anonymous usage events there is a limit we have to state plainly: we hold no information that would let us tell which of them came from you or your device, so we are not able to act on an access or erasure request about them (GDPR Art. 11). Switching the setting off stops any further events, and all of them are deleted by the retention period in section 6.
If you are in California, you have CCPA/CPRA rights. The app does not sell or “share” personal information. The website is different: the advertising tags named in section 4 are used for retargeting, which the CCPA may treat as “sharing” personal information (your IP address, browser type and what you do on the website) for cross-context behavioural advertising. You can opt out of this sharing by pressing “Decline” in the website’s cookie banner or “Opt out” on the short-link page, or by turning on the Global Privacy Control signal in your browser, which we treat as an opt-out.
Requests: brainygrids@gmail.com.
10. Security
Traffic to the server uses TLS. Family data is isolated at the database level (row-level security): one account’s queries cannot read another account’s rows. The sign-in session is kept in secure device storage (Keychain on iOS, Keystore on Android).
11. Changes to this policy
When this policy changes we update the date at the top of this page. The current version is always reachable from the app via the “Privacy Policy” link — on the purchase screen and on the family-account screen.
12. Contact
Inna Stetsiura, individual developer — brainygrids@gmail.com
Postal address: Saray, Alanya, Antalya, Türkiye