Privacy

Cookie-free analytics, with clear limits.

Information under Articles 13 and 14 GDPR. Written to be checked against the code rather than believed.

Controller

Controller
Matthias Ramahi, Kempener Straße 44, 40699 Erkrath, Germany
DPO
A data protection officer is only required above certain thresholds. No data protection officer has been appointed.

Audience measurement with Umami

PerlCoders uses a self-hosted Umami instance at analytics.crawlfoundry.com. It records page views and a small set of interaction events so we can see which language, guides, tools and rebuild evidence people actually use. This is the evidence we use before keeping, translating or removing a section.

Measured
Page path and title, referrer, browser, operating system, device type, screen size, language, approximate country and the bounded events listed below.
Legal basis
Art. 6 (1)(f) GDPR — the legitimate interest in understanding and improving this non-commercial technical publication without using advertising profiles or cross-site tracking.
Endpoint
The tracking script and collection endpoint are served from analytics.crawlfoundry.com, an Umami service operated for the controller.
Retention
Analytics records are kept for trend comparison for no longer than 12 months and are then deleted.
Opt-out
The tracker respects the browser's “Do Not Track” setting. Blocking analytics.crawlfoundry.com also leaves every page and tool usable.

The analytics server necessarily receives an IP address while handling the HTTP request. According to Umami's documentation, personally identifiable information is not stored and analytics data is anonymised. PerlCoders does not assign a user ID and does not call Umami's identification functions.

Events we record

  • internal navigation, language switches, case-study links and external destination domains;
  • Era and language-choice selections on the homepages;
  • running or exporting the Legacy URL Mapper, using only result counts;
  • site-search submission, using only the result count; and
  • opening the local email handoff from a contribution form, using only the form name.

We do not send search terms, URLs pasted into the Mapper, Mapper output, form fields, email addresses, link text, URL query strings or URL fragments. The site code does not enable session replay, heatmaps, fingerprinting or advertising measurement.

What this site still does not do

These are properties of the build, not broad promises about intent.

  • No advertising and no tracking pixels. No advertising network, no retargeting, no affiliate scripts.
  • No cookies set by this site. See Cookies and storage for the full detail.
  • No embedded social or advertising code. The only externally loaded script is the disclosed Umami tracker. GSAP and the site fonts remain self-hosted.
  • No profiling and no automated decision-making in the sense of Art. 22 GDPR.

Server logs

The hosting provider records standard access logs: IP address, timestamp, requested URL, HTTP status, referrer and user agent. This is technically necessary to deliver the site and to detect abuse.

Legal basis
Art. 6 (1)(f) GDPR — legitimate interest in delivering and securing the service.
Retention
Logs are retained only as required for security and reliable delivery; the exact platform-level period follows the active Vercel account configuration and Vercel's current policies.
Processor
Vercel Inc., United States. The operator uses Vercel's data-processing terms and the safeguards described in Vercel's privacy documentation.

Web fonts

Typefaces are served from this domain. IBM Plex Sans, IBM Plex Mono and Newsreader are stored under /fonts/ and requested from here — not from fonts.gstatic.com. Loading a page therefore transmits nothing to Google.

Why this matters Requesting fonts from Google at page load transmits the visitor's IP address to Google, and LG München I held that doing so without consent infringes the GDPR (3 O 17493/20, 20 January 2022). Self-hosting removes the transfer rather than asking you to consent to it. You can verify it: open the network panel and look for any request leaving this origin. There is none.

Forms

The contribute forms — ask a question, submit a correction, submit an artifact — are processed locally in your browser. The page validates what you type and prepares an email in your mail application. Nothing is uploaded by the website, and you decide whether to send, edit or discard the message.

Purpose
Answering you, and editorial review of the submission.
Legal basis
Art. 6 (1)(a) GDPR — consent, given by submitting the form after reading the handling note.
Recipients
The editorial contact and the mail providers involved in delivery. Submissions are not published without review.
Retention
Editorial correspondence is kept only as long as needed to answer or review the submission, subject to legal retention duties.
Spam handling
A honeypot field evaluated in your browser. It does not profile you.

Labs tools

The Legacy URL Mapper and any future lab run entirely in your browser. URLs you paste are never uploaded, logged or stored. Page-level audience measurement may occur, but no pasted URL or generated result is included. Nothing is written to local storage. The analysis module ships unminified so you can verify this: search it for fetch, XMLHttpRequest, sendBeacon and localStorage and you will find none.

GitHub links

The site links to its public GitHub repository for corrections and source review. GitHub is not embedded and no GitHub code runs on this site. Data reaches GitHub only if you choose to follow one of those external links; GitHub's own privacy policy then applies.

Your rights

Under the GDPR you have the right to:

  • access the data we hold about you (Art. 15);
  • rectification (Art. 16) and erasure (Art. 17);
  • restriction of processing (Art. 18) and data portability (Art. 20);
  • object to processing based on legitimate interest (Art. 21);
  • withdraw consent at any time, without affecting processing already carried out (Art. 7 (3));
  • lodge a complaint with a supervisory authority (Art. 77) — in Germany, the authority of your federal state.

Umami records are not assigned to a named person by PerlCoders. If you contact us by email, the correspondence can of course be linked to the address you choose to use.


Last reviewed . Material changes to this document are recorded in the site changelog and announced in Pulse.