Skip to content

Tech Talk: PMsky, enabling Peer Moderation on Bluesky

Drew McArthur is building PMsky, a tool for peer moderation on Bluesky. Rather than only privileged moderators, user consensus can be used to guide and adjust moderation labels.

ATProtocol Developers
Jan 28, 2025 · 5 min read

rew McArthur is building PMsky, a tool for peer moderation on Bluesky, where users can participate in voting on labels that have been applied to posts and users.

Moderation usually is done by privileged moderators, and in most cases this is handled entirely by the platform itself.

PMsky offers a new option, where moderation can happen based on consensus rather than consolidated opinions.

About PMsky

Why Peer Moderation?

composable moderation

Blacksky

Xblock

Pronouns labeling system

How does it work?

PMsky is a platform where users vote on labels that have been applied to users and posts, publishing those votes as ATproto records.

Labelers can then be built independently, using those votes to determine which labels to publish on Bluesky.

Who is building this?

Drew McArthur (@drewmca.dev) is doing the initial work for the project, as part of his thesis for a degree in Media and Public Engagement at the University of Colorado at Boulder.

Resources

Read more about the project on the docs site:

Welcome | PMsky

Request early access via email request@pmsky.social (please include your Bluesky handle), or by DM'ing @pmsky.social.

Video

Recorded during a live tech talk on January 27th, 2025. Check out the entire Tech Talks video playlist »

Chatlog

00:15:02 Boris Mann: https://bsky.app/profile/pmsky.social 00:15:08 Boris Mann: pmsky 00:15:15 Boris Mann: Pomeranian husky mix yes 00:15:55 Boris Mann: OK, yeah, +1 for Pomsky https://www.creativefabrica.com/product/happy-pomsky-puppy-graphic/ 00:16:56 Boris Mann: This is the first haters tech talk! 00:16:59 Boris Mann: Thank you! 00:25:27 Boris Mann: Anonymous records published to pmsky PDS, not public voting 00:25:43 Boris Mann: I think this is the first example of this pattern 00:25:54 sebastian: Yeah super interesting 00:26:06 Boris Mann: Single account record storage. More of a classic app paradigm 00:29:14 Brian: Will you be able to drill in a bit? I’m new to the atproto protocol, so not sure how the public vs private voting works, new to labelers, what the workflow might look like, etc. 00:29:42 jon: That was my first question: what feedback did you get on the idea from trans and Black users? 00:33:15 Chad Kohalyk: For background: https://blueskydirectory.com/labelers/all 00:34:34 Brian: Thanks Boris for the labeler walk through! 00:35:20 Boris Mann: That’s an interesting idea, and you could 00:35:52 Boris Mann: But a bunch of that doesn’t display in bsky clients and are “just” in the firehose 00:42:00 verdverm: Another issue with anon voting is detecting voting rings & abuse, thoughts? 00:43:11 jon: If the votes are anonymous, then how do we know they’re not all just created by whoever’s running the PDS? 00:44:05 jon: Replying to "Another issue with a..."

Agree, I was going to ask about threat modeling in general. 00:45:24 Boris Mann: Replying to "If the votes are ano..."

Yep, this is the central database platform. It’s slightly better because it’s exposing the data set and you can correlate the vote “amounts” 00:45:36 Boris Mann: Replying to "If the votes are ano..."

But yes, they could be just generated

00:47:34 verdverm: There is a lot of prior art in the blockchain world, how much have you explored? DAOs come to mind in terms of governance over shared resources or records 00:49:50 Boris Mann: Replying to "There is a lot of pr..."

Hey there are some ZK experts around that are looking at atproto 00:49:52 verdverm: Once you are voting on the application of rules, you quickly end up with needing to vote on the rules themselves 00:50:58 verdverm: Replying to "There is a lot of pr..."

zk is privacy & proving

there are a lot of governance issues in systems like this, which is where DAOs come in 00:51:56 Chad Kohalyk: Just to be clear, by following in to PMSky, does that opt me in to ALL potential PMSky labels for all time? 00:52:34 Chad Kohalyk: Do you have some favourite “Governable Spaces” quotes? 😉 00:53:01 Boris Mann: Replying to "Just to be clear, by..."

No. There will be multiple labelers generated by Pomski 00:53:12 Boris Mann: Replying to "Just to be clear, by..."

So, there might be a “Mango Hater” Labeler. 00:53:24 verdverm: Replying to "Just to be clear, by..."

and in theory, there can be 3rd party labelers 00:53:31 Boris Mann: Replying to "Just to be clear, by..."

yes 00:53:35 Boris Mann: Replying to "Just to be clear, by..."

That use Pomski data 00:53:47 verdverm: Replying to "Just to be clear, by..."

*only the public data 00:54:00 Chad Kohalyk: Replying to "Just to be clear, by..."

Good good, wanted to make sure that each label was independent and not all housed under PMSky 00:54:51 verdverm: should all votes be equal? 00:55:03 Boris Mann: “SuperVotes” 00:55:20 Boris Mann: Replying to "should all votes be ..."

You get one per day 00:56:02 verdverm: Replying to "should all votes be ..."

trusted experts get differential preference 00:56:43 Yas Etessam (she/her): What about some form of 911/Emergency/Safety so less than one per day, and Karen-proof. 00:56:54 verdverm: Replying to "should all votes be ..."

or you can slice it between votes on popular labels carry less weight than votes on rare labels, how do you adjust algos for application? 00:57:28 Boris Mann: Replying to "What about some form..."

Yeah, there’s also “reporting” which labelers support, which is at least another interface channel. 00:58:53 drew mcarthur: Replying to "should all votes be ..."

that's up to the labeler! 00:59:33 verdverm: Replying to "should all votes be ..."

except they don’t know who voted, unless it is a privileged labeler (aka pmsky labeler) 00:59:52 verdverm: Replying to "should all votes be ..."

or the vote has account tied to it (fully public) 00:59:55 drew mcarthur: Replying to "should all votes be ..."

right, that functionality would require public voting 01:04:22 verdverm: I wonder what the ATProto Community Notes design will look like and if this will have mechanisms of interest to this problem? 01:05:07 Boris Mann: Replying to "I wonder what the AT..."

The core “proof of voting” with anonymization would be the primitive that would be useful 01:05:18 Boris Mann: Replying to "I wonder what the AT..."

A transparency log 01:07:29 verdverm: Replying to "I wonder what the AT..."

I hope it looks a lot like stacked moderation, you have to sub to a notes provider, each can have their own approaches and governance

Did you enjoy this article?

Recommend it — Standard Reader surfaces well-loved writing to more readers across the network.

Across the AtmosphereDiscussions