{
  "$type": "site.standard.document",
  "content": {
    "$type": "site.standard.document#content",
    "markdown": "\nDue to the fact I haven't really been focusing mainly on programming lately and I wanted this website to get a fresh coat of paint to reflect that, I was looking at some general ways to improve the site as I did so. That led me to be curious about the possibility of ATProto integration with the blog (the one you're reading right now). So I looked up whether there was anything that already integrated Astro with the ATProtocol, and found there were a few such integrations. Notably there was [one](https://github.com/musicjunkieg/astro-standard-site) by [Bryan Guffey](https://bsky.app/profile/chaosgreml.in), which I spent some time working on integrating before deciding that until it was updated some more (which it looks like it will be), I wasn't going to get exactly what I was looking for with it. That said, it's a very useful package, and as it gets updates I might go back to using it to avoid the weird janky setup I've created on my own. But what is it that I want? Well, primarily I want syncing between [standard.site](https://standard.site) and my blog posts (bidirectionally), and I want comments on all my new blog posts via Bluesky.\n\nBoth of those are kind of possible with just the aforementioned package, but there were some things (especially because I'm on Astro 6 now) that were too complicated for it to be worth doing with that package. Also, I did end up completely breaking the static rendering on the site for a day or two and I'm still not entirely sure why. Anyway, the point is that I ended up with my own little homegrown solution. I also would be remiss if I didn't point out that I took this opportunity to migrate the git forge I was using over to [tangled](tangled.org), which is also on ATProto.\n\n## Bluesky Comments\n\nMy implementation is pretty similar conceptually to the original package in the sense that I post a link to the blog post on Bluesky, set it as the `bskyPostUri` in the post's frontmatter, and then the comments to the Bluesky post populate as the comments to the blog post. That said, I have a slightly different system for the actual fetching of the comments because I want them to be able to update without having to rebuild the site. So I'm using SSR and Server Islands to populate the comments on each relevant blog post at request-time.\n\n## standard.site Syncing\n\nI am not 100% sure what I am going to do with this, but as the lexicon and the ecosystem around it grow, I'm hoping to be able to basically use the ATProto as a CMS that automatically syncs to my blog.\n"
  },
  "links": [
    {
      "$type": "site.standard.document#alternateLink",
      "label": "sammyshear.com",
      "url": "https://sammyshear.com/blog/adding-bluesky-comments-to-this-blog"
    }
  ],
  "path": "/blog/adding-bluesky-comments-to-this-blog",
  "publishedAt": "2026-06-09T00:00:00.000Z",
  "site": "https://sshear.dev",
  "tags": [
    "Programming"
  ],
  "textContent": "Due to the fact I haven't really been focusing mainly on programming lately and I wanted this website to get a fresh coat of paint to reflect that, I was looking at some general ways to improve the site as I did so. That led me to be curious about the possibility of ATProto integration with the blog (the one you're reading right now). So I looked up whether there was anything that already integrated Astro with the ATProtocol, and found there were a few such integrations. Notably there was one by Bryan Guffey, which I spent some time working on integrating before deciding that until it was updated some more (which it looks like it will be), I wasn't going to get exactly what I was looking for with it. That said, it's a very useful package, and as it gets updates I might go back to using it to avoid the weird janky setup I've created on my own. But what is it that I want? Well, primarily I want syncing between standard.site and my blog posts (bidirectionally), and I want comments on all my new blog posts via Bluesky.\n\nBoth of those are kind of possible with just the aforementioned package, but there were some things (especially because I'm on Astro 6 now) that were too complicated for it to be worth doing with that package. Also, I did end up completely breaking the static rendering on the site for a day or two and I'm still not entirely sure why. Anyway, the point is that I ended up with my own little homegrown solution. I also would be remiss if I didn't point out that I took this opportunity to migrate the git forge I was using over to tangled, which is also on ATProto.\n\nBluesky Comments\n\nMy implementation is pretty similar conceptually to the original package in the sense that I post a link to the blog post on Bluesky, set it as the bskyPostUri in the post's frontmatter, and then the comments to the Bluesky post populate as the comments to the blog post. That said, I have a slightly different system for the actual fetching of the comments because I want them to be able to update without having to rebuild the site. So I'm using SSR and Server Islands to populate the comments on each relevant blog post at request-time.\n\nstandard.site Syncing\n\nI am not 100% sure what I am going to do with this, but as the lexicon and the ecosystem around it grow, I'm hoping to be able to basically use the ATProto as a CMS that automatically syncs to my blog.",
  "title": "Adding Bluesky Comments to this Blog"
}