Effective 2026-09-14
Beletria is a reading app for language learners. This page says what it stores about you, why, who else touches it, and what you can do about it. It is written to be read, not skimmed; it is short because the app is.
Who is responsible
The data controller is Peter Cerno, Maneggpromenade 154, 8041 Zürich, Switzerland. Write to petercerno@gmail.com about anything on this page.
Beletria is operated from Switzerland, so the Swiss Federal Act on Data Protection (FADP) applies to it. Readers in the European Union also have the rights the GDPR gives them, where the GDPR applies. Our primary database and app servers are configured in Frankfurt, Germany; hosting, authentication and provider operations can involve other countries, as described below.
What we store about you
- Your account. The email address and name Google gives us when you sign in, and the languages you chose. We do not see your Google password. Our authentication provider also stores sign-in identifiers, profile metadata (which may include a profile image), and session information.
- What you do in the app. The words you save and mark as known, where you are in each book, the books you ask for, and the feedback and ratings you give. A feedback message is stored together with your browser’s user-agent string (its name and version), so a bug report says which phone it came from. This is the product: a saved word has to be stored to be shown again.
- Usage events. A first-party record of how you read — which controls you tap, when you turn a page, how long a page or a word took to appear — each tied to your account, a per-tab session id, and the book and sentence you were on. We use it to find what is slow or confusing. Our hosting and database providers process these records for us; we do not use them for advertising. Collection is on by default; you can turn it off on this browser.
- Technical data. Your IP address, transiently: in the short-lived server logs of our hosting and storage providers, and — while you are signed out — as the key the request-rate limiter counts under (signed in, it counts under your account id).
We do not store payment details (there is nothing to pay for), location, contacts, or anything from your device beyond what is listed here.
Why, and on what legal basis
- To provide the service you signed up for (GDPR Art. 6(1)(b)): your account and what you do in the app.
- Our legitimate interest in understanding and improving the app (Art. 6(1)(f)): usage analytics is on by default. We use it to identify slow or confusing features, not for advertising or cross-site profiling. You can object without losing access using “Only what’s needed” in the notice or the Account page switch on this browser. Turning it off stops future collection and discards unsent events; it does not remove events already received.
- Our legitimate interest in keeping the service up (Art. 6(1)(f)): rate limiting and server logs.
What lives in your browser
Beletria sets no advertising or third-party cookies. It keeps a few values in your browser’s own storage: your sign-in session (required to stay signed in), your theme choice, whether you have seen the first-time tips and this notice, a per-tab id for usage events (unless you turn analytics off), and your analytics choice itself. Clearing site data removes all of them.
Service providers
We run on managed services. Each one below sees only what its role needs. The AI providers deserve a specific word: they receive book text — public-domain literature — to translate, explain, illustrate and narrate it, and this happens ahead of time, not while you read. Nothing about you is sent to them.
| Provider | Role | Where | What it sees |
|---|---|---|---|
| Supabase | Database, sign-in, and file storage | Frankfurt, Germany (EU) | Your account, your saved words and positions, your book requests, your feedback (with the browser it was sent from) and usage events; and your IP address when your browser fetches a cover or an audio clip from its storage. |
| Vercel | Hosting of the app and its API | Frankfurt, Germany (EU) for the app servers; a global network for static files | Requests you make to the app, including your IP address, in short-lived server logs — and your account id on a request the rate limiter refused. |
| "Sign in with Google" | Per Google’s own privacy policy | That you signed in to Beletria; Google gives us account identifiers and profile details, including email and name. | |
| Upstash | Request-rate limiting | Frankfurt, Germany (EU) | A counter keyed by your account id (kept for up to an hour), or by your IP address when signed out (kept for a minute). |
| DeepSeek, OpenAI, ElevenLabs | Translations, explanations, cover art, and narration of the books | Their own regions (China and the United States) | Book text only — public-domain literature. No reader account data: generation runs ahead of readers. |
Google also acts under its own privacy policy when you use Google sign-in. Contact us for information about international transfers and the safeguards applicable to your data.
How long we keep it
For as long as your account exists. When you delete your account, your account row and saved words, reading positions, feedback and book requests are deleted from the live database. Usage events are retained with your account id, session id and payload removed, and timestamps reduced to a day. The remaining event fields include reading context, action identifiers and performance measurements. Backup copies expire according to the database provider’s configured retention schedule; deletion from the live database does not immediately remove them from existing backups.
Your rights
The following controls are available from the Account page, without writing to anyone:
- Access and portability — “Download my data” gives you an app-data JSON file with your profile, words, reading positions, requests, feedback and a readable activity summary. It omits raw event details and authentication-provider records; contact us for additional personal data.
- Rectification — your name and the language you are learning are editable there; write to us for anything else.
- Object to usage analytics — the “Usage analytics” switch stops the usage record on that device immediately.
- Erasure — “Delete my account” deletes your account and applies the redaction described above, and cannot be undone.
You can also write to petercerno@gmail.com to request access, correction, erasure or restriction, or to object to processing based on legitimate interests. You may complain to the Swiss Federal Data Protection and Information Commissioner (FDPIC), or your competent EU data-protection supervisory authority where applicable.
Children
Beletria is not directed at children under 16, and we do not knowingly hold their data.
Changes
Updates are published on this page with a revised effective date. We will provide additional notice or request renewed consent where required by applicable law.
See also the Terms of Service.