Privacy Policy

This explains what BetterLang does with your personal data: what is stored, where it is stored, who else sees it, how long it is kept, and what you can ask for. It describes the product as it actually behaves — it was written from an audit of the code and the running system, not from a template.

It was written by the person who builds BetterLang, not by a lawyer, and it has not been reviewed by one.

Version 2026-09-27 · in effect from 27 September 2026

Who is responsible

BetterLang is operated by Mertcan Merkit, an individual — there is no company behind it. The contact address for anything in this policy, including requests about your data, is support@betterlang.app. No postal address is published; write to that address and you will reach the operator directly.

The product is operated from Belgium and hosted in the European Union. Wherever you are, the protections described here apply to you — there is no lesser version of this policy for people outside the EU.

What is stored, and why

Your account. Your name, your email address and a hashed form of your password (the password itself is never stored). This exists so you can sign in and so your work is yours. Legal basis: performing the agreement between us.

What you learn from and what you make. The texts, articles and transcripts you import; the Cards you save with their translations, notes and tags; your Practice and Audio Drill history; your folders, your reading position and your settings. This is the product. It can contain anything you paste in, so treat it as yours: it is not read by anyone, it is not used to train anything, and it is not shared with anyone unless you choose to share a specific item (see community sharing). Legal basis: performing the agreement.

Sign-in records. Each session stores your IP address and your browser's user-agent string, which is ordinary security practice — it is how an account can tell its own sessions apart. Legal basis: legitimate interest in keeping accounts secure.

Counters. A record of things like "a Card was deleted" or "an import finished", with the language and the kind of thing involved. These never contain the text of a Card, a translation, a note, a transcript or anything you typed — that rule is enforced by tests in the source, not just by intention. Legal basis: legitimate interest in knowing whether the product works.

If you left your email on a public page. If you gave your email address on a public reading page to keep the words you had saved, that address is stored with the language you were reading and whether you agreed to be contacted. Legal basis: your consent. Write to support@betterlang.app to have it removed.

Who else sees your data

BetterLang uses a small number of outside services. None of them is an advertiser, a data broker or an analytics company, and none of them receives your data to use for their own purposes.

  • Railway — runs the servers and the database. Everything is in the European Union (the Netherlands). It holds everything, as the host.
  • Cloudflare — sits in front of the site. It sees the ordinary metadata of a web request: your IP address, what you asked for, and your browser's user-agent string.
  • Google Cloud Translation — translates a word or phrase you click, together with the sentence around it, when you use translation.
  • Google Cloud Text-to-Speech — reads a sentence aloud in a premium voice, on a Premium account only. It receives the sentence, its language, the voice and the speed. Other accounts hear the browser's own voice, and BetterLang sends nothing for it.
  • OpenRouter, and the AI model providers behind it — receives the text you select for AI features such as Explain, premium translation and writing checks, with the minimum context needed. You are asked once, before the first time anything is sent, and you can withdraw that in Settings.
  • YouTube (Google) — supplies the video player, the thumbnail images on public pages, and the captions of a video you choose to import. Loading a page with a video or a thumbnail on it means YouTube sees your IP address and user-agent string, exactly as if you had opened YouTube.
  • Resend — sends password-reset email, and nothing else. It receives your email address and the reset message, and keeps message content, metadata and delivery logs for 30 days. Its processing takes place in the United States.
  • Cloudflare Email Routing — forwards mail you send to support@betterlang.app to the operator's own mailbox.

The microphone key belongs to your browser, not to BetterLang. It appears only where your browser offers speech recognition, and only listens after you tap it. Your browser or phone then turns your voice into text: Safari uses Apple's dictation, Chrome uses Google's, Edge uses Microsoft's. The audio goes to that company under its own terms and BetterLang never receives it. BetterLang sees the words only if you submit them as an answer, and it keeps no audio and no recording.

The only email BetterLang ever sends you is a password-reset link, and only when you ask for one. There is no welcome email, no verification email, no newsletter and no marketing of any kind. Reset email is rate-limited — at most one every 15 minutes and three a day per account — and the reset form gives the same answer whether or not an address has an account, so it cannot be used to find out who has one.

There is no analytics service, no tracking pixel, no session replay and no advertising anywhere in BetterLang — not on the website, not in the mobile app, not in the browser extension.

Cookies and what is kept in your browser

If you are not signed in, BetterLang sets no cookies at all. There is no cookie banner because there is nothing to ask you about.

When you sign in, one cookie is set: la_session. It holds a copy of your sign-in token so pages can be rendered already signed in. It is strictly necessary — without it you would be signed out on every page load — and it is removed when you sign out.

BetterLang also keeps things in your browser's own storage, which never leaves your device and is not sent to any server: your sign-in token, a random device identifier used to claim work you did before signing up, anything you imported while signed out, your chats with the AI tutor, your reader and practice preferences, and whether you have agreed to AI features. Clearing your browser's site data removes all of it.

