jonathanwarden.com
@jonathanwarden.com
beautiful!
November 23, 2025 at 5:33 PM
Yes it’s true, Bluesky controls what users of the Bluesky app see, which means they control what most people on the atproto network see. But it’s still possible to build atproto apps that are totally independent of Bluesky. Of course, it is possible nobody will use many of those apps…
November 23, 2025 at 5:10 PM
I see your point. But Bluesky has actually made a point of making it possible to build on ATProto while being independent of Bluesky.
November 22, 2025 at 12:21 PM
$3/day is not much for a well-funded project. There are probably projects that are already doing embeddings on the entire firehouse. But once you add images and video, or larger models, costs could easily increase by orders of magnitude. Then the economics of a shared service makes a lot of sense.
November 21, 2025 at 11:52 AM
Ahah! Thank you that clarifies things for me.
November 19, 2025 at 7:14 PM
And you can watch all this happen in the "Network" tab of dev tools when you load this page: bluenotes.social/community-no...

You'll see calls to the app.bsky.feed.getFeed (the Bluesky app view), which returns posts with the 'annotation' label, then calls to org.opencommunitynotes.getProposals
Bluenotes
bluenotes.social
October 25, 2025 at 8:24 PM
Oh and a tip. Frontends should pass the DID of the Bluenotes labeler in the 'Atproto-accept-labelers' header when making calls to the Bluesky app view. This way, users don't have to describe to the labeler.
October 25, 2025 at 8:18 PM
And one small detail I forgot in the above: when you call the `getProposals` endpoint on a post that has the `annotation` tag, add `&status=rated_helpful` to get the note that was actually rated helpful (in case there are other proposed notes that weren't rated helpful).
October 25, 2025 at 7:01 PM
Once a note reaches "rated helpful" status, the proposed label becomes an actual label emitted by the labeler. But since labels can't include the note text (yet), frontends need to fetch the note text from the original proposal.
October 25, 2025 at 6:58 PM
The endpoint is getProposals, instead of getNotes, because when somebody submits a note, it always starts as a "proposal" record, from the social.pmsky.proposal schema.

github.com/johnwarden/o...
open-community-notes/002-lexicon at master · johnwarden/open-community-notes
Community Notes on AT Protocol. Contribute to johnwarden/open-community-notes development by creating an account on GitHub.
github.com
October 25, 2025 at 6:57 PM
Example:
October 25, 2025 at 6:54 PM
2. Next, since the annotation labeler doesn't include the actual text of the note, you need to call the getProposals xrpc endpoint from the community notes service API.

curl --get 'https://api.bluenotes.social/xrpc/org.opencommunitynotes.getProposals?uris={URI_OF_ANNOTATED_POST}'
October 25, 2025 at 6:53 PM
Yes! I should write a blog post about this. But first, very briefly:

1. First: posts with attached Community Notes will be issued a 'annotation' label from the Bluenotes Labeler: bluenotes.social/profile/blue...
Bluenotes Community Notes Labeler (@bluenotes-labeler.bsky.social)
The Community Notes labeler. Labels posts that have notes created by Community Notes users on https://bluenotes.social
bluenotes.social
October 25, 2025 at 6:52 PM
Thank you to whoever added a community note to this post!
October 25, 2025 at 6:57 AM
Hahah yes. I probably should come up with a better logo. Just haven't thought of one yet.

On the other hand, maybe I'll send up getting a lot of people using my app because they think it's Bluesky for musicians ;)
October 24, 2025 at 5:01 PM
X adds an additional "Rater Impact Score", which I haven't yet implemented. Your rater impact is how many notes which you rate as helpful (or not helpful) that ultimately reach "rated helpful" (or "rated not helpful") status. You need a rater impact score of 5 before you can write notes.
October 24, 2025 at 4:59 PM
The Matrix Factorization algorithm Community Notes uses kind of has a built-in reputation system. Most people don't see it that way, but the fact is that if you consistently rate notes as helpful that ultimately reach helpful status, your future ratings will effectively have more weight.
October 24, 2025 at 4:58 PM
Oh thanks for testing that @zicklag.dev . I should mention the app password option in the beta guide.

@erlend.sh other than an app password there's no workaround. I was just going to make a list of people who were waiting for OAuth so I could notify them when it was ready.
Bluenotes
bluenotes.social
October 24, 2025 at 4:55 PM