Storage and cookie policy
Effective 31 August 2026. This page explains first-party browser and device storage used by FlowLingu.
Gültig ab 31. August 2026. Diese Hinweise erklären die Browser- und Gerätespeicherung durch FlowLingu.
Strictly necessary first-party storage
FlowLingu uses several distinct first-party storage media: localStorage for durable device settings and learning records, sessionStorage for short hand-offs, Cache Storage and IndexedDB for offline packages, and one short-lived admin session cookie limited to the admin area. Local storage is not a cookie. When configured and used for account sign-in, the Supabase browser client stores the account session and refresh material under sb-<project-ref>-auth-token in localStorage. These items provide a requested service or protect it.
Speicherarten: lokaler Speicher für Lernfortschritt, Profil, Anzeige, Kontingente und Offline-Berechtigungen; Sitzungsspeicher für vorübergehende Checkout- und Tutorübergaben; Cache-Speicher für App, Lektionen und Lernmedien; sowie ein kurzlebiges, sicheres HttpOnly-Admin-Sitzungscookie nur im Adminbereich. Diese Erstanbieter-Speicherung ist für angeforderte Funktionen oder deren Schutz erforderlich.
Current storage inventory
The following inventory is generated from the same authoritative list checked against production storage key families. A “necessary” entry supports a requested feature or service protection; it does not mean that every learner uses that feature.
| Key family and medium | Purpose and status | Retention and removal |
|---|---|---|
flowlingu.ui-localecookie | Remember the requested interface language and provide the correctly localized document during the first server response. NecessaryNotwendig | Up to one year (12 months), unless replaced or removed earlier. Remove Löschen: Change the native language, clear this site’s cookies, or remove the cookie in browser settings. |
linguaflow.profile, .progress, .activity, .confidence, .cards and .expression-collection.v1localStorage | Keep the device profile, language pair, learning history, adopted cards and confidence calibration used to provide learning features. NecessaryNotwendig | Until the learner clears site data or removes the app; synchronized copies follow the account retention described in the privacy notice. Remove Löschen: Clear this site’s stored data in the browser, or uninstall the app. |
linguaflow.progress-exercise-id-migration.v1 and .learning-storage.v1localStorage | Prevent duplicate writes and safely associate older progress identifiers with the current language pair. NecessaryNotwendig | Until site data is cleared; the lock value may be replaced as learning writes occur. Remove Löschen: Clear this site’s stored data in the browser, or uninstall the app. |
linguaflow.theme, .correction-mode, .tts-slow, .tutor-facts and .session-poslocalStorage | Remember requested display, tutor, speech, correction and lesson-position preferences on this device. NecessaryNotwendig | Until changed by the learner or site data is cleared. Remove Löschen: Change the relevant preference where offered, clear site data, or uninstall the app. |
linguaflow.daily-allowance.v1localStorage | Apply the device-side daily feature allowance. NecessaryNotwendig | The stored daily counter is replaced as days and usage change; it remains until site data is cleared. Remove Löschen: Clear this site’s stored data in the browser, or uninstall the app. |
linguaflow.expression-challenge.v2:* and .expression-repair.v1:*localStorage | Resume expression challenges and repairs for a particular conversation, expression and language. NecessaryNotwendig | Until the journal is superseded or site data is cleared. Remove Löschen: Clear this site’s stored data in the browser, or uninstall the app. |
linguaflow.living-language-events.v1localStorage | Keep a bounded device-side record used to operate and evaluate the requested living-language learning feature. NecessaryNotwendig | Old entries are trimmed by the feature; the remainder stays until site data is cleared. Remove Löschen: Clear this site’s stored data in the browser, or uninstall the app. |
linguaflow.devicelocalStorage | Identify this installation when synchronizing device learning changes. NecessaryNotwendig | Until site data is cleared or the app is uninstalled. Remove Löschen: Clear this site’s stored data in the browser, or uninstall the app. |
linguaflow.social.always-show-transcripts and flowlingu.social-unlock-seenlocalStorage | Remember requested transcript display and whether the Practice Together introduction has been seen. NecessaryNotwendig | Until the preference is changed or site data is cleared. Remove Löschen: Change the transcript preference where offered, clear site data, or uninstall the app. |
linguaflow.optional-consent.v1localStorage | Remember and demonstrate the learner’s choices for optional analytics, marketing and external-media categories. NecessaryNotwendig | Until the choice is replaced, withdrawn, or site data is cleared. Remove Löschen: Withdraw through the consent control or clear this site’s stored data. |
sb-<project-ref>-auth-tokenlocalStorage | Persist account sign-in and refresh the authenticated session when Supabase account sign-in is configured and used. NecessaryNotwendig | The session is refreshed while valid and remains on the device until sign out, expiry, or removal of site data. Remove Löschen: Sign out of the account or clear this site’s stored data in the browser; uninstalling the app also removes its local site data. |
flowlingu-offline-devicelocalStorage | Bind downloaded packages to this installation and the entitled account. NecessaryNotwendig | Until site data is cleared or the app is uninstalled. Remove Löschen: Clear site data for FlowLingu in the browser, or uninstall the app. |
linguaflow.scenariosessionStorage | Hand a selected tutor scenario to chat once. NecessaryNotwendig | Removed after chat reads it, or when the browser session ends. Remove Löschen: Close the browser session or clear this site’s data. |
flowlingu.pending-checkoutsessionStorage | Restore the selected product after returning from secure checkout. NecessaryNotwendig | Removed after checkout confirmation, or when the browser session ends. Remove Löschen: Close the browser session or clear this site’s data. |
grammar-tip-dismissed:<language/pair/session suffix>sessionStorage | Remember a dismissed grammar tip for the current language learning session. NecessaryNotwendig | Until the browser session ends. Remove Löschen: Close the browser session or clear this site’s data. |
flowlingu-v<service-worker version>Cache Storage | Cache the application shell and previously requested same-origin learning responses for reliability and offline use. NecessaryNotwendig | Old versions are deleted when a new service worker activates; the current version remains until site data is cleared. Remove Löschen: Clear cached site data in the browser, or uninstall the app. |
flowlingu-offline-<account>-<package digest> and flowlingu-offline-staging-<account>-<package digest>Cache Storage | Stage and retain account-bound lesson packages and generated learning media requested for offline use. NecessaryNotwendig | Until a package is replaced, its access is removed, the learner removes it, or site data is cleared. Remove Löschen: Remove the downloaded package in the app, clear cached site data, or uninstall the app. |
flowlingu-offline (packages and active-owner records)IndexedDB | Index downloaded package status, version, account binding and access lease. NecessaryNotwendig | Until packages or the active account binding are removed, site data is cleared, or the app is uninstalled. Remove Löschen: Remove downloads in the app, clear site data, or uninstall the app. |
flowlingu-offline-cache (native response records)IndexedDB | Persist account-bound lesson media responses when a native WebView does not provide Cache Storage. NecessaryNotwendig | Until the associated offline package or account binding is removed, site data is cleared, or the app is uninstalled. Remove Löschen: Remove the downloaded package, sign out, clear site data, or uninstall the app. |
flowlingu_admin_sessioncookie | Authenticate an authorized administrator in the restricted admin area. NecessaryNotwendig | Up to 45 minutes; the secure, HttpOnly, SameSite=Strict cookie is limited to /admin. Remove Löschen: Sign out or clear this site’s cookies; it also expires after 45 minutes. |
Optional categories and consent
The exact optional categories are analytics, marketing, and external-media. If introduced, each remains off until required consent is given; the control names purpose and provider and permits withdrawal as easily as acceptance. Withdrawing optional consent does not disable necessary storage or core offline lessons.
Die optionalen Kategorien sind genau Analyse, Marketing und externe Medien. Falls sie eingesetzt werden, bleiben sie bis zur erforderlichen Einwilligung deaktiviert. Zweck und Anbieter werden benannt; der Widerruf ist so einfach wie die Erteilung und beeinträchtigt notwendige Speicherung oder Offline-Lektionen nicht.
Legal basis and controls
Access to terminal-equipment information is governed in Germany by § 25 TDDDG: consent is requested where required, while storage strictly necessary to provide a service expressly requested by the user can rely on the statutory exception. You can clear site data in browser settings, remove downloaded packages in the app, or uninstall the app. Clearing necessary storage may sign you out or remove device-only progress and downloads.
Nach § 25 TDDDG wird erforderlichenfalls eine Einwilligung eingeholt; für unbedingt erforderliche Speicherung zur Bereitstellung eines ausdrücklich gewünschten Dienstes gilt die gesetzliche Ausnahme. Website-Daten können im Browser, Pakete in der App und alle lokalen Daten durch Deinstallation gelöscht werden.