Skip to content

Privacy Policy

Last updated: September 2026

What we collect

When you subscribe to updates, we store:

  • Your email address
  • Timestamp of subscription
  • IP address (for consent verification)

We do not collect names, payment information, or any other personal data.

Why we collect it

To send you occasional email updates when new articles are published on happyin.space.

How we store it

Your data is stored on Cloudflare's infrastructure (D1 database), encrypted at rest.

Your rights

  • Unsubscribe at any time via the link in every email, or by contacting us
  • Request deletion of your data by emailing us
  • Request export of your data by emailing us

Contact

For any privacy-related questions: GitHub Issues

Anonymous usage counts

We count how the site is used; we do not build profiles of visitors.

  • Page views come from Cloudflare Web Analytics, which sets no cookies and does not fingerprint visitors. We read its daily totals by page, referring site, country and device type.
  • Return counter. To learn whether people come back, your browser keeps a small record in its local storage: the date of your first visit, the date of your last visit, and how many different days you have visited. The record itself stays on your device. Once per day of your visits, the page requests one tiny file whose name says only one of:
    • a new visit;
    • back after 1, 2-7, 8-30 or 31+ days;
    • the same, from a browser that has visited on 5 or more different days.
  • Star buttons. Clicking a "Star" button requests one tiny file that names only where the button was: the top bar, the end of an article, or the notice after copying code. The page also requests one when that notice is shown, so we can see which placement helps.
  • Crawlers and AI assistants. We read aggregate request statistics grouped by user agent, for example how often an AI assistant fetched an article on someone's behalf. These statistics contain no IP addresses.

These requests carry no cookie, no identifier and no page address. Like every request to this site, they reach Cloudflare's network with your IP address and your browser's standard headers. Our counts use the file name, the day and whether a browser sent the request; the counts hold no IP addresses.

The record expires 13 months after your first visit, and later visits do not extend it. Clearing this site's data resets it.

The return counter and the star-button counts are off when any of these apply:

  • your browser sends Global Privacy Control or Do Not Track;
  • the browser is run by automation software;
  • the browser does not let the site store data;
  • you turn it off below.

Page views in Web Analytics and the aggregate request statistics still apply. Safari deletes a site's storage after 7 days of browsing without any interaction with that site, so a Safari visitor who comes back after such a gap is counted as new.

This switch needs JavaScript.

Feedback reports

Anyone, including an AI assistant working for you, can send a report to /api/feedback: a topic that is missing, an article that is outdated or wrong, or an article that helped. We store what the report says (kind, topic, article, detail, an optional link and an optional client name such as "claude-code"), the time, whether it came as a POST or a GET, the family of the sending software read from its User-Agent (for example "curl" or "claude-user"; the full User-Agent is not kept), and a one-day pseudonym: a hash of the IP address, the date and a secret, which lets us limit how many reports one sender makes per day and cannot be turned back into the address. The IP address itself is not stored. Reports are read only by the owner's research pipeline and are never published on the site; a report's status page shows only its number, kind, date and outcome, and once it is handled the title we gave it and a link to the result, and the list of wanted topics shows titles the owner writes, never the words of a report; an article written in response cites its own sources, not the report. Reports older than 12 months are deleted automatically when the next report arrives. Do not put personal data in a report. To have a report removed sooner, open a GitHub Issue with its text and date.

Other services the pages load

Pages load fonts from Google Fonts, the 3D graph library from jsDelivr, and star counts from GitHub's API. Each of those services receives your IP address and browser headers, as with any web request.

Cookies

This site uses no tracking cookies. Cloudflare may set essential cookies for security purposes.