Added cost: $0.00 / month

Connecting tradingdesk.me

A walkthrough written for your exact situation: the domain tradingdesk.me, registered and DNS-hosted at IONOS, pointed at your Cloudflare Worker (tradingdesk.klubhyde.workers.dev) so the academy answers on the bare domain.

Nothing here costs money Cloudflare's Free plan covers DNS, the HTTPS certificate, and unlimited bandwidth. You keep paying IONOS only what you already pay to renew the domain. Do not accept any IONOS upsell for "web hosting", "MyWebsite", or an SSL certificate — none of it is needed for this app.
Progress check — verified from public DNS, 15 October 2026 (second pass)
StepStateEvidence
Site deployedDone tradingdesk.klubhyde.workers.dev returns HTTP 200 with the academy page
Zone added to CloudflareDone SOA is josephine.ns.cloudflare.com
Nameservers switched at IONOSDone NS now marty + josephine.ns.cloudflare.com
Email records preservedDone — all 5 still intact MX ×2, SPF, DMARC and autodiscover all served correctly by Cloudflare
Placeholder A deletedDone 74.208.236.247 no longer served
Placeholder AAAA deletedDone Confirmed absent from Cloudflare's authoritative answer. Resolvers still pointed at IONOS report it for a few more hours — that is stale delegation, not a live record
www Custom DomainDone Resolves to Cloudflare anycast 104.21.43.108 / 172.67.178.38
www certificateDone Let's Encrypt, valid 15 Oct 2026 – 13 Jan 2027, covers tradingdesk.me and *.tradingdesk.me
www serving the appDone HTTPS 200 with the academy page, verified at the Cloudflare edge
Apex Custom DomainNot done Apex has no A and no CNAME — only the stale AAAA
Supabase Site URL updatedDo last → section 8, step 12
One action remains: attach tradingdesk.me as a Custom Domain (section 7, step 9). Nothing is blocking it — the apex simply has no web record yet, which is exactly what Cloudflare's own "Visitors cannot reach tradingdesk.me" banner is reporting.
Two dashboard warnings you should handle differently
Cloudflare saysWhat to do
"Visitors cannot reach tradingdesk.me" Act on it. Accurate — the apex has no record. Fixed by adding the Custom Domain, not by adding a record by hand.
"Add a DMARC record" Ignore it, and do not click the link. You already have DMARC as a CNAME at _dmarc → dmarc.ionos.com → v=DMARC1; p=none;. Cloudflare's checker does not follow the CNAME. Clicking it tries to add a TXT record where a CNAME already exists, which cannot coexist — it will error or break working DMARC.
Also worth fixing: one record has the wrong proxy setting _domainconnect is set to Proxied (orange cloud). It is a service-discovery record, not web traffic, so it should be DNS only (grey) like _dmarc and autodiscover. Click the orange cloud to toggle it. Harmless in day-to-day use, but wrong.
Contents
  1. What is on your domain right now
  2. The one real risk, and how to check it
  3. Confirm the site is deployed
  4. Add tradingdesk.me to Cloudflare
  5. Check the email records before you switch
  6. Switch the nameservers at IONOS
  7. Attach the domain to your site
  8. Tell Supabase the new address
  9. Final checks
  10. The two errors you will probably hit — IONOS parking page, ERR_NAME_NOT_RESOLVED
  11. How to undo all of this
  12. Alternative: no nameserver change at all

1. What is on your domain right now

I looked this up from the public DNS on 14 October 2026. Keep this table. It is your safety net — if anything goes wrong, these are the values to restore.

TypeNameCurrent valueWhat it is for
NS@ ns1026.ui-dns.com
ns1031.ui-dns.biz
ns1062.ui-dns.de
ns1075.ui-dns.org
IONOS runs your DNS. This is what changes.
A@74.208.236.247 The IONOS placeholder page. Gets replaced by your site.
AAAA@2607:f1c0:100f:f000::200 Same placeholder over IPv6. Also replaced.
MX@ mx00.ionos.com (priority 10)
mx01.ionos.com (priority 10)
Incoming email. Must be preserved.
TXT@ v=spf1 include:_spf-us.ionos.com ~all SPF — stops your outgoing mail being marked as spam. Preserve.
CNAME_dmarcdmarc.ionos.com DMARC policy (currently p=none). Preserve.
CNAMEautodiscoveradsredir.ionos.info Lets Outlook auto-configure the mailbox. Preserve.
There is no www record, no DKIM key and no CAA record. Nothing else is published.
What this tells us The apex currently shows IONOS's "this domain is already registered" placeholder — there is no real website to lose. But the mail plumbing is fully set up (MX, SPF, DMARC, autodiscover), which is the one thing we have to carry across carefully.

