Bluesky allows you to use a custom domain as your handle, such as @yourname.com instead of the default @yourname.bsky.social. This makes your profile look more professional and ties your online identity to your own domain. To set this up, you need to add two DNS records to your domain hosted in Amazon Route 53. This article walks you through the exact steps to configure the required TXT and AT records so Bluesky can verify your domain.
Key Takeaways: Setting a Custom Bluesky Handle via Route 53
- Bluesky Settings > Account > Handle: Opens the panel where you enter your custom domain and get the DNS verification value.
- Route 53 > Hosted Zones > Create Record: Adds the TXT record with the Bluesky-provided value for domain ownership verification.
- Route 53 > Hosted Zones > Create Record: Adds the AT record pointing at.yourdomain.com to Bluesky’s IP address to serve the AT Protocol file.
What Bluesky Requires to Verify a Custom Domain Handle
Bluesky verifies that you own a domain by checking two DNS records. The first is a TXT record that proves domain ownership. The second is an AT record that confirms your Bluesky account is the one authorized to use that domain. Both records must be created in your DNS provider. For this guide, that provider is Amazon Route 53.
Before you begin, confirm you have:
- An active Bluesky account
- A domain registered with AWS Route 53 that has a public hosted zone
- Administrative access to the AWS Management Console
The process takes roughly 10 minutes. DNS propagation may take up to 30 minutes, but Route 53 updates are typically fast.
Steps to Add the TXT Record and AT Record in Route 53
Follow these steps exactly. Do not skip the order — you need the TXT record value from Bluesky before you create the AT record.
- Open Bluesky Settings
Log in to Bluesky in your browser. Click the Settings gear icon in the left sidebar. Then click Account. In the Handle section, click Change. - Enter Your Custom Domain
Select the option I have my own domain. Type your full domain name, for example yourname.com. Do not include subdomains unless you want the handle to be subdomain-based. Click Continue. - Copy the TXT Record Value
Bluesky displays a DNS verification value. It looks like did=did:plc:abcdef123456. Copy this entire string to your clipboard. Keep this browser tab open. - Open Route 53 in AWS Console
In a new browser tab, go to the AWS Management Console and navigate to Route 53. In the left menu, click Hosted Zones. Click the domain name you want to use. - Create the TXT Record
Click Create record. For Record Name, leave it blank (this creates the record for the root domain). For Record Type, select TXT. In the Value box, paste the string you copied from Bluesky. Set TTL to 300 seconds. Click Create records. - Create the AT Record
Click Create record again. For Record Name, type at. For Record Type, select AT. In the Value box, type at.bsky.workers.dev. Set TTL to 300 seconds. Click Create records. - Return to Bluesky and Verify
Go back to the Bluesky tab. Click the button Verify DNS Record. Bluesky checks both records. If successful, you see a green confirmation and your handle changes immediately.
If verification fails, wait 5 minutes and try again. DNS propagation can lag by a few minutes even on Route 53.
Common DNS Configuration Mistakes and How to Avoid Them
Many users run into the same issues. Here are the most frequent problems and their fixes.
AT Record Shows as ‘AT’ Instead of ‘CNAME’ in Route 53
Route 53 does not have a record type called AT. You must create a CNAME record with the name at pointing to at.bsky.workers.dev. The Bluesky documentation uses the term AT record, but it is a standard CNAME in all DNS providers.
Bluesky Shows ‘Domain Not Verified’ After Adding Records
This usually means the TXT record value is incorrect. Go back to Route 53 and open the TXT record. Verify the value matches exactly what Bluesky gave you. The value is case-sensitive. Also confirm you did not add extra spaces or quotation marks. Route 53 automatically wraps the value in quotes — do not add your own.
Handle Changes but Profile Links Show ‘bsky.social’
This happens when the AT record is missing or points to the wrong target. Open the CNAME record for at.yourdomain.com and confirm the target is exactly at.bsky.workers.dev. Do not include a trailing dot.
Route 53 Shows ‘Record Already Exists’ for the Root Domain
If you already have a TXT record for the root domain, you cannot create a second one with the same name and type. Instead, edit the existing TXT record and add the Bluesky value on a new line in the Value field. Route 53 supports multiple values in one TXT record.
| Item | Default Bluesky Handle | Custom Domain Handle |
|---|---|---|
| Display format | @username.bsky.social | @yourname.com |
| DNS records needed | None | TXT record and CNAME record |
| Verification method | Automatic | Manual DNS check |
| Propagation time | Instant | Up to 30 minutes |
| Cost | Free | Domain registration fee + Route 53 charges |
After you set up the custom handle, you can change it at any time from the same Settings > Account page. To revert to a default handle, click Change and select Use default Bluesky handle. The DNS records in Route 53 remain — you can delete them manually if you no longer need them.