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.

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

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.