2. The one real risk, and how to check it

When you switch nameservers, IONOS shows this warning, and it is accurate:

Please note that your IONOS DNS zone settings are no longer
used with custom name servers.

Every record in the table above stops being served by IONOS the moment the switch takes effect. Cloudflare has to be serving identical copies first. That is the whole job. Get the five mail records right and there is no outage — not even a brief one, because both sets of nameservers return the same answers during the changeover.

1

Find out whether you actually use the mailbox

Log in at my.ionos.com → MENU → Email.

Either way, do the copying. It costs two minutes and removes the only thing that can bite you.

3. Confirm the site is deployed

2

Already done — you are on Cloudflare Workers

Your site is live and serving correctly at https://tradingdesk.klubhyde.workers.dev. Confirmed responding HTTP 200 with the academy landing page.

You deployed to Workers rather than Pages. That is fine — it is Cloudflare's recommended route for new projects now, and for a static site like this the two are equivalent. It only changes where the custom-domain button lives, which section 7 accounts for.

Workers still costs nothing here The Workers free plan has a 100,000 requests/day limit, but Cloudflare's documentation is explicit that "requests to static assets are free and unlimited" and that there is no cost for storing them. This app is entirely static files, so the daily cap does not apply to it.

Do not point the domain at anything until you have confirmed you can sign in on that address.

4. Add tradingdesk.me to Cloudflare

3

Onboard the domain

In the Cloudflare dashboard go to Domains in the left sidebar, then click Onboard a domain (on some accounts this button reads Add a domain).

  1. Type tradingdesk.me — just that, no https:// and no www.
  2. Choose the option that lets Cloudflare scan for existing DNS records rather than starting empty. This is what copies your mail records across automatically.
  3. Click Continue.
  4. You are asked to pick a plan. Scroll to Free — $0/month and select it. Do not pick Pro. The Free plan does everything this needs.
Do not change the nameservers yet Cloudflare will show you two nameservers and nudge you to switch immediately. Ignore that for now and do section 5 first. Switching before the records are verified is exactly how people lose email.

5. Check the email records before you switch

4

Compare Cloudflare's imported records against this list

Go to your new zone → DNS → Records. The scan usually finds everything, but it is not guaranteed to. Confirm all five of these exist, and add any that are missing with Add record:

TypeNameContent / TargetPriorityProxy status
MX@mx00.ionos.com10n/a
MX@mx01.ionos.com10n/a
TXT@v=spf1 include:_spf-us.ionos.com ~all—n/a
CNAME_dmarcdmarc.ionos.com—DNS only (grey cloud)
CNAMEautodiscoveradsredir.ionos.info—DNS only (grey cloud)

In Cloudflare, @ means the bare domain and is often displayed as tradingdesk.me. If a field will not accept @, type tradingdesk.me instead.

The grey cloud matters _dmarc and autodiscover must be set to DNS only, not Proxied. Click the orange cloud icon to toggle it grey. Proxying a mail-related record routes it through Cloudflare's web proxy, which breaks it. MX and TXT records have no proxy toggle at all, which is expected.
5

Delete the two placeholder records

Still on the DNS records page, delete these two if the scan imported them:

TypeNameValue
A@74.208.236.247
AAAA@2607:f1c0:100f:f000::200

These point at the IONOS placeholder page. They have to go, because an A record on the apex conflicts with the record Cloudflare needs to create there in section 7. Leaving them in place is the most common reason people still see the IONOS page after everything else is correct.

6. Switch the nameservers at IONOS

6

Copy Cloudflare's two nameservers

In Cloudflare, open your zone's Overview page. It lists two nameservers assigned to your account — they look like ada.ns.cloudflare.com and lee.ns.cloudflare.com, with names unique to you. Copy both exactly.

7

Enter them at IONOS

  1. Log in at my.ionos.com.
  2. Click MENU → Domains & SSL.
  3. Find tradingdesk.me in the list and open its settings — click the gear icon in the Actions column, or click the domain itself.
  4. Open the Name Server tab.
    This is a different tab from DNS. The DNS tab edits individual records; the Name Server tab is the one that hands control to Cloudflare. If you cannot find the button in the next step, you are on the wrong tab.
  5. Click Use custom name servers.
  6. Put the first Cloudflare nameserver in Name server 1 and the second in Name server 2. Leave fields 3 and 4 empty — Cloudflare only issues two.
  7. Click Save.

IONOS warns you that its DNS zone settings will no longer be used. That is expected and correct — you copied them to Cloudflare in section 5.

