Doppuri

Privacy

Last updated 1 November 2026

Doppuri runs in your browser. Your reading, your words and your cards stay on your device unless you create an account, nothing here is sold or used for advertising, and the usage analytics are off until you turn them on yourself.

Who we are

Doppuri is a language-learning app, made and run from the United Kingdom by one person. We are the data controller for the personal data described here. We decide what is collected and why, and we are answerable for it.

This notice covers the Doppuri website and installed app at doppuri.app, and the Doppuri browser extension. Write to contact@doppuri.app with any question about it, to ask for a copy of your data, to complain, or to be given the controller’s registered name and address.

What stays on your device

Signed out, Doppuri is entirely local. Everything below is stored in your browser and never leaves it:

Why that needs no permission box

Storing the list above on your device is what you asked the app to do: there is no server copy to fall back on, so without it Doppuri would have nothing to show you and no way to remember a word you marked known a minute ago. That makes it strictly necessary to provide the service you requested, which is the exemption the UK cookie rules give, so there is no banner asking you to agree to it.

Anything that is not strictly necessary is treated the other way round. Usage analytics are off until you switch them on, and the daily reminder needs your permission and your browser’s before it can exist at all.

What an account adds

Creating an account is optional and every non-AI feature works without one. If you do sign in, we store your email address so you can sign in again, and a copy of the local data above is synced to our database, hosted by Supabase in London, so it reaches your other devices.

That copy covers your flashcards, grammar cards, saved texts, known and tracked words, review state and history, daily review counts, and your settings. Images and audio attached to cards are deliberately never uploaded. They stay on the device that made them.

We also keep a per-day and all-time count of AI requests on your account. That is what enforces the daily limit and stops a runaway bill; it is a number and a date, not a record of what you asked.

If you turn on the daily reminder, we store what your browser needs to deliver a notification, the address your browser gives us to push to, the time zone it reported, and the hour you picked. The notification itself carries a number of cards due and nothing else: never a word, a card, a story or anything about what you read.

The browser extension

The Doppuri extension looks a word up on a page you are already reading. The dictionary, the word-splitter and the lookup all run on your own device: pointing at a word sends nothing to us and nothing to anybody else, and it works with the network switched off.

It reads a page only once you have allowed it for that site, from the extension’s own popup, and you can take that permission back the same way. Until you do, it is not present on the page at all. That is also the honest answer to whether it can read your bank: no, not unless you say so.

What it reads is the text around the word you pointed at, to work out where that word starts and ends and which sentence it sits in. That text is used on the spot and nowhere else. It is not sent anywhere, not written down, and gone as soon as the card closes.

What it stores on your device is the dictionary it downloaded, a copy of your own progress so a page can show you where you stand with a word, and any Save or Mark known you pressed that has not reached Doppuri yet because the app was not open.

When you press Save, the word, the sentence it was in, the page’s address and the page’s title are written into your own flashcard, exactly as though you had typed them in, and sync to your account if you have one. The address is cut back to the site and the page: everything after a ? or a # is dropped, because that part routinely carries a session or a tracking tag.

The extension holds no sign-in, no password and no account key. It can show your progress because Doppuri’s own page hands a copy over while you have that page open in the same browser. Nothing about your account travels with the extension, and it sends nothing to our servers at all. It has no crash reporting and no analytics of any kind.

What we send to other companies

The AI features (Explain, Translate, Check My Writing, generated example sentences, and spoken audio) work by sending the relevant text to OpenAI through our own server, so that no API key is ever exposed to your browser.

What is sent is the text the feature needs: a word and its sentence, a passage to translate, or the writing you asked to be checked. Our server does not log the text it forwards, the response that comes back, or your key. We do not use anything you write to train anything.

OpenAI processes that text under their own terms. If you would rather nothing left the browser at all, use Doppuri signed out: every AI feature requires an account, so signed out none of them can run, and reading, dictionary lookups, flashcards and review all still work.

Feedback you send with the Feedback button goes to a private Discord channel our team reads. What is sent is exactly what you typed, the name of the section you were on, and an email address only if you choose to add one for a reply. Nothing else, and never the address you signed in with. It is a message to us, so do not put anything in it you would not want us to have.

The full list of companies that handle anything on our behalf, and what each one is for:

Where it is held, and when it leaves the country

Your account data is in a database in London, and the server behind the AI features and imports runs in London too, so for most of what Doppuri does nothing leaves the United Kingdom.

Four things do. Text you send to an AI feature goes to OpenAI; crash reports go to Sentry; usage analytics, if you have switched them on, go to PostHog; and feedback you send goes to Discord. All four are United States companies, so that data leaves the UK or can be reached from outside it. Vercel and Supabase are US companies as well, and their staff can reach the systems they run for us even though those systems are in London.

