Blacksky: Expressing the Black Everyday in a New Digital Space (Part 2)

A sophisticated exercise in Blackness.

2,000,189 total visits, 16,134 unique visitors, and a trendline of visitors over time
Celebrating 2M views of the Blacksky Feed as of August 2023

This post is the second in a series of posts about Blacksky. Be sure to check out the previous post to get up to speed.

Just because Black folk create it, doesn't mean Black folk love it ... If you put a Black soul food restaurant in the neighborhood, Black folk are not gonna immediately flock to it. Because they're like, "Well, who's cooking? And how's their potato salad?"

- André Brock, Jr. discussing the Blackbird web browser on an episode of "Left of Black"

Bluesky Social and its underlying protocol are still in closed beta. The company's developers like to remind us of this fact from time-to-time. As a technologist and an ex-startup employee myself, the word "beta" is simply a CYA to me (cover your ass). It may speak to the stability of a platform but doesn't speak to its longevity or impact on the real world. Look no further than Google's Graveyard to see that products don't need a beta label to die off unexpectedly. Even the "closed" part of "closed beta" doesn't mean all that much because not only is everything on Bluesky extremely public, it's also loud about it! At every second of every day, Bluesky is broadcasting thousands of likes, follows, and posts to the entire internet for anyone listening (Bluesky account or not). At some point, someone even downloaded every post on Bluesky to do data analysis against.

People bring up Bluesky's beta status and relative obscurity to play down its importance, but to me none of that matters. Bluesky could vanish tomorrow (which would suck) but I'd still enjoy and find meaning and value in the time I've spent working on Blacksky. Both quantitatively and qualitatively, the Blacksky feeds are the most popular things I've ever built.