8

Wait for Cloudflare to say Active

Back on the Cloudflare zone Overview, the status reads Pending nameserver update until the change is seen. In practice this is usually under an hour; the official ceiling is 24 hours. Cloudflare emails you when the zone goes Active. Your site and email keep working throughout, because both sets of nameservers are answering with the same records.

7. Attach the domain to your site

9

Add the custom domain to your Worker

Once the zone is Active: Workers & Pages → Overview → select your tradingdesk Worker → Settings → Domains & Routes → Add → Custom Domain.

Enter tradingdesk.me and select Add Custom Domain.

Cloudflare creates the DNS record and issues the HTTPS certificate for you — you do not touch DNS by hand and you do not manage a certificate. This is also why tradingdesk.me had to become a Cloudflare zone first: Custom Domains require an active zone on the same account.

Note the different menu from Pages Guides written for Cloudflare Pages tell you to look for a Custom domains tab on the project. On Workers it is Settings → Domains & Routes instead. Same outcome, different place.
10

Add www as well, so both addresses work

You have no www record today, so www.tradingdesk.me currently fails to resolve entirely. Repeat the step above with www.tradingdesk.me — Custom Domains can be added more than once, and your Worker will answer on both.

11

Set the SSL mode to Full (strict)

In the zone: SSL/TLS → Overview → set the encryption mode to Full (strict).

If this is left on Flexible, you get an endless redirect loop in the browser — ERR_TOO_MANY_REDIRECTS — which looks like a broken site but is only this setting.

8. Tell Supabase the new address

12

Update the URL configuration

Supabase rejects authentication redirects to addresses it does not know. In your Supabase project: Authentication → URL Configuration.

These two fields are not "domain" and "subdomain" They are different kinds of setting, and that trips everyone up:
FieldHow many valuesWhat it does
Site URLExactly one The default address. Supabase puts this into confirmation and password-reset emails when the link does not specify one itself. Think of it as "where this app officially lives".
Redirect URLsA list — add as many as you like An allow-list. Any address not on it is refused as a login destination. This is a security control, which is why it is not automatic.
So you do not put one domain in each box. You put your single canonical address in the first, and every address the app can be reached at in the second.

Right now, before the domain is connected

tradingdesk.me still points at IONOS, so an email linking there would be a dead end. Use the Workers address as the Site URL for the moment:

FieldValue to enter today
Site URLhttps://tradingdesk.klubhyde.workers.dev
Redirect URLs Add all four now — unconnected ones are harmless:
https://tradingdesk.klubhyde.workers.dev/**
https://tradingdesk.me/**
https://www.tradingdesk.me/**
http://localhost:8080/**

After the custom domain goes live

Change one thing: set Site URL to https://tradingdesk.me. Leave the Redirect URLs exactly as they are — keeping the workers.dev entry means the old address still works, which is useful if the domain ever has trouble.

