Drew McArthur: Enabling Peer Moderation on Bluesky

Drew McArthur , from PMsky , gives a talk at ATmosphere Conference 2025 in Seattle

A lot of very cool people here. A lot of really big names. Really cool to get to be here and meet everybody. My name is Drew, and I want to talk about peer moderation on BlueSky and App-Proto.

Content moderation is really hard, is extremely hard, as we heard earlier today and as I'm sure a lot of you know. But it's also extremely important. I want to talk about lowering barriers to let more people contribute and help with that process.

I do backend development at a policy research firm. Not the fun part. I'm also in grad school at CU Boulder. I work with Nathan Schneider, and he does a lot of really cool work on cooperatives and decentralized power structures and organizational structures and stuff like that. That's really cool. So this talk is about applying those concepts to the decisions of moderation and labeling posts.

First, I'll describe the thing that I've been working on, which is really just some basic little building blocks, some Lego pieces. Then I'll talk a bit about the motivation behind that and why it might make sense to explore. It's why it's something I want to explore.

One of the core pieces for this is modularity. Especially with App-Proto, one of the big ideas is building small pieces that we can put together rather than trying to do everything all at once. I don't want to be the one doing all of the moderation. I don't think anyone wants to do that.

Part of that is separating people participating from the actual decisions that labelers are making. What Pimsky does, PM Sky: I have two lexicon types that I've settled on for now. The proposal type is basically the same thing as a label. It has a URI that it points to and a value that is the text of the label. Then I also have votes, where anyone can vote on one of those proposals. These votes exist separately as App-Proto records.

They're part of the Pimsky platform, but you can write a labeler separately that then uses this information to make the decision of whether this is a label that should be applied to a post.

Step one: you're scrolling and you see a post and you think, "Wow, that's a post. It should really have this label." You would go over to Pimsky and propose a label onto that platform, which creates the App-Proto record.

Somebody else might be scrolling and see that proposal and agree or disagree with it. You might see parallels with other social media platforms, which obviously there's a lot of inspiration from. They submit that vote, and the record gets published.

Separately, a labeler watches those records and sees that there is some consensus about this label belonging on the post. However, consensus is defined by the labeler. Different contexts have different use cases, whether that's a simple majority or a more complex definition. Labelers can define that however they want.

Once there is consensus, they can publish that back to BlueSky just like any other labeler would. Then a different user might see that label, which has been decided not by the company or a specific user, but by wider public consensus.

Those are the moving pieces. That's how this works.

Why introduce this indirection? Why would we want to do this? I think it's taking composable moderation another step further.

Traditional moderation is really hard because you have different perspectives on a post. You might try to apply generic rules, but that doesn't always work. Things are going to slip through the cracks. If you have something with a 99.9% success rate, five million posts a day, you still have 5,000 posts every day slipping through your rules.

The traditional model is the company sitting in the middle, in charge of making the decisions about whether a post gets labeled. Moderation decisions are centralized within the company. This exacerbates issues of scale and perspective, and introduces accountability and incentive problems. The company can hide or promote content it doesn't like as a company or politics it doesn't like.

It's a bad idea to couple those things. That doesn't align with the ethos that App-Proto is trying to promote. Composable moderation is cool because anyone can create, apply, and define labels. You have third-party labelers. I think it's a great innovation, one of the flagship features of BlueSky, because it helps with scale by letting more people participate. It also helps with perspective, allowing niche labelers to focus on specific labeling needs. Users have better agency to subscribe to labelers more relevant to them.

Anyone can create a labeler. All you need to do is buy some server space and a domain name, configure the DNS, program the labeler, deploy it behind a reverse proxy, set up the declaration record and the PLC operation, and hope that the app view notices it. I've been trying to do this all week, and BlueSky still hasn't noticed my labeler.

Composable moderation is great, but you end up with several smaller castles. This isn't to downplay the moderation work people are doing; the people talking earlier are doing incredible work. But there are also instances where this hasn't gone well. For example, one of the very early third-party labelers, Aegis, blew up after a personal dispute. It's an example that even if the company isn't running it, decisions about labels can still be concentrated behind closed doors.

I'm wondering how to break down these castle walls and add an additional layer. With composable moderation, BlueSky and third-party labelers are doing moderation, but other sites like Wikipedia and Reddit allow a wider range of people to contribute.

The motivation behind Pimpsky is to create building blocks to let people who want to contribute to moderation participate. Some people want to participate, but there's a high barrier to entry, both in technical know-how to run a labeler and the desire to actually do the moderation.

How do we open up those decisions to more voices and make more perspectives heard? There are pros and cons to this approach. You could get quicker response times, more specific labeling, and better participation from people closer to the issues. But moderation is labor-intensive, and attention is scarce.

This isn't a fully encompassing solution, but it tries to lower the barrier of entry.

Thank you.