DEV Community

jsph
jsph

Posted on • Originally published at jsphwrkshp.com

How to set your Bluesky handle to a Porkbun domain

Why bother with a custom handle

Bluesky lets you set your handle to a domain you own, so instead of @yourname.bsky.social you get something like @yourdomain.com itself. It's a nice way to tie your social presence to something you already control or just to feel like you are satisfying your childhood notions of L33t or just because your own domain is really cool. For me I just wanted to seem cooler to people on Bluesky but maybe this is not something that will actually accomplish that goal.

How Bluesky verifies domain ownership

Bluesky uses the AT Protocol under the hood. Every account has a DID (decentralized identifier) — something like did:plc:abc123xyz. To prove you own a domain, you just need to make that DID discoverable from the domain. There are two ways to do that: a DNS TXT record or a hosted file. The DNS route is simpler and doesn't require any server setup, so that's what I went with.

Find your DID

First you need your DID. In the Bluesky app go to Settings → Change my handle. Click "I have my own domain" and Bluesky will show you your DID right there — it starts with did:plc:. Copy it (by the way do you often consider saftey of the information you put in your clipboard, I've been thinking more about this recently and want a general way to set a timer on the contents of clipboard please let me know).

Add the DNS TXT record in Porkbun

I assume the steps are similar for other domain registrars, but I have a porkbun acquired domain I plan to use so these instructions are for that situation. Log into Porkbun and open the DNS management page for your domain. Add a new TXT record with these values:

  • Host: _atproto
  • Answer: did=did:plc:youractualdihere
  • TTL: leave it at the default (300 is fine)

The host field is just _atproto — Porkbun will append the domain automatically, so the full record ends up at _atproto.yourdomain.com. The value has to start with did= exactly, then your full DID string after the equals sign. I found out through this that DNS records like this aren't something you can curl!

Verify in Bluesky

Back in the Bluesky handle settings, type your domain into the box (e.g. yourdomain.com) and hit "Verify DNS Record". DNS propagation can take a few minutes, so if it doesn't verify immediately just wait a bit and try again. Once it verifies, confirm the change and your handle updates.

Using a subdomain instead

If you don't want the handle to be the bare domain itself, you can use a subdomain like @me.yourdomain.com. The only difference is the TXT record host changes to _atproto.me instead of _atproto. Everything else is the same.

That's it

It took me longer to look up the instructions than to actually do it. The Porkbun DNS UI is straightforward and Bluesky's verify step gives you clear feedback on whether the record is being found. Now you can change your handle to a custom domain for fun and for profit (but mostly just for fun).

Top comments (0)