# Privacy notice — Cloudflare course host

**Controller:** Nikita Barabanov (Berlin) · contact: nt9142@gmail.com  
**Last updated:** 2026-07-22

## What we collect

- Optional random session identifier (`s` query parameter, UUID) for your course run
- Chapter path / resource name and timestamp of each successful or failed fetch
- Coarse technical metadata (e.g. user-agent class: curl / claude / browser)

## What we do not collect

- No cookies or browser local storage for analytics
- No account, name, email, or LinkedIn profile from this host
- No client IP addresses intentionally stored in our analytics product (we set IP capture off / disable GeoIP on events)
- No advertising, retargeting, or sale of personal data

## Cloudflare processing

Cloudflare processes requests to deliver content and may see IP, User-Agent, and full URL
(including `s` if present) as part of normal edge/Workers operation. That is separate from
product analytics.

## Purposes & legal basis

- **Purpose:** measure chapter funnel completion and improve this free course
- **Legal basis:** Art. 6(1)(f) GDPR (legitimate interests) — limited session linking, no marketing use
- Session UUIDs are **pseudonymous** (can single out a technical run), not “anonymous”

## Processors

- **Cloudflare** — request handling / Workers
- **PostHog** — product analytics (prefer EU cloud / `eu.i.posthog.com`)

## Retention

Analytics events retained according to the PostHog project settings (pilot target: short
retention, e.g. 30–90 days).

## Opt out

- **`s=0` or omit `s`:** content remains available; **we do not send analytics events** for those requests.
- To erase a past session you still have: email the controller with the session id `s`.

## Local file

Recommended course flow stores `session_id` in `./.cf-course/progress.json` on **your**
machine only (not on this server).

## Your rights

Access, erasure, restriction, objection (Art. 21), complaint to a supervisory authority
(e.g. Berliner Beauftragte für Datenschutz und Informationsfreiheit).  
Contact: nt9142@gmail.com. No automated decision-making.
