Skip to main content
Sifa Docs

Use your own domain as your username

Replace `alice.bsky.social` with `alice.com`. Your own domain becomes your Atmosphere identity. You set it up on your provider, or with DNS, not on Sifa.

Your Atmosphere username defaults to ending in your provider's domain: alice.bsky.social on Bluesky, alice.eurosky.social on Eurosky. You can swap that for your own domain (alice.com, me.example.org) so your professional identity is not tied to a provider's name.

The setup happens at the AT Protocol level, on your provider. Sifa ID does not run a whitelabel username service. Sifa gives you the profile, and that profile uses whichever username your provider holds.

When your provider accepts the username, your Sifa profile URL becomes https://sifa.id/p/alice.com on its own. Sifa needs no further configuration.

What you need before you start

  • An Atmosphere account on any provider (Bluesky, Eurosky, etc).
  • A domain you control.
  • Either the ability to add DNS TXT records to that domain, or the ability to serve a single file at https://<your-domain>/.well-known/atproto-did.

Control DNS but not .well-known/? Use the DNS method. Control .well-known/ (most hosting platforms) but not DNS? Use the file method. Either works.

Step 1: find your DID

Your DID is the permanent ID for your account. You need its value to point your domain at it.

In the Bluesky app: Settings → Account → Advanced → Decentralised Identity (DID). Copy the long string starting with did:plc:.

In Sifa: open your profile page and look in the settings panel.

From the command line:

curl -s "https://bsky.social/xrpc/com.atproto.identity.resolveHandle?handle=<your-current-username>" | jq -r .did

Swap bsky.social for your provider's hostname if you are not on Bluesky.

Step 2, option A: set a DNS TXT record

On your DNS provider (Cloudflare, Hetzner, Route 53, your registrar's panel, wherever you manage records for the domain):

  • Type: TXT
  • Name: _atproto.<your-domain>. For alice.com, that is literally _atproto.alice.com. Some DNS UIs ask for just _atproto and append the domain automatically. Both forms are correct.
  • Value: did=did:plc:<your-did-here>
  • TTL: 300 is fine.

Save. The record propagates in a few minutes.

Verify:

dig +short TXT _atproto.alice.com
# should return: "did=did:plc:abc123..."

Step 2, option B: serve a .well-known/atproto-did file

If you cannot set DNS TXT records (some managed hosts block them), serve a plain-text file at:

https://<your-domain>/.well-known/atproto-did

The file is a single line: your DID. Nothing else.

did:plc:abc123def456...

The host must send the response over HTTPS with Content-Type: text/plain. Most static hosts (GitHub Pages, Netlify, Cloudflare Pages, plain nginx) let you serve files at any path. Ghost Pro, some managed WordPress, and a handful of SaaS site builders block /.well-known/. In that case use the DNS method or move hosts.

Verify:

curl -s https://alice.com/.well-known/atproto-did
# should print: did:plc:abc123...

Step 3: update your username on your provider

With DNS or well-known in place, tell your provider you want to change your username.

On Bluesky: Settings → Account → Handle → I have my own domain. Enter alice.com. The Bluesky app runs the verification. It reads your DNS record or your well-known file, and then it updates the username.

On Eurosky / Tangled / Blacksky: roughly the same flow under Settings or Account.

If verification fails, double-check the steps above. DNS sometimes takes a few minutes to propagate. Does dig +short TXT _atproto.<domain> return the right value while your provider still says no? Wait 5 minutes. Try again.

Step 4: verify on Sifa

Sign out of Sifa. Sign in again with your new username. Your profile page is now https://sifa.id/p/alice.com.

A Sifa profile page rendered with a custom-domain username (@gui.do, where gui.do is the owner's own domain). Same layout as any other Sifa profile: header card with name and username, section navigation on the left, biography and activity heatmap on the right.
A Sifa profile served at sifa.id/p/your-domain.com. Example: gui.do, a real custom-domain username.

Old links pointing at https://sifa.id/p/alice.bsky.social still resolve. The AppView indexes by DID, not by username, so any path that maps to your DID renders the same profile.

Why do this

  • Independence from your provider. Move from Bluesky to Eurosky later, and your domain username stays. People who linked to alice.com do not lose anything.
  • Personal-brand surface. A short, memorable username that matches your website. sifa.id/p/alice.com reads as your CV the way alice.com reads as your blog.
  • One-time setup. DNS records and well-known files do not decay. Set once, runs for years.

Want to go deeper

On this page