Privacy Policy
This is a static personal website. It does not track you: no advertising, no profiling, no cross-site identifiers. It does count how many requests come from people and how many from AI crawlers, one request at a time and without any identifier that would let those requests be tied back to you (see "Counting humans and crawlers"). The only personal data it processes is what you choose to send through the contact form. Below, exactly what happens to any data.
Data controller
Controller: Marco Bellingeri. Contact: mkdevpy@proton.me.
Data collected
If you use the contact form, the name, email and message you enter are processed to deliver your request to the controller. They are not stored on the site (see Resend and Cloudflare Turnstile below). Otherwise none directly: the site is served statically. The hosting provider (Cloudflare) may keep technical access logs (IP, user agent) for security and delivery, under its own policy.
Cookies
Only one, functional and consent-exempt: `pref-lang`, which remembers your language choice. No analytics, advertising, or tracking cookies are set.
Third-party services
- Cloudflare (hosting/CDN): serves the site and may process technical logs.
- Cal.eu (booking): the calendar is embedded only after you explicitly click to load it. Until then your browser never contacts Cal.eu. Once loaded, booking data is processed by Cal.eu under its own policy.
- Resend (contact form email): when you submit the contact form, the name, email and message you provide are sent through Resend (and its sub-processor AWS SES) to deliver your request to the controller. Legal basis: legitimate interest in replying to you. Not stored on the site.
- Cloudflare Turnstile (contact form anti-spam): the form is protected against bots by Cloudflare Turnstile, which processes your IP address and browser signals. It is privacy-preserving (no cross-site tracking, no advertising data) and strictly necessary for security, so no consent is required. Details: https://www.cloudflare.com/turnstile-privacy-policy/
- Sentry (error monitoring): if the site hits a technical error, the technical details (error trace, browser type) are sent to Sentry for diagnosis. Data is processed in the EU (German region), IP collection is disabled, and nothing is used for tracking or advertising.
- Counting humans and crawlers (Cloudflare Workers Analytics Engine): every AI crawler is allowed in here on purpose, which makes a plain pageview number meaningless. So for each page request the site records three things: which family the request belongs to (a person, or a named crawler such as GPTBot or ClaudeBot), the path, and the country. No IP address, no cookie, no session identifier, no fingerprint, nothing that follows you from one page to the next or from one site to another, and no profiling. If you are a person, the only thing stored about your browser is the word "human": the User-Agent is never written down. It is kept, and only as its short product name, when the client declares itself automated in its own User-Agent (it says "bot", "crawler", "curl" and the like), which is what lets a new crawler family be spotted at all. A client we simply cannot place is recorded as "unclassified" and nothing else, because a person with an unusual browser could be in there. These are single events, one per request, not a running total; they carry a timestamp but no identifier, so there is nothing to tie two of them to the same visitor. Data is retained for three months by the platform, then deleted. Legal basis: legitimate interest in knowing what share of the traffic is automated.
- Monthly issue pipeline (server-side, not in your browser): Firecrawl scrapes public sources, Anthropic (Claude) drafts content, Supabase stores it. Sources are public pages only; no personal data is retained.
- Terminal "ask" command (RAG): if you ask the terminal a question, the text you type is turned into a vector by Voyage AI, matched against the published magazine content on Supabase, and passed to Anthropic (Claude) to generate the answer. The question is not stored by this site. For observability, technical telemetry without any content (token counts, timings, a random per-visit session id) is sent to Langfuse (EU): neither the question nor the answer ever leaves for it. The form is protected by Cloudflare Turnstile and a per-IP rate limit.
AI-generated content
The archive’s “monthly issue” is generated with AI assistance (Anthropic/Claude) and always reviewed by a human before publishing. Source material is limited to public pages, respecting robots.txt and terms of service.
Non-EU transfers
Some providers (Anthropic, Cloudflare, Resend/AWS) are US-based. Transfers rely on their respective safeguards (Standard Contractual Clauses / adequacy frameworks).
Your rights
Under the GDPR you may request access, rectification, erasure, restriction, portability, or object to processing. Write to mkdevpy@proton.me.
Last updated: 2026-08-12