Legal
Last updated: September 26, 2026
In short: this website uses no advertising cookies and no third-party trackers. We collect only anonymous, self-hosted first-party usage statistics — and only if you expressly consent beforehand. Without your consent nothing is collected, no analytics ID is set and no beacon is sent. Technically necessary localStorage (theme, language) is used without consent; no consent is required for it under § 25 (2) no. 2 TDDDG.
§ 25 (1) TDDDG generally requires consent for storing information on your device or accessing information already stored there. § 25 (2) no. 2 TDDDG provides an exception where the storage is strictly necessary for a service you have expressly requested to function.
Without consent we use localStorage only for your theme (light/dark) and language choice — a purely functional setting that you trigger yourself and that would otherwise be lost on every page load. This falls under the exception in § 25 (2) no. 2 TDDDG.
For the optional usage statistics we store random IDs in localStorage and sessionStorage only after your consent. The legal basis for this access to your device is your consent under § 25 (1) TDDDG; the subsequent processing of the anonymous statistical data is based on Art. 6 (1) (a) GDPR. You may withdraw your consent at any time with effect for the future. Declining is as easy as consenting.
Only when you click “Accept” in the banner do we collect anonymous statistical data. If you click “Decline” or make no choice, nothing is collected and no analytics ID is stored.
What we then collect: pages viewed, the referring website (its domain only) and any UTM campaign parameters, a coarse device class (desktop/tablet/mobile), a coarse browser and operating system type, the window size as a coarse category only, random visitor and session IDs, and individual interaction events (for example opening and submitting the waitlist or support form). Optionally a two-letter country code, where our hosting provides one.
What we never store: your full IP address, your full user agent, email addresses, names, your precise location or any cross-site identifier. IP address and user agent are combined server-side only transiently into a daily rotating one-way hash that allows returning visitors to be counted without setting a cookie; the source data is discarded immediately.
Where: the data resides exclusively on our own hosting (first-party, PHP/MySQL with our host in Germany). No transmission to Google Analytics, advertising networks or other third parties takes place.
How long: individual event records are deleted automatically after 90 days at the latest; only aggregate values derived from them, which cannot be related to a person, may be kept longer.
Withdrawal: you may withdraw your consent at any time via “Analytics settings” in the footer. On withdrawal we delete the random IDs stored in your browser and nothing further is collected. Withdrawal does not affect the lawfulness of processing carried out up to that point.
We use no Google Analytics, no Facebook pixel and no advertising networks. There are no cross-site profiles and no disclosure of your data to third parties for advertising purposes. Fonts are served directly by us and are not loaded from Google servers at runtime.
localStorage – theme: own website, remembers your light/dark choice, until you clear your browser storage, technically necessary, § 25 (2) no. 2 TDDDG — no consent required.
localStorage – language: own website, remembers your language choice, until you clear your browser storage, technically necessary, § 25 (2) no. 2 TDDDG — no consent required.
localStorage – consent decision (writely.consent.v1): own website, stores your acceptance or refusal so that we do not ask again and respect your choice, until you clear your browser storage, technically necessary to implement your decision (§ 25 (2) no. 2 TDDDG).
localStorage – analytics visitor ID (writely.analytics.vid): own website, random ID for counting returning visitors, set only after consent, until withdrawal or clearing of browser storage, § 25 (1) TDDDG and Art. 6 (1) (a) GDPR.
sessionStorage – analytics session ID (writely.analytics.sid): own website, random ID for counting sessions, only after consent, until the end of the browser session, § 25 (1) TDDDG and Art. 6 (1) (a) GDPR.
Statistics events (server database): own MySQL database, anonymous event data (see above), only after consent, automatic deletion after 90 days, Art. 6 (1) (a) GDPR.
Rate limit counter: briefly protects forms against automated abuse, stored only server-side and not permanently, Art. 6 (1) (f) GDPR (no access to your device, therefore not a case under § 25 TDDDG).
The Writely app sets no cookies and uses no crash-reporting SDK. Separately from this website, and with its own consent, it does collect anonymous usage statistics: you are asked once on first launch, and without your agreement nothing is collected and nothing is sent. You can change that decision at any time in the app under “Settings” › “Privacy” › “Usage statistics”. Which events are recorded, and what expressly is not, is set out in section 8 of the Privacy Policy.
Consent given on this website does not extend to the app, or vice versa: there is no shared identifier, and the two sets of statistics cannot be combined. Your app settings are stored exclusively locally on your device. The aggregated reports Apple provides to us as the developer are described in section 7 of the Privacy Policy.
Before using analytics in the app, we obtain your consent pursuant to § 25 (1) TDDDG: the app asks once on first launch, declining is as easy as accepting, and without consent nothing is collected.
Should we materially change the nature or scope of these statistics, we will update this page and — where required — obtain your consent again in advance.