Last updated 6 October 2026
Privacy notice
This is a personal site. It sells nothing, has no accounts to sign up for, and sets no cookies. What follows is what article 13 of the GDPR requires, written to be read rather than accepted unread ;)
Who is responsible
Christian Gagliardi Pengu, acting as a private individual, is the controller of the personal data described here. You can reach me at dev@christianpengu.com for anything on this page, including any of the requests listed under “Your rights” below.
There is no Data Protection Officer: this site does not meet the conditions in article 37 of the GDPR that would require one.
There are no cookies
This site sets no cookies, and there is therefore no cookie banner to dismiss. The analytics keep nothing on your device either: no cookie, no identifier, nothing in local or session storage. The only values that stay in your browser’s storage are two you set yourself: your light-or-dark choice, if you use the theme switch, and the analytics.disabled flag, if you opt out of analytics as described under “How to opt out” below. The analytics look at the opt-out flag only to know whether to stay off. Your theme choice stays with you, although switching theme is counted as an event, as described below.
There is also nothing embedded from anyone else: the fonts, the photograph and the analytics scripts are all served from this domain, and there are no social widgets, no video players, no maps, and no advertising or tracking pixels. Links to other sites, such as Medium and LinkedIn, are ordinary links — those sites hear from you only if you click through.
What is collected, and why
Audience statistics (PostHog). I use PostHog to see how many people read this site, which pages hold their attention and what they click. The script is served from this domain, and what it records travels back through this domain to PostHog’s servers in Frankfurt. For each page you read it records the page address and title, the referring site and any campaign tags in the link that brought you here, your screen and window size, your browser language and time zone, and — read from your browser’s user agent — your browser and operating system, with their versions, and your device type. It also records how long you stay on the page and how far down you scroll; each click on a link or button, with its text and address; and where on the page you click and move the pointer, which I see as a heatmap. On top of that come a few named events: which links you follow, such as navigation, articles and contacts; whether you switch theme or language, and whether you reach the contact section.
Counting visits without cookies. PostHog runs here in a mode that stores nothing on your device. To tell visitors apart, its servers combine your IP address, your user agent, this site’s domain and a random value that changes every day into a one-way hash. The daily value is deleted once that day’s visits have been processed: from then on nobody, PostHog included, can work out which hash was yours, and the same person on two different days counts as two visitors. At PostHog, your IP address serves that hash and nothing else. PostHog removes it before the visit is stored and does not use it to work out where you are, and my project is set to discard IP addresses anyway. There are no session recordings and no profiles, and nothing is combined with data from other sites.
Page speed (Vercel Speed Insights). The site is hosted by Vercel, and its Speed Insights measures how fast pages load. For each page load it records the page address, the browser, operating system, device type and country, the connection speed class, and the timing metrics themselves. It sets no cookies. Vercel states that this data is aggregated and cannot be used to identify or re-identify a person.
Server logs. Vercel also records ordinary web server information — including your IP address, user agent and the time of the request — as part of delivering the pages to you and keeping the service secure.
Email. If you write to me, I hold your message and your address for as long as the conversation is useful, and no longer.
The legal basis for all of these is my legitimate interest under article 6(1)(f): understanding whether this site is read, keeping it available and fast, and replying to people who get in touch. There is no profiling and no automated decision-making. None of this data is sold, and none of it is used for advertising. None of it is required, either: the site works the same with the statistics switched off, and you only share your email if you write to me.
Who else sees it
PostHog, Inc. handles the audience statistics on my behalf, under a data processing agreement, and stores them in its EU cloud in Frankfurt, Germany. Vercel Inc. hosts the site and handles the server logs and Speed Insights, under its own terms and privacy notice.
Both are companies established in the United States. PostHog stores the statistics in Germany, though its support staff and network providers may handle them outside the European Economic Area; Vercel may process the data it handles in the United States. Both take part in the EU–US Data Privacy Framework, which the European Commission has found adequate (article 45 of the GDPR), and the agreement with PostHog adds Standard Contractual Clauses (article 46).
My email is hosted by Proton, in Switzerland. Beyond that, I don’t share this data with anyone, and there is nothing to sell.
How long it is kept
PostHog shows the statistics in my reports for one year, the period of the plan I use. It doesn’t promise to delete older events, but they never contained your IP address or your name, and by then the daily value behind the visitor hash is long gone. Vercel keeps Speed Insights data for the period set out in its plan. Server logs are kept by Vercel for the short period set out in its own retention policy. Email is kept for as long as the conversation is useful.
How to opt out
If your browser sends a Do Not Track signal, the analytics scripts are not even loaded, so they record nothing — that setting is honoured here, where most sites ignore it.
You can also opt out explicitly, on this browser, by opening the developer console and running:
localStorage.setItem('analytics.disabled', '1')Then reload the page. From then on the analytics scripts are not loaded and nothing about your visit is sent to PostHog or Speed Insights, and the site works exactly as before. Clearing your browser’s site data undoes it.
Your rights
Under articles 15 to 22 of the GDPR you can ask me to confirm what data I hold about you and give you a copy of it; correct it if it is wrong; delete it; or restrict how it is used. You can also object, at any time, to any of the processing described here, since it all rests on my legitimate interest. Write to dev@christianpengu.com and I will reply within a month.
In practice the audience statistics carry no name and no IP address, so I usually have no way of finding “your” data among them — which is the point of collecting them that way. Email is a different matter, and I can act on it directly.
If you think I have handled your data badly, you can complain to the Italian supervisory authority, the Garante per la protezione dei dati personali (garanteprivacy.it), or to the authority in the EU country where you live or work.
Changes
If this notice changes materially, the date at the top changes with it. There is no mailing list to notify, because there is no mailing list.