The original feed was launched in May, but from the beginning of July to the end of September, Blacksky was viewed over 2.5 million times by 23,000 unique users. The original feed is currently sitting at 2,291 likes and is the 6th most liked feed (down from its #1 spot back in July). As one of the first available custom feeds, my overpriced Heroku servers immediately saw a spike in traffic when custom feeds were finally supported by the official Bluesky client.

Heroku throughput graph showing 900 request at 1:10 PM ET on Friday May 26th
Launch day traffic for the original Blacksky feed

Ten minutes after launching publicly and Blacksky was already a success for me. I had built a thing I wanted for myself and a few other people checked it out. Traffic could have went back to zero and I would've still been satisfied. But thankfully it didn't! And surprisingly, people started thanking me for what I'd built! And then they started telling other people about it! And then journalists were reaching out asking me about what I'd built!

Post from @tressiemcphd.bsky.social on Jun 4, 2023 at 2:46 PM saying "So I just got back and see custom feeds. I could just see Black people, if I wanted! I am intrigued."
A full circle moment for me as Dr. Tressie McMillan Cottom references the Blacksky feed in a post. I often cite her article on mutual aid and even had it on the homepage of a previous project of mine.
Post from @llcoolchris.dev on June 15, 2023 at 3:57 PM saying "Blacksky is now my primary way to use the app". There's a reply from Asa Nwa saying "Same". And another reply from Chris saying "The algorithmic choice thing is so good"
Praise for Blacksky and algorithmic choice from Chris
Post from @keevan.bsky.social on May 27, 2023 at 4:53 PM saying "Ok. How do I find Blacksky" with a detailed reply from @theeglitch.bsky.social on how to do so.
Thee Glitch explaining to KeeVan how to find the Blacksky feed
Post from @bidata.io on May 29, 2023 at 6:29 AM saying "@rudyfraser.com out here doing the Lord's work". It is a quote post of @nycbeardo.dev who said "Still happy to see a #BlackSky custom feed tho."
Praise from @bidata.io and @nycbeardo.dev for Blacksky
Post from @ind3fatigable.xyz on May 26, 2023 at 11:20 AM saying "BlackSky feed is redeeming my BlueSky experience this morning. There's normal conversation in there. Even if I'm not in the convo, that means a garden can grow in here. Just needs the threats managed."
Praise from frrms for Blacksky with a hint of foreshadowing

Looking back on that last linked post hits so differently 4 months later. Because as you'll see, for a group of 1807 users out of 1,296,164 on a site that has only existed for 6 months, many of whom don't always know I've added them to the Blacksky feed, we've received a clear and disproportionate amount of harassment on Bluesky. And as I see it, the platform and broader ecosystem have been able to benefit from us overcoming that harassment.

A rose from the concrete, and a thorn in your side

Playing defense for Blacksky

I thought long and hard about this section. I thought about how much time and attention I should continue to give to people who showed a clear lack of compassion and empathy and in some cases downright anti-blackness and overt hate towards Black people. After reflecting on it, I decided it was important to give this topic at least one section. Not to rehash past issues on Bluesky for further validation, but instead to highlight the clear connections from problem -> solution and how those solutions ultimately made Bluesky a much better place for many.

Anglosphere Alice and the beginnings of Blacksky

If you've read the TechCrunch article on Bluesky's early moderation issues, you've already heard about Alice. She's perhaps most well-known for her comments made toward Aveta but my issue is with the following post:

Post from @cererean.bsky.social saying "The code is open source. If black people and others do not wish to be someplace that reflects the demographics of the Anglosphere, they're welcome to create their own instances."
Alice saying that if Black people don't like the demographics on Bluesky, they're welcome to create their own instances.

Astute readers will notice that the original Blacksky feed was launched the same day as the above post. There's a lot to unpack with the post and I won't even get into the much discussed usage of "Anglosphere".

Post from @scopicengineer.bsky.social saying, "Water is open source. If Orcas and aquatics do not wish to be someplace that reflects the demographics of the humanosphere, they're welcome to create their own oceans."
Crystal Preston-Watson tying in Orca discourse with Alice's Anglosphere comments to reflect the absurdity of her statement
... they're welcome to create their own instances

This just wasn't true at the time and it still isn't. As previously mentioned, custom feeds which were the first example of federation, didn't even launch publicly until a few days later. Federated Bluesky instances didn't exist in any capacity back in May and as of September are still in sandbox. Alice may be happy to know that I do have a federated instance hosted at blacksky.app but she may not have understood an important detail of how federation works on Bluesky. Which leads me to my next point.

If black people ... do not wish to be someplace that reflects the demographics of the Anglosphere ...

What's funny about this is that we do. The Y Combinator and Peter Thiel school of startup thought is that startups should be founded on some contrarian idea. In other words, what do most people seem to believe that you would disagree with? I've always disagreed with the idea that Black people want to be segregated away from white people in online spaces. Many people have tried that idea and many have failed, because that's not what most Black people actually want!

Black folk in particular had a really kind of divided approach to it. They were like ... "I don't wanna be segregated off from the wider internet." If you just create a space ... where it's only Black folk talking about Black stuff, that means I'm missing out.

- André Brock, Jr. discussing the Blackbird web browser on an episode of "Left of Black"

💡
I reference André Brock, Jr. frequently throughout this blog post.
His award-winning book, "Distributed Blackness: African American Cybercultures" can be read online or downloaded for free in an Open Access edition, here.

I was excited by Bluesky's version of "big world social networking" because it meant I could host an instance of Bluesky tailored to Black users, curate custom feeds tailored to Black users, and moderate content that would be harmful to Black users without any of those users missing out on the content and context of the broader Bluesky ecosystem. This detail alone makes Bluesky radically different than other social networks.

The Green List

One of the downsides of the Blacksky feed being so visible and custom feeds not being well understood is that it started to be seen as an in-group consisting of a particular subset of Black people. Some days we were the "dramatic" Black people complaining about silly things like racism. Other days we were "orbiters" of an alleged serial harasser who none of us knew. A little over a month after launching the Blacksky feed (6 months in Bluesky time) I noticed that many Black users including myself were getting blocked left and right from some of the biggest accounts on the platform at the time. As I mentioned earlier, lots of information on Bluesky is public, including who blocks who.

Although there was a lot of denial about it at the time, I suspected that Black people were being targeted in some kind of blocking campaign which by the admission of the people who were blocking random Black people turned out to be true.

On Bluesky, you can't make generic lists of users, you can only make "mute lists" which allows other users to subscribe to your list and hide the posts of all the people you put on the list. Mute list information is also public on Bluesky.
On June 30th, I ran an analysis of every account and all the people they've blocked then compiled a public mute list of the users who disproportionately blocked Black people. I named it "The Green List" after "The Negro Motorist Green Book" which, among other things, warned Black people of sundown towns and areas hostile to Black people.

Many of the users I put on the original Green List apologized and/or acknowledged that they had become overzealous in their attempts at protecting themselves from an alleged serial harasser. I'm even mutual follows of some of them now. After some apologies came in, I deleted the original Green List but recently revived it as "Orbiter" allegations continue. The Green List also exposed the public nature of blocks, which people haven't shut up about since.

Post from @carnage4life.bsky.social, saying "One of the fun things about block lists being public on Bluesky is that you can run queries like “who has blocked Black people the most?”  This is the sort of design that wouldn’t pass muster to ship in my day job due to privacy issues such as this."
Dare Obasanjo in my mentions commenting on the public nature of blocks

Banned From TV

The Green List episode showed me that as hard as I work to find and add Black people to the Blacksky feed, there are other people out there willing to take that work and use it to ostracize us. Because there's no way white people were finding that many Black people to block when those same Black people were struggling to find Black people to follow. They obviously had to have some help. I only needed to wait 3 days for confirmation that the Blacksky feed could be weaponized to harm people.

On the morning of July 4th I woke up at around 8 AM to check on the feed. In between jokes about how much food everyone was gonna eat at their respective cookouts later was a new addition to the Blacksky feed. Someone had used #AddToBlackSky to add themselves to the feed, but attached to the post was an obviously transphobic joke about the United States Assistant Secretary for Health, Rachel Levine. That was enough to warrant removal from the feed but I did some digging on their profile since at the time I was especially paranoid about the feed being used to promote harm.

Sure enough, I saw multiple transphobic comments made to Black trans women who were recently posting to the Blacksky feed. That user was not only removed from the feed along with their post and reported to Bluesky's moderation team, they were also banned from viewing the feed entirely.

Post from @rudyfraser.com, saying "In response to an incident earlier today, I've implemented a way to prevent certain users from viewing the feed. When banned users try to view the feed they'll only see the below notice.  I'll only do this for repeated violations of Bsky community guidelines targeted at Blacksky users."
Announcement of the Blacksky ban feature

The functionality itself is pretty interesting and received a lot of praise from Bluesky overall. It inspired other feeds like Jewsky to implement similar protection mechanisms. With the ban feature, I was leveraging Bluesky's authentication mechanics which many were using to personalize a feed (show you posts from users you follow) instead to track visitor metrics and ban certain viewers from seeing any content in the feed. To display a ban message (you can see  in the above linked post) I copied a trick retr0.id was using to display error messages when his feeds broke.

Post from @chantalalive.bsky.social, saying "When Black people are safe & protected, all others benefit. This is what needs to be learned by powerful people."
Chantal sharing some wisdom.

Blacksky would go on to face other well documented issues such as a protocol-level bug that allowed Bluesky users to register racist username handles, and a George Floyd impersonation account that tried to add themselves to Blacksky in order to troll and promote hateful content.

A sophisticated exercise in Blackness

(This is a Nerd Flex Zone. Feel free to skip to the end, I won't be mad)

Besides being referred to as "the Blacksky feed guy", the other really common thing that grinds my gears is Blacksky being reduced to something as simple as "a list of Black people and everything they post." While it may just seem like a list, it is necessarily more complex than that.

A network diagram of Bluesky Social and Blacksky Algorithms
Bluesky federated architecture and how it interacts with Blacksky

select * from black_community;

It is of course necessary in the creation of a feed such as Blacksky for there to be a list of Black people somewhere. An important design decision of mine was for that list to not be public or otherwise easily enumerable for reasons previously covered. The list was at one point hardcoded in the source code but I've since moved on to storing it as a list in the database away from prying eyes.

That list of "members" is used to determine what data gets stored from the firehose which currently includes posts, image references, likes, and follows that reference or relate to members of Blacksky. Anyone (yes, even white people) can and should use #Blacksky to get an individual post on the feed, but using #AddToBlackSky will add you as a "member" so that all of your posts, likes, and follows are automatically included in the Blacksky DB.

This was an important design decision as well. While I want to moderate Blacksky and hope that people trust my decision making, I don't want to be seen as a gatekeeper or spokesperson for all Black people (a "Head N***a in Charge" if you will) as we are not a monolith.

Who is these Black folk? How do they know what kind of Black folk I am? How dare they curate information and resources not recognizing the heterogenity of Blackness and that they don't know me like that?

- André Brock, Jr. discussing the Blackbird web browser on an episode of "Left of Black"

Updating the NegrOS; Jit push origin main

Since launching the original feed, I've launched a few others that further slice the Blacksky DB in different ways. Blacksky Only Posts filters out replies from the feed which can get quite noisy. There are French and Portuguese versions of Blacksky that filter for posts made specifically in those languages. And then there's the Trending feed which shows posts from Blacksky getting a bunch of likes, sorted by when the post received its 12th like (similar to What's Hot Classic and the Up-and-Up feeds).

One of the more recent feeds I built that I think really demonstrates the power of laying a foundation and building further is the Blacksky: Uncut feed. This feed started originally as a request:

Post from @mxboba.bsky.social, saying "@rudyfraser.com any chance of making a NSFW BlackSky Feed in the near future? @lilwildminx.bsky.social is definitely not the only one interested. 🥰"
Mx. Boba Kitty's post requesting a NSFW BlackSky Feed

This was interesting/important to me for a few reasons:

  • Black SWers on Bluesky have said for the longest that they have a hard time finding each other and that their content isn't amplified
  • Bluesky has yet to federate moderation; The current centralized moderation service done via Hive AI has clear biases that will label a woman in a bikini as suggestive content but completely misses out on man bulge
  • Because of gaps in Bluesky's content filter strategy, many have thought about implementing more effective filters, but few people have considered amplifying such content (both the kinds that end up behind the filter and the stuff that's missed)
Screenshot of the Blacksky: Uncut Feed (identifying info blurred) Screenshot of Blacksky Feed

If you click to show the above image, you can see how Bluesky's AI misses things (man bulge not labeled as suggestive content but cleavage is). Blacksky: Uncut has perhaps the opposite problem but for the purposes of creating a feed, false-positives are fine for this use case. The NSFW feed doesn't get a ton of traffic, so I can just pop into it once a day and update the database if something shouldn't be in there.

Some may say, "well Bluesky's labeler is good enough. Why not just leverage that?" Unfortunately, Bluesky's labeling service works similar to mine and by that I mean it listens to the firehose then applies labels to the images and posts. Because of this, Bluesky's labels aren't immediately available (image classification can be somewhat slow). From a technical perspective, that already means I have to set up a new program to fetch the labels some point in the future. I figure if I'm doing that, I might as well classify these images myself.

The NSFW labeling script is the first part of Blacksky to be done in Python and at the time of writing is located on the same living room server as the blog you're currently reading. The script runs every 30 mins. and queries recently created image references using the content identifier to get the actual image from Bluesky's servers. It then uses two models which I found were fine on their own but a lot more accurate together:

  • The first is OpenAI's CLIP-ViT-L-14 which supports comparing an image to a sentence or phrase. This could be used to implement image search for example, but is in this case used to classify NSFW images
  • The second is an open source neural network that was trained on ~250K images to create a PyTorch model for NSFW image classification

When combined, I find that I can slide the threshold for NSFW classification to capture anything from thirst trap selfies on the low end to graphic content on the higher end.

Computers 'putin

Like I mentioned earlier, Blacksky has been very meaningful to me to work on. I am on a daily basis happy with the solutions I've built and the community that's formed around Blacksky. People have offered to help with moderation, updating the code, and very importantly offering financial support. These computers aren't free! Incidentally, Blacksky is one of the first AT Protocol projects to receive nonprofit support in addition to community funding.

Post from @jack-frazee.bsky.social, saying "Oh this is cool. I had not thought about the possibility of non-profits supporting the development of feeds, but it seems obvious now that you’re doing it. Kudos!"
Jack Frazee (brother to a core Bluesky developer) giving kudos for Blacksky being fiscally hosted by Open Source Collective

But custom feeds are just the start. Blacksky is also one of the first PDSs in the federated sandbox. When composable moderation is ready, I should be able to convert the labeler script behind Blacksky: Uncut into a filter service that works better than The Hive's.

A list of PDSs in the sandbox and the number of accounts in them.
Blacksky is one of the first PDSs in the sandbox

Assuming Bluesky doesn't just up and vanish beforehand, there's a lot to look forward to in the future for Blacksky.


Stay tuned for the follow-up to this post where I talk about why I'm still so optimistic about Bluesky and AT Protocol.

Wanna hear more about Blacksky and some of my other work? I talk about that and more in this week's episode of Unapologetic Tawk.

Be sure to subscribe to the newsletter and if you haven't, consider donating to keep the lights on for Blacksky.

Subscribe to Rudy's Blog

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe