Graphic reading "A GUIDE TO MIGRATING FROM BLUESKY TO BLACKSKY" with an arrow pointing from a Bluesky butterfly logo to the blacksky algorithms four star logo

How and why I moved from a Bluesky server to a Blacksky server

Since Twitter turned into a fascist hellhole under Elon Musk, Bluesky has become my favorite social media site. But Bluesky has its own issues, primarily centered around a series of questionable moderation decisions. Fortunately, it’s now possible to move your data to a Blacksky server while still keeping your Bluesky follower and following lists and otherwise using the Bluesky service as you always have — and I did it with both my @gregpak.net and @gregpak.com accounts!

What does that all actually mean and how and why did I make the switch? Read on!

What the heck is all this “server” talk anyway?

Bluesky has been built along a federated model of social media, which in practical terms means you can move your data to a different host from Bluesky itself but still keep your follower and following lists and use the service pretty much the same way. So if Bluesky adminstrators make questionable moderation decisions, your data has a chance to remain untouched, since it lives on a different server (which in Bluesky talk is also called a PDS, or personal data server).

This federated system, which Bluesky calls ATProto, has not been entirely built out and implemented in every detail. But it’s working pretty darn well on the servers maintained by the fine folks at Blacksky. Blacksky was created as a space for Black users, but they also maintain a couple of servers that non-Black users can use. In the past, you could create an account via Blacksky and your data would live on one of these Blacksky servers. Now you can also migrate your data from an existing Bluesky account to a new Blacksky account, which is what I’ve done.

Why migrate?

The primary reason to migrate is probably if you trust the moderators of a different server more than you trust the operators of Bluesky itself. I made the decision to migrate after seeing a number of suspect Bluesky moderation decisions, culminating with the banning of a popular user named Link. When Link was banned, his account disappeared from Bluesky. But because he was using Blacksky, his data still exists on the Blacksky servers, which Bluesky itself cannot touch. As of this writing, Link’s account is not yet live on Blacksky because the full technical system to allow Blacksky to unban accounts that Bluesky has banned has not yet gone live. But in theory, that should happen eventually. And even in the short term, his data has been preserved as it would otherwise not have been if he hadn’t been on Blacksky.

For more on all of this, including a deeper technical dive and Blacksky’s own take on the situation, please read this thread by Rudy Fraser from Blacksky.

I don’t know if it was actually urgent for me to migrate when I did, and I’m not here to argue anyone into doing it. You might also want to wait for Blacksky to more fully implement every aspect of ATProto or for one of the other independent PDSes like Northsky to get up to speed.

But for those interested in the process, here’s how I did it.

How I migrated to a Blacksky PDS

Before I did anything, I read Blacksky’s guide to migration, and you should, too! I also found some essential tips in another excellent migration guide by bisprout.writes.fyi. Also I want to give big thanks to folks like @sharpiepls.com, @aliafonzy.blacksky.app and @rude1.blacksky.team, who provided info and resources along the way.

The basic process involves using a migration app to tell Bluesky to transfer your account data to Blacksky. You’ll be prompted to pick a new username for Blacksky, and after the migration is complete, you can reactivate any custom URL you might have had with your Bluesky account. The migration process was very fast for @gregpak.com, my small, work-only Bluesky account, taking only 15 minutes. But for my big @gregpak.net Bluesky account, which had tens of thousands of followers and posts and loads of uploaded photos and video, the whole process took about 2 1/2 hours.

Some very specific tips

Before you start, disable two factor authorization if you have it enabled for your Bluesky account.

There seem to be two possible migration tools. I used tektite.cc, the official tool Blacksky offers, but it didn’t work with my username. Instead, I had to input my DID, which is a unique number assigned to each account. You can find your DID by searching for your account by username at clearsky.app. The DID for @gregpak.net, for example, shows up there as did:plc:j53elsjlcag3iuran5ezcy32. When I put that DID into tektike instead of my username, I was able to log in and start the process.

