Privacy

  • Your data
  • 5 min

No accounts, no tracking, no cookies. Who receives what — the hosting provider and a cookieless page counter.

On this page

Pre-launch draft: written, not reviewed by a lawyer.

The short answer

We do not ask you for anything, and we do not follow you around. There are no accounts, no forms, no cookies, no advertising, no third-party scripts, and — as of the date at the bottom of this page — no analytics.

That last one is a statement about today, not a promise about forever — and the promise to update this page before anything changes is now enforced by the build, not by memory: this page carries a machine-checked claim, and switching analytics on without editing the text fails the build.

Analytics

Since 4 September 2026 the site uses Umami Cloud (Umami Software, Inc.). The script is served from cloud.umami.is, and data is processed on the provider’s European instance.

The provider is a cloud service, not our own server, which makes it a second processor alongside the host. A self-hosted counter was the original plan; the decision was changed deliberately and recorded in adr/0009, because running and maintaining one is work a single maintainer does not have.

  • Cookieless. No cookie, no localStorage, no fingerprint, and therefore no consent banner: nothing is written to or read from your device.
  • No visitor identifier. Not a temporary one, not a hashed one. Two visits cannot be joined into a session history, and that is a deliberate limitation we accept.
  • Your IP address. Like every server in existence, the counter receives it with the request. The provider states that it neither stores it nor builds a profile from it; we cannot verify that from the inside and so do not present it as our own undertaking. Ours is narrower and checkable: nothing beyond the list below is ever sent, and that list is closed and held by a build gate.
  • Do Not Track and Global Privacy Control are honoured before the first request — if your browser sends either, nothing is sent at all.
  • What is measured: which page was opened, and a short list of named actions — an install command copied, a code block copied, the playground used, the theme or language switched, a link followed off the site. Each carries the page and, at most, which button it was. Nothing about you.
  • What is never measured: mouse movement, session recordings, heatmaps, scroll depth.

The counter only receives events from pages on granularity.tech. Preview deployments, the nightly staging build and local builds never reach it — the restriction sits on the script tag itself.

The second counter is the host’s, described below in the Cloudflare section. It accepts no custom events: it counts page views and loading speed.

If you would rather not take part: turn on Do Not Track or Global Privacy Control and the portal sends nothing at all, or block cloud.umami.is. The site behaves identically either way — analytics affects nothing on the page.

What we hold about you

Nothing. There is no database, no account, no profile, no mailing list, no contact form.

The one way we can learn anything about you is if you write to us yourself — by email, or by opening an issue on GitHub. Then we have what you sent us, for as long as the correspondence is useful.

What the hosting provider sees

The site is served as static files by Cloudflare, Inc. (Cloudflare Pages). Like every web server on earth, theirs receives the request: the address you asked for, your IP address, your browser’s user agent, and the time. Cloudflare processes this to deliver the page and to protect the service from abuse, under their privacy policy.

We do not receive those logs, do not analyse them, and do not join them to anything.

Cloudflare also counts traffic. Besides serving pages it has its own statistics turned on — Cloudflare Web Analytics. It is likewise cookie-less and carries no visitor identifier, and it measures what our own counter cannot: loading speed for real people, on real devices and real connections. The portal does not add it — Cloudflare injects the script at the edge, after the build has already shipped.

There are therefore two recipients of data, and both are named: our counter and the host. Neither sets a cookie or creates an identifier.

Third parties on the page

None. Fonts are served from this domain, not from a font CDN. There is no embedded video, no comment widget, no chat, no tag manager, no pixel. Every byte the page loads comes from granularity.tech.

Links leading off the site are ordinary links; once you follow one, that site’s own policy applies.

What we deliberately do not do

  • No cross-site tracking, no advertising identifiers, no fingerprinting.
  • No persistent visitor identifier of any kind.
  • No selling, renting or sharing of data — there is none to sell.
  • No profiling and no automated decision-making.

Your rights

Under the GDPR you have the right of access, rectification, erasure, restriction, portability and objection. We answer such requests, and in the usual case the honest answer will be that we hold nothing about you. Write to [email protected]; we aim to reply within 30 days.

If you believe your data has been mishandled you may complain to your national data protection authority.

Children

The site is documentation for software developers. It is not directed at children and collects nothing from anyone, of any age.

When this page changes

The date at the bottom is not decoration. Any change to what is collected takes effect only after this page says so — the page is updated first, the change ships second.

Contact

[email protected]. For security reports use the separate address on the Security page.