Privacy Policy
Last updated: 2026-09-04. This is a personal, non-commercial website. It runs no ads, sells nothing, and shares no data with advertisers. This page explains the few things it does collect and why — which is also why you see no cookie banner: nothing that requires consent is stored on your device. This website is open source: you can review exactly how your data is handled in its public repository at github.com/pan-nie/nathanpenny.fun.
What this site collects
Comments (when you post one). The name and text you write are shown publicly on the site. Your email address is stored with the comment but never displayed, never used for mailing, and never shared. Comments live in a Cloudflare D1 database and are removed on request (see Your choices below). Before a comment is accepted, Cloudflare Turnstile runs a human check, and per-IP rate limiting blocks spam floods. To keep abusive senders out, each submission also stores a one-way, salted hash of the sender's network address — never the address itself — which the site owner can blocklist.
First-party analytics (on every page). This site measures its own traffic with a small script that reports each pageview to this site's own Cloudflare Worker — no third party is involved. Each pageview records: the page path, the site that referred you (if any), an approximate country derived by Cloudflare's edge, your device type and browser/OS as derived from the user-agent string, your browser language and timezone, and how long the page stayed visible.
There are no analytics cookies and no cross-site tracking. Your IP address is never stored: it is combined with the user-agent string and run through a one-way salted hash to produce a pseudonymous visitor id, which lets the site tell visits apart without knowing who you are. The same browser on the same network keeps the same id; a different device, browser, or network produces a different one. A session id lives in your browser's sessionStorage for the current tab only and disappears when the tab closes. The site owner keeps a private dashboard of this data; analytics records are deleted automatically after 13 months.
Google Analytics 4. A standard GA4 measurement is also loaded, but only after the page has fully loaded and the browser is idle — it never delays the page. Google sets its own cookies and processes the data under Google's policies. In some regions (for example mainland China) Google's script is unreachable and simply never loads, in which case only the first-party analytics above apply.
Cloudflare Web Analytics & hosting. The site is served through Cloudflare (and GitHub Pages), which necessarily process request data such as your IP address and user agent in transit, and Cloudflare provides a separate cookieless, privacy-friendly analytics counter. This processing is inherent to serving any website and is governed by Cloudflare's own privacy policy. Videos on the Creations page may be embedded from Bilibili or YouTube (the latter via its no-cookie player) — those players are delivered by the platforms themselves and are governed by their own privacy policies.
Local storage
The only things this site stores in your browser are functional: your light/dark theme preference in localStorage, and the session id mentioned above in sessionStorage. No advertising or tracking identifiers are ever stored. This functional storage is why the site works without a consent banner.
What this site never does
- No ads, no affiliate links, no data selling or data brokerage.
- No cross-site tracking or advertising profiles.
- No storing of your IP address in its own database.
- No email lists — your address is never used to contact you.
Your choices
Block analytics with any browser setting or extension if you prefer — the site works fully without it. To have your comment, or any stored data, deleted, email hello@nathanpenny.fun from the address you commented with. Analytics data cannot be traced back to you and expires automatically after 13 months.
Changes
If this policy changes materially, the "last updated" date above will change with it.