Storylang Privacy Policy
Last updated: 28 September 2026
This privacy policy applies to the Storylang app for iOS and macOS.
The short version
Storylang works without an account and shows no ads inside the app. We do not sell your data. If you turn on the optional word backup, your saved words and their practice progress are also stored on our server, as described below. The data that leaves your device is the text needed to answer your own requests, which AI features send through our server to Anthropic: text you write yourself (for example a question you ask) only after you allow it in the app, and text from the book or story you are reading (for example a word you want translated) when you use a reading aid; text you ask to hear, which is sent through our server to ElevenLabs, and its cached audio as described below; if you subscribe to Plus or Premium, the App Store's signed record of your subscription, which the app sends to our server with requests for the premium voice as described below; your searches in the Free Books catalog, which go to the catalog services listed under Third parties; anonymous usage statistics (which features are used, never what you read) unless you turn them off; and – on iOS, and only if you allow tracking when iOS asks – app events that let us measure our own ads on TikTok. If you don't allow tracking, the app sends nothing to TikTok; Apple's SKAdNetwork only reports installs from our ads, anonymously.
What data is processed
Your permission for AI features. Storylang's AI features are provided by Anthropic's Claude API. Text you write yourself – questions in the AI tab and in the reader, writing you submit for feedback, a custom story theme, follow-up questions and questions about your saved words – is sent through our server to Anthropic only after you allow it in the app: before the first such request, the app explains what is sent and asks for your permission. If you choose "Not now", none of that text is sent and the request does not run. You can change your choice at any time in Settings → Privacy → "Your text and AI". Features that send nothing you wrote – translating words and sentences, explaining grammar, book overviews in the Free Books catalog, story quizzes and stories on one of the app's own themes – send only text from the book or story (for a new story, the chosen theme and, if enabled, a few words from your word list) together with your language and level settings. They run without a separate prompt when you use them, as described below. Earlier app versions sent all AI requests without asking first.
Words and text you ask about. When you use an AI feature — translating a word or sentence, explaining grammar, asking about a passage, getting a recap or a book overview — the app sends the relevant text (the word, its sentence, or a passage from the book you are reading) together with your chosen languages to our server, which forwards it to Anthropic's Claude API to generate the answer. This data is used only to produce the answer and is not stored by us. Anthropic processes it according to their commercial API data policy (API inputs are not used to train models).
Book analysis (earlier app versions). In app versions before 1.3, downloading or importing a book sent its chapters to the same service to build reading aids (chapter summaries, character lists). Current versions no longer do this. The books in the Free Books catalog are public-domain works.
AI stories. When you ask the app to write a story, your chosen language, level, theme and (if enabled) a few words from your word list are sent to the same service to generate the story. A theme you type yourself is sent only after you allow it, as described above. Your library copy is stored on your device. When you take a story quiz, the story's text is sent to the same service to write the questions.
AI writing practice. In the AI tab, you can write a short text on a topic of your choice. Your draft is saved only on your device, separately for each language you are learning. When you choose "Get AI feedback", your text, learning level, learning language and native language are sent through our server to Anthropic for corrections and grammar explanations. This exercise does not send story text. We do not store these requests on our server. Story-based writing practice in earlier app versions also sends an excerpt from the relevant story when feedback is requested.
AI language questions. When you send a question in the AI tab, the app sends your question, up to four recent question-and-answer exchanges, your learning level, learning language and native language through our server to Anthropic. The recent exchanges help the AI understand follow-up questions; no book or story is required. We do not store these requests on our server. The chat is kept in app memory, not saved as a chat history on your device, and is cleared when the app restarts or you change the language profile.
Speech and pronunciation. When you press a listening button, the app sends the requested book or story passage, word, sentence, quiz question or AI answer through our server to ElevenLabs to produce speech with the Darian voice. An AI answer can repeat part of the question you asked. For word pronunciation, the surrounding sentence may be included to help with pronunciation. The app does not record your voice. Generated audio, aligned text and pronunciation context may be cached on our server for up to 30 days to avoid generating the same request again. The server counts newly generated audio against a monthly voice allowance. Free use is identified by a random installation identifier kept in the device keychain; the server stores a one-way hash. Older apps without this identifier use a one-way hash of their network address. Subscribers use the signed purchase record described below. Replaying cached or bundled audio does not consume the allowance. Downloaded audio and aligned text are also stored in a local cache of up to 100 MB for offline replay. New speech requires an internet connection; cached speech can be replayed offline. Current app versions use ElevenLabs for all in-app speech and do not fall back to a device voice. Earlier app versions may still offer local device voices. Reading and translating do not require you to press a listening button.
Subscriptions and premium-voice minutes. If you subscribe to Plus or Premium, the app sends the App Store's signed record of your subscription to our server with each request for the premium voice and when it checks how many minutes you have left, so the server can confirm your plan and apply its monthly minutes. Apple creates and signs this record. It contains the subscription's product, its transaction and original transaction identifiers, the purchase, signing and expiry dates, the App Store country or region, the price and currency, and technical details such as the app's identifier and whether the purchase was made in Apple's test environment. During a billing grace period the app also sends Apple's signed renewal information, which includes the renewal price and whether the subscription renews automatically. Our server checks Apple's signature and uses the record only while handling that request; it does not store the record. It stores monthly usage totals and any purchased extra-time balance in a pseudonymous wallet derived from the subscription’s original transaction identifier and purchase environment. Extra-time purchases send Apple's signed transaction, including its product, transaction identifier and wallet token. We retain the transaction identifier and credited seconds to prevent duplicate credits and preserve purchased time, which does not expire. Signed records themselves are not stored. These records are never used for analytics or advertising. They do not contain your Apple Account, name, email address or payment method. After a subscription expires, its signed record may still identify remaining purchased time. A free installation that has never subscribed sends no subscription record.
Offline story translations. When you choose to prepare a story for offline reading, the app sends small batches of words and their sentence context, together with the study and translation languages, through our server to Anthropic. The finished translations are stored on your device in a separate offline package, not automatically added to your vocabulary. Packages can be removed from the offline-reading screen. They are excluded from device cloud backups. For Plus and Premium, the app sends the signed subscription record described above to verify access. Original starter-story translations may be shared in our server cache for up to 30 days; we do not store translation packages for your own stories on the server. A short premium-voice recording for each study language and level is included in the app and can play offline without sending a request.
Anonymous usage statistics (optional). To see where the app can improve, the app sends anonymous events such as "book opened", "story generated" or "paywall shown", together with a random installation identifier (not linked to you, your Apple ID or your device), the app and OS version, and your chosen languages and level. It never includes text from books, words you looked up, or anything that identifies you. The identifier is deleted when you delete the app. You can turn this off at any time in Settings → Privacy → "Share anonymous usage statistics". The data is stored in Cloudflare Analytics Engine and used only in aggregate.
Measuring our TikTok ads (iOS). We advertise Storylang on TikTok. To see which ads lead to installs and subscriptions, the iOS app contains TikTok's App Events SDK. The SDK only runs, and only sends data to TikTok, if you allow tracking. The first time you close the reader, iOS asks whether Storylang may track you.
If you choose "Allow", the SDK starts and sends TikTok: app installs and launches; in-app purchases and subscriptions (product, price and currency, reported by the SDK from the App Store); and a few app events – onboarding completed, a book or story opened (its type), a story quiz completed (the score), a word practice round completed (the number of words), a story generated (level and language) and the subscription screen shown (the reason). Each event includes technical device and app information such as IP address, operating system version, language and region, app version, an identifier generated by the SDK, Apple's identifier for this app vendor (IDFV) and your device's advertising identifier (IDFA), so TikTok can link these events to ads you saw in TikTok. It never includes text from books, words you looked up, or anything you write.
If you choose "Ask App Not to Track", or before you have been asked, the SDK does not start and the app sends nothing to TikTok. Only Apple's privacy-preserving SKAdNetwork then tells TikTok, anonymously and without any identifier of yours, that an install came from one of our ads. You can change your choice at any time in iOS Settings → Privacy & Security → Tracking; the app follows it from the next time it starts. TikTok processes this data under its own privacy policy. The macOS app does not contain the TikTok SDK.
Daily reminder (optional). If you enable the daily reminder, the app schedules a local notification on your device. Nothing is sent to us.
Crash reports. If the app crashes, an anonymous technical crash report (stack trace, app version, OS version — generated by Apple's MetricKit) is sent to our server at the next launch and deleted after 30 days. It contains no personal information and nothing you have read or typed.
Optional account and word backup. Every feature of Storylang works without an account. If you choose to turn on word backup in Settings → Account, you sign in with Apple. Storylang asks Apple for no name and no email address; Apple gives us only an identifier that is unique to Storylang, and our server keeps a one-way hash of it as your account number. Our server then stores a copy of your saved words and their practice progress: each word with its base form, translation, note, reading and example sentence, its languages, when you saved it, how often and when you last looked it up, and its review schedule (repetitions, ease, interval, due date, when you first reviewed it and whether it is being relearned). The backup does not include your books, book titles, word lists, reading progress, stories, writing, settings or usage statistics. It is used only to restore your words on a device where you sign in and is never used for analytics or advertising. If the same word, with the same languages, is saved on more than one of your devices, the backup merges the copies into one word, keeps the practice progress of the copy you have practised (or practised most recently) and removes the duplicate copy. The app keeps a random sign-in token in your device's keychain, and our server stores only a hash of it. When you delete your account, the app asks you to confirm with Apple once more so that our server can, where possible, ask Apple to revoke Storylang's access to your Apple ID; our server keeps no token from Apple.
What stays on your device
Everything else: your library, reading positions, word lists, daily word goals, writing drafts and settings are stored only on your device. Your saved words and practice history are also stored only on your device unless you turn on the optional word backup described above. Drafts are sent only when you explicitly request AI feedback, as described above. We cannot otherwise see this locally stored data.
What we never collect
We do not request your name, email address, location or contacts, not even when you create an account. Nothing, including the advertising identifier, is shared with TikTok unless you allow tracking, as described above. Text you explicitly submit through the features described above is processed to provide those features; it is not included in usage analytics or ad measurement.
Third parties
Anthropic, ElevenLabs and Cloudflare process data on our behalf only to provide their service to Storylang, and TikTok receives data from the app only if you allow tracking. Each is bound by terms that protect your data to the same or an equal degree as this policy and Apple's App Store guidelines require. The catalog and book services listed below receive only the direct requests described here and no user data from us.
- Anthropic (Claude API): generates AI answers via our server: from text you write yourself only after you allow it in the app, and from book or story text when you use a reading aid such as translation. See Anthropic's privacy policy.
- ElevenLabs: generates speech and word pronunciation from the text you ask to hear, through our server. See ElevenLabs' privacy policy.
- TikTok: measures our TikTok ad campaigns through the TikTok App Events SDK in the iOS app, which runs only if you allow tracking; otherwise TikTok receives only Apple's anonymous SKAdNetwork install reports. See TikTok's privacy policy.
- Cloudflare: hosts our server and stores the anonymous usage statistics and, if you turn it on, your word backup.
- Apple (Sign in with Apple): confirms your sign-in when you turn on word backup. See Apple's privacy policy.
- Gutendex (gutendex.com): a third-party catalog service for Project Gutenberg books. When you browse or search the Free Books catalog, the app sends it the catalog language filter and any search text you type, to list matching books.
- Ebooks libres et gratuits (ebooksgratuits.com): provides the French catalog and its book downloads. The app loads this catalog when you browse French or all languages.
- Project Gutenberg / Standard Ebooks / Ebooks libres et gratuits: the app downloads public-domain books directly from these services when you request them.
Because the app contacts Gutendex, Project Gutenberg, Standard Ebooks and Ebooks libres et gratuits directly, they receive ordinary request data such as your IP address. The app sends them no identifier or usage data of yours.
Data retention and deletion
- AI requests: the text sent to Anthropic is used only to produce the answer and is not stored on our server.
- Speech: generated audio, aligned text and pronunciation context may be cached on our server for up to 30 days. The app keeps up to 100 MB of downloaded audio on your device for offline replay.
- Voice allowances and extra time: signed Apple records are processed per request and not stored. Pseudonymous monthly usage totals, extra-time balances and redeemed transaction identifiers are retained to enforce allowances and preserve purchases across requests and subscription renewals. Purchased time does not expire. Contact us for help with these records; deleting optional vocabulary backup does not reset purchases or voice allowances.
- Crash reports: deleted automatically after 30 days.
- Anonymous usage statistics: stored in Cloudflare Workers Analytics Engine for Cloudflare's fixed retention period, currently three months, and then deleted automatically. They carry only a random installation identifier that is not shown in the app and not linked to you, so we cannot pick out one person's events. Turning off "Share anonymous usage statistics" stops collection immediately.
- Optional word backup: kept until you delete your account. Settings → Account → Back up your words → Delete account deletes your account and the backed-up words from our server and signs out every device, and where possible asks Apple to revoke Storylang's access. Copies held in Cloudflare's network can take a few minutes to disappear everywhere; our server checks again a few minutes after the deletion and removes anything that has come back. For this, a deletion record with no words, only random identifiers and the time, is kept for up to seven days. When you delete a word in the app, it is removed from the backup at the next backup; a marker with only the word's random identifier and deletion time stays in the backup so your other devices remove it too, and is cleared after 180 days as the backup is updated. Sign-in tokens that are not used for a year expire. Signing out or deleting your account never deletes the words on your device.
- On your device: your library, reading positions, saved words, writing drafts, audio cache, settings and the installation identifier are deleted when you delete the app. Deleting the app does not delete a word backup; delete your account in the app first.
- TikTok (iOS, only if you allowed tracking): TikTok keeps and deletes this data under its own privacy policy. You can stop further sharing in iOS Settings → Privacy & Security → Tracking and ask TikTok to delete data as described in its privacy policy.
To withdraw consent, use Settings → Privacy in the app ("Your text and AI" and "Share anonymous usage statistics") or iOS Settings → Privacy & Security → Tracking. To ask a question about your data or request its deletion, email fabian@storylangapp.com. We will reply within 30 days and delete anything we can link to your request. Apart from the optional word backup, Storylang has no accounts, so we may not be able to find data that is not linked to you. You can delete your word backup from any iPhone, iPad or Mac by signing in with the same Apple ID in the app and choosing Delete account.
Contact
Questions? Email: fabian@storylangapp.com
Changes
If this policy changes, the updated version will be published at this address with a new date.