Building Bluesky comments for my blog

(natalie.sh)

174 points | by g0xA52A2A 3 hours ago ago

73 comments

  • maelito 39 minutes ago ago

    Bluesky is very useful to store information on user's existing accounts.

    I'm currently building a review system for my open source Web map https://cartes.app, based on Bluesky. Not trivial though, you have to create a lexicon and maintain a DB based on the Bluesky stream.

  • susam an hour ago ago

    Interesting article! I always enjoy reading how people build and maintain their independent personal websites. This post starts with the "Comment System Problem" and mentions four possible solutions, but I think there's a fifth that has worked well for me.

    After spending too much time fiddling with third-party comment systems, I ended up building my own [1]. It's pretty barebones, just does what I need, and nothing more.

    Each comment is written to a text file for manual review, so I don't have to worry about spam, cross-site scripting, or irrelevant comments. I usually check them on weekends and add them to my blog.

    Comments are stored as plain HTML files, and my static site generator [2] builds the site along with the comment pages [3]. So in a way, it's also a static comment pages generator.

    This setup doesn't meet the five attributes (no infra, rich content, real identity, etc.) in the second section of the article, so it wouldn't suit the author's needs, but it has worked quite well for me. I've been using it for at least four years (perhaps much longer, since my old PHP website did something similar), and I've been quite happy with it.

    [1] https://github.com/susam/susam.net/blob/main/form.lisp

    [2] https://github.com/susam/susam.net/blob/main/site.lisp

    [3] https://susam.net/comments/

    • AndrewStephens 24 minutes ago ago

      I like your solution - I think it is perfectly fine for a low traffic blog.

      Personally I find comments not worth the bother and purposely did not include them on my site. My blog is an expression of my personality and the idea of other peoples words appearing on my pages seems weird to me.

      I know people enjoy feedback, which is why I have taken to emailing bloggers whose work I enjoy instead of leaving meaningless comments.

    • mighmi an hour ago ago

      Taking comments via a (n email) form, which you then manually add under the article's html/markdown is nice.

  • ulrischa 3 hours ago ago

    The Bluesky ecosystem is so cool. I read this approach presented here some times ago. The only thing that could be problematic: you need to make a posting on Bluesky for all your Web pages to use the commenting system. And a webcomponent for this would be nice

  • nonethewiser 2 hours ago ago

    >I’ve been running my blog without decent comments for years.

    I only see 2 posts on the entire blog, both from 2025 (and one is this post).

    • abhinavk an hour ago ago

      They had another blog as per archive.org

  • axelpacheco 35 minutes ago ago

    Composable internet will win over end to end closed systems

  • kdrvr 2 hours ago ago

    Feels like Bluesky is single-handedly making the Internet an open for new ideas again

    • UtopiaPunk 2 hours ago ago

      I hesitate to give one corporation or entity too much credit, but at least for the moment, the community on Blueksy is pretty fun. Admittedly, I was a fan of the Twitter of old, and that seems to be the crowd that is most active on Bluesky now. We'll see where it goes.

    • sugarpimpdorsey 2 hours ago ago

      Unless of course you say something that pisses off the BS mod cabal, or you are deliberately mass-reported by some clique of users, then your account will be immediately banned. Or even worse, your account made it onto some pre-shared blacklist so you'll be invisible before you say a word.

      BS is an attempt to recreate an even more toxic environment than old Twitter ever was.

      Which is all very high school cafeteria-drama.

      • freshchilled an hour ago ago

        > Or even worse, your account made it onto some pre-shared blacklist so you'll be invisible before you say a word.

        Seems to me like people who subscribe to a blocklist that I'm on aren't people I want to be visible to/communicate with.

      • TimorousBestie 2 hours ago ago

        > Or even worse, your account made it onto some pre-shared blacklist so you'll be invisible before you say a word.

        The various blocklists are opt-in; you’ll only be invisible to their respective subscribers. Only the default bluesky moderation list is global, and they only adjudicate ToS violations (like every other social network).

        Community moderation is quite distributed and egalitarian on bsky, perhaps even more so than the benevolent dictatorship used here (which obviously doesn’t scale).

        > BS is an attempt to recreate an even more toxic environment than old Twitter ever was.

        On Bsky I have yet to have anyone out of the blue, with no prior interaction, call me a slur or racial epithet. Can’t say the same about my old Twitter account.

        • OneDeuxTriSeiGo 29 minutes ago ago

          > Only the default bluesky moderation list is global

          And of course it's also opt in as well. Just the default bluesky client does that by default. Any third party client (ex: https://deer.social or https://zeppelin.social) can opt-out of "default moderation". And technically you could use a userscript or even potentially a ublock rule/filter to disable default moderation (just like you can to disable regional moderation or age verification).

          • cubefox 14 minutes ago ago

            > And of course it's also opt in as well. Just the default bluesky client does that by default.

            This means it's opt-out. Not opt-in.

          • TimorousBestie 27 minutes ago ago

            Yep, this is true, thanks for the clarification.

    • toomuchtodo 2 hours ago ago

      "Protocols, not platforms." As the kids say, "build mode" but building what can't be captured, enshittified, etc.

  • tomgag 22 minutes ago ago

    Interesting. Could something like this be done for Mastodon / ActivityPub?

  • aranw 3 hours ago ago

    Only thing I’m wondering about with this is how do you moderate the comments? Delete spam or rude comments?

    • jszymborski 3 hours ago ago

      At least for Mastodon comments, there are two easy ways:

      - Run the comments on an instance you moderate

      - Even better, only show comments that your account has favourited.

      More details on the last one here:

      https://hci.social/@ryanatkn/111983960076822015

      • aranw 3 hours ago ago

        > Even better, only show comments that your account has favourited.

        Yeah I like this solution. Might try explore this approach

        • _hyn3 3 hours ago ago

          How is this different from any other self hosted solution; you've still got to manage spam yourself. Might as well go self hosted.

          • eat_veggies 3 hours ago ago

            Spam isn't the only challenge of going self-hosted and it's cool to tie into an existing ecosystem for identity. Also it's pretty neat that people can engage outside of your website while you still get to pick what gets surfaced on your own website.

          • aranw 3 hours ago ago

            I have a static site. Self hosted would mean I’d need a database and I think right now I want to keep the static generation. Happy to try self hosted in future and write my own solution but right now I got plenty of side projects

    • jameshart 3 hours ago ago

      Bluesky allows thread owners to hide posts from the thread.

      Presumably the blog interface itself can choose to simply not surface hidden replies at all; if you view the thread via a different client (eg the Bluesky app) you would have the option of seeing the hidden posts.

      And of course if you view the thread through your own Bluesky interface your personal blocklists and moderation would apply to the thread.

    • ascorbic 2 hours ago ago

      I'm not sure if this implements it, but Bluesky has an API to hide replies (called thread gating). It's a separate API call though, so you don't get it automatically when loading a thread via the API.

      I built a web component for the same purpose, and you can see in there how I implemented threadgating: https://github.com/ascorbic/bluesky-comments-tag

  • MrPapz 3 hours ago ago

    This is an amazing idea! Not only if fixes the problem of commenting but also allow people to continue the conversion on Bluesky. Well done!

  • ThinkBeat 2 hours ago ago

    You are not hosting it so presumably BlueSky do. You say there is no platform lock in.

    If BlueSky banned you tomorrow what is the plan? If BlueSky went bankrupt tomorrow?

    I figure there are other AT compliant products that you can switch to but a lot of data would go missing?

    • toomuchtodo an hour ago ago

      If interested in understanding this topic in detail, https://whtwnd.com/bnewbold.net has information on running your own relay network, migrating data, etc as it relates to Bluesky and AT Proto. Work continues to enable data migration, portability, alternate relay networks, etc. https://whtwnd.com/bnewbold.net/3lbvbtqrg5t2t is particularly relevant.

      (blog author works at bluesky, no affiliation personally)

    • OneDeuxTriSeiGo an hour ago ago

      So. You can back up your personal data to what is effectively a fancy tar ball (technically it's a collection of CAR files akin to what IPFS uses) and you can restore that to any PDS (personal data server) when you point your account there (either via your did:plc doc or via DNS records via did:web). So even if your current PDS implodes or bans you, you can just go somewhere else.

      And of course there are several implementations and hosts for relays (the gossip nodes), PDS implementations, clients, and appviews (the server backend for bluesky the web app).

      So strictly speaking if bluesky imploded tomorrow you could just use a self hosted version of the same app or use someone else's (such as https://zeppelin.social).

      The PLC directory is still technically in bluesky's hands but is being transferred an independent foundation atm and could be trivially forked if needed. And of course if you use did:web that doesn't apply to you and you just depend on DNS.

      • chodlog an hour ago ago

        But that's just your own posts isn't it? Wouldn't the replies from others, which would end up as comments on this author's blog, be in other users' CAR archives in each of their PDSes?

        • johnecheck an hour ago ago

          This is true. In the simple implementation, your blog would probably lose most comments if BlueSky went down and most users don't migrate to a new PDS.

          However, atproto data is append-only and cache-friendly. It wouldn't be hard to record historical comments and join them to the ones returned by the live query. (I'm probably just going to script periodic backups for mine and worry about displaying them when/if BlueSky does dissappear.)

          • serial_dev 22 minutes ago ago

            But then the only reason to use BlueSky is that your network is using it.

            It’s a completely valid reason, but All the talk about platform lock in, independent nodes and relay and whatnot is just to make you feel better (I listened to some talks and podcasts but realized that it’s all just window dressing, you can be practically deplatformed at any time, so I’m hazy on the details).

        • OneDeuxTriSeiGo an hour ago ago

          yep that'll be in their PDS. but that's the nature of the beast. you as the user control your data and your posts.

          So if there's a large scale exodus from bluesky, as long as full backfills of the network exist, you'll be able to reconstruct your CAR files, etc even if your PDS dies.

          So yes if they die all the comments disappear but people can reconstruct their history and move it to other PDS like blacksky, northsky, or others who are getting ready to start onboarding/open enrollment.

          TLDR it'd be a bit rough if they died overnight but if it was a slow death and people had a bit of warning you'd see people move on to other PDS without issue.

    • tracker1 2 hours ago ago

      Beyond this, BlueSky definitely kicks a lot of Libertarian and Right-leaning users off the platform. It seems to be okay if you're left of center or politically agnostic.

      • TimorousBestie 2 hours ago ago

        Bluesky moderation has been fairly even handed as far as I have seen. They also ban plenty of leftists and trans activists when these happen to exceed the ToS. And good luck if you’re a Palestinian trying to fundraise on the platform; they get banned by the hundreds.

      • OneDeuxTriSeiGo an hour ago ago

        This is a claim that's going to require support. Bluesky's moderation service (just adds metadata/labels to posts/accounts) is all client side opt-in. It's force-enabled by the default client but any third party client allows you to opt-out (or doesn't even use it by default).

        And PDS level/"account" bans are just at the PDS. If you've been "banned", that's just bluesky the PDS host telling you they don't want to host you and that you need to go host your data yourself or find someone else to host it for you. i.e. find another PDS.

        Basically every form of ban or moderation in atproto/bluesky is "soft" moderation and you can fairly trivially bypass it and continue doing your own thing.

        The overwhelming majority of right wing accounts that get banned do so soon after joining (and generally after going to pick fights). And they never even bother to try to keep their accounts, instead choosing to create new accounts to get banned again or abandon the platform. It's disingenuous behavior and for right wing personalities it feels almost more like a sticker of pride that they were "banned from bluesky".

        Plenty of right leaning and libertarian accounts exist on bluesky. Project Liberal [1] and Liberal Party USA [2] (run by Josh Eakle[3] and Kevin Gaughen[4] respectively) exist just fine on bluesky and they are large splinter groups from the Libertarian Party following the whole Mises Caucus coup attempt thing. Likewise a number of libertarian groups such as the Libertarian Party of Lousiana [5] do just fine on bluesky. And of course AI and Cryptocurrency people also do just fine on bluesky as well despite the stereotypes against them and the common belief that "they aren't welcome on bluesky". The worst thing that happens is people block or mute you and you don't have to deal with them anymore rather than toxicly fighting each other each time you see each other.

        TLDR: Everyone is welcome on bluesky but there's no requirement for people to tolerate you. Even if you violate every transgression, as long as you aren't posting literal child porn to the network you'll still be able to exist just fine however people might just ignore you.

        ------------

        1. Project Liberal: https://bsky.app/profile/did:plc:d5nigw7kzpsglf3gtl2dvbev

        2. Liberal Party USA: https://bsky.app/profile/did:plc:v3jmda7lwwdoofcvgmjwsbcg

        3. Josh Eakle: https://bsky.app/profile/did:plc:2adtngm3y6e6ol6jastnkxzm

        4. Kevin Gaughen: https://bsky.app/profile/did:plc:4oyecf2hz4ajhm4zqp52hxqo

        5. LP of Lousiana: https://bsky.app/profile/did:plc:mongiv55fh5l5e7vi7cbjajw

      • cactacea an hour ago ago

        [flagged]

        • dang an hour ago ago

          >* stop talking out of your ass*

          Please don't break the site guidelines like this, no matter how incorrect another comment is or you feel it is.

          Doing this has the obvious downside of making the threads more toxic, plus the less obvious one of discrediting the truth (assuming your comment is indeed correct) by giving it toxic associations. https://hn.algolia.com/?dateRange=all&page=0&prefix=true&sor...

          https://news.ycombinator.com/newsguidelines.html

          • cactacea an hour ago ago

            edited

            • dang 5 minutes ago ago

              That's better, thanks, and I don't mean to pile on! but why include "Clearly you don't use it"?

              One can't conclude that for sure, it's unnecessarily personal, and it doesn't add anything (other than a swipe) to the correct information in your post.

      • LeoPanthera 2 hours ago ago

        Extraordinary claims require extraordinary evidence.

        Is it perhaps that the "right-leaning" social media users being banned are also violating the rules? Attacks and abuse seem to be standard practice, especially for the American right.

        • umbra07 an hour ago ago

          What rules are we talking about? Because my Bluesky feed (the Discover section) is filled with name-calling, hints at political violence, etc. all coming from liberal/left accounts.

          • LeoPanthera 35 minutes ago ago

            That's not my experience at all.

  • philipwhiuk 2 hours ago ago

    I'm not optimistic about BlueSky's profitability - the current free-at-point of use is a result of VC funding.

    So personally I'd be wary of adopting it. I think it's likely the API gets locked down and the comments break in a couple of years.

  • slackr 3 hours ago ago

    Nice. But what about moderation?

  • UtopiaPunk 2 hours ago ago

    I like this a lot! I don't have a blog, but this kind of makes me want to start one.

  • notsahil 2 hours ago ago
  • nonethewiser 2 hours ago ago

    Id love a term for this sort of thing. It's like tech hijacking or something. Google sheets as a backend, github discussions for a comment system, etc.

    • PaulHoule an hour ago ago

      Lately I've got the goal of stuffing anything that can possibly be stuffed with photos stuffed with photos -- that and dislodging the sneaker brand that stole my 3-character handle I was using in LoL long ago from the SERPs.

      Always looking for new places.

  • oellegaard 2 hours ago ago

    I love the approach but I’d go with Mastodon which is an actual open protocol with multiple servers and clients and clearly not for profit

    • ezfe 2 hours ago ago

      To be clear, so is blue sky – you can run a Bluesky server yourself just like mastodon

      • nileshtrivedi 2 hours ago ago

        Not only is the bluesky network highly centralized right now, its UI is designed to perpetually lock users into the main bluesky server. Even if you use your own identity, when sharing the URLs to the posts via the UI, the URL defaults to bsky dot app domain, which will break if the author ever moves to a second server.

        • OneDeuxTriSeiGo 21 minutes ago ago

          That's not actually true.

          1. If you switch PDS all links continue working.

          2. If you change your handle (for did:plc, did:web can't do this because DNS) it used to break links but nowadays this isn't a problem because handle resolution respects historical handle naming (I think it works by post+handle age but I can't remember).

          3. Also if you share posts using the did syntax instead of handle syntax (which bluesky seems to be slowly changing over to, at least profiles do this now), it's stable regardless of handle changes.

          4. If you want to switch frontends, you can use an extension or app like at://wormhole to do so. UX for this should improve over time but that's a big "eventually".

          5. Hopefully the at:// URI format catches on but that's a long ways away given that browsers make using custom URIs an absolute nightmare.

      • dewey 2 hours ago ago

        Do you know anyone who does? There's many big and open Mastodon instances but I've yet to see a Bluesky one.

        • OneDeuxTriSeiGo 18 minutes ago ago

          You normally don't notice tbh. Switching PDS is entirely invisible to the frontend. There's a lot of self hosted PDS users (since it's basically a small go router + sqlite) but there's also bigger community PDS projects being spun up including blacksky and northsky.

          As for frontends, there's a bunch of them and a lot of them focus on changing the UX. But for self hosted "bluesky", there is https://deer.social which is a forked client that still relies on the bluesky appview/backend and there is https://zeppelin.social which is downstream of deer social but also runs their own appview independent of "big bluesky".

          • dewey 12 minutes ago ago

            Thanks for the explanation, I was almost certain I'm missing something.

  • xd1936 an hour ago ago

    See also: Toot toot! Mastodon-powered Blog Comments [2023]

    https://cassidyjames.com/blog/fediverse-blog-comments-mastod...

  • throwmeaway222 3 hours ago ago

    The outline on the right is nice.

  • hk1337 3 hours ago ago

    It’s odd to eliminate using GitHub issues as comments because the user would need a GitHub account then decide on bluesky. Bluesky would also require users to have a Bluesky account? How many readers already have a GitHub account vs already have a Bluesky account?

    I mean it’s fine, use whatever your comfortable with and Bluesky is the next frontier for development ideas.

    • toomuchtodo 3 hours ago ago

      As of this comment, Bluesky has ~38M users. To sign up is trivial, and doesn't constrain you to folks who already have a Github account or would sign up for one (tech weighted). Skate to where the puck is going. I suppose including a link to the Bluesky sign up page near the discussion section of a post would be helpful, for those not yet onboarded who want to immediately discuss or intend to in the future.

      https://bsky.jazco.dev/stats

      EDIT: Ask five people you know outside of tech if they have a Github account. Everyone I know outside of tech moved to Bluesky from Twitter. No one I know outside of tech has a Github account. If I encounter someone who has neither, I'm of course going to recommend a Bluesky account from a utility perspective, as they're likely never going to contribute code, issues, discussion on GH if not a tech person. (most of my network is non tech, non startup, non SV people, ymmv; HN is the closest I get to tech folks most of the time)

      • trothamel 2 hours ago ago

        38M is the number of accounts registered. It seems like the number of users is lower and falling.

        • OneDeuxTriSeiGo 3 minutes ago ago

          Ehhh the metric for active users is a bit weird. The metric is "daily active likers" but I know a lot of people lurk and don't like posts often. I personally rarely like posts unless I think to go out of my way to do so but I browse the site daily.

          And even then while "daily active likers" is down half from 6 months ago, it's still up substantially from even just a month or two prior to that. Bluesky exploded in size at the start of the year and it seems to be finally settling into a steady state with gradual growth (vs the prior explosive growth + falloff).

          "Daily records" (at the bottom of the page) is a bit better metric of overall network activity and even though it has also fallen since peak it shows there's still an order of magnitude more activity on network than prior to blowing up.

      • zufallsheld 2 hours ago ago

        Well, github has 225 million users, so bluesky needs to catch up.

      • dwedge 2 hours ago ago

        I don't know a single person outside of tech who has a bluesky account. I know very few people in tech who do.

      • nonethewiser 2 hours ago ago

        Github has a lot more than 38M users so I'm not sure what point you are making with that figure

      • ecshafer 2 hours ago ago

        Bluesky is already dying and has 38M registered users to Githubs 225M users. Github is growing, and Bluesky isn't. By your own suggestion, they should have used Github.

    • skrtskrt 2 hours ago ago

      You can host your own Bluesky instance and federate across instances, with all the data you host stored in an open an portable format, can you do the same with GitHub?

  • mmattbtw 3 hours ago ago

    yooooo nat

    • OneDeuxTriSeiGo 27 minutes ago ago

      I saw the post and was like eyyyyyy that's oomf.