Aliases and Custom Domains

This guide covers how to assign custom names to your now deployments
  • As custom subdomains under (for example
  • As entirely custom domains (for example

Aliasing Basics

Whenever you deploy to now, the URL you get in return looks like something like:
If we dissect that URL, we can see it's composed of a few parts:
  • https:// -Every single deployment is automatically served under HTTP/2 with SSL. Certificates are provisioned automatically.
  • get-started-basic - The application's name. You can customize it upon deployment (for example with the name field in package.json for Node.js deployments or LABEL in Dockerfile for Docker ones.
  • etjnigdrkz - A cryptographically-strong random string that makes your URL virtually impossible to guess, while retaining a reasonable length for sharing it with your co-workers or clients.
  • - All your deployments end in by default. Aliases allow you to point them to custom domains.
These URLs area ideal for development and staging, but not ideal to share with the public.
now aliases have two purposes:
  • Giving your deployment a friendly name that's more memorable.
  • Upgrading a certain deployment to production, by supplanting the previous alias with zero downtime.

Creating Aliases

Aliases are managed by invoking the command now alias, which has the following syntax:
For example, let's say I want
… to be accessible by the alias All I have to do is run:
now alias get-started-basic
> Success! Alias created (CIyk6IKL8MIHzAqrmcxbM8kf): now points to (xpvB6GZWMR6Q9Oxe3c64Htgq) [copied to clipboard]
After this successful message, my deployment is instantly available via its original URL and the new alias I gave it:

The URL now works!

Notice that I omitted at the end of the target subdomain. When one is not given, we default to
As seen in the output, each alias receives a unique identifier. In the example above, it's xpvB6GZWMR6Q9Oxe3c64Htgq. We'll cover this later in the Managing Aliases section.
The output also refers to the deployment ID, which is also accessible when you list your deployments with now ls. It can be used in substitution of the URL when running now alias:
now alias xpvB6GZWMR6Q9Oxe3c64Htgq get-started-basic
As a convenience, we parse the URLs you supply as parameters to now alias to extract the hostname, which means the following are all valid source URLs:
  • Just the hostname:
  • Including http(s):
  • Including /:

Custom Domains

The same mechanism we explained above can be used to configure an external domain.
The command is almost exactly the same:
now alias
I already registered the domain, so I'll go ahead and run that command.
> is a custom domain.
> Verifying the DNS settings for (see for help)
> Resolved IP: none
> Nameservers:,,,
> Error! Please make sure that your nameservers point to
> Examples: (full list at
> -
> -
> -
> -
> Alternatively, ensure it resolves to via CNAME / ALIAS.
With now there's no manual configuration of DNS records and domain zones. The only requirement is that you point your domain's nameservers to any of our hostnames.
In this case, my domain is registered with Google Domains, so I edit the nameservers there to look like this:

If you are using Google Domains, this is found under My domains > DNS

Upon re-running the command, we get:
> is a custom domain.
> Verifying the DNS settings for (see for help)
> Detected nameservers! Configuring records.
> DNS Configured! Verifying propagation…
> Verification OK!
> Provisioning certificate for
> Success! Alias created (04N40HL8XcvOe5cxcgNhomM0): now points to (VfsUPntrbhEzccjLU1zAI30Q) [copied to clipboard]


If you want to use a domain that's configured with a third party DNS system, you can still use now alias.
To do so, just create a CNAME or ALIAS record that points to For this example, I'll configure to point to the same deployment I used above, but using Google's nameservers. First, I head to the DNS settings and add a CNAME record for the hello subdomain as follows:

I added this record under DNS > Custom resource records

Next, I run now alias:
now alias
> is a custom domain.
> Verifying the DNS settings for (see for help)
> Error! Verification required: Please add the following TXT record on the external DNS server: ed24d6ddc87ee58332ac358ae
As you can see, as a security measure we require that you validate that you own this domain name. So I add an extra TXT record accordingly:

Important! Notice the subdomain is _now and the record type TXT!

> is a custom domain.
> Verifying the DNS settings for (see for help)
> Verification OK!
> Provisioning certificate for
> Success! Alias created (BucgEPj9TI4Pae3HzDQT3LAB): now points to (VfsUPntybhEzccjLU1zAI30Q) [copied to clipboard]

Security Considerations

We ensure that your domains are fully protected and only you can add aliases to them.
When you add an alias to a certain domain name, we first verify its ownership. If it's not been claimed by anyone, we associate it with your account.
After I executed the alias above, I can run now domains ls to see my domains:
now domains ls
> 2 domains found [214ms] id dns url verified created zXBxQLQYidDddAb2l6db26Cb true 11m ago WAZjIaxvaiieNUqJc22PJUKG external true 20m ago
As you can see, there are two types of domains:
  • external: the domain is associated with a third-party nameserver provider like DNSimple.
  • the domain is hosted with and now alias automatically sets up records.
Once a domain appears under now domains ls, it means that only you can point aliases to them. For external domains this requires verification. For, make sure to add an alias to the domain or run now domain add as soon as possible.