Skip to main content
RapidDev - Software Development Agency
bubble-tutorial

How to use custom domains in Bubble

Connect a custom domain to your Bubble app with a full DNS setup walkthrough covering CNAME records, www vs non-www redirects, SSL certificates, and troubleshooting common DNS propagation issues. This tutorial guides you through every step from purchasing a domain to seeing it live on your Bubble app.

What you'll learn

  • How to configure DNS records for your Bubble app
  • How to set up www and non-www domain redirects
  • How to verify SSL certificate provisioning
  • How to troubleshoot common DNS and SSL issues
Book a free consultation
4.9Clutch rating
600+Happy partners
17+Countries served
190+Team members
Beginner5 min read15-20 minStarter plan+ (custom domains require a paid plan)March 2026RapidDev Engineering Team
TL;DR

Connect a custom domain to your Bubble app with a full DNS setup walkthrough covering CNAME records, www vs non-www redirects, SSL certificates, and troubleshooting common DNS propagation issues. This tutorial guides you through every step from purchasing a domain to seeing it live on your Bubble app.

Overview: Using Custom Domains in Bubble

By default, Bubble apps live at yourapp.bubbleapps.io. A custom domain like yourapp.com makes your app look professional. This tutorial covers purchasing a domain, configuring DNS records, setting up redirects, and troubleshooting SSL issues.

Prerequisites

  • A Bubble app on the Starter plan or higher
  • A domain name purchased from a registrar (Namecheap, GoDaddy, Google Domains, etc.)
  • Access to your domain registrar's DNS settings
  • Basic understanding of what DNS records are

Step-by-step guide

1

Add your custom domain in Bubble settings

In your Bubble editor, go to Settings in the left sidebar, then the Domain/email tab. In the Domain section, enter your custom domain (e.g., www.yourapp.com). Click the Add domain button. Bubble will display the required DNS records you need to configure at your registrar.

Expected result: Bubble shows the DNS records (CNAME) you need to add at your domain registrar.

2

Configure DNS records at your registrar

Log into your domain registrar (Namecheap, GoDaddy, etc.). Navigate to DNS Management. Add a CNAME record: Host = www, Value = the CNAME target Bubble provided (typically yourapp.bubbleapps.io). For the root domain (yourapp.com without www), some registrars support ALIAS or ANAME records pointing to Bubble's target. If not, use a redirect from root to www.

Pro tip: Set the TTL (Time To Live) to 300 seconds (5 minutes) during setup so changes propagate faster. Increase it later for caching.

Expected result: DNS records are configured pointing your domain to Bubble's servers.

3

Set up root domain redirect

If your registrar does not support ALIAS records for the root domain, set up a redirect from yourapp.com to www.yourapp.com. Most registrars offer URL forwarding in their DNS settings. Choose a 301 (permanent) redirect. This ensures users who type yourapp.com without www are sent to the correct address.

Expected result: Visiting yourapp.com redirects to www.yourapp.com where your Bubble app is served.

4

Wait for DNS propagation and verify

DNS changes can take 15 minutes to 48 hours to propagate globally. Use a tool like dnschecker.org to verify your CNAME record is resolving correctly. In Bubble's Settings, click the Check DNS button to verify. Once Bubble confirms the DNS is correct, it will automatically provision an SSL certificate.

Expected result: DNS resolves correctly and Bubble provisions an SSL certificate for your domain.

5

Troubleshoot common issues

If you see SSL errors, check that you are not using Cloudflare proxy mode (use DNS-only/gray cloud instead). If the domain does not resolve, verify the CNAME record has no typos and TTL has elapsed. If you see ERR_CERT_INVALID, wait 15 more minutes for the SSL certificate to provision. For SSL_ERROR_BAD_CERT_DOMAIN, ensure the domain in Bubble settings matches exactly what you configured in DNS.

Expected result: All DNS and SSL issues are resolved and your app loads on the custom domain with HTTPS.

Complete working example

