guest@mozolewski.eu~/privacy
guest@mozolewski.eu:~$cat privacy.txt

What this site does with your data

This is the information notice required by Article 13 of the GDPR. It is written against what the code actually does rather than against a template, and the last section tells you how to check every claim on this page without taking my word for it.

Last updated: 9 September 2026.

[  OK  ] No cookies. Nothing is written to your device and nothing is read back from it. That is why there is no consent banner.
[  OK  ] No accounts, no login, no contact form, no comments, no newsletter.
[  OK  ] One page counter, from Cloudflare, and it is cookieless.
[  OK  ] Hosts outside this domain appear in the code, and not one of them is contacted until you press a button or type a command.
[ INFO ] No Google Analytics, no Tag Manager, no Google Fonts, no ad network, no social embed, no view counter. The typeface and every image are served from this domain, and your browser makes no request to any Google host at all.
[ INFO ] This domain is registered in Google Search Console, which runs the other way round: a report Google sends me about its own search results, not a script Google runs on you. What that means.

Who is responsible

Marcin Mozolewski
Warsaw, Poland
contact@mozolewski.eu

I am the controller of the personal data described below, within the meaning of Article 4(7) GDPR. There is no data protection officer: this site meets none of the conditions in Article 37(1) that would require one. Write to the address above about anything on this page.

What happens when you open a page

Two things, and both of them are Cloudflare.

Serving the page

mozolewski.eu is hosted on Cloudflare Pages and Cloudflare is the CDN in front of it, so every request reaches Cloudflare's servers before it reaches anything of mine. In doing that, Cloudflare processes your IP address, the request headers your browser sends (user agent, language, referring page), the URL you asked for and the time you asked for it. This is unavoidable for any hosted website: it is how the bytes get to you, and how the site is kept available.

Counting the page view

Cloudflare Web Analytics is switched on. Cloudflare's edge injects a small script into every HTML response it serves — including this page — which reports that a page was viewed, along with the referring page, a country derived from your IP address, and page-performance timings. Cloudflare states that it "does not use any client-side state, such as cookies or localStorage, to collect usage metrics" and that it does not "'fingerprint' individuals via their IP address, User Agent string, or any other data for the purpose of displaying analytics".

What reaches me is a count. I cannot see who you are, I cannot follow you between visits, and I cannot follow you to any other website.

Cloudflare, Inc. is in the United States. It is certified under the EU-U.S. Data Privacy Framework, and its Data Processing Addendum incorporates the European Commission's Standard Contractual Clauses as a fallback if that certification ever lapses.

What your browser is asked about, and never tells anyone

This one is on page load, not behind a button, so it belongs here rather than further down. The ~/visitor panel shows your timezone, browser language, screen size and whether your system asks for a dark theme. Those are read on your device the moment the page runs, printed straight back to you, and never transmitted — they are there to make the point that any website can see them without asking. They do not reach me, Cloudflare, or anyone else. Your IP address is a different matter and is not among them: that is the button, and it is the section below.

Two smaller things the edge adds

Both are named here because the last section invites you to read the network tab, and you would otherwise find two requests this page had not mentioned. Both are served from this domain, and neither is a new recipient of anything.

What does not happen

Where Google does come in

Saying "no Google Analytics" and stopping there would be a half-truth, so here is the whole one. This domain is registered in Google Search Console. That is not a tag, a script or a cookie — it is a report, and it runs in the opposite direction to analytics.

Put plainly: if you arrived here from a Google search, Google already knew that before this page loaded. Opening it adds nothing to what Google has, and sends Google nothing new.

What happens only if you ask for it

Parts of this site can reach outside this domain. Each of them waits for you, and says so before you act.

The lookup in ~/visitor

That section shows a run the lookup button and, above it, a note naming everyone the press will contact. If you press it:

Legal basis: Article 6(1)(a) GDPR — your consent, given by pressing a button that names all three recipients before you press it. Nothing about the lookup is stored anywhere: reload the page and it is gone. To withdraw your consent, do not press it again — there is nothing for me to delete, because nothing reached me.

