Feature Preview: DNS + domains

Hey folks. I’d like to share a peek at our upcoming global DNS service.

We’re trying to make DNS pleasant, especially if you’re offering custom domains to your customers. Hosted zones will be managed with flyctl or our GraphQL api, just like apps. We can automate your app’s DNS configuration for SSL certs and IPs for you. Or you can use this as a standalone DNS host for services not running on fly.

Our preview features are pretty standard… you create a hosted zone, add some records, then point your domain’s name servers at ours. For ongoing DNS management we have a neat feature: transactional zone file imports. This lets you store declarative DNS configuration as a zone file along with your source code and safely apply changes on release from your CI server.

Here’s a quick look:

# create a zone
flyctl dns zones create <org> example.com

# export the zone to a zone file
flyctl dns records export <org> example.com > zonefile.txt

# add some records...
# echo "www 1h IN A 1.2.3.4 > zonefile.txt

# import 
flyctl dns records import <org> example.com ./zonefile.txt

You can play with this right now using our GraphQL API with support coming to flyctl very soon. It’s a preview, so please share your feedback and don’t flip your production dns over just yet :wink:


We’re also building domain registration and management apis that’ll integrate with our DNS. This is still early in development and initially focused on helping saas apps with custom domains. If you’re interested in offering seamless domain search, registration, and configuration to your customers, let us know!

11 Likes

Super excited about this at Draftbit :100:

Can’t wait to start playing around with it :slight_smile:

2 Likes

This looks awesome! :star_struck:

We’d be very interested in offering domain registration to our customers. What does the process look like?

3 Likes

The first use case we’re building for is integrating domain registration into your app, so you’ll use our GraphQL API for everything. Later on we’ll add support to flyctl to help manage your own domains.

The process depends a bit on who you’re registering the domain for, but the gist is:

  1. you’ll call the search API to find available domains and see pricing info
  2. once you (or customers) find the domain you can dump them into a multi-step registration flow
  3. ICANN needs contact info for whoever will own the domain. We’ll have an API to manage contacts for your organization so you only need to do this once for each registrant. You’ll likely have a contact for each customer and we’ll provide a way for you to identify these customer records in your system
  4. we’ll submit the registration request and add the domain to your account in a pending state
  5. once registration is successful, we’ll configure a DNS zone for the domain
  6. you’ll call an API to add an APP record to the new zone pointing to your fly app. this will create all the necessary DNS records to issue SSL certs and begin routing traffic to your app from the new domain

We’re still determining pricing, but right now our plan is to bill your fly organization for these domains along with providing reporting tools and APIs you can use to figure out which customer to bill in your billing system. We’re still thinking through things like renewal emails and WHOIS data reminder emails. We don’t want you to think about all that so we’ll probably do something on your behalf that can be rebranded, similar to how stripe does invoices.

What type of app are you building? Does that sound like it’d work for you?

5 Likes

Awesome to hear! What’s your use case?

Quick update…

Domain Registration Private Beta

Our domain registration services are almost ready for testing. Here’s the highlights:

  • We’re offering domain registration and renewals at cost. Right now a .com costs about $12/year. We’re hoping to reduce that further over the coming year.
  • We support .com, .app, .dev, .io, .net, .org, and .page TLDs with more coming soon.
  • Registered domains automatically get a fly DNS zone that you can manage with our APIs, flyctl, or our UI
  • transfer in and out coming soon

If you’re interested, DM me with your email & organization and I’ll add you to the private beta.

Domain Reseller Tools

We’ve extended our GraphQL API with tools you can use to build domain reselling services right into your app. The implementation is largely up to you, but here’s roughly how it’ll work:

  • You’ll build the domain search and registration UX into your app using our APIs.
  • As domains are registered, track them in your database and configure your app’s DNS records using our API.
  • We’ll bill your fly account for registrations and you bill your customers. You control your own pricing.
  • Send customers to our white labeled DNS editor if they need to manage custom DNS records, such as mail servers or Google domain verification records. This is a minimal UI that gives restricted control to only a given domain for a limited time.

Once the APIs solidify we’ll release documentation and a reference implementation. If you’re interested in reselling domains, reply or DM me and we’ll talk!

DNS

5 Likes

Question for people who might do domain registrations. Would you rather:

  1. Bill people for domain registrations and renewals yourself?
  2. Have us handle billing and use Stripe Connect?

Domain billing is slightly different than pretty much every other service. It’s a series of one time fees that could change over time. It’s not quite a subscription.

Would want to handle billing myself, but more interested in who owns these domains… they’re technically registered in Fly’s name? And the customers will need to initiate a transfer out process if they get savvy enough to manage the domain themselves?

That’s right. Domains are registered by us and can be transferred out using our API. Eventually we’ll let you manage your own registrant contacts.

I can’t wait to play with this :heart_eyes: :star_struck:

Are there docs somewhere for the GraphQL api?

1 Like

@jason the api playground documents itself a bit, but I’ll post some examples here shortly. We’ll need to enable your org first, so DM or slack that to me and I’ll turn it on.

Hey folks. Here’s a guide that shows how to integrate domain reselling into your app using our API. Feel free to take it for a test drive, just let me know first so I can enable your account. I’m also happy to schedule time to go over your implementation if you need.

We’ve updated the guide to include our fancy new DNS Portal. Use this API to give customers who registered domains with you a branded UI to manage their own DNS records. These portals are time-limited, and locked to a single domain, and have some restrictions to prevent them from wiping records created by your app.

Here’s an example

Cheers.

5 Likes

We will need just this at Better Cart very shortly! :tada::rocket:

1 Like

Hi,is this DNS portal generally available at this time?Besides,what’s the price of third-party domain names that not registered at fly.io?

This is still in preview! You can use it but we haven’t settled on pricing yet, it’s free for now!

Oh, I just realized you asked about the portal! We still haven’t released that, we’re working with a couple of companies privately to get it ready to go.

Hey! Stumbled upon fly.io today when driving and listening to the Thinking Elixir podcast and wanted to check it out.

Do you still need to opt-in for access to registering domains directly here?

2 Likes

Is there any news about this? Sounds great

Thanks kurt, will it support custom TTL(now 3600s by default and cant be changed) and DNSSEC? I see ns1-4.flydns.io are based on DNSimple, they support these features, though.