Last updated:

Privacy policy

This Privacy Policy describes how Leesje processes user data on this website, in the browser extension and in related account, synchronization, translation, subtitle, and learning features.

Who we are and scope

Leesje (“Leesje”, “we”, “us”, or “our”) is a Dutch-language learning product. Leesje is developed and operated by Mykola Silchenko, an individual based in the Netherlands; the postal address is under Contact.

This policy applies to the Leesje website at leesje.com, including its account page, and to the Leesje Chrome extension and its internal pages, including Dashboard, Settings, Deck, Clipboard, exercises, and optional account and synchronization features.

For privacy questions or requests, contact support@leesje.com.

Part 1. The Leesje website

The website describes Leesje, lets you join the release waitlist for the Chrome extension and the phone apps, lets you write to us through the support form, and lets you sign in to your Leesje account. It counts visits with Umami (see Visit statistics), does not use advertising or tracking tools, and neither Umami nor the website’s own code sets cookies.

Hosting

The website is hosted by Vercel. For every request, Vercel processes technical data, such as your IP address, the page you request and your browser type (user agent), to deliver the website and protect it.

Visit statistics

We count visits with Umami Cloud, a cookie-free analytics service, to see how many people visit the website, where they come from and whether they open the Leesje Discord server from the website. When a page loads, Umami receives the page address, the website that linked to it and any campaign tags in the link (such as utm_source), your browser, operating system, device type, screen size and language, and the country derived from your IP address. It also records a click on the Discord link. Umami does not set cookies and does not store your IP address; it tells unique visitors apart with a salted hash that changes regularly, so you cannot be recognised later or on other websites. We only see totals, never individual visitors. We use this on the basis of our legitimate interest in knowing how the website is used, and the statistics are kept for up to 6 months.

Release waitlist: Chrome extension and phone apps

Leesje for Chrome is not in the Chrome Web Store yet, and the apps for iPhone and Android are not in the App Store or on Google Play yet. On the home page you can leave your email address to get one email when a product is released: in the “How to start” section for the Chrome extension, and in the phone-app section for the iPhone and Android apps. Both forms add to the same list, and one address can wait for several products. Joining the waitlist does not create a Leesje account and does not subscribe you to a newsletter.

What the waitlist stores
DataDetails
Email addressThe address you enter, stored in lower case.
ProductsWhich products you are waiting for: the Chrome extension, the iPhone app, the Android app, or several of them. If you do not pick a phone in the phone-app form, you are added for both phone apps. Joining again only adds a product; it never removes one.
Browser languageA two-letter code, for example “en”.
SourceOnly if the link you followed to the page carried a source tag (?src= or utm_source, for example the QR code on a poster). If you join again, the first tag is kept.
DatesWhen you joined and when you last updated your entry.

Purpose. We use this information to send you one email for each product you are waiting for, when that product is released, and to count how many people are waiting for each product and which links or posters brought them. The waitlist is not a newsletter: apart from those release emails, you get no others.

Legal basis. Your consent, which you give by submitting a form. You can withdraw it at any time by asking us to delete your address.

Where it is stored. Your browser sends these details directly to Leesje’s Supabase database, hosted in the London (United Kingdom) region. The list cannot be read through the website or through the database’s public interface; only the operator can view it, in the database’s administration console. The forms give the same answer whether or not an address is already on the list, so they cannot be used to find out who has joined.

How long we keep it. Each product stays on your entry until its release email has been sent to you; then we remove that product. When your entry no longer waits for any product, we delete it, including your address. If you want it removed sooner, write to support@leesje.com from that address, or mention the address in your message, and we will delete it. Leesje does not sell your email address or share it with others for their marketing.

Support form

On the support page you can send us a message.