The /** on the end is a wildcard covering every page and path on that address. Without it you would have to list /reset.html, /app.html and so on individually.

Skip this step and password-reset emails still arrive, but their links silently refuse to sign anyone in. That failure produces no error message, so it is worth getting right the first time.

9. Final checks

13

Six things to confirm

#CheckExpected
1Open https://tradingdesk.meThe academy landing page, not the IONOS placeholder
2Look at the padlock in the address barValid certificate, no warning
3Open https://www.tradingdesk.meSame site, still a valid certificate
4Create an account and sign inWorks; no orange DEMO MODE banner
5Request a password resetEmail arrives and its link signs you in
6Send a test email from another account to your @tradingdesk.me addressIt arrives. Do this even if you think the mailbox is unused

If check 1 still shows the IONOS page after the zone is Active, you almost certainly left the A record from section 5 step 5 in place. Delete it and wait a few minutes.

9b. The two errors you will probably hit

Both of these look like "the site is broken". Neither one is. They have different causes and different fixes, so identify which you are seeing before changing anything.

A

tradingdesk.me shows the IONOS "This domain is already registered" page

Cause: two things at once.

  1. The apex has no record in Cloudflare — no A, no AAAA, no CNAME. Cloudflare's own dashboard says so with its "Visitors cannot reach tradingdesk.me" banner.
  2. Your computer still has IONOS's old address (74.208.236.247) in its DNS cache from before the migration, so it keeps going there instead of asking again.

Fix: add the Custom Domain (section 7, step 9), then flush your DNS cache using step C below. Until the Custom Domain exists there is nothing for the apex to point at, so flushing alone will not help — it will just change the error from the IONOS page to "cannot be reached".

B

www.tradingdesk.me gives ERR_NAME_NOT_RESOLVED

Cause: a cached negative answer, and nothing more. Before the migration, www did not exist, so resolvers recorded "no such name". That memory outlives the change. Right now the two big public resolvers disagree:

ResolverAnswer for www.tradingdesk.me
Cloudflare 1.1.1.1 172.67.178.38, 104.21.43.108 — correct
Google 8.8.8.8 NXDOMAIN — stale negative cache

The site itself is fine: requested directly at Cloudflare's edge, www returns HTTP 200 with a valid certificate. Only the lookup is stale.

Fix: flush your cache (step C), or simply wait — negative entries expire on their own, typically within the hour. Do not undo anything in Cloudflare because of this error.

Do not "fix" this by adding records The temptation is to add an A record for www by hand to make the error go away. That breaks the Worker Custom Domain. The record is already correct — the problem is on the asking side, not the answering side.
B2

The apex still shows the IONOS page after the Custom Domain is added

Cause: a leftover AAAA (IPv6) record. The Custom Domain creates a proxied IPv4 record, but an old IPv6 record from IONOS can survive beside it. Windows prefers IPv6 whenever both exist, so the browser takes the stale address and never tries the good one.

The giveaway is resolvers disagreeing on IPv6 while agreeing on everything else:

Resolverapex Aapex AAAA
Cloudflare 1.1.1.1Cloudflare 2607:f1c0:100f:f000::200 — IONOS
Google 8.8.8.874.208.236.247 — stale Cloudflare
AdGuard / doh.sb / NextDNS—Cloudflare

That IPv6 address is the one recorded in the section 1 backup, which confirms it is left over rather than something Cloudflare created.

Fix: DNS → Records → find the AAAA row named tradingdesk.me → Delete. Leave the MX, TXT and _dmarc / autodiscover / _domainconnect rows alone — those are email.

Do not add an IPv6 record back A proxied hostname is reachable over IPv6 automatically; Cloudflare answers AAAA queries from its own range without any record on your side. Adding one by hand only recreates this bug.

Then purge the resolver cache instead of waiting out the 1-hour TTL: open https://one.one.one.one/purge-cache/, enter tradingdesk.me, choose type AAAA, purge, then repeat for type A. Finish with step C below.

C

Clearing a stale lookup on Windows

  1. Close Edge completely — every window.
  2. Open Command Prompt (press Start, type cmd) and run:
    ipconfig /flushdns
  3. Edge keeps its own cache separately from Windows. Open Edge and go to edge://net-internals/#dns → Clear host cache.
  4. Then edge://net-internals/#sockets → Flush socket pools.
  5. Reload with Ctrl+Shift+R.

If it still fails, your router or ISP is probably forwarding to Google DNS, which is the resolver currently holding the stale answer. Two ways around it:

10. How to undo all of this

14

Nothing here is permanent. To put everything back exactly as it was:

  1. IONOS → Domains & SSL → tradingdesk.me → Name Server tab → Reset DNS or usage. That restores the four original ui-dns nameservers and reactivates the IONOS zone with the records listed in section 1.
  2. Propagation back is the same timescale — usually under an hour.
  3. Your Worker stays reachable at tradingdesk.klubhyde.workers.dev the whole time, so the academy never goes offline even if you roll the domain back.

11. Alternative: no nameserver change at all

If you would rather not hand DNS to Cloudflare, you can keep IONOS exactly as it is and host on GitHub Pages instead. IONOS permits A records on the apex (it only forbids CNAME there), so the bare domain still works.

15
  1. Push the project to a public GitHub repository.
  2. Repository Settings → Pages → set the source branch to main and the folder to / (root).
  3. Under Custom domain enter tradingdesk.me → Save.
  4. At IONOS → Domains & SSL → tradingdesk.me → DNS tab: delete the existing A record for @ and add these four, all with host @:
    185.199.108.153
    185.199.109.153
    185.199.110.153
    185.199.111.153
  5. Back in GitHub, tick Enforce HTTPS. It can take up to 24 hours to become available while the certificate is issued.

Trade-offs: your email is never at risk because the nameservers and all mail records stay untouched at IONOS. In exchange the repository must be public on the free plan, bandwidth has a soft 100 GB/month limit, and you lose Cloudflare's unlimited-bandwidth CDN. For a school-sized audience all three are irrelevant — this is a perfectly good option if the nameserver switch makes you uneasy.

Still $0 either way Cloudflare Workers Free, GitHub Pages, Cloudflare DNS and the HTTPS certificates are all free, with no card required. The only money involved anywhere in this project is your existing IONOS domain renewal.