UPDATE 2025-11-16 – Clearsky has just started requiring login using your Bluesky password. I don’t know whether that’s a secure thing to do at this point. But I don’t yet know if there’s another way to find your DID. So this might stop the cautious from undertaking this at the moment.Will update again when I find out more!

As part of the process, you’re asked to identify the server you’re moving to. I moved to myatproto.social, one of the Blacksky servers for non-Black people. The main Blacksky server for Black users is blacksky.app. (Blacksky also offers cryptoanarchy.network for non-Black users, but I picked myatproto.social because I wanted to avoid any association with “crypto,” even though they’re using it to refer to code instead of cryptocurrency, ha ha.)

You also have to pick a new username and password for your new Blacksky account. But very important: DO NOT LOSE YOUR ORIGINAL BLUESKY PASSWORD – YOU’LL PROBABLY NEED IT LATER!

Then I started the migration process. The initial migration for my big @gregpak.net account took about 20 minutes. I got a screen that looks like this. According to @aliafonzy.blacksky.app, “blobs” are image/media files. I had a lot to migrate!

progress screen from tektike.cc, a bluesky-to-blacksky migration tool, showing 12.8% of blobs transferred. 64/500 blobs transferred. lotta blobs for this account!

When this initial migration process was done, I could log into my newly migrated account on the web via blacksky.community. It looked good at first glance — my posts and followers and following lists and everything else seemed intact. But my account showed my @username.myatproto.social username instead of my custom username. So I had to go into the settings and relink to my @gregpak.net custom URL username. For help with that process, check out the Bluesky guide to setting up a custom URL username.

NOTE: I have a blue check from Bluesky. But when I first migrated to Blacksky and had a @username.myatproto.social username, my blue check was grayed out. Once I relinked my account to my @gregpak.net username, the check turned blue again. I infer that the blue check is a bit of info provided by Bluesky that the Blacksky servers can read, but it’s associated with the username you had when Bluesky assigned it, so re-establishing my custom username was key. I don’t know what happens if you had a blue check with a bsky.social username and then switched to a blacksky.app username — does that blue check remain grayed out indefinitely or disappear? Not sure!

So then my account looked and mostly operated the same, with the same username as before, but it was living on the myatproto server. Fantastic! But I found out I wasn’t able to edit my bio, which seems to be a common problem. The error message said “Could not find blob.”

screenshot of gregpak.net's profile page on myatproto.social - says "Could not find blob: [big line of random characters]"

The solution I found in @bisprout.writes.fyi‘s guide was to use missing.pdsmoover.com to migrate missing blobs from Bluesky to Blacksky. This is where saving my old Bluesky password was key, because I had to use that password to activate that pdsmoover tool.

Importing the missing blobs for @gregpak.com only took a couple of minutes. But @gregpak.net had THOUSANDS of missing blobs, and it took a couple of hours for pdsmoover to move them all over.

screenshot of a notice that says "You are good to go! You have all 4131 of the expected 3669 blobs. You're done!!"

After migrating all those missing blobs, the only glitch I couldn’t fix was that I was unable to reply to one particular post that I made right before migrating. I just got this error message:

screenshot of an error message saying "We're sorry! The post you are replying to has been deleted."

The post did not actually appear to be missing, so I’m not sure what the “deleted” error message was about. But it’s now been a month since I migrated and I haven’t had any other similar problem, so I’m not worrying about that one. I assume it was just a single post that somehow got lost, maybe because it hadn’t fully propagated across servers before the migration process.

Different ways to log into your Blacksky account

On a web browser, you can log into your Blacksky account through blacksky.community, in which case you’re navigating using the Blacksky interface. You can can also log in using bsky.app and navigate via the Bluesky interface. For mobile, there’s no dedicated Blacksky app. So I log in via the Bluesky mobile app.

