How to add a custom domain
Point your own domain at your Floot app, step by step, including the DNS gotchas.
Connect a domain like yourapp.com to your Floot app so it is served from your own address instead of its *.floot.app subdomain.
Your assistant cannot do this one for you
Adding a custom domain is a handoff. Ask your assistant to add one and it opens a request and hands you a link, but it cannot finish the job — the DNS approval has to happen in your browser, signed in to your DNS provider. Opening the link brings you to the wizard described below. Only one request can be pending per project, and it expires after an hour, so ask again for a fresh one if you leave it too long.
The steps below all happen in the Floot web app. Open your project on floot.com and start from the Publish button in the top-right.
Before you start
Your app must already be published to its free *.floot.app subdomain — a custom domain attaches to the live deployment, and on a project that has never been published Floot asks you to publish first. The project owner must also be on a paid plan: the check is against the owner's account, not yours, so a paid collaborator cannot add a domain to a free owner's project.
- 1
Open Add Custom Domain
- Click the Publish button in the top-right of the project view
- Click Add Custom Domain
- 2
Choose where the domain comes from
The first screen offers two cards — there is no domain field until you pick one.
- I already have a domain — points a domain you own at Floot. Choose it, type the domain (for example,
yourapp.com), then click Continue. - Buy a domain — buys one through IONOS, the registrar, without leaving Floot. On a paid plan that has not used it yet, this card reads Get a free domain: a paid plan includes one free domain, claimable once per account. Floot connects a purchased domain for you.
- I already have a domain — points a domain you own at Floot. Choose it, type the domain (for example,
- 3
Approve the DNS records
Floot opens an automatic setup window that connects to your DNS provider. It is run by Floot's DNS partner, Entri, so the window is branded differently from the rest of Floot — that is expected. Sign in to your provider there and approve the records; Floot writes them for you.
What you will see while it runs:
- "Connecting to your DNS provider…" while the window is opening
- "DNS records configured successfully. Verifying…" once the records are in
- A Start Setup button if you closed the setup window before finishing — click it to reopen
- A Try again button if the automatic setup failed
Adding the records yourself
If you would rather not sign in to your DNS provider through the setup window, or automatic setup fails, click Add the DNS records myself instead. The wizard shows the records to add at your DNS provider — it opens this table on its own when automatic setup fails. Add them, then click I've added them — check again; Floot also keeps checking on its own.
- 4
Wait for verification
There is no Continue button on this step, and that is deliberate — Floot verifies the records on its own and moves you on when they check out. Verification can take up to 15 minutes. Leave the wizard open while it runs: closing it discards the setup in progress, and if your AI assistant started the request, closing it cancels that request too.
If the verification record is in the wrong place or has the wrong value, the wizard says so and shows what to change. See Custom domain troubleshooting.
- 5
Point the domain to Floot, if the wizard asks
Once the certificate is ready, the domain is connected. If it does not send visitors to your app yet, the wizard stays on a Point yourapp.com to Floot step. It lists each address (the root domain and
www) with where it points now, shows theArecords to add at your DNS provider, and checks again every few seconds. If it tells you to delete otherArecords on the same names, delete them: they send some visitors somewhere else.I'll finish this later closes the wizard. The domain stays connected, and you can find the records again from the gear next to the domain on the Publish screen.
- 6
Your domain is live
- Your app is served from your custom domain
- If you connected an apex domain, both
yourapp.comandwww.yourapp.comwork — Floot adds the pair for you - Any other subdomain (for example
app.yourapp.com) is connected on its own. Add the apex separately if you want it as well - HTTPS is set up automatically. Floot issues and renews the certificate for every connected domain, so you do not need a paid SSL certificate from your registrar
DNS propagation takes time
It can take up to 24 hours for your domain to resolve everywhere, though it is usually much faster. That is normal and depends on your DNS provider. If it takes longer, contact support.
Keep the DNS records
The domain keeps working only while its records stay at your DNS provider: the
Arecords send visitors to your app, and theCNAMErecord renews the HTTPS certificate. To see them again, with whether each one is still in place, open Publish and click the gear next to the domain.
If verification does not finish
- A certificate error.
CAArecords on the domain can stop Floot's certificate authority from issuing a certificate, and the wizard names this case explicitly. Delete theCAArecords, then run Add Custom Domain again from the start. - "Blocked by another domain on this project." An older domain already on this project is missing its verification record, so the shared certificate cannot be reissued. Add the record the wizard shows to that older domain's DNS, set it to DNS only if you use Cloudflare, then try again.
- Cloudflare in front of the records. Turn the proxy off (grey cloud, not orange) for Floot's records.
- A domain already in use. Floot refuses a domain that is already connected to another project, and refuses a small set of restricted names.
- The domain is suspended or expired at its registrar. The wizard says so when the registry reports it, and no DNS change will help. IONOS, which provides the free domain, suspends a new domain if its contact email is not verified within 15 days of purchase: find IONOS's verification email, click its link, then check again. For an expired domain, renew it with the registrar.
Custom domains need a paid plan — and stop working without one
The free *.floot.app subdomain works on any plan; connecting your own domain requires a paid plan on the project owner's account. If that subscription is cancelled, goes unpaid, or lapses, a daily job removes the project's connected custom domains once it has been in that state for more than 3 days — every domain connected to the project, not just ones bought through Floot. The app stays live on its *.floot.app subdomain, and re-connecting means running this wizard again: subscribing again does not put the domains back by itself. See what happens when a plan lapses.
If a connected domain stops working
Open Publish, click the gear next to the domain, and look at DNS records. Each record the domain needs is marked Found or Missing. Add what is missing at your DNS provider; you do not need to remove the domain from Floot and add it again. Custom domain troubleshooting goes through the cases one by one.
Several domains on one app
Every domain is added through this wizard, one at a time, and all of a project's domains serve the same app. To send every domain to one main address, set a primary domain under Search engines and SEO settings.
Every subdomain at once (wildcard)
For an app that gives each of its own customers a subdomain (acme.example.com, globex.example.com …), add the domain once as a wildcard: type *.example.com in the wizard. It asks for one A record named * (all three addresses it shows) plus the usual verification record, and from then on every subdomain of example.com reaches the app without adding it here. The wildcard covers one level: acme.example.com, not a.acme.example.com, and not example.com itself (add that separately if you want it). A subdomain that has its own record at your DNS provider, or that you add here on its own, keeps going where that points.
Wildcards are a Power plan feature, on the project owner's plan. If the owner moves to a lower plan, the wildcard is disconnected once the change takes effect: the plan screen lists it before you confirm, and the owner gets an email when it happens. Domains and subdomains added on their own keep working.
The app reads which subdomain a visitor used from the request's address (new URL(request.url).hostname in an endpoint), and shows that customer's content. Leave the primary domain unset: a primary domain sends page visits from every other hostname to itself, wildcard subdomains included.
How many domains a project can have
Up to 100 hostnames per project, the floot.app address included. A domain added with its www counterpart takes two, a subdomain or a wildcard takes one, so in practice about 49 domains with their www, or many more customers than that through a wildcard. The same limit applies on every plan. If you reach it, the wizard says so; remove a domain you no longer use, or, on the Power plan, switch to a wildcard.