What the support form sends
DataDetails
Email addressThe address you enter, so that we can reply to you.
TopicThe topic you choose from the list, for example “Refund”.
MessageThe text you write.
Images (optional)Up to three screenshots or photos you attach, with their file names. A large photo is made smaller in your browser before it is sent.
Browser languageA two-letter code, for example “en”.
PageA tag that says the message was sent from the support page.
Date and timeWhen you sent the message.

Where it goes. Your message is stored in Leesje’s Supabase database, hosted in the London (United Kingdom) region, and forwarded by email to our support inbox (support@leesje.com, or contact@leesje.com for other enquiries) through our email delivery provider, Resend. Images you attach are not stored in the database: they are sent only as attachments of that email. The form does not send you an automatic reply. Please do not attach images that show passwords, full card numbers or other details we do not need.

Purpose. We use these details only to answer your request.

Legal basis. Our legitimate interest in answering the request you send us.

How long we keep it. Each message is deleted automatically from the database 12 months after it was sent. Emails in our support inbox, including attached images, are deleted within the same 12 months. If you want it deleted sooner, write to support@leesje.com.

Storage in your browser

The website keeps a few small entries in your browser’s storage so its pages work the way you left them. The first three stay on your device and are never sent anywhere. The sign-in session is used to prove who you are when the account page contacts Leesje’s services.

What the website keeps in your browser
Name and storageWhat it is forHow long
leesje-theme
local storage
The light or dark theme you picked with the theme switch.Until you clear this site’s data.
leesje-signed-in
local storage
Whether you are signed in on the account page (“1” or “0”), so the header shows Account instead of Sign in. It contains no account details.Until you clear this site’s data; updated when you sign in or out.
leesje-scroll
session storage
Your scroll position on the home page, so a reload or going back returns you to the same place.Until you close the tab.
firebaseLocalStorageDb
IndexedDB
Only after you sign in on the account page: your sign-in session, kept by the Firebase Authentication library. The home page only checks whether a session exists, not what it contains, to show the Account label.Until you sign out.

Signing in on the website

The account page uses the same Leesje account as the extension. You can sign in with Google or with an email address and password. Sign-in is handled by Google Firebase Authentication, and the page loads the Firebase library from Google (www.gstatic.com). If you create an account with an email address, you get an email with a link to confirm it; password-reset links work the same way. These links open a page on this website that completes the step; that page does not save your password.

While you are signed in, the page asks Leesje’s Supabase billing service for your plan and access dates, and it can open the Lemon Squeezy portal to manage or cancel your subscription. Deleting your account on this page works as in the extension: an active subscription is cancelled first, then your synced learning data, usage statistics and email choices are deleted, and finally your sign-in account. Part 2 describes this data and what remains after deletion.

Part 2. The Leesje extension and your account

This part covers the Leesje Chrome extension and its related account, synchronization, translation, subtitle, and learning features.

Leesje’s single purpose

Leesje’s single purpose is to help users learn Dutch while reading and practicing. To provide that purpose, the extension identifies Dutch text on webpages, visually marks vocabulary according to the user’s learning status, lets users create and review flashcards, provides translations and language reference information, supports subtitle-based learning, and displays progress information.

Leesje only uses browser permissions and user data to provide, secure, maintain, or improve these user-facing language-learning features.

Data processed by Leesje

