Showing posts with label Tips. Show all posts
Showing posts with label Tips. Show all posts

Thursday, April 17, 2025

Bluesky Handle Subdomain Setup

Shot from the Weird Al’s music video for Bob, a Bob Dylan style parody song that is entirely palindromes. In it, Al is dressed as Bob Dylan and is holding a cue card that says “Won’t lovers revolt now?”

While revamping my Palindrome News Bot, I needed to set up a new account and make sure the handle took advantage of this sweet domain name for which I'm paying a buck a month. The setup for an individual handle without subdomain is straightforward. But was not necessarily obvious to me how to add a second user handle or one that uses a subdomain instead of the domain root.

TL;DR: add your subdomain after _atproto with a period separating them in the TXT record. 

To set up your handle using a custom domain, you go to your Settings, Account, Handle and get a screen like this:

 

 You have a domain you'd like to use instead of bsky.com, so click the "I have my own domain" button. The next screen displays with some DNS changes you need to make (that did is not a secret, don't worry):

 

 The rick here is that these instructions are specialized for domains and not subdomains. If your domain is danlearnssstuff.com, these will work fine to make your Bluesky username @danlearnsstuff.com. Add a TXT record with the name of _atproto and the text portion starting with did (it's unique per user). This publishes an "_atproto.<domain>.<tld>" TXT record that bsky reads.

But for using subdomains, the above instructions will not work. Instead, you need to publish a TXT record with the host of "_atproto.<subdomain>" and the did contents as given. With the correct host, DNS will propagate the full "_atproto.<subdomain>.<domain>.<tld>" For example, here is how my two TXT records look in Cloudflare:

 The top one is for Tobswen, the bottom is for my main handle. Both are verified now.

Finally, not sure if you'll run into this, but it took about 20 minutes to propagate my subdomain TXT record globally in a way that Bluesky could recognize it. Not sure if that's normal. I've read TXT records can take 24-48 hours to propagate, but other records went out way faster.

If you have a wacky handle you'd like to try, check out the ATProto handle spec for more details.