Privacy
What data LingoBinge collects, where it lives, and how to delete it.
Last updated: 22 August 2026
LingoBinge is a language-learning tool: a web app plus a Chrome extension that mixes target-language words into the subtitles you read while watching streaming video. This page covers everything both of them do with your data. The short version: your detailed learning history stays on your device. Subtitle text is sent to LingoBinge only to look up deterministic, precompiled subtitle assistance; the current production runtime does not send playback subtitles to model providers. Content-free product events use random local IDs so we can measure whether the product works. The only personal detail we ask for is an email address, and only when you deliberately join a named list: either to hear when a language ships or to receive one later product-feedback question. We run no advertising trackers and do not sell data.
What stays on your device
Your entire learning history lives in your browser's local storage (IndexedDB):
- Vocabulary cards you've mined (word, translation, sentence, source)
- Spaced-repetition state (FSRS-5 stability, difficulty, due dates)
- Watch sessions (duration, cue counts, last position)
- Settings (font size, density, playback speed, etc.)
If you never sign in, none of this is synced anywhere. Clearing your browser data deletes it permanently, so export to Anki regularly if you want a backup.
What gets sent to LingoBinge's servers
When you watch a subtitled video (in the player or via the extension), LingoBinge may send the subtitle line to our API on Cloudflare Workers. The API checks our curated subtitle library, bundled dictionary, and precompiled caches, then returns either graded assistance or the original subtitle unchanged. Playback requests do not call Cloudflare Workers AI, Anthropic, or any other model provider. We don't log the subtitle text or your watch history. To prevent abuse, the API counts each day's requests against a one-way hash of your IP (the raw address is never stored by us). Cloudflare's edge also keeps short-lived request logs (method, URL, and status code only). Precompiled translations are cached on Cloudflare by one-way hashes, not by storing raw subtitle text in analytics.
Anonymous product events
The web app and extension send first-party, cookieless events under a random ID stored in your browser. They cover installation, the first Netflix session, the first graded cue, the first saved word, a completed viewing day, a completed review day, and an app-open diagnostic. Properties include only the surface, platform, app version, target language, attribution status, UTC day, bounded occurrence time, source, build channel, an optional fixed install-intent choice, the referring site's hostname (never a full address), and coarse cue, swap, or card-count buckets. A fixed internal-test marker lets us exclude our own QA installations from learner reports. These events do not include subtitle text, show titles, URLs, mined words, email addresses, or a precise watch history. Extension, web-app, and marketing IDs are not fingerprinted or joined. Raw product events are retained for no longer than 13 months; de-identified aggregate reports may be kept after raw IDs are removed.
Separately, the extension may send a throttled, account-free session diagnostic containing aggregate cue-render path counts, visible swap totals, bounded latency percentiles, and counts of rejected or legacy-relocated subtitle swaps. It contains no subtitle text, show or cue identity, URL, mined word, or per-cue event.
If you are signed in (see below), the request also includes a compact list of which words you already know, just a set of [word, level] pairs for the target language, so the grader can skip words you've mastered. It contains no sentences, no personal data, and no identifiers beyond the word list itself.
Telling us which language you want
LingoBinge grades English into Indonesian and Spanish today. If you ask us to tell you when another language works, we store the email address you type and the single language you picked, nothing else, and we use them for exactly one thing: emailing you once, when that language ships. There is no newsletter, no drip sequence, and no other message. Every email carries an unsubscribe link, and you can ask us to delete your address at any time by writing to hello@lingobinge.com. Giving us an address is entirely optional and unlocks nothing: the player, saving words, and review all work without it.
The address is stored in our Neon database and, so we can send that one email, with Resend, our email provider. It is never sold, never shared for advertising, and never attached to the anonymous product events described above, which continue to carry no email address at all.
Optional product feedback email
After you have received value from LingoBinge, or if you uninstall it, you may separately choose to give us an email address for product feedback. If you opt in, we send one question about 18 days later: what felt confusing or got in the way? No newsletter, no reminders, and no other message is covered by this consent. You can still send feedback immediately without joining this list.
The address is stored in Neon and in a dedicated Resend feedback list. It is never joined to your anonymous product events, viewing history, subtitles, or saved words. Email hello@lingobinge.com at any time to remove your address from this feedback list.
Signing in (optional) and cloud sync
The current Chrome extension requires no account, requests no cookie access, and grades subtitles without you signing in. Account backup and cross-device sync are not enabled in the current production release. If that optional feature is enabled later and you choose to sign in:
- Authentication is handled by Clerk. Clerk stores your email address (and, if you use a social login, the basic profile your provider returns) and manages your session. Clerk's handling is governed by their policy: clerk.com/legal/privacy.
- Your mined flashcards, word-knowledge state, and settings are synced to our Neon Postgres database so they follow you across devices. This is the same data already on your device, encrypted in transit (TLS) and at rest.
No payments or donations
LingoBinge accepts no payments or donations. There is no checkout, paid entitlement, or payment provider connected to the product, so we do not collect or receive payment data. LingoBinge is operated as a free public-interest project, not a registered charity or nonprofit. The core learning loop stays free. Reaching 10,000 activated freemium users would only trigger a new decision about strictly additive, genuinely cost-backed premium or AI features; it would not turn charging on automatically.
What goes to third parties
- No model provider receives playback subtitle lines. The current production runtime uses curated artifacts, dictionary alignment, and precompiled caches rather than live AI translation during playback.
- Clerk — authentication for the optional web-app sign-in only (email + session); not used by the anonymous extension.
- Cloudflare, Neon, and Vercel host the API, database, and web app; they see standard access logs (IP, request method, URL) needed to serve traffic.
- Resend — our email provider. It receives an address only when you join a named email list, and keeps language notifications separate from the one-question product-feedback list.
- Sentry — crash + error monitoring with masked session replay on errors (details below).
- No advertising trackers, no tracking pixels, and no selling of data. The anonymous first-party product events described above are used only to operate and improve LingoBinge and measure whether learners receive repeat value.
Limited use
LingoBinge's use of data received from the extension adheres to the Chrome Web Store User Data Policy, including its Limited Use requirements. We only use the data described above to provide and improve LingoBinge's features, never to sell or transfer it for unrelated purposes, for advertising, or to determine creditworthiness.
Error monitoring
To find and fix crashes we use Sentry. When something errors, Sentry records the error and a short replay of the session around it so we can reproduce the bug. All text and media in those replays are masked, so your mined words, translations, and learning progress are never readable in a replay. We do not record normal, error-free sessions. Error events and replays are retained by Sentry for 30 days. The Chrome extension also sends anonymous breakage beacons (for example, "subtitle container not found") that contain no personal data. Sentry stays off entirely unless error monitoring is configured.
How to delete your data
On-device: open Chrome DevTools → Application → IndexedDB → delete the echo database, or clear your browser data for the LingoBinge domain. Clearing extension or site storage also removes the local random analytics ID and stops future events under it. Previously collected anonymous events age out within 13 months and cannot normally be linked back to your identity. If account sync is enabled later and you sign in, open Settings → Danger zoneand choose "Delete account & data" to erase everything instantly: your synced flashcards, word progress, and settings are removed from our database and your Clerk sign-in account is deleted. You can also email the address below and we'll do it for you. That same request can remove an address from a language or product-feedback email list in Neon and Resend.
Contact
Questions, requests, concerns: email hello@lingobinge.com.
LingoBinge is an independent project and is not affiliated with, endorsed by, or sponsored by Netflix or any other streaming service. "Netflix" is a trademark of Netflix, Inc., used here only to describe where the extension works.