Whether you’re logging in via Blacksky or Bluesky, you’ll be asked to fill in the “Hosting provider” along with your username and password. On blacksky.community, the default hosting provider is Blacksky Algorithms, which works fine for me. On my iPad and iPhone, I initially used “myatproto.social” as my hosting provider, and that worked. But eventually when I tried to upload video via my iPhone, I got an error message saying I was trying to use a Blacksky server that I wasn’t on. So I logged out and logged in again using “blacksky.community” as my hosting provider, which fixed that problem.

When Blacksky has completed all the technical work it has planned, one big advantage of logging in via Blacksky instead of Bluesky is that you’ll be entirely within the Blacksky app view, which means, if I understand things correctly, that you might be able to see accounts that Bluesky might have banned but Blacksky didn’t.

For now, the main functional difference when you log in via Blacksky is, I believe, that you’ll automatically be protected by Blacksky’s excellent moderation. Even if you haven’t migrated to Blacksky, I recommend visiting @moderation.blacksky.app and subscribing to Blacksky moderation.

Another advantage of logging in via Blacksky is that on occasion, Bluesky will have a slowdown or glitch that doesn’t affect Blacksky users.

The main cosmetic difference when you log in via Blacksky is that all the links you see to your posts and everyone else’s posts will start with blacksky.community and the social preview images when you share them will have Blacksky instead of Bluesky branding. (You’ll also get other Blacksky user interface branding — for example, all the starter packs you see will also say “JOIN THE COOKOUT” at the top.)

On the other hand, if you log into your Blacksky account via Bluesky, your links will start with bsky.app and social preview images and starter packs, etc., will have Bluesky branding.

These difference in links don’t matter much, but they might cause some confusion of you were to share a Blacksky link with someone while saying “check this out on Bluesky!” This isn’t something I’ve worried about a whole lot, but if I’m specifically plugging Bluesky Starter Packs to absolute newbies, I’ll sometimes share links that start with bsky.social to make things simpler.

I’ve also noticed that some folks who sign up for Bluesky for the first time using my starter packs seem to end up with myatproto.social instead of bsky.social usernames. I assume that’s because the starter pack code directs users to sign up via the starter pack creator’s PDS instead of Bluesky as a default. That could be a touch confusing to some people, particularly if I’m telling them “Hey, check out this starter pack and sign up for Bluesky!” So that’s something I have to keep in mind and ponder a bit.

A couple of other quirks

I noticed that gifs weren’t working on my Blacksky accounts. When I asked around, the amazing @bradwenner.photo said that the Privacy Badger plugin on his browser was preventing Blacksky from seeing Bluesky’s gifs. So I went into the Privacy Badger settings and deactivated it for blacksky.community, and now I see gifs!

Most of my settings seemed to transfer right over from Bluesky to Blacksky. But after I managed to post an image without alt text and realized that I had to go into Settings > Accessibility and re-check the “Require alt-text before posting” button (which everyone should have checked, imho).

screenshot showing the blacksky.community Settings > Accessibility window that has the checkbox for "Require alt text before posting"

Be sure to donate to Blacksky if you migrate!

The last step in my migration process was to donate to Blacksky. Blacksky is an entirely independent undertaking, and they’re doing an enormous service by creating all of this infrastructure and moderation that may ultimately save the entire Bluesky experience. Also, I’m a non-Black user on a Blacksky server, and even if myatproto.social has been created for non-Black users, I feel like I have a special responsibility to pony up to support an organization that’s opened its doors to me like this.

So I set up a monthly donation at opencollective.com/blacksky. There’s not currently a clear functionality to donate a one-time lump sum, but I saw Rudy mention online that folks could set up a monthly donation for whatever lump sum they wanted to donate and then cancel it after one payment, so that could be an option.

And that’s my experience! I’m pretty darn happy with it so far, especially every time I see another banning controversy drift over my Bluesky timeline. Your mileage may vary, of course, but I hope this has been helpful if you’re considering a move.