Pages
When you open one of these pages, it sends one line to this site's own server: the path of the page you opened, and the host name of the page that linked you here if your browser offered one โ reddit.com, not the link, and never a query string. Links from inside this site are recorded as self.
That line is added to a counter for the day. Nothing is kept about you: no cookie is set or read, no local or session storage is used, your address is not stored, and your browser's User-Agent string is not stored. The script that sends it, beacon.js, is twenty lines and served from this site; you can read it.
If your browser sends Do Not Track or Global Privacy Control, nothing is sent and nothing is counted.
Files that programs fetch
Some things here are fetched by software rather than by people: the Dalamud plugin repository at /mods/ffxiv/plugins.json, the Almanac's recommendations.json and leaderboard.json, the gallery's listing, and release downloads. Each of those requests adds one to a counter for the day, recorded as five things and nothing else:
- the date, in UTC;
- which kind of thing was asked for โ the plugin repository, a download, the vote page, and so on, from a short fixed list;
- a coarse class of client, worked out from the User-Agent and then thrown away: dalamud, browser, bot, other or none. The User-Agent string itself is never stored;
- whether it worked;
- the two-letter country Cloudflare already attaches to the request.
Those counters are shared by everyone who asked for the same thing on the same day. They are kept for 400 days and then deleted. There is no row anywhere that represents one visitor, one session, or one machine.
The plugins themselves do not phone home. Nothing was added to any plugin for this. What the site knows about installs is only what it can see from the outside: how many times the repository file was fetched, and by what class of client.
Requests that get refused
One thing is kept per-machine, and only for machines that are being turned away: a request that trips a rate limit, sends a body the server rejects, posts from another site, is already banned, or walks a run of URLs that do not exist. For those the server records the day, what was asked for, why it was refused, the country, the network (the AS number), how many times, and a keyed digest of the address.
The digest is a SHA-256 of the address with a secret and a week number mixed in. It is not the address and cannot be turned back into one. Because the week number is part of it, the same address becomes a different digest every seven days, so a digest cannot follow anyone from one week to the next. The whole log is deleted after 30 days.
That is enough for the owner to see an attack in progress and block it, and not enough to build a picture of anybody. Ordinary requests that succeed never appear here.
Blocking
The owner can refuse a digest, a network, a country or a User-Agent pattern; a refused request gets a plain 451 and no data about it beyond the same counters above. A block on an address digest expires at the end of the week that digest belongs to at the latest, because after that it no longer means anything.
Things you send
Nothing new is stored on this site without a signed-in account from one of two places: GitHub, or XIVAuth (FFXIV). That covers votes, notes and suggestions, screenshots shared to the gallery or to a mod's page, and Almanac benchmark results. The plugins and the command line sign in by showing a short code that you approve on the connected apps page, where you can also disconnect them.
With each thing you send, the server keeps which of the two sign-ins you used and a key for the account: a SHA-256 of the provider name and your account id there. The key does not hide who you are from the owner (GitHub ids are public), and it is what lets the owner act on an account, not an address, when something is abusive. If you linked a character, the owner sees its name and world beside what you sent; that is the only display name kept. Your login name, e-mail address and the provider's token are not stored. Things sent before this rule existed stay as they were, with no account on them.
What is never collected
- No cookies, for analytics, ever. (Signing in to vote sets a session cookie; that is the vote's own cookie and is described on that page.)
- No third-party analytics, no advertising, no tag managers, no fingerprinting, no cross-site tracking. Nothing is sold, shared or sent to anyone else.
- No IP addresses stored, for anything. No User-Agent strings stored. No full URLs, no query strings, no page contents.
- No profile of a visitor, no session identifier, no visit history, no linking of a page view to a vote, a screenshot or a benchmark result. (Those three are linked to the account that sent them, as described above; page views are not.)
- No consent banner, because there is nothing to consent to.
Cloudflare, which serves this site, keeps its own request logs and security analytics as part of running the network; the owner can see aggregate totals and attack data there. That is Cloudflare's processing, not extra collection by this site.
Some pages load their typefaces from Google Fonts: this one, every mod's vote, the gallery, the Almanac leaderboard and the plugin repository page. Your browser fetches the fonts from Google, so Google sees your IP address and which fonts were asked for, under its own policy. The mods hub and each mod's page use your system's fonts and load nothing from any other site.
Everything above is implemented in this site's Worker โ the schema is migrations/0007_analytics.sql and the code is src/analytics.js. That source is not public yet. Questions, or something that looks wrong: github.com/Spaceghost.