Data processed by Leesje
CategoryExamplesPurpose
Lemon SqueezyA random checkout reference linking the purchase to your Leesje account. Contact and payment details are entered directly at Lemon Squeezy checkout.Process purchases, recurring payments, cancellation and refunds as Merchant of Record.
Supabase billing serviceAccount UID, trial dates, plan, subscription or order identifiers, payment status and access dates.Verify account access and keep Premium in sync with payment events. Leesje does not store full card details.
Learning dataKnown/skipped/studying words, flashcards, card levels, review history, daily goals, streaks, settings.Save learning progress, schedule reviews, calculate statistics, and personalize the learning interface.
Webpage textVisible text on a page you open while Leesje is enabled.Detect Dutch, identify words, and apply vocabulary highlighting. This analysis is performed in the browser except where you explicitly request an online feature such as translation.
Translation and lookup textA word, phrase, subtitle line, or surrounding subtitle context you ask Leesje to translate or look up.Return a translation, example sentence, pronunciation, part of speech, or article information.
Video learning context (YouTube, Netflix, Videoland)On YouTube: the video identifier and the caption or transcript information YouTube provides for it. On Netflix and Videoland: the subtitle file the streaming service provides for the episode or film you are watching.Show the transcript, mark words in the subtitles, and pause or jump within the video you are actively using with Leesje. Subtitles are downloaded from the streaming service’s own servers and processed in your browser; they are not sent to Leesje’s servers. A subtitle line you ask to translate is handled as described under translation.
Account dataAccount identifier (UID), email address and sign-in method (Google, or email address and password); for Google sign-in also your display name and profile image; authentication tokens. You sign in on the leesje.com account page; the extension receives the session from that page and has no sign-in form of its own. Passwords are handled by Google Firebase Authentication; Leesje does not store them.Optional sign-in, account display, authentication, and cross-device synchronization.
Synced learning dataDeck entries, word statuses, review log, update timestamps.Keep supported devices in sync when you sign in.
Invite (referral) dataYour personal invite code, linked to your account UID. If you enter a friend’s code: your account UID and that code.Tell an inviter how many people entered their code, to award the Ambassador badge. Only a count is shown; neither person sees who the other is. Deleted with the account.
Free-period recordA keyed fingerprint (HMAC-SHA-256) of your normalized email address — lower case, without a +tag, and for Gmail without dots — and the start and end dates of your 30-day free period.Give each email address one free period, also when an account is deleted and created again. It contains no readable email address, account UID or learning data, and it is kept after account deletion.
Email preferencesYour account email address, email language, which optional email lists are on, the date and source of each opt-in and opt-out (including whether a box was ticked in advance), a random unsubscribe code, and a record of which emails were sent. For the weekly progress summary: counts calculated from your synced learning data (reviews, cards, known words).Send only the optional emails that are on, record how each choice was made, and honour unsubscribe requests.
Support communicationsEmail address and message content when you contact support or send feedback.Respond to requests, troubleshoot issues, and process privacy inquiries.

Browsing activity and webpage access

Leesje requires access to webpages because its core function is to analyze visible page text and add language-learning highlighting and controls. Leesje does not use browsing activity to build advertising profiles, sell audience data, or serve personalized advertising.

Leesje does not intentionally maintain a general browsing-history database. Full webpage contents are not sent to Leesje servers merely because a page is visited. When you request a network-backed feature, only the text or identifier needed for that feature is sent to the relevant service as described below.

Browser permissions

Browser permissions the extension uses
PermissionWhy Leesje uses it
storageStore word status, flashcards, review data, preferences, authentication state, and synchronization metadata.
unlimitedStorageKeep a large vocabulary, review history, saved texts and local backups on your device beyond Chrome’s default storage limit.
alarmsSchedule the optional study reminder and periodic background checks: syncing your data and refreshing your access status.
notificationsShow the optional study reminder (“cards are due”) that you turn on in Settings, and a test notification when you try it there.
contextMenusAdd a single “Pause Leesje” item to the right-click menu of the Leesje toolbar icon.
scriptingOn YouTube and Netflix, run small functions packaged with the extension in the open video tab: load that video’s captions and jump to a subtitle line you click. No code is downloaded from the internet.
clipboardReadOnly on Leesje’s own Clipboard page, when you click “Paste”: read the copied text, or a copied picture that is converted to text on your device. The clipboard is not read in the background or on websites.
Access to websitesRead and annotate page text on websites where Leesje is enabled. This is necessary for the extension’s disclosed language-learning purpose. You can pause Leesje or turn it off for individual sites.

Third-party services and data sharing

