Bluesky PDS Migration Checklist: Steps Before You Switch
🔍 WiseChecker

Bluesky PDS Migration Checklist: Steps Before You Switch

Moving your Bluesky account from the official PDS to a self-hosted or third-party PDS requires careful preparation. If you skip key steps, you risk losing your handle, your followers, or your account data. The migration process transfers your account metadata, posts, and follows, but it does not automatically move your custom domain handle or your saved feeds. This article provides a complete checklist of actions to take before you start the migration so that your transition is smooth and your data stays intact.

Key Takeaways: Pre-Migration Steps for Bluesky PDS Transfer

  • Settings > Account > Export My Data: Download your full account archive including posts, likes, and follows before starting the migration.
  • Settings > Account > Handle: Remove your custom domain handle and revert to a default handle before initiating the PDS switch.
  • Settings > Moderation > Muted Words & Muted Accounts: Export or screenshot your mute and block lists because they do not transfer automatically.
  • Settings > Feeds > My Feeds: Save the URLs of any custom feeds you use because they must be re-added after migration.

Why Preparing for a PDS Migration Matters

A Personal Data Server migration relocates your Bluesky account from one PDS instance to another. The official Bluesky PDS hosts millions of accounts, but users switch to self-hosted PDSes for greater data control, custom moderation, or independence from the central service. The migration process uses the AT Protocol’s account transfer feature, which moves your posts, follows, likes, and profile information. However, the transfer has known limitations. Custom domain handles, mute and block lists, and saved feeds are not carried over. If you do not prepare these items beforehand, you will lose them permanently. Following a structured checklist ensures that nothing important is left behind.

What the Migration Does and Does Not Transfer

The AT Protocol account migration moves the following data to the new PDS:

  • Your account metadata (display name, description, avatar, banner)
  • All public posts (including replies and reposts)
  • Your follow list and follower list
  • Your likes and bookmarks
  • Your list memberships (mute and block lists are not transferred)

The following data is NOT transferred:

  • Custom domain handle (you must remove it before migration)
  • Muted words and muted accounts
  • Blocked accounts
  • Saved custom feeds (third-party feeds)
  • App passwords
  • Session tokens (you will need to log in again)

Complete Pre-Migration Checklist

Perform each step in the order listed below. Do not skip any step even if you think the data is not important to you.

  1. Export Your Account Data
    Go to Settings > Account > Export My Data. Click the export button to download a zip file containing your posts, follows, likes, and profile data. Store this file in a safe location. The export does not include your mute or block lists, so do not rely on it for those items.
  2. Remove Your Custom Domain Handle
    If you use a custom domain handle, go to Settings > Account > Handle. Click the edit icon and switch back to a default handle (username.bsky.social). Wait 10 minutes for the DNS change to propagate. If you do not remove the custom handle before migration, you will permanently lose access to that handle on the new PDS.
  3. Save Your Mute and Block Lists
    Go to Settings > Moderation > Muted Accounts and Muted Words. Take screenshots of each list or copy the account handles and words into a text file. Blocked accounts are stored in Settings > Moderation > Blocked Accounts. Save these lists because they will not appear after migration.
  4. Record Your Custom Feed URLs
    Open each custom feed in your browser. Copy the full URL from the address bar. The URL looks like https://bsky.app/profile/did:plc:xxxx/feed/yyyy. Paste the URLs into a text file. After migration, you will need to re-add each feed manually using these URLs.
  5. Note Your App Passwords
    Go to Settings > Account > App Passwords. Write down any app passwords you use for third-party clients. These passwords will be invalid after the migration. You will need to create new ones on the new PDS.
  6. Check Your PDS Destination Requirements
    Visit the documentation of your target PDS provider. Some self-hosted PDSes require you to generate an invite code before migration. Others require you to set up a DNS record for your custom domain. Confirm these requirements and complete them before you start the migration process.

Common Issues After PDS Migration

Custom Domain Handle Shows as Unverified After Migration

If you kept your custom domain handle during migration, it will show as unverified on the new PDS. To fix this, remove the handle from the old PDS before migration, then add it again on the new PDS after migration. You must update the DNS TXT record for your domain to point to the new PDS’s DID. The process is the same as the initial setup: add a TXT record with the value did=did:plc:newDID in your domain registrar’s DNS settings.

Muted or Blocked Accounts Reappear in Feeds

Because mute and block lists are not transferred, accounts you previously muted or blocked will appear in your feeds again after migration. Use the lists you saved in step 3 to re-mute or re-block each account manually. There is no bulk import feature for these lists, so you must add them one by one.

Custom Feeds Show as Not Found

Custom feeds are tied to the PDS that created them. After migration, the feed URLs you saved in step 4 will still work, but you must re-add them to your feeds list. Go to the feed URL, click the Add to My Feeds button, and the feed will appear in your home tab again.

Bluesky Official PDS vs Self-Hosted PDS: Key Differences

Item Official PDS Self-Hosted PDS
Data ownership Hosted by Bluesky You control the server
Custom domain handle Supported with DNS verification Supported with DNS verification
Account recovery Bluesky support can help You are responsible for backups
Moderation Uses Bluesky global moderation You can set custom moderation rules
Migration difficulty Low – just use the official migration tool Medium – requires server setup and DNS configuration

After you complete the checklist and perform the migration, log into your new PDS and verify that your posts, follows, and profile appear correctly. Re-add your custom domain handle, mute lists, blocked accounts, and custom feeds using the data you saved. As an advanced tip, set up automated backups of your PDS database and media files using a cron job or a tool like pg_dump so that future migrations require less manual preparation.