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. Adding one to a project that has never been published fails with a generic Failed to get tenant error. 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 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. There is no table of records to copy by hand.
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
There is no manual DNS screen today
The failure message mentions setting up manually, but Floot does not currently show a manual records screen. If automatic setup fails, use Try again, or contact support — do not go looking for a records table.
- 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 to the confirmation screen 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.
- 5
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
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.
If verification does not finish
- A certificate error. Delete every
CAArecord on the domain — they can stop Floot's certificate authority from issuing a certificate, and the wizard names this case explicitly. - "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.
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.