Leesje does not sell personal data. It shares or transmits data only when necessary to provide requested features, operate synchronization, comply with law, or protect the service.

Third-party services
ServiceData that may be sentPurpose
Google sign-in (on leesje.com)If you choose Google on the leesje.com account page: the sign-in request and your Google account identifier, email address, name and profile image. The extension has no Google sign-in of its own; when you sign out, it may ask Google to revoke an access token saved by an earlier version.Optional sign-in with Google; revoking old tokens on sign-out.
Google Firebase Authentication and FirestoreAuthentication data. Learning data that earlier versions of Leesje synced to Firestore: it is read once to copy it to Supabase and stays in Firestore until account deletion.Account authentication; the one-time copy of earlier synced data to Supabase.
Leesje sync service (Supabase)Your account UID and, when signed in, synced learning data such as deck entries, word statuses, review logs, Clipboard text and, if you turn them on, usage statistics.Cross-device synchronization.
Google TranslateWords, phrases, or subtitle text you ask to translate, plus target language.Machine translation.
MyMemoryWords or phrases and target language when used as a translation fallback.Translation fallback.
Leesje punctuation service (Supabase) and, once switched on, AnthropicThe text of auto-generated Dutch YouTube captions of a video you watch, and your account UID to check access and a daily limit.Add punctuation and capital letters to auto-generated captions. The language-model step is not switched on yet; until it is, captions are punctuated by rules in your browser and nothing is passed to Anthropic. Punctuated captions are cached without any user data; the daily count is deleted with your account.
Leesje sentence breakdown service (Supabase) and AnthropicThe sentence shown in a word card when you open its “Sentence breakdown” tab (from the page, subtitles or text you are reading), your interface language, and your account UID to check access and a daily limit.Split the sentence into short parts and explain the meaning and grammar of each with a language model (Claude). Sent only when you open that tab while signed in with access. Breakdowns are cached for 7 days with only the sentence and its explanation, without any user data; the daily count is deleted with your account.
TatoebaA Dutch word and requested language.Retrieve example sentences and available translations.
WiktionaryA Dutch word.Retrieve pronunciation, part-of-speech, and article information.
YouTube / GoogleVideo/caption requests related to the YouTube video you are actively using with Leesje.Subtitle and transcript learning features.
Netflix / VideolandA request for the subtitle file of the episode or film you are watching, sent to the streaming service’s own servers.Subtitle and transcript learning features.
Resend (email delivery)Your email address and the content of each optional email you receive (for the progress summary, your learning counts).Deliver the weekly progress summary and news and offers emails.

Third-party providers process data under their own terms and privacy policies. Leesje does not control their independent processing.

Chrome Web Store Limited Use disclosure

Leesje’s use and transfer of user data obtained through Chrome extension permissions complies with the Chrome Web Store User Data Policy, including its Limited Use requirements. User data is used only to provide or improve Leesje’s disclosed language-learning features and related security, maintenance, and reliability operations. Leesje does not use or transfer user data for personalized, retargeted, or interest-based advertising. Leesje does not transfer user data except where necessary to provide or improve the extension’s disclosed functionality, for security or legal reasons, or as otherwise permitted by the Chrome Web Store User Data Policy. Human access to user data is not permitted except with the user’s affirmative consent for a specific support purpose, where necessary for security or abuse investigation, to comply with law, or for aggregated/de-identified internal operations permitted by policy.

Chrome Web Store policy information: Limited Use requirements.

Local storage, cloud storage, and retention

Account deletion removes learning progress and local restoration snapshots. A separate billing record currently remains to handle cancellation, refunds and delayed payment notifications. It contains the account UID and payment identifiers, not your learning content. Two more records remain after deletion: the free-period record described above (a keyed fingerprint of your normalized email address with the dates of your free period, without a readable address or account UID), so that each email address gets one free period; and a marker with your account UID set to “deleted”, so that a sign-in token issued before the deletion cannot restore the erased data. The marker contains no learning data. Invite codes and invite claims are deleted with the account. For billing-record privacy requests, contact support@leesje.com.

