{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreigkwld2nqcz37hpbzl4j2rzn46waw3b3jg62sifcah4mn5sttbjxi",
    "uri": "at://did:plc:25rdn5elo5izoxrmtis34zuk/app.bsky.feed.post/3motr2uybecz2"
  },
  "coverImage": {
    "$type": "blob",
    "ref": {
      "$link": "bafkreib3vt73kofymkfxr5yuavsvucutuwbgyhs36ygerc45fwmzvq4kpu"
    },
    "mimeType": "image/webp",
    "size": 54946
  },
  "path": "/jphutchins/static-website-comments-section-5118",
  "publishedAt": "2026-06-22T01:13:50.000Z",
  "site": "https://dev.to",
  "tags": [
    "indieweb",
    "fediverse",
    "bluesky",
    "github",
    "webmentions",
    "see shellac's analysis",
    "source",
    "Bridgy Fed docs",
    "bridgy-fed FEDERATION.md",
    "snarfed/bridgy-fed",
    "IndieWeb: Bridgy Fed",
    "webmention.io",
    "webmention.io API README",
    "webmention.io #126 — avatar rehosting",
    "IndieWeb: Webmention",
    "Nicolas Hoizey — Updating webmentions on a static site",
    "Sebastian De Deyne — Webmentions with GitHub Actions",
    "Max Böck — Using webmentions on static sites",
    "Jan Monschke — Adding webmentions to your static blog",
    "representative h-card (indieweb)",
    "representative h-card (microformats.org)",
    "h-entry",
    "h-feed",
    "h-card",
    "com.atproto.identity.resolveHandle",
    "PLC Directory",
    "app.bsky.feed.getAuthorFeed",
    "Astro RSS recipe",
    "feed (jpmonette/feed)",
    "GITHUB_TOKEN no-recursion rule",
    "actions/checkout #1550 — sparse-checkout",
    "community #25702 — push-from-action triggering",
    "giscus",
    "giscus ADVANCED-USAGE (theme postMessage)",
    "sanitize-html",
    "Cassidy James — Mastodon-powered blog comments",
    "Greg Newman — Mastodon comments in Astro",
    "zerok/retoots",
    "Dan MacKinlay — Comment systems for static websites",
    "Darek Kay — Static site comments"
  ],
  "textContent": "I had read about IndieWeb, webmentions, and Fediverse a few years ago and was very excited about it! It's a monumental under taking and a great example of good (read: ethical) tech.\n\nBut I am not a web developer 🤣, and while I can appreciate what the engineers have accomplished, I was never too sure how to get it going, end-to-end.\n\nI've been burning quite a few tokens while LLMs are still basically \"free\" (see shellac's analysis), so I decided to let Claude Code slop together a plan from the following resources, particularly the posts by engineers that have implemented for their own static sites.\n\nYou can see this site's source to see how the implementation went. I suppose it's not tested until this post goes live and I see it federated.\n\nUpdate: it's working!\n\n> [!WARNING] LLM Disclosure\n>\n> The following citations were assembled from the same `claude-opus-4-8` context that provided the webmentions + giscus implementation for this blog. The implementation is the result of my feeding in a subset of those articles and iterating until I approved the design and eventually the implementation itself.\n\n##  Bridgy Fed & federation\n\n  * Bridgy Fed docs\n  * bridgy-fed FEDERATION.md\n  * snarfed/bridgy-fed\n  * IndieWeb: Bridgy Fed\n\n\n\n##  Webmentions (receiving replies)\n\n  * webmention.io\n  * webmention.io API README\n  * webmention.io #126 — avatar rehosting\n  * IndieWeb: Webmention\n\n\n\n##  Updating webmentions on a static site\n\n  * Nicolas Hoizey — Updating webmentions on a static site\n  * Sebastian De Deyne — Webmentions with GitHub Actions\n  * Max Böck — Using webmentions on static sites\n  * Jan Monschke — Adding webmentions to your static blog\n\n\n\n##  Microformats2 (h-card / h-entry / h-feed)\n\n  * representative h-card (indieweb)\n  * representative h-card (microformats.org)\n  * h-entry\n  * h-feed\n  * h-card\n\n\n\n##  Bluesky / AT Protocol (custom-handle verification)\n\n  * com.atproto.identity.resolveHandle\n  * PLC Directory\n  * app.bsky.feed.getAuthorFeed\n\n\n\n##  Feed discovery\n\n  * Astro RSS recipe\n  * feed (jpmonette/feed)\n\n\n\n##  Refresh-workflow plumbing\n\n  * GITHUB_TOKEN no-recursion rule\n  * actions/checkout #1550 — sparse-checkout\n  * community #25702 — push-from-action triggering\n\n\n\n##  GitHub-comments fallback & safety\n\n  * giscus\n  * giscus ADVANCED-USAGE (theme postMessage)\n  * sanitize-html\n\n\n\n##  Landscape / inspiration\n\n  * Cassidy James — Mastodon-powered blog comments\n  * Greg Newman — Mastodon comments in Astro\n  * zerok/retoots\n  * Dan MacKinlay — Comment systems for static websites\n  * Darek Kay — Static site comments\n\n",
  "title": "Static Website Comments Section"
}