Skip to main content

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.

FlowLingu first-party browser and device storage inventory
Key family and mediumPurpose and statusRetention and removal
flowlingu.ui-locale
cookie
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.v1
localStorage
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.v1
localStorage
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-pos
localStorage
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.v1
localStorage
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.v1
localStorage
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.device
localStorage
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-seen
localStorage
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.v1
localStorage
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-token
localStorage
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-device
localStorage
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.scenario
sessionStorage
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-checkout
sessionStorage
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_session
cookie
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.