Workflow summary
1CUSTOM DOMAIN SETUP CHECKLIST
2================================
3
4STEP 1: BUBBLE SETTINGS
5 Settings Domain/email Add domain
6 Enter: www.yourapp.com
7 Note the CNAME target provided
8
9STEP 2: DNS RECORDS
10 At your registrar's DNS management:
11 Record 1 (CNAME):
12 Host: www
13 Value: yourapp.bubbleapps.io (or Bubble's provided target)
14 TTL: 300
15
16 Record 2 (Root domain if ALIAS supported):
17 Host: @ (or blank)
18 Type: ALIAS or ANAME
19 Value: yourapp.bubbleapps.io
20
21 OR: URL redirect from yourapp.com www.yourapp.com (301)
22
23STEP 3: VERIFICATION
24 Wait 15 min - 48 hours for propagation
25 Check at dnschecker.org
26 In Bubble: Settings Check DNS
27
28STEP 4: SSL
29 Automatic after DNS verification
30 Wait up to 15 min for certificate
31
32TROUBLESHOOTING
33 Cloudflare: Use DNS-only mode (gray cloud)
34 SSL error: Wait for certificate provisioning
35 Domain not resolving: Check CNAME spelling
36 ERR_CERT_INVALID: Allow more propagation time

Common mistakes when using custom domains in Bubble

Why it's a problem: Using Cloudflare proxy mode instead of DNS-only

How to avoid: Set your DNS record to DNS-only mode (gray cloud icon) in Cloudflare's dashboard.

Why it's a problem: Adding an A record instead of CNAME

How to avoid: Always use a CNAME record pointing to the hostname Bubble provides, not an IP address.

Why it's a problem: Not setting up the root domain redirect

How to avoid: Set up a 301 redirect from the root domain to www, or use an ALIAS record if your registrar supports it.

Best practices

  • Use CNAME records instead of A records for reliability
  • Set up redirects so both www and non-www versions work
  • Start with low TTL (300 seconds) during setup, increase later
  • Disable Cloudflare proxy if using Cloudflare for DNS
  • Test your domain on multiple browsers after setup
  • Verify SSL is working by checking for the padlock icon

Still stuck?

Copy one of these prompts to get a personalized, step-by-step explanation.

ChatGPT Prompt

I want to connect my custom domain to my Bubble.io app. Walk me through the DNS configuration, CNAME setup, www vs non-www redirect, and SSL troubleshooting.

Bubble Prompt

Help me set up my custom domain. I need to configure DNS records at my registrar, add the domain in Bubble settings, and ensure SSL works correctly.

Frequently asked questions

Do I need a paid Bubble plan for custom domains?

Yes. Custom domains are available on the Starter plan ($29/month) and above. Free plans use the bubbleapps.io subdomain.

How long does DNS propagation take?

Typically 15 minutes to 2 hours, but can take up to 48 hours in rare cases. Use dnschecker.org to monitor progress.

Can I use a subdomain like app.mysite.com?

Yes. Add a CNAME record for the subdomain (e.g., Host: app, Value: yourapp.bubbleapps.io) and add app.mysite.com in Bubble settings.

Will my old bubbleapps.io URL still work?

Yes. The bubbleapps.io URL continues to work alongside your custom domain. Bubble does not automatically redirect from one to the other.

Can I use multiple custom domains?

Bubble supports one primary custom domain per app. For additional domains, set up redirects at the registrar level pointing to your primary domain.

Can RapidDev help with domain and deployment setup?

Yes. RapidDev can handle DNS configuration, SSL troubleshooting, CDN setup, and multi-domain architecture for your Bubble apps.

RapidDev

Talk to an Expert

Our team has built 600+ apps. Get personalized help with your project.

Book a free consultation

Need help with your project?

Our experts have built 600+ apps and can accelerate your development. Book a free consultation — no strings attached.

Book a free consultation

We put the rapid in RapidDev

Need a dedicated strategic tech and growth partner? Discover what RapidDev can do for your business! Book a call with our team to schedule a free, no-obligation consultation. We'll discuss your project and provide a custom quote at no cost.