How to Set a Bluesky Handle With Route 53 on AWS
🔍 WiseChecker

How to Set a Bluesky Handle With Route 53 on AWS

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.