Flashery Privacy Policy
1. Who is responsible
The controller of data processed in the Flashery Android app is Maciej Tyrakowski, the app's developer. Contact for any privacy matter: tyrek.developer@gmail.com. You will get a reply within one month at the latest.
Contact us (Settings → Help) opens your email app with the address filled in; at the end of the message Flashery adds the app version, Android version and phone model — you can delete them before sending. If you write, we receive your email address and the message. We use them only to reply and keep them in the mailbox as long as needed to deal with the matter. Legal basis: Art. 6(1)(f) GDPR — replying to your message.
2. In short
- Lessons, words, progress, nickname and profile picture stay on your phone. Exceptions: if you have a Premium or Max plan and turn on the cloud backup of your lists yourself, a copy of your lists goes to the server; if you share a list with a code yourself, its title, languages and words go to the server for 30 days (section 4).
- The server receives a points account (a random ID, birth year and month, points and point purchases) and the technical data described in sections 4–5. Flashery never asks for your name, email address or phone number.
- Flashery has no sign-in. You move your account to a new phone with a recovery code from the app's Settings. On the same phone the account comes back by itself after you reinstall the app or clear its data.
- Premium and Max plans and point packs are bought in Google Play. Google handles the payment; Flashery only receives a purchase confirmation.
- Photos of a word list (scan: one or two photos, age 16+) are sent to Anthropic, which reads the words from them. Flashery stores neither the photos nor the recognised words — unless you report a problem with the result yourself (section 6).
- Ads are served by Google AdMob. People under 18 get no personalised ads, and people under 13 see no ads at all.
- You can delete your account data in the app: Settings → Privacy → Delete account data, or by email (see the account deletion page).
- Flashery does not sell data.
3. Data kept only on your phone
Word lists, results and study history, settings, nickname, profile picture (if you choose one), reminder time are stored in the app's storage on your phone. Flashery does not send them anywhere — with two exceptions: the cloud backup of your lists, which you can turn on with a Premium or Max plan, and a list you share with a code yourself (section 4). Your birth month and year are also stored on the phone; they reach the server only as described in section 4. If Android backup is turned on, the system may include this data — together with the access key to your points account — in a backup in your Google account. Google manages that backup; you can turn it off in your phone's settings. Uninstalling the app removes this data from the phone.
4. Points account on the server
Once you enter your birth date and are at least 13, the app creates an anonymous account on the Flashery server (Cloudflare Workers with a Cloudflare D1 database). It stores:
- a random account ID and one-way hashes of the access keys — one per phone; only your phones know the keys themselves,
- the account creation date and the day of last use,
- birth year and month (no day) — used only to check whether you may use the scan (age 16+) and buy plans (age 16+); after you restore the account with a code on a new phone, the server passes them to the app on that phone; they cannot be changed once saved,
- points and streak-freeze balance, points history (e.g. "lesson finished", "scan", "theme purchase"), purchased and earned themes and effects, the end date of a no-ads period, days covered by a streak freeze, days on which a lesson was finished and the total number of such days (to count the streak and learning rewards),
- a scan log: time, outcome, number of recognised and unrecognised lines, the kind of model response and AI model usage — no photo and no words,
- if you generate a recovery code: its one-way hash — only the app and you know the code itself,
- if you buy a plan or a point pack: the Google Play purchase token and order number, the product bought, the purchase state and the end of the paid period, and plan scan counters (daily and monthly),
- a hash of the identifier of the phone you use the account on (see section 5),
- if you have a plan and turn on the cloud backup of your lists: a copy of your lists — titles, languages, test date, words, the number of right and wrong answers for each word with the dates of those answers, and the dates and results of study sessions. One copy per account, overwritten on every update. It is used only to restore your lists in the app (e.g. after changing phones); nobody reviews it. Legal basis: Art. 6(1)(b) GDPR — a service you turn on.
- if you share a list with a code: the title, languages and words of that list, the generated code, the date it was shared and how many times it was downloaded. For 30 days any Flashery user who knows the code can add the list to their app; the server does not show them who shared it. Do not put personal data in shared lists. Legal basis: Art. 6(1)(b) GDPR — a service you turn on.
Purpose: running points, the points shop, the scan, plans and moving the account with a code. Legal basis: Art. 6(1)(b) GDPR — providing the service you use.
4a. Purchases in Google Play
Plans (subscriptions) and point packs are sold and billed by Google Play. Payment details (card, billing address) are known only to Google, which acts here as a separate controller under its own policies (policies.google.com/privacy). The Flashery server asks Google Play for the state of a purchase to grant the plan or points, and checks the list of refunded purchases daily to take back the plan or points after a refund. The app passes Google Play a one-way hash of your Flashery account ID so the purchase reaches the right account. When Google Play shows an active subscription on a new phone, the server checks it with Google Play and moves the plan to the account on that phone.
5. IP address and abuse prevention
The server sees your IP address on every connection. Flashery stores it only in daily counters (how many accounts were created, scans made and account restores attempted from an address; for IPv6 only the first four groups of the address) so that one person cannot exhaust the service for everyone else. The counters are deleted after 7 days. Legal basis: Art. 6(1)(f) GDPR — legitimate interest in protecting the service from abuse. Cloudflare, Inc., as the server provider, processes the IP address and technical connection data to deliver and secure the service.
Phone identifier. The app sends a one-way hash of the identifier Android assigns to the app on that phone (ANDROID_ID) — when it creates an account, and for an account created earlier once, on its first connection. It does so only after you enter your date of birth and only if you are 13 or older. The server stores a hash of that hash together with the ID of the account used on that phone. This serves two purposes: (1) after you reinstall the app or clear its data on the same phone, the server gives the app back the same account — with points, purchases and date of birth (lessons were only on the phone, so they do not come back); (2) welcome points (30 points) go only to the first account on a given phone. When the account is deleted the link is removed, and the bare hash stays for another 365 days so that a new account on that phone does not get the welcome points again. The hash cannot be turned back into the phone's identifier or used to tell who you are. Legal basis: Art. 6(1)(b) GDPR (restoring the account you use) and (f) (protecting the service from abuse).
6. Photo scan (AI)
The scan is available from age 16 and runs only when you start it. One or two cropped photos and the names of the chosen languages go through the Flashery server to Anthropic PBC (Claude model), which reads the word pairs from them — each photo separately. The result comes back to your phone; the Flashery server stores neither the photos nor the words. Anthropic does not receive your IP address or account ID — only a one-way hash of the ID, used for abuse detection.
Under Anthropic's policies in force when this policy was published, Anthropic does not use data sent through its API to train models and deletes it within 30 days. It keeps it longer — up to 2 years — only when its safety systems flag the content as a policy violation, or when the law requires it (privacy.claude.com). Photograph only the word list: no faces, documents or other people's data.
Legal basis: Art. 6(1)(b) GDPR.
Reporting a problem with the result. Under a scan result you can tap "Report a problem with the result" and pick a reason (wrong words, offensive content, other). Only then does the app send the Flashery server the reason, the language names and the word pairs and unrecognised lines of that scan — without the photo. The report is stored with the points account ID and only the administrator reviews it, to improve reading and remove inappropriate AI-generated content. Kept for 90 days, deleted together with the account. Legal basis: Art. 6(1)(f) GDPR — improving the quality and safety of the service.
7. Ads (Google AdMob)
Ads appear only for people who entered their age and are at least 13. They are served by Google (Google Ireland Limited and Google LLC) through AdMob. Google processes, among other things, the IP address, device and app information, the Android advertising ID and ad interaction data.
- Age 13–15: ad requests are tagged as child-directed — Google applies its child protections: no personalised ads or remarketing.
- Age 16–17: Google applies its teen protections — no personalised ads or remarketing, and ad categories unsuitable for minors are excluded.
- Age 18+: in the European Economic Area, the UK and Switzerland, personalised ads only if you consent in Google's consent dialog; you can change your choice in Settings → Privacy → Ad privacy. In other countries Google may personalise ads unless you turn this off in your phone's ad settings.
For people under 18 the app shows only ads with content suitable for teens. When you watch an ad for points, Google sends the Flashery server a confirmation with your points account ID and a transaction number so that the points can be credited.
Legal basis: consent (Art. 6(1)(a) GDPR) for personalised ads; legitimate interest in funding a free app (Art. 6(1)(f) GDPR) for other ads. How Google uses this data: policies.google.com/technologies/partner-sites.
8. Reminders and read-aloud
Reminders are scheduled on the phone without the server. Reading words aloud uses the speech engine installed on your phone and follows its provider's terms. The app's fonts are provided by Google Play services on the phone (Google Fonts), which may download them from Google's servers the first time they are used.
9. Who receives data
Cloudflare, Inc. (server and database) and Anthropic PBC (scan) process data on Flashery's behalf. When serving ads and selling through Google Play, Google acts as a separate controller under its own policies (sections 4a and 7). Data is not shared with anyone else. These companies are based in the USA, so data may be transferred outside the European Economic Area — under a European Commission adequacy decision (EU-US Data Privacy Framework) or standard contractual clauses.
10. How long data is kept
- Points account — until you delete it. An account unused for 365 days is deleted automatically.
- Counters with IP addresses — 7 days. Monthly Max plan scan counters — until the end of the month.
- Cloud backup of your lists — until you turn it off in the app (the backup is then deleted immediately) or delete your account. After a plan ends the backup stays so you can still restore your lists from it, but it is no longer updated.
- The recovery code hash and purchase data — together with the account. An account with a paid plan is not deleted as unused before the paid period ends.
- Scan log — 90 days; after an account is deleted its entries are no longer linked to it.
- Reports of problems with a scan result — 90 days or until the account is deleted.
- Lists shared with a code — 30 days from sharing or until the account is deleted.
- Days with a finished lesson (streak) — 400 days.
- The phone identifier hash — together with the account; after the account is deleted (also as unused) for another 365 days, not linked to any account.
- Data at Anthropic — see section 6. Data at Google — under Google's policies.
- Data on the phone — until you remove the app or its data.
11. Deleting your data
Settings → Privacy → Delete account data immediately and permanently removes from the server the account ID, birth year and month, points, points history, purchases, purchased themes and effects, the no-ads period, the recovery code hash, the access keys of all phones, the link between the phone and the account, the cloud backup of your lists, lists shared with a code and scan result reports. Lessons on the phone stay. When the app connects again, it creates a new account — without welcome points, because the bare phone identifier hash stays for another 365 days (see section 5).
Deleting your account does not cancel a Google Play subscription. Cancel it in Google Play → Payments & subscriptions → Subscriptions (play.google.com/store/account/subscriptions).
Without the app, write to tyrek.developer@gmail.com with your account ID (shown in Settings → Privacy) or your recovery code (Settings → Account) — we delete the account within 30 days at the latest (see the account deletion page). Without it there is no way to tell which account is yours, because accounts are anonymous — such an account is deleted anyway after 365 days without use.
12. Your rights
You have the right to access, rectify and erase your data, to restrict its processing, to data portability, and to object to processing based on legitimate interest. You can withdraw consent to personalised ads at any time; this does not affect the lawfulness of earlier processing. You may lodge a complaint with the Polish supervisory authority, the President of the Personal Data Protection Office (ul. Stawki 2, 00-193 Warsaw, uodo.gov.pl), or with the authority in your country.
13. Children
Flashery is intended for people aged 13 and over. If you enter an age under 13 or no age at all, the app creates no account on the Flashery server, shows no ads and offers no scan — learning then works only on the phone. If you know that data of a child under 13 has reached the server, write to tyrek.developer@gmail.com and it will be deleted.
14. Security
Connections to the server are encrypted (HTTPS). The server keeps only hashes of the access keys, not the keys themselves. Only the controller has access to the database.
15. Changes
The current version of this policy is always at this address, with its effective date at the top.