{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreib47y6dz2whhf5usrvqlwjzwp7jqajgqcwqlb6tbciw7oxw5sbqxe",
    "uri": "at://did:plc:cwdkf4xxjpznceembuuspt3d/app.bsky.feed.post/3lbswoi3vsc2m"
  },
  "canonicalUrl": "https://jack.is/posts/bluesky-comments/",
  "description": "A show and tell of my new comments section powered by Bluesky",
  "path": "/posts/bluesky-comments/",
  "publishedAt": "2024-11-26T01:41:27.000Z",
  "site": "at://did:plc:cwdkf4xxjpznceembuuspt3d/site.standard.publication/3mdrpafzz7c2m",
  "tags": [
    "atproto",
    "blog"
  ],
  "textContent": "After being inspired by Emily Liu's post on\nhow to do Bluesky comments, I thought I could add it here too, but with one\nminor plus to it.\n\nEmily's method was great, but required hardcoding the atproto URI into the post\nitself. That's a little hard to do with my deployment and post method, where the\nRSS feed is generated, and then that triggers an Echofeed\n(Not Sponsored) that posts to Bluesky.\n\nBecause of this, I wanted something better. Ideally, I could have it just find\nthe right post without me having to worry about it. Thanks to the power of the\nBluesky API, I'm able to do that!\n\nThe special sauce is right here in getPostAndThreadData. It runs a search for\nthe Echofeed emoji I use for all my posts (📝), looks for my author DID, as well\nas the page URL that would have been posted. It then limits it to 1, and grabs\nthat URI. Once we've got a URI, we then pass it to Emily's code like normal\nalong with some styling and design tweaks.\n\nIs it perfect? Not yet, but now it's just fine tuning some CSS styling (and also\ngetting React to be chunked a little better).\n\nIn the words of Brennan Lee Mulligan: \"GET IN THE COMMENTS!\"",
  "title": "Blog, now with Bluesky comments"
}