Skip to main content
All guides
Deploying

Deploying a Base44 app: from prompt to production URL

Deploying is one click, but connecting a custom domain has a few gotchas. Here's the full flow.

Last updated July 18, 2026

The one-click publish flow

Inside the Base44 builder, the Publish button is the whole story for the first deploy. Base44 builds your app, uploads the artifact to its edge network, and returns a Base44 subdomain URL — something like your-app.base44.app — that you can share immediately. The first build typically takes 30 to 90 seconds; subsequent redeploys after prompt edits are noticeably faster because dependency layers are cached. There is no separate build config file to manage; the generation pipeline knows how to build the app it just generated, which is one of the compounding advantages of the AI-first approach.

Connecting a custom domain

Go to Project Settings → Domains and paste the root domain you want to use — for example your-app.com. Base44 will then show you the DNS records to create at your registrar. In almost every case this is an A record for the root ('@') pointing at Base44's edge, a CNAME for 'www' pointing at the same target, and a TXT record for ownership verification. If your registrar uses ALIAS or ANAME records for the apex, use one of those instead of the A record — the effect is identical but the record type is registrar-specific.

DNS propagation

Once you add the records, verification usually completes within a few minutes but can take up to 24 hours to propagate worldwide. Use a tool like dnschecker.org to confirm the records are visible from multiple geographies. Do not delete the old records for your previous host before the new ones fully propagate or you will see an outage in the gap. TLS is provisioned automatically as soon as the ownership TXT record is visible — you do not need to upload a certificate.

Environment secrets

Runtime secrets — API keys, third-party tokens, webhook signing secrets — are stored per project in the secrets panel and injected at request time. Never paste a secret directly into a prompt, because the prompt becomes part of the generated code and would end up committed to your project's source. If a secret does leak into a prompt, rotate it at the upstream provider and remove the reference from the generated code before the next deploy. Base44 will not leak secrets to third parties, but source code you generate is yours to review.

Rollback

Base44 retains recent deploy artifacts, and you can redeploy an earlier version from Project Settings → Deploys. This is the fastest way to recover from a bad prompt that made it into production. Because each deploy is an immutable artifact rather than a re-run of the build, a rollback is effectively instantaneous — no rebuild, no DNS change, no waiting.

Environments and preview deploys

Each project has a production URL and a preview URL. The preview URL always serves the latest build from the builder, so you can iterate against it in real time. The production URL is stable and only updates when you explicitly Publish. Treat the preview like a staging environment: point analytics and error monitoring at it separately if you want clean production dashboards.

Custom-domain gotchas

Three things go wrong most often. First, forgetting the TXT verification record — the domain will appear connected in your registrar but Base44 will not issue TLS until it sees the TXT. Second, keeping stale records from a previous host — mixed A records return random hosts and users see intermittent errors. Third, using Cloudflare's proxy in front of Base44 without setting SSL/TLS to Full — the double-TLS combination causes redirect loops. Turning the Cloudflare proxy off (grey cloud) is the safe default while you verify the setup.

Monitoring the live deploy

Once your app is live, watch two things. The upstream — status.base44.com — for platform-level incidents that would affect your deploy. And your own error monitoring — Sentry, LogRocket, or the browser console during smoke tests — for issues in the generated code itself. base44.health mirrors the official status page and cross-references sister platforms so you can tell at a glance whether an outage is Base44's, your LLM provider's, or your own.

FAQ

How long does a deploy take?
The first deploy is typically 30 to 90 seconds — build, upload, and edge-cache warm-up. Subsequent redeploys after prompt edits are usually 15 to 45 seconds because dependency layers and unchanged bundles are cached. If a deploy consistently takes longer than a couple of minutes, check status.base44.com for an incident.
Can I roll back a deploy?
Yes. Base44 keeps the last several deploy artifacts, and you can redeploy any of them from Project Settings → Deploys. Because each artifact is immutable, the rollback is effectively instantaneous — no rebuild step and no DNS change. This is the fastest recovery path when a prompt introduces a regression that only surfaces after publish.
Do I need to configure TLS myself?
No. TLS is provisioned automatically for both Base44 subdomains and custom domains once your ownership TXT record is visible to Base44. You do not upload a certificate, and renewal happens in the background. If TLS is not active after 24 hours, the most common cause is a missing or incorrect TXT record.
Can I use Cloudflare in front of my Base44 app?
Yes, but the Cloudflare SSL/TLS mode must be set to Full or Full (strict). The default Flexible mode causes redirect loops because Cloudflare talks HTTP to Base44 while Base44 forces HTTPS. As a rule, turn the orange cloud off while you verify the domain, then re-enable it once traffic works end-to-end.
Where do runtime secrets go?
Store secrets in the per-project secrets panel, not in prompts or generated code. Base44 injects them at request time so the generated code sees them as environment variables. If a secret ever appears in prompt history or committed source, rotate the credential upstream and re-add the fresh value to the secrets panel.
Can I bring my own backend to a deployed Base44 app?
Yes. The generated code is a normal client that can call any HTTP API you point it at. You can keep Base44's managed backend for auth and storage while calling your own database or third-party API for domain-specific logic. The two are not mutually exclusive.
How do I preview a change before it goes live?
Every project has a stable preview URL that always serves the latest builder state. Share that URL with a teammate to gather feedback, and only click Publish once you're happy. The preview URL and the production URL are separate deploys, so nothing leaks from preview into production until you explicitly promote it.
What happens to my live app during a Base44 outage?
Deployed apps run on Base44's edge, which is engineered to keep serving even when the builder is degraded. Builder-side incidents typically prevent you from iterating but do not immediately take your production app offline. Watch status.base44.com or the live dashboard on base44.health during an incident to confirm.

Keep reading

Related on this site