How to set a custom domain name as a handle on Bluesky
Some people think that setting a custom domain as your Bluesky handle requires self-hosting or managing complex systems, but that’s not the case. Unlike platforms like Mastodon, which can involve hosting an entire server, Bluesky’s identity verification system is much simpler. You don’t need to run a server or host anything, just prove that you own the domain.
It’s a straightforward and secure process.
Your domain isn’t tied to a single username, either. You can even use subdomains or create handles that overlap with existing domains. For example, my Bluesky handle is @protobear.dev
, which matches my domain, protobear.dev
. But I’m not limited to that. I could create a separate account just for my blog and set the handle to @blog.protobear.dev
if I wanted. Just note that domain-based handles don’t work like email addresses, you can’t use [email protected]
as a handle.
Here’s how simple it is to set this up:
- Generate a key from Bluesky.
- Add a DNS record.
- Click refresh.
That’s it! You’re done! It’s genuinely that simple.
To make this less intimidating, I’ll walk you through the process step by step using a domain I already own for a project I’m working on. Even if it seems daunting at first, you’ll see there’s really not much to it.
Important: While it's not technically difficult to change your handle it involves many different technologies you might not be familiar with, and understandably have questions about as its not entirely unlikely your livelihood is coupled to the domain you'd wish to use. That's why at the bottom there's some extra explanations about these technologies, or questions you might have.
Instructions
Before we begin, you’ll need to have a Bluesky account already set up. If you don’t have one yet, create an account and log in. Once you're ready, head over to the Settings page to get started.
Generating the DNS Record

On the Settings page, navigate to the Account section.

On the Account page, click on Handle to start the process of setting your custom domain as your handle.

Click on I have my own domain.

Once you've clicked I have my own domain, enter your desired domain name into the field at the top. This will generate the DNS information you need to add to your domain's settings. Make note of the Host, Type, and Value fields, as you'll need these to update your DNS records.
Adding the DNS Record to your Registrar

Go to your domain registrar's website (if you don’t already have a domain, I recommend Cloudflare) and navigate to the section where you can manage DNS Records.
A DNS record is essentially a file associated with your domain name that tells the DNS system where to direct traffic. Don’t worry, we’re not touching the essential records like A, AAAA, or CNAME records that control your website’s functionality.
Instead, we’re adding a TXT record, which is a simple text-based record often used to verify ownership of a domain. Adding this record poses no security risk to your domain, and Bluesky can’t take control of it.
Once you’re in the DNS Records section, look for an option to Add a Record—this is where we’ll add the TXT record for Bluesky.

Other Registrars
To make this process even easier, I’ve included links to the documentation for adding DNS records for several popular domain registrars. These guides will walk you through the exact steps for your registrar:
Adding the DNS Record

When you click on Add record you'll get something like this.
The first thing you should do is change the type to TXT.
If you're using Cloudflare, don’t worry if the interface looks a bit different initially. When you change the type to TXT, the UI will update to match the format for TXT records. After making this change, it should look something like this:

From here, you can input the required details provided by Bluesky. These include:
- Name: This will typically be
_atproto
(or whatever Bluesky specifies). - Content: Copy and paste the unique value generated by Bluesky for verification.
- TTL: Leave it as the default. (Auto)
You can find these details on the change handle modal on the Bluesky settings page.

The Name field should match what Bluesky refers to as the Host, and the Content field should be filled in with the Value provided by Bluesky.
Once you’ve entered these details, save the record. This step links your Bluesky handle to your domain and verifies your ownership.

You should now see your new TXT record listed alongside your other DNS records, similar to the image above.
Depending on your domain registrar, it may take some time for the changes to propagate. With Cloudflare, this process usually takes about a minute.
Once you've waited for about a minute, go back to Bluesky and click Verify DNS Record to complete the process.

If the record has been added correctly, you’ll see a green checkmark, and the button will change to say "Update to {domain name}".
Click this button, and your Bluesky handle will be updated to the domain name you set up. Congratulations! You’re now using your custom domain as your Bluesky handle!
If Bluesky doesn’t find the DNS record right away, don’t panic! Sometimes it takes a little while for changes to propagate. Depending on factors outside of your control (Like the DNS network) and the registrar you chose (which is within your control), propagation can take up to 72 hours in rare cases.
To speed things up, make sure the TTL (Time-To-Live) value for your record is set to Auto or a low value like 15 minutes. This will ensure the changes update more quickly. Once the domain is successfully verified, you can change the TTL back to a longer value to reduce unnecessary DNS traffic.
Patience is key, just wait a bit and try verifying again!
Optional: Adding subdomains as handles
You can also use this setup for team members by creating subdomains for each individual. For example, if your main domain is example.com
, you could assign subdomains like alice.example.com
or bob.example.com
to specific team members.
Simply follow the same steps:
- Add a TXT record for each subdomain in your DNS settings.
- Use the Host field to specify the subdomain (e.g.,
_atproto.alice
foralice.example.com
). - Fill in the Value provided by Bluesky for each account.
This allows each team member to have a unique handle tied to your organization’s domain, making it both professional and secure!

QYDA: Questions You Didn't Ask
What’s a registrar?
A registrar is the service you use to register and manage a domain name. Think of it as the storefront where you purchase the rights to use a specific domain (e.g., example.com
). Registrars also provide tools to manage your domain, like setting up DNS records or renewing your ownership. Popular registrars include Cloudflare, GoDaddy, and Namecheap.
What’s DNS?
The Domain Name System (DNS) is like the internet’s address book. When you type a domain name (e.g., example.com
) into your browser, DNS translates it into the numerical IP address of the server hosting that website. Without DNS, you’d need to memorize long strings of numbers to visit websites instead of using easy-to-remember names.
DNS also helps direct other internet traffic, like email or authentication services, by linking domain names to specific servers or systems.
What’s a DNS record?
A DNS record is a set of instructions in the DNS that tells internet systems what to do with your domain name. It’s essentially a piece of data that answers questions like:
- “Where is this website hosted?” (via an A or AAAA record pointing to an IP address)
- “Which server should handle mail for this domain?” (via an MX record).
DNS records also serve other purposes, such as verification. For example:
- SPF or DKIM records: Confirm email authenticity.
- TXT records: Provide additional information about your domain.
In the case of Bluesky, a TXT record is used to verify that your Bluesky account belongs to the owner of a specific domain. This allows you to connect your domain name as your handle securely.
What’s a PDS?
A Personal Data Server (PDS) is a system that stores and manages your online identity and content on decentralized networks like Bluesky’s AT Protocol. Instead of relying entirely on centralized platforms like traditional social networks, a PDS gives you control over your data, allowing you to move between platforms or even self-host if you want.
Think of a PDS as your personal hub on the web. It ensures that you own your content and identity, and not the platform you’re using.
Does this mean I’m self-hosting now?
No, setting up a custom domain for your Bluesky handle doesn’t mean you’re self-hosting. You’re not hosting a server or managing any of the technical backend systems. All you’re doing is proving ownership of a domain by adding a DNS record, which Bluesky uses to verify and associate your domain name with your handle.
In simpler terms, you’re just adding a tag to your domain to show that “you own this,” and Bluesky does the rest. It’s a lightweight process that doesn’t require any ongoing maintenance.