Introduction

Introduction #

Aviary makes inviting others to use your domains for ATProtocol handles easy.

Nick has the domains dads.lol and atproto.rocks. After adding them to Aviary, Nick creates an invite URL and shares it with David. David uses that invite to set his handle from @davidisagreatguy.bsky.social to @david.dads.lol.

Aviary takes care of all of the hard stuff when setting handles. It uses ATProtocol OAuth to make it easy to log in, and because you’re authenticating through your own PDS, it can make the API call to update your handle. There’s no need to fiddle with manual DNS configuration or look up and set DIDs.

For Domain Owners #

Aviary makes ATProtocol domain management easy, regardless of the size and shape of your organization.

If you have a single domain just for ATProtocol handles, Aviary can get you started with just a few clicks.

If you have a larger organization with existing records, subdomains, and delegation, Aviary is a great choice because it will not interfere with your existing DNS infrastructure.

DNS vs HTTP Resolution #

ATProtocol supports two methods of resolving handles: DNS and HTTP.

DNS handle resolution uses a TXT DNS record that points to the DID in the format of “_atproto.[handle]”. That means the handle “nick.dads.lol” will have a TXT DNS record “_atproto.nick.dads.lol” with the DID of that handle as the value.

DNS handle resolution is very efficient and reliable:

  1. A single TXT DNS entry can resolve very quickly.
  2. DNS is globally distributed, and content is cached.
  3. It doesn’t depend on additional infrastructure like firewalls or web applications, which means better “uptime” when resolving handles.

DNS also has some quirks:

  • DNS caching can be tricky and can introduce delays. This usually doesn’t matter because handles change infrequently.

HTTP handle resolution uses the /.well-known/atproto-did URL. HTTP resolution can simplify some things when infrastructure exists already.

HTTP handle resolution has some pros:

  1. You can use a browser to verify that the handle is resolved correctly.

HTTP handle resolution also has some costs and overhead:

  • HTTP handle resolution requires DNS records but not TXT DNS records. A wildcard record like *.dads.lol is usually used.
  • When your application is down for maintenance, handles won’t resolve.
  • If you have an existing website or application infrastructure, you must make accommodations to support these requests.