Privacy policy, terms of service, cookie policy + a cookie notice

Three plain-language documents in both app languages (lib/legal.ts, rendered
by components/LegalPage.tsx): /privacy describes the local-first storage, the
key never leaving the browser and the three opt-in server copies (sync,
reminders, reports); /terms covers the GPL-3.0-only software, your own Ollama
key, fair use and liability; /cookies states what is true — no cookies at all
(no Set-Cookie, no document.cookie), strictly-necessary local storage instead,
no tracking.

A cookie notice tells every new browser the same thing once and remembers the
dismissal (freezmo.consent.v1). It sits at z-44: below the immersive study
feeds so it can never cover a session, above the phone tab bar. Settings links
all three documents. The regression suite checks the pages render with real
sections and that dismissing the notice sticks.

Version 0.1.7, SW -> freezmo-v53.
This commit is contained in:
Martin Dvořák 2026-10-12 21:26:55 +00:00
commit 464781a7fd
13 changed files with 583 additions and 2 deletions

View file

@ -1551,6 +1551,22 @@ Things I chose while building, with the reasoning:
(one fixture per format, including a text PDF and a scanned PDF), 15/15 language preservation,
24/24 activity/scoring/feed checks and 11/11 real-model browser checks.
## Legal pages
Freezmo ships its own plain-language documents, in both app languages, rendered by
`components/LegalPage.tsx` from `lib/legal.ts`:
| Page | What it says |
| --- | --- |
| `/privacy` | Local-first storage, the key never leaving the browser, the three opt-in server copies (sync, reminders, reports), what the server does *not* store, and the third parties (Ollama, your browser's push service). |
| `/terms` | Free software under GPL-3.0-only with no warranty, your own Ollama key and its limits, fair use of the instance, your content, availability and liability. |
| `/cookies` | No cookies at all (verified: no `Set-Cookie`, no `document.cookie`), what the strictly-necessary local storage holds, no tracking, and how to clear it. |
A cookie notice (`components/CookieConsent.tsx`) tells every new browser the same thing once and
remembers the dismissal (`freezmo.consent.v1`). It sits below the immersive feeds in the stacking
order, so it can never cover a study session, and above the phone tab bar. Settings links all three
documents. The documents describe what the code actually does — keep them in step with it.
## License
Freezmo is free software, licensed under the **GNU General Public License, version 3 only**