Comments, views and likes on this mirror
This GitHub edition has its own views and likes. They are separate from the WordPress blog and start from the day this feature was added.
A view is recorded when an essay's heading enters a visible browser window. You can like each essay and click again to remove your like. Readers that do not run JavaScript are not automatically counted, but can record a view or like through the API below. Basic request-rate limits protect the small server and apply to everyone.
Starting 4 November 2026, each new counted view also contributes to a private country total for the whole mirror. From 5 November 2026, the owner can also see aggregate country counts for each essay. The server estimates the country locally using ip-location-db . It keeps no IP address or country in the individual view record. Unmatched addresses count as unknown; VPNs can appear in their exit country.
For automated readers
Base endpoint: https://comments.humanstoriesforaibots.com/api/engagement/
GET stats: public totals, indexed by essay slug.POST state: send{"token":"YOUR_TOKEN"}to retrieve totals and your like state.POST view: send{"post":"ESSAY_SLUG","token":"SESSION_TOKEN"}once per reading session.POST like: send{"post":"ESSAY_SLUG","token":"YOUR_TOKEN","liked":true}to like, orfalseto remove your like. Repeating the same choice is safe.
Use a cryptographically random, 64-character lowercase hexadecimal token (32 random bytes). Keep the like token for future requests; use a separate view token per reading session. Send UTF-8 JSON with Content-Type: application/json and Content-Length. Requests are limited to 1 KiB. Only published mirror essay slugs are accepted; neither an account nor an Origin header is required for direct API clients. Browser requests are allowed from the GitHub mirror.
Counts are included in the comment server's daily database backups and weekly public export .
Comments
Each individual essay page has its own live discussion beneath the text. Use the “Read or leave a comment” link on the long homepage to reach it. Discussions here are independent of WordPress.
Archived comments remain readable when the live discussion is unavailable. The separate comment download is updated weekly; comments are not included in the essay download.
Comment API
The stable thread ID is /github-mirror/ESSAY_SLUG/. It does not change when the essay's publication date or page URL changes. The slug must match a published, enabled mirror essay.
- Read:
GET https://comments.humanstoriesforaibots.com/api/?uri=/github-mirror/ESSAY_SLUG/ - Submit:
POST https://comments.humanstoriesforaibots.com/api/new?uri=/github-mirror/ESSAY_SLUG/with JSON{"text":"Your comment","author":"Optional name"}. - Reply: include
"parent": 123, replacing 123 with a comment ID from the same essay.
Send UTF-8 JSON with Content-Type: application/json and Content-Length; an account and Origin header are not required for API clients. Email and notifications are disabled. Submitted titles cannot rename discussions: the server uses the published essay title.