zlacker

Building Bluesky comments for my blog

submitted by g0xA52+(OP) on 2025-08-07 15:56:01 | 382 points 137 comments
[view article] [source] [go to bottom]

NOTE: showing posts with links only show all posts
◧◩
6. jszymb+c7[view] [source] [discussion] 2025-08-07 16:28:48
>>aranw+K6
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

◧◩
14. toomuc+L9[view] [source] [discussion] 2025-08-07 16:41:24
>>hk1337+z9
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)

◧◩
15. ascorb+oa[view] [source] [discussion] 2025-08-07 16:44:33
>>aranw+K6
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

37. notsah+nn[view] [source] 2025-08-07 17:35:35
>>g0xA52+(OP)
Reminds me of https://indieweb.org/Webmention
◧◩
41. toomuc+rq[view] [source] [discussion] 2025-08-07 17:46:42
>>ThinkB+Xe
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)

◧◩◪◨
42. dang+wq[view] [source] [discussion] 2025-08-07 17:46:53
>>cactac+Pp
>* 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

44. xd1936+ir[view] [source] 2025-08-07 17:49:29
>>g0xA52+(OP)
See also: Toot toot! Mastodon-powered Blog Comments [2023]

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

◧◩
45. OneDeu+gs[view] [source] [discussion] 2025-08-07 17:52:51
>>ThinkB+Xe
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.

47. susam+lv[view] [source] 2025-08-07 18:03:45
>>g0xA52+(OP)
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/

◧◩◪
51. OneDeu+Ex[view] [source] [discussion] 2025-08-07 18:12:52
>>tracke+ni
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

◧◩
52. PaulHo+Hy[view] [source] [discussion] 2025-08-07 18:16:38
>>philip+ke
I really believe in

https://indieweb.org/POSSE

and would say the bright side of the "enshittification cycle" is that we get nice places for a while and then we can move on. It's not like people party at the Mudd Club or CBGB anymore and why should they? Theory at

https://mastodon.social/@UP8/114988462585487831

◧◩◪
53. aleman+6z[view] [source] [discussion] 2025-08-07 18:18:20
>>skrtsk+fi
It’s coming in gitea: https://github.com/go-gitea/gitea/pull/20311

I would be willing to guess that self hosting gitea as a backup mirror is less work than doing the same for Bluesky. But, just speculating

59. maelit+WC[view] [source] 2025-08-07 18:34:54
>>g0xA52+(OP)
Bluesky is very useful to store information on users' 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.

◧◩◪◨
62. OneDeu+2F[view] [source] [discussion] 2025-08-07 18:44:45
>>Timoro+up
> 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).

◧◩◪◨
69. OneDeu+9H[view] [source] [discussion] 2025-08-07 18:56:12
>>dewey+ei
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".

◧◩
74. lucius+9M[view] [source] [discussion] 2025-08-07 19:21:28
>>tomgag+jG
People have been doing this with ActivityPub/Mastodon for years: https://carlschwan.eu/2020/12/29/adding-comments-to-your-sta...
◧◩◪◨
81. jandre+TR[view] [source] [discussion] 2025-08-07 19:51:26
>>dwedge+bk
There are quite a number of authors, comedians, artists, and the like on Bluesky. A few examples:

Bill Corbett: https://bsky.app/profile/billcorbett.bsky.social

John Scalzi: https://bsky.app/profile/scalzi.com

Wil Wheaton: https://bsky.app/profile/did:plc:mwpiq2rr6joccohcz2urkwvn

NY Times Pitchbot: https://bsky.app/profile/nytpitchbot.bsky.social

Electrek: https://bsky.app/profile/electrek.co

Stephen King: https://bsky.app/profile/stephenking.bsky.social

Eric Idle: https://bsky.app/profile/ericidle.bsky.social

◧◩
84. dom96+aX[view] [source] [discussion] 2025-08-07 20:18:41
>>maelit+WC
You can go pretty far without your own DB. Depends on the types of queries you need to make. For my project[1], I was able to use getRecord[2] for a lot of the data that needed fetching on the client-side.

1 - https://scrapboard.org/

2 - https://docs.bsky.app/docs/api/com-atproto-repo-get-record

85. uxjw+kY[view] [source] 2025-08-07 20:27:04
>>g0xA52+(OP)
ActivityPub for Wordpress just posted about a bridge with Bluesky https://activitypub.blog/2025/08/07/bridging-the-gap/
91. jslakr+nc1[view] [source] 2025-08-07 21:46:53
>>g0xA52+(OP)
Another interesting bluesky integration as blog commenting system from some months ago https://www.coryzue.com/writing/bluesky-comments/
98. fishyw+Su1[view] [source] 2025-08-08 00:05:47
>>g0xA52+(OP)
I would recommend https://cactus.chat/, which is based on matrix.

it has guest support (so people does not need a matrix account to comment), but if you use your own matrix account, you are essentially joining a matrix room per post.

109. Brajes+nY1[view] [source] 2025-08-08 05:28:23
>>g0xA52+(OP)
I have seen the best of the best Internet Services go away, some unintentionally. These days, my first question is, “Can I Walk Out?” without worrying about the content or take the content with me and go elsewhere.

https://brajeshwar.com/2025/can-i-walk-out/

◧◩◪
113. fsflov+Oe2[view] [source] [discussion] 2025-08-08 08:23:43
>>danabr+O01
https://pluralistic.net/2024/11/02/ulysses-pact/#tie-yoursel...

https://dustycloud.org/blog/how-decentralized-is-bluesky/

◧◩
114. Unit32+oj2[view] [source] [discussion] 2025-08-08 09:17:48
>>Brajes+nY1
https://pluralistic.net/2024/12/14/fire-exits/
117. crimso+sz2[view] [source] 2025-08-08 12:06:53
>>g0xA52+(OP)
If you're on Quarto, I have a plugin that does this (with fediverse support)

https://github.com/AndreasThinks/quarto-open-social-comments

◧◩◪◨
118. danabr+jA2[view] [source] [discussion] 2025-08-08 12:14:22
>>fsflov+Oe2
Some of this is already outdated. With the switch to non-indexing relays (“Sync 1.1”), people are already running independent relays quite cheaply. There are also actual independent AppViews coming up.

https://whtwnd.com/bnewbold.net/3lo7a2a4qxg2l

◧◩◪◨
119. yellow+QC2[view] [source] [discussion] 2025-08-08 12:33:28
>>fsflov+Od2
Incorrect: https://www.da.vidbuchanan.co.uk/blog/adversarial-pds-migrat...
◧◩◪◨
120. diggan+CD2[view] [source] [discussion] 2025-08-08 12:39:52
>>dewey+ei
> Do you know anyone who does?

One example of a profile that lives on a different PDS ("AT Protocol Personal Data Server") than the default one: https://bsky.app/profile/mackuba.eu

If you look in the bottom left of https://clearsky.app/mackuba.eu/history, it shows:

> User changed [...] 1/2/2025 to external server PDS: https://lab.martianbase.net

If you go to that URL, you'll see the landing page for the atproto PDS software.

Edit: Ah, and seems Kuba is hosting a directory of profiles using their own PDS as well, lots of examples over there: https://blue.mackuba.eu/directory/pdses

Biggest one right now (excluding the default one) seems to be atproto.brid.gy, which has 40393 accounts.

[go to top]