How to Connect Your Domain to Your App (with Free HTTPS)

Every app on Chajio Cloud gets a free web address with HTTPS the moment it deploys. When you are ready for your own domain, connecting it takes two DNS records and one click, and the HTTPS certificate is issued and renewed for you. This guide explains each step, and what to check when something doesn’t go through.

CChajio Cloud team September 25, 2026 7 min read
On this page

What you need

  • An app that has deployed at least once. If you haven’t got that far, start with the guide for your framework: React, Next.js, Python or Node.js.
  • A domain, and access to its DNS settings. That’s usually wherever you bought it, or a DNS service like Cloudflare if you moved it there. Need one? Search for a domain.
  • A plan that includes custom domains. Each app can have one custom domain.

First, choose www or the root domain

Decide which name your app will answer on, because the DNS record differs:

  • A subdomain, such as www.example.com or app.example.com, uses a CNAME record. It’s the simplest option and works with every DNS provider.
  • The root domain, example.com, can’t use a CNAME, a rule of DNS itself. It needs an A record, or an ALIAS or ANAME record if your provider offers one. Cloudflare handles this for you if you add a CNAME at the root.

Since an app has one custom domain, most people connect www.example.com and have their DNS provider or registrar forward example.com to it. Many providers call this URL forwarding or a redirect rule.

Step 1: Add the domain

Open your project, go to the Domains tab, type your domain under Custom domain, for example www.example.com, and click Add domain. Enter just the name: no https:// and no path.

Step 2: Add two DNS records

The dashboard now shows two records, each with copy buttons. Add both where your domain’s DNS is managed. For www.example.com they look like this, with your own values in place of the placeholders:

TypeNameValueWhat it does
TXT_chajio-challenge.www.example.comyour tokenProves the domain is yours
CNAMEwww.example.comthe target shownSends visitors to your app

For a root domain the second record is an A record instead, and the dashboard explains what to point it at. Always copy the values from your dashboard; they are specific to your domain.

Entering the name in your DNS provider

The dashboard shows each record’s full name. Some DNS providers want the full name; many want only the part before your domain, because they add the domain themselves:

Full name                             What to type in the "Name" or "Host" field
_chajio-challenge.www.example.com  →  _chajio-challenge.www
www.example.com                    →  www
example.com                        →  @

If you’re not sure, look at an existing record in the same account: if it shows www rather than www.example.com, type the short form.

Remove old records for the same name

If the name already has records, for example an old A or AAAA record for www from a previous host, delete them. A name with a CNAME can’t have other records, and a leftover AAAA record would send some visitors to the old server.

Step 3: Verify

Back on the Domains tab, click Verify. The dashboard checks each record and ticks it off:

  1. Ownership: the TXT record was found, so your domain is connected to your app.
  2. Routing: your domain points at your app.
  3. HTTPS: a certificate is issued, usually in under a minute.

When all three are done, your app is live at https://www.example.com. Visitors who type http:// are redirected to HTTPS, and the certificate renews itself well before it expires. Your free address keeps working alongside your domain.

New DNS records can take anywhere from a few minutes to a few hours to be visible everywhere, depending on your provider. If Verify doesn’t find them yet, wait a little and try again; the dashboard also re-checks on its own.

Keep the TXT record

Leave the _chajio-challenge record in place after you’re connected. Chajio Cloud re-checks it from time to time to confirm the domain is still yours. A brief DNS hiccup is ignored, but if the record stays missing for about a week, the domain is disconnected from your app.

Using Cloudflare

Cloudflare’s proxy (the orange cloud) works. The dashboard recognises it and shows the routing record as proxied, so you can leave it on. One setting matters: under SSL/TLS, set the encryption mode to Full (strict). The Flexible mode makes Cloudflare contact your app over plain HTTP, which is redirected to HTTPS, which Cloudflare fetches over HTTP again: a redirect loop.

Checking your records yourself

Online DNS lookup tools will show what the world currently sees for your records. On a Mac or Linux computer you can also ask directly:

dig TXT _chajio-challenge.www.example.com +short
dig CNAME www.example.com +short

The first should print your token and the second the target from your dashboard.

Common problems

Verify can’t find the TXT record

Give it a few minutes, then check the record’s name. The most common slip is a doubled domain, such as _chajio-challenge.www.example.com.example.com, from typing the full name into a provider that adds the domain itself.

“Ownership verified, but the domain does not point here yet”

The TXT record is fine, but the CNAME or A record is missing, points somewhere else, or competes with an old record for the same name. Fix the routing record; the dashboard picks it up on the next check.

HTTPS stays pending

A certificate can only be issued once visitors to your domain reach your app, so this almost always means the routing record isn’t in place yet. Behind Cloudflare, switch the record to DNS only (grey cloud) until HTTPS shows as issued, then turn the proxy back on. If your domain has CAA records, which restrict who can issue certificates for it, contact support and we’ll tell you what to add.

The browser shows “too many redirects”

You’re behind Cloudflare with SSL/TLS set to Flexible. Switch it to Full (strict).

“Custom domains are not included” in your plan

Your plan doesn’t include custom domains. Upgrading to a plan that does unlocks the Domains tab.

The domain is already in use

A domain can be connected to one app at a time. Remove it from the other project first. If it isn’t yours to remove, contact support.

Changing or removing a domain

To switch domains, remove the current one on the Domains tab and add the new one. Your app stays reachable at its free address throughout, so nothing goes offline while you make the change.

Keep reading

Find your domain

Search .co.ke, .ke, .com and more, and connect it to your site in minutes.

Search domains