Cookie & Storage Policy
Last updated: June 2026
This page lists every cookie and browser-storage key TheLernen uses, what it does, and whether it requires your consent. You can change your consent choice at any time by clearing the cookie called dl_consent (App Settings → Clear app cache, or your browser settings).
1. Strictly Necessary (no consent required)
These keys make the app work — saving your study progress, language choice, and theme. They store data only in your browser (localStorage). The app cannot function without them.
2. Analytics (consent required)
When you click "Accept all" in our cookie banner we load PostHog (EU servers, GDPR-compliant) to anonymously measure which features help you learn most. PostHog sets a small first-party cookie and an anonymous ID. We never share this data with advertisers. If you choose "Only necessary", PostHog is never loaded.
3. Server-side Error Monitoring (legitimate interest)
We log AI errors (e.g. when Google Gemini is overloaded) to PostHog from our server to keep the service running. These logs contain only error codes and HTTP statuses, no personal data. This is processed under GDPR Article 6(1)(f) — legitimate interest — and does not require consent.
4. Third-Party Cookies
TheLernen does NOT use advertising cookies. The only third-party cookies you may encounter:
- Supabase (auth session) — set only after you log in. Necessary.
- Lemon Squeezy (checkout) — set only on the checkout page when you click Subscribe. Necessary for payment.
- PostHog (analytics) — set only with "Accept all" consent.
5. localStorage Keys We Use
| Key | Purpose |
|---|---|
| dl_consent | Your cookie/tracking consent choice. |
| dl_session_id | Links your local progress to your account. |
| dl_device_id | Anonymous device identifier for guest sessions. |
| lang | Your selected interface language. |
| dl_study_lang | Language you are currently learning. |
| theme | Light or dark theme preference. |
| dl_sfx_muted | Sound effects on/off preference. |
| dl_hide_romaji | Hide romaji in Japanese learning mode. |
| dl_anki_native_ime | Use native IME in Anki mode. |
| dl_hiragana_srs | SRS progress for Hiragana characters. |
| dl_katakana_srs | SRS progress for Katakana characters. |
| dl_german_symbols_srs | SRS progress for German umlauts. |
| dl_polish_symbols_srs | SRS progress for Polish characters. |
| dl_dev_banner_dismissed | Whether you dismissed the "in development" banner. |
| dl_is_pro_<sessionId> | Cached PRO status for your session (refreshed from server). |
6. Your Rights
You can clear all browser storage at any time via App Settings → Clear app cache (this also resets your consent choice — the banner will reappear). You can also delete your account entirely from Settings; this removes all server-side data per our Privacy Policy.