Moving to Bluesky with a custom domain handle
I've been exploring Bluesky as Twitter/X alternative for a year. The tech community made the move 5 weeks ago when Kelsey Hightower closed his X account. Since then, user and follower counts have skyrocketed. Learn how to set up your Bluesky account with a custom domain and a few tips and tricks to get started.
Account Setup
Account registration is straightforward - register an account on https://bsky.app/, verify your email, add a birth date (for viewing moderated adult content), and update your profile with a headshot, biography, and header. Install the available apps for iOS or Android.
By default, you can use the .bsky.social
instance and choose your nickname in this environment. But you can also use your domain (website, personal domain for everything, or a nickname) as your custom Bluesky handle.
This website runs on dnsmichi.at
but the .at
ccTLD is more historical, folks often get confused about my location (Germany, not Austria anymore). To better reflect my current focus and scope, I've registered a .dev
domain and let dnsmichi.dev
redirect to this website as well. That way, I can use dnsmichi.dev
as a custom domain on Bluesky which will be explained in the following steps.
Custom domain
The instructions are shown with Namecheap as a domain registrar and DNS server host, but the setup is super easy with a single TXT record with any provider and domain.
Note: If you are considering moving to a custom domain handle, do it as early as possible. Historical name tags and quotes are kept, but all incoming URLs (starter packs, lists, etc.) will be broken and not redirected and require external site updates. I was late to the game but fixed a GitLab handbook MR before review,
First, navigate into Bluesky web > Account > Handle > Change Handle (mobile app: Settings > Advanced > Change Handle).
Add the domain you want to use. Bluesky will generate an authentication record with _atproto
as Host key, and a string as value. The web view provides convenient copy actions for later operations.
Open your domain provider's interface to manage the domain records. For Namecheap, navigate into the domain view and select Advanced DNS
for manually adding entries. Then select Add new record
and select TXT record
in the dropdown.
For the Host
field, copy/enter the _atproto
key. For the Value
field, copy the Bluesky generated string. Leave TTL and other settings as default, and hit the green checkmark to save the entry.
When in doubt, you can manually test the new DNS record on your CLI, or in your web browser, for example using the Google Admin Toolbox for Dig: https://toolbox.googleapps.com/apps/dig/
The web UI call is equivalent to dig _atproto.domain TXT
on the CLI.
Navigate back to Bluesky to verify the domain and use the new handle.
The old handle.bsky.social
will be free to use again. To avoid namesquatting with the handle and URLs, register the handle immediately using a secondary email address or alias, and verify the account's email address. Edit the profile and add a biography and/or post, saying that it moved to @newhandle
.
Example: https://bsky.app/profile/dnsmichi.bsky.social moved to https://bsky.app/profile/dnsmichi.dev
More tips to get started
- Secure your account and enable email 2FA, and require ALT text for images by default.
- Follow starter packs - GitLab Community, DevRel, DevOps, Cloud Native, Platform Engineering, AI/ML Diversify Tech, and more in this thread.
- Ask friends to get added to Starter Packs to drive engagement and followers.
- Add a biography, profile picture and header, summarize your role, interests and topics to offer.
- Review the complete Getting Started guide by Dean Lofts:
I've started documenting more engagement tips for the Dev Advocacy GitLab handbook in this MR (edit: 2024-11-28 - merged and live here):
Ready to leave Twitter/X behind and start fresh? Join me on Bluesky!
Edit 2024-11-28:
Domain redirect with TLS certificates
If you need to redirect the new domain, or configure it on a host, here is an example how dnsmichi.dev now redirects to dnsmichi.at/about, requiring a TLS certificate with Lets Encrypt for .dev domains, integrated into an Nginx proxy.
Note: The .dev domain is special, it needs a TLS certificate and https certificate at the root HTTPS entry. Otherwise, browsers will immediately reject and mark the domain unsafe. Other domains may just use DNS provider tools that can redirect the HTTP host.
Edit the DNS entries and add A/AAAA recordings from the current host (dnsmichi.at) to the new host, use @
for the root domain entries.
Then setup TLS certificates with Lets Encrypt and certbot.
$ vim /etc/nginx/sites-available/dnsmichi.dev.conf
server {
if ($host = dnsmichi.dev) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name dnsmichi.dev;
return 301 https://dnsmichi.at/about;
}
server {
listen 443; listen [::]:443;
server_name dnsmichi.dev;
return 301 https://dnsmichi.at/about;
ssl_certificate /etc/letsencrypt/live/dnsmichi.dev/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/dnsmichi.dev/privkey.pem; # managed by Certbot
}
server {
listen 80; listen [::]:80;
server_name dnsmichi.dev;
}
$ ln -s /etc/nginx/sites-available/dnsmichi.dev.conf /etc/nginx/sites-enabled/dnsmichi.dev.conf
$ certbot --nginx -d dnsmichi.dev
$ systemctl restart nginx