Every AI builder demo ends at a *.something.app preview URL. That’s not a product —
it’s a screenshot you can click. Shipping means your domain, HTTPS, and a bill that
doesn’t surprise you. Here’s the whole path, and how the three main hosts differ.
The three hosts
For an AI-built web app, you’ll almost certainly land on one of these. All three give you automatic SSL/TLS on custom domains and a near-identical setup flow.
| Host | Best when | Domain setup |
|---|---|---|
| Cloudflare Pages | Static or content-heavy sites already using Cloudflare DNS | Add the domain to the Pages project; subdomains normally use a CNAME to the pages.dev hostname |
| Vercel | Apps closely tied to Vercel’s deployment workflow | Add the domain to the project, then use the exact A or CNAME record shown by Vercel |
| Netlify | Sites using Netlify’s build and domain workflow | Add the domain first, then follow the customized DNS instructions shown for that site |
The DNS-to-HTTPS loop
The flow is the same everywhere:
- Add the domain in the host’s dashboard (it’ll show as “pending”).
- Point DNS at your registrar (or in Cloudflare’s DNS): a
CNAMEfrom your subdomain to the host’s target above. - For the apex (
example.comwith nowww), you can’t use a raw CNAME — use your host/DNS provider’s CNAME flattening or ALIAS/ANAME record. Cloudflare does apex flattening automatically. - Wait for validation. The host verifies the record and provisions the certificate automatically — usually minutes. Confirm it resolves over HTTPS before you celebrate.
No nginx, no certbot, no propagation babysitting. The two things that trip people up:
apex vs www (set up both, redirect one to the other), and forgetting that email and
the app can share the same domain.
The cost check tutorials skip
Do not copy a pricing number from an old comparison and treat it as a deployment plan. Provider limits, included usage, build quotas, and paid add-ons change. Before choosing a host, write down the resources your application actually uses: builds, server functions, bandwidth, image processing, database traffic, team seats, and preview environments. Then verify each item on the provider’s current limits or pricing page.
For example, Cloudflare’s Pages documentation currently publishes build, file, custom domain, and Functions limits separately. That distinction matters: a static page request and a request handled by a Pages Function do not necessarily consume the same quota. Vercel and Netlify likewise show domain-specific DNS instructions after you attach the domain to a project. Use those project instructions rather than a hard-coded DNS target copied from an article.
Bottom line
Deployment is the step that separates a demo from a product. The mechanics are often short, but DNS propagation, ownership verification, certificate issuance, and CAA records can extend the process. Treat the provider’s current dashboard and documentation as the source of truth, choose one canonical hostname, and verify the final HTTPS URL before announcing the launch.