Privacy

This site counts its readers and the bots that fetch it, on its own server. It sets no cookies for readers and keeps nothing that could follow you to another site.

A page view

When a page loads, a small script from this site, count.js, makes two requests to ringshadow.com. The first one asks for a visit counter. Your browser keeps the answer in its own cache, the way it keeps a picture, and sends its date back with the next page. That date says whether this is your first page today, your second, or a later one, which is how the site counts visitors without a cookie.

The second request reports the page's path, the host name of the site that linked to it, without the rest of its address, and a campaign tag if the link carried one (utm_source and utm_medium). The server adds the country that Cloudflare reads from the connection, and from your browser's User-Agent only the browser's name, its major version and whether it is a desktop, a phone or a tablet. Your IP address and the full User-Agent are not stored.

A click on the download button and the first play of a video on a post are counted the same way, as events.

Bots and other agents

Every fetch of a page, the feed, llms.txt, llms-full.txt or a Markdown copy is also counted on the server. When it comes from something that is not a browser (a search crawler, an assistant fetching a page for someone, a feed reader), the count keeps its full User-Agent, the path and the answer's status, so the developer can see which agents read the site and label them. A browser's own page fetch is counted with the browser's name only.

The request log

Every request the site's server answers is also logged, once: the time, the method, the path without anything after a question mark, the status, the size and type of the answer, how long the server took, the country, the host of the referring site, and the User-Agent (only the browser's name for a browser). The bodies of requests and answers, passwords and cookies are never logged. Pictures, fonts, styles and scripts are served without reaching that server and are not logged.

Where it is kept, and for how long

The numbers stay in the site's own Cloudflare account, in Workers Analytics Engine, and nobody else gets them. There is no third-party script, and the page's security policy lets it talk only to ringshadow.com. Single hits and the request log are kept three months, then dropped. Each day's totals (views, visitors, requests by status, and the counts per page, referring site, country, agent and event) are kept in the site's database after that.

Not being counted

The script counts only on ringshadow.com. With JavaScript turned off, the only record is the page fetch itself, and for a browser that is its name. Adding ?nocount to an address skips that page.

The one cookie the site sets belongs to its admin page and is set only when the admin signs in. The admin's own visits are not counted.

Questions go to the project's issues on GitHub. The code that does all of this is in the repository, under website/src/.