When signed in, text you explicitly open in the Clipboard reader (including extracted text from an imported file or image) is saved to your account in Leesje’s Supabase database for cross-device reading. Leesje does not continuously read or synchronize the operating system clipboard. Each device retains its latest saved text in the cloud; clearing the current text publishes an empty current version, while an older version from another device may remain until account deletion. Images and original files are not uploaded by this synchronization feature. Reading scroll position remains local. Clipboard texts are not included in usage statistics.

Optional usage statistics are off by default. If you enable “Share usage statistics” in Settings while signed in, Leesje sends daily counts of reviews, cards created, words marked known, exercise starts and answers, translation requests, and visits to extension sections to Leesje’s Supabase database. Counts are associated with your account and a random reporting identifier. They do not include card contents, words, translations, website addresses, or browsing history. These counts help the developer measure feature usage, active users, and return visits. Disabling sharing stops future collection and discards pending uploads. Uploaded counts remain until you delete your account. Pending daily counts are kept locally for at most 90 active days; older pending counts may be dropped.

Emails from Leesje are optional, and both lists start off. You can turn the weekly progress summary or news and offers on in the window at the end of the introductory tour, where both boxes start unticked, or in Settings → Account. An account that already made a choice keeps it. When a list is on, your choice, email address and email language are stored in Leesje’s Supabase database. The progress summary is calculated on the server from your synced learning data. News and offers emails have the same content for everyone who receives them and are not based on your browsing or learning activity. Every email has an unsubscribe link, and you can turn either list off in Settings. While your account exists, we keep a record of each opt-in and opt-out and how it was made. Account deletion removes your email choices, this record and the delivery history. Leesje does not sell your email address or share it with others for their marketing.

Learning data and settings are primarily stored in Chrome’s local extension storage. Local data remains until you delete or reset it, remove the extension, or Chrome removes the extension’s storage.

If you sign in and synchronization is enabled, supported learning data is also stored under your account in Leesje’s Supabase database, hosted in London, United Kingdom. Firebase is used for sign-in. Learning data that earlier versions of Leesje synced to Google Firebase/Firestore stays there until account deletion; when an account first syncs with the current version, Leesje copies that data to Supabase. Account deletion is designed to remove the synced deck, word status, review-log, Clipboard text and usage-statistics records associated with that account, in Supabase and in Firestore, and then delete the Firebase authentication account. Service providers may retain limited backup, security, or legal records for their own permitted retention periods.

Security

Leesje uses HTTPS for network requests containing user data and relies on browser and provider security controls for authentication and storage. Authentication tokens are kept in extension storage and are not intentionally exposed in the user interface. No method of electronic storage or transmission is completely secure, so absolute security cannot be guaranteed.

Your choices and controls

Part 3. Your rights, children, changes and contact

This part applies to the website and the extension.

EEA/UK privacy rights

Where European Economic Area or United Kingdom data-protection law applies, you may have rights to request access, correction, deletion, restriction, portability, or objection to certain processing, and to withdraw consent where processing is based on consent. You may also have the right to complain to your local data-protection authority.

Depending on the feature, processing is generally necessary to provide the service you request, based on your consent for optional features, or based on legitimate interests such as service security, reliability, and fraud prevention, subject to applicable law.

Children

Leesje is not directed to children who cannot lawfully consent to use of the service or provide personal data under applicable law. If you believe personal data from a child has been processed improperly, contact support@leesje.com.

Changes to this policy

We may update this Privacy Policy when Leesje’s features, data practices, or legal requirements change. Material changes to data practices will be disclosed as required before the new processing begins. The “Last updated” date at the top of this page will be updated when the policy changes.

Contact

Mykola Silchenko
NDSM-pier 3
1033 RG Amsterdam
Netherlands
support@leesje.com