On a Premium account, the premium voice's recording of each sentence you listen to is kept there too, together with the sentence, so hearing it again needs no second request. A recording you have not listened to for 30 days is not played again, and is deleted the next time you open BetterLang. All of them are deleted when you sign out, when you delete your account, and when another account signs in on that browser. If your account stops being Premium, they are deleted the next time you open BetterLang.

On a phone, the BetterLang app keeps your sign-in token in the device's secure keychain rather than in ordinary storage. The browser extension keeps its token in its own extension storage on that one browser profile; it is never synchronised to your other devices.

AI and translation

When you click a word to translate it, that word and the sentence it sits in are sent to a translation provider. When you use Explain, premium translation or a writing check, the text you selected and the minimum context around it are sent to an AI model provider through OpenRouter. Whole Content, whole transcripts and unrelated notes are never sent. When you chat with the AI tutor, the latest messages of that chat (at most 30) go the same way to get a reply; BetterLang keeps none of them — your chats are saved on your device only.

You are asked once, before anything is sent for the first time, and you can withdraw that agreement at any time in Settings → Practice preferences. The next AI request will ask again.

AI output can be wrong. Treat an explanation or a translation as a helpful guess, not as a fact.

If you report an AI explanation as bad, BetterLang keeps that explanation, the text it explained (the word and its sentence, your sentence, or your chat message), the reason you picked and your note, so the explanations can be made better. Nothing is sent until you press Send report. Reports are kept for up to 90 days and are deleted with your account. Legal basis: legitimate interest in fixing wrong explanations.

YouTube

Videos play in YouTube's own privacy-enhanced player, and public pages show YouTube's thumbnail images. Both mean YouTube receives your IP address and user-agent string. When you import a video's captions, BetterLang asks YouTube for that video's caption file and for its title.

Using those parts of BetterLang also means YouTube's terms and Google's privacy policy apply to what YouTube receives. BetterLang is an independent product and is not affiliated with, endorsed by, or certified by YouTube or Google.

Sharing something publicly

You can choose to share something you imported so other learners can read it on the public pages. It is entirely optional and off unless you turn it on.

When you share, the text becomes publicly readable. Alongside it, BetterLang keeps the IP address and user-agent string of the device that submitted it, so that a rights holder's complaint can be investigated and abuse can be stopped. That information is kept for up to 12 months and then erased; a one-way fingerprint of the IP address is kept after that, so repeat abuse can still be recognised without keeping the address itself. Legal basis: legitimate interest in handling rights complaints and abuse.

If you want something you shared taken down, use the content removal form or write to support@betterlang.app.

How long things are kept

  • Your account and your work: until you delete them, or until you ask for them to be deleted.
  • A Card you delete stays recoverable for 30 days before it can be removed for good.
  • Saved translations expire after about 30 days; saved AI explanations after about 14.
  • Premium voice recordings kept in your browser: until 30 days after you last listened, and never past sign-out.
  • A report of a bad AI explanation: up to 90 days.
  • The IP address and user-agent string attached to something you shared publicly: up to 12 months.
  • Sign-in sessions: until they expire or you sign out.
  • A password-reset link: 60 minutes, and it works once.
  • Password-reset email at Resend: 30 days, on their side.

One honest caveat about the word "automatically": nothing in BetterLang runs on a timer. Cleanups happen while the product is being used, so the periods above are maximums rather than stopwatches. If you want something gone on a particular day, ask and it will be done.

There are currently no database backups, so when something is deleted there is no second copy to chase. If that changes, this page will say so and will say how long a deletion takes to reach them.

Your rights

You can ask for a copy of your data, for a correction, for deletion, for a machine-readable export, or for processing to stop. You can also object to anything done on the basis of legitimate interest. Write to support@betterlang.app; you will get an answer, and there is no charge.

Some of it you can do yourself: Words → Export Cards exports your Cards, and Stats → Download CSV exports your Practice history. Settings → Profile → Delete my account deletes everything — see deleting your account.

If you think your data has been handled badly, you can complain to a data protection authority where you live.

Age

BetterLang is for people aged 16 and over. If you learn that someone younger has an account, write to support@betterlang.app and it will be removed.

Security

Passwords are stored hashed, never in a readable form. Everything travels over HTTPS. Sign-in tokens are stored on your own device and are revoked when you sign out, change your password, or delete your account. Request bodies for imports, reading, translation and AI are deliberately kept out of the server logs, so your text does not end up in them.

Changes to this policy

When this changes in a way that matters, the version number at the top changes and the new version takes effect from the date shown beside it. Old versions are visible in the product's source history.

Contact

support@betterlang.app — for privacy questions, deletion requests, and anything else in this policy. See also the Terms.