Privacy
Last updated: April 12, 2026
This is a personal portfolio and writing site. It doesn't sell anything, doesn't run ads, and doesn't have user accounts. This page explains exactly what data touches my servers when you visit, why, and how to opt out.
What I collect
When you load a page, a small script records the following and sends it to my own server:
- The page you viewed (e.g.
/writing/slow-tools) - How far down the page you scrolled, rounded to 25% / 50% / 75% / 100%
- Roughly how long you stayed, rounded to buckets (e.g. "under 30 seconds," "1–2 minutes")
- Your device type (mobile, tablet, desktop)
- Which category your referrer came from (search, social, aggregator, direct, other) — not the exact site
- Your country, derived by Cloudflare at the edge
- Whether you clicked internal links, and which ones
- Which external sites you followed me to
That's the complete list. Each pageview is stored as a single row with no link to any other pageview, no identifier, and no way for me to tell one visitor from another.
What I don't collect
- No cookies set by this site
- No IP addresses stored in my analytics database
- No user IDs, fingerprints, or session identifiers
- No form data, no typing, no mouse movement recordings
- No third-party trackers — no Google Analytics, no Meta Pixel, no Hotjar, no anything
- No exact timestamps — stored rounded to the nearest minute
Small exceptions: your local preferences
The site saves two preferences in your browser's localStorage,
both for UI personalization only. Neither is sent to my server or used for
tracking, and clearing site data removes them:
obs-theme— your light/dark mode choice.obs-font— your reading-font choice (default, OpenDyslexic, or Atkinson Hyperlegible).obs-reading-size— your text-size preference (small, regular, or large).obs-leading— your line-spacing preference (tight, comfortable, or loose).
All four are set via the accessibility page.
Why
I want to know whether my writing is legible and whether the site's design is working. Specifically: where readers drop off in long articles, whether the navigation is discoverable, whether the mobile layout holds up. That's it.
Legal basis (GDPR)
I rely on legitimate interest under Article 6(1)(f) GDPR for the minimal analytics above. Because nothing is stored on your device and no identifiers are used, EU ePrivacy rules don't require a consent banner for this collection. If you'd prefer I didn't count your visit, see Your choices below.
Who else processes your data
This site is hosted on Cloudflare Pages with data stored in Cloudflare D1, both operated by Cloudflare, Inc. (US). Cloudflare processes connection metadata (including IP addresses) at the edge for routing, security, and DDoS protection under their standard Data Processing Addendum. Transfers to the US are covered by Cloudflare's Standard Contractual Clauses. No other processors are involved.
How long data is kept
Analytics rows in my database are kept for 90 days, then deleted. Cloudflare's own infrastructure logs are retained per their policy, typically under 30 days.
Your choices
- Global Privacy Control: If your browser sends a
Sec-GPC: 1signal (Firefox, Brave, DuckDuckGo browser, and others), your visit isn't recorded at all. The server drops the request before it touches the database. - Block the script: uBlock Origin, Firefox Enhanced Tracking
Protection, or any content blocker that blocks
/api/txon this domain will prevent collection. - Opt out manually: email me at the address below and I'll exclude your traffic going forward by country or referrer category. (I can't exclude you individually because I don't know who you are.)
Your rights under GDPR
You have rights to access, correct, erase, restrict, or object to processing of your personal data, and to lodge a complaint with your local data protection authority. Because I don't store identifiers, I can't look up "your data" — there's nothing linked to you to return or delete. If you want me to stop collecting your aggregate visits, see Your choices above.
Changes
If I change what's collected, I'll update this page and bump the Last updated date. Substantive changes will be called out in the footer for 30 days.
Contact
Animesh — hello@animeshdesigns.com