graycat.app
Website Privacy
Short version
The GrayCat website uses a first-party visit counter to show cumulative recorded visits and continent-level distribution in the home-page footer. It sets no analytics cookie, loads no third-party analytics script, and does not store raw IP addresses.
How one visit is counted
When the home page opens in a browser, it sends one request to a same-origin Cloudflare Worker. As with an ordinary website request, the Worker briefly receives the source IP while handling that request. It immediately combines the UTC date and IP with a key stored only as a Cloudflare Secret, calculates a keyed HMAC-SHA-256 daily digest, and discards the raw IP. Without that secret, the digest cannot be directly matched to the original address; this is pseudonymous deduplication, not complete anonymization.
The same public IP is counted at most once per UTC day. This is a network-and-day deduplicated visit count, not an exact person count: households, institutions, VPNs, and mobile networks may share one public IP.
What is stored
- The UTC date, keyed daily digest, Cloudflare-provided continent code, and first-recorded time are retained for about 8 days and cleared by an hourly scheduled task to prevent refreshes from being counted repeatedly.
- Cumulative visit and continent totals are retained as aggregates without a personal identifier.
The counter does not store raw IP addresses, locations below continent level, cities, coordinates, page-view history, referrers, browser fingerprints, advertising identifiers, or user-submitted content. Small regional samples are not published, and low-count regions are combined into Other.
Purpose and public display
The data is used only for the home-page visit total, regional comparison, and duplicate prevention. The public page shows only continent-level aggregates after a privacy threshold is reached, never individual visit records.
Cloudflare
The GrayCat website is served through Cloudflare Workers and Static Assets, so network requests are processed by Cloudflare. The counter uses Cloudflare D1 for storage; its digest key is stored as a Cloudflare Secret and is not written to site code or the database.
Apps are unaffected
This counter runs only on the website home page. It is not added to GrayCat Markdown, GrayCat Text, GrayCat PDF, or KneeDaily and does not change their published privacy policies.
Contact
For website privacy questions, email support@graycat.app.