Transfers: Kloudend states that transfers outside the European Economic Area are governed by the Standard Contractual Clauses under its data processing agreement. The OpenStreetMap Foundation is in the United Kingdom, which the European Commission has found to provide an adequate level of protection. ipwho.is publishes no company details, which is a real limit on how much I can tell you about it — it is a fallback only, and it is named to you before the press precisely so the choice stays yours.

systemctl in ~/shell

Typing systemctl at the prompt checks whether two hosts answer. One is this site itself. The other is github.com, which receives your IP address exactly as any request to GitHub would. The command's own help line names it before you run it. Legal basis: Article 6(1)(a) GDPR, your consent, given by typing it.

If you email me

contact@mozolewski.eu is a plain mailto: link. Pressing it opens your own mail program; nothing is submitted through this site. If you write to me, I process what you put in the message and the address you sent it from, for as long as the exchange and any follow-up need it.

Where the data goes

Cloudflare, Inc.
when
every page view, this page included
what
IP address, request headers, URL, time; page count and performance timings
why
hosting, CDN, security, audience count
basis
Art. 6(1)(f) — legitimate interest
country
United States
safeguard
processor under Cloudflare's DPA; EU-U.S. Data Privacy Framework, with the Standard Contractual Clauses as fallback
Kloudend, Inc. — ipapi.co
when
only after you press run the lookup
what
your IP address
why
resolving it to an approximate city and network
basis
Art. 6(1)(a) — your consent
country
United States
safeguard
Standard Contractual Clauses under Kloudend's data processing agreement
ipwho.is
when
only after that press, and only if ipapi.co does not answer
what
your IP address
why
the same lookup, when the first host is down
basis
Art. 6(1)(a) — your consent
country
not published by the operator
safeguard
named to you before the press; reached only as a fallback
OpenStreetMap Foundation — tile.openstreetmap.org
when
only after that press
what
your IP address, as each map tile is fetched
why
drawing the map
basis
Art. 6(1)(a) — your consent
country
United Kingdom
safeguard
European Commission adequacy decision
GitHub, Inc.
when
only after you type systemctl in the shell
what
your IP address, from one request to github.com
why
checking that the host answers
basis
Art. 6(1)(a) — your consent
country
United States
safeguard
GitHub's own terms; nothing of yours is sent beyond the request itself, and its response is opaque to this page
Apple Distribution International Ltd.
when
only if you send me an email
what
your message and the address you sent it from
why
delivering the mail I answer
basis
Art. 6(1)(f), or 6(1)(b) before a contract
country
Ireland
safeguard
within the EEA

Your rights

Under the GDPR you may ask me to give you access to your data (Art. 15), correct it (Art. 16), erase it (Art. 17), restrict its processing (Art. 18) or hand it over in a portable form (Art. 20). You may object at any time to anything done on the basis of legitimate interest, the page counter included (Art. 21). Where the basis is your consent — the lookup, the shell command — you may withdraw it at any time, and the withdrawal does not affect what was lawful before it.

Write to contact@mozolewski.eu to exercise any of them.

One caveat, and it is an honest one rather than an evasion. Because this site stores nothing, sets no identifier and keeps no record that could be tied to you, I usually cannot tell which data is yours. Article 11 GDPR covers exactly that situation: I am not obliged to collect extra information about you purely in order to find you, and without something that lets your data be located I may not be able to act on a request for access, erasure or portability. Your right to object does not depend on any of that, and it costs nothing to exercise.

You also have the right to complain to a supervisory authority (Art. 77). Mine is the Polish one:

President of the Personal Data Protection Office
Prezes Urzędu Ochrony Danych Osobowych
ul. Stawki 2, 00-193 Warszawa, Poland
uodo.gov.pl

Verify any of this yourself

None of the above needs to be taken on trust.

Changes

This notice changes when the site does — a new outside host is not allowed to arrive without it. There is no version history here because the repository is the version history: the date at the top is the date this file last changed, and git log public/privacy.html shows exactly what changed and when.

guest@mozolewski.eu:~/privacy$cd ~