Those transfers are made under each provider’s data processing terms, which carry the European Commission’s standard contractual clauses together with the UK International Data Transfer Addendum, the mechanism UK and EU law provide for exactly this.

If you would rather none of it crossed a border: signed out, with analytics off and no feedback sent, none of those four is involved, and reading, the dictionary, flashcards and review all work.

Crash reports and usage

Two things can run in your browser to tell us when Doppuri breaks and whether anyone is using it. Both are listed in Settings → About with a switch each, both are off entirely unless we have configured them, and both are off for you with no switch needed if your browser sends a Do Not Track signal.

Crash reports (Sentry) are on by default and can be turned off. They are sent when the app hits an error: what went wrong, where in the code, and which browser. They never include the text you are reading, an address you imported from, anything you typed, your flashcards, or your email.

Usage analytics (PostHog) are OFF until you turn them on, and turning them back off stops them and clears the identifier they used. They count a small, fixed list of actions: opening a story, seeing a card in the feed, looking a word up, saving a flashcard, and bringing a text in. A story is identified by its catalogue number, which is the same for everybody. Looking a word up records the word itself. That is a dictionary headword, not something you wrote, and it is what tells us where the stories are too hard and where the dictionary is thin. Saving a flashcard records the word too, except when the card came from correcting your own writing, where only the count is sent and never your words. Bringing a text in records only how it arrived (pasted, a file, a web address, or the Send to Doppuri button) and how many characters it was.

Nothing else about what you read is recorded: no imported text, no addresses, no titles, no session recording, no reading of what is on your screen, and no third-party script allowed to look at the page. If you have an account, events are tied to your account number so the same person on a phone and a laptop counts once; your email address is never sent.

Stopping abuse

Importing a web address, sending feedback, and the AI features each have a ceiling on how often they can be used in a minute. Keeping count means storing a number against a scrambled, one-way version of your network address, never the address itself, and the count is deleted within the hour. It is never used to recognise you, link your requests together, or work out where you are.

Why we are allowed to do this

UK GDPR requires a lawful basis for each purpose. Ours, purpose by purpose:

How long we keep it

Nothing here is kept for longer than it is doing a job.

Your rights

Over the data we hold in your account you have the right to be told what we have, to get a copy of it, to have it corrected, to have it deleted, to restrict what we do with it, to take it elsewhere in a usable format, to object to anything we do on the basis of our legitimate interest, and to withdraw any consent you gave.

Two of those you can exercise yourself, right now, without asking anybody: Settings → Account → Download Backup is a complete copy of everything in a format another app can read, and Settings → Account → Delete account removes every row we hold against you.

For anything else, email contact@doppuri.app. We will answer within one month, it costs nothing, and we will not ask you why.

If you think we have got this wrong, you can complain to the Information Commissioner’s Office, the UK’s data protection regulator, at ico.org.uk/make-a-complaint or on 0303 123 1113. We would rather you told us first so we can fix it, but you are not obliged to. If you are in the EU you may complain to your own country’s supervisory authority instead.

What we do not do

No advertising, no tracking pixels, no fingerprinting, no session recordings, and no third-party scripts reading the page you are on. Nothing about you is sold or shared with anyone beyond the processing described above.

Nothing here decides anything about you automatically and there is no profiling. The placement test and the comprehension figures are worked out on your own device, from your own reading, and are shown only to you.

Giving us anything at all is optional. Signed out you give us nothing, and the only thing an account requires is an email address. Without one we cannot sign you in or sync anything, which is the whole of what you would be missing.

Deleting your data

Settings → Account → Reset this device erases every piece of Doppuri data in this browser, including stored images and audio. It is immediate and cannot be undone.

Settings → Account → Download Backup gives you everything as a file first, if you want a copy before erasing, or simply to take your data elsewhere.

Settings → Account → Delete account permanently removes your account and every row stored against it from our database, on every device you have signed in on: flashcards, review history, saved texts, progress. You confirm by typing "delete". It is immediate, it cannot be undone, and we cannot recover it for you afterwards.

Resetting the device clears only this browser’s copy; deleting the account clears the cloud one as well.

Children

Doppuri is not aimed at children under 13 and we do not knowingly keep data from them. If you believe a child under 13 has given us anything, email us and we will delete it.

Changes to this notice

What we collect changes as the app does, and this notice changes in the same release rather than afterwards. That is a rule we hold ourselves to in the code, not a promise made here. The date at the top is when it last changed, and if something material changes we will say so in the app rather than leave you to notice a date.