Deploy your Bubble app to production by reviewing Privacy Rules, testing workflows in development mode, running the Issue Checker, deploying to live with the Deploy button, monitoring post-deployment behavior in the Logs tab, and knowing how to roll back if issues arise. This checklist ensures a smooth launch.
Overview: Deploying Your Bubble App
This tutorial covers the full deployment process for a Bubble app. You will run through a pre-deployment checklist including Privacy Rules and workflow testing, use Bubble's Issue Checker to catch problems, deploy to your live environment, configure a custom domain, monitor the app after launch, and learn how to roll back if something goes wrong. This is essential reading for anyone about to launch their Bubble app to real users.
Prerequisites
- A Bubble account on a paid plan (Starter or higher)
- A fully built app with workflows, data types, and pages complete
- Test data and test user accounts for verification
- A custom domain purchased (optional but recommended)
Step-by-step guide
Run the pre-deployment checklist
Run the pre-deployment checklist
Before deploying, review these items: go to Data tab then Privacy and verify every data type has appropriate Privacy Rules (especially User and any sensitive types). Check that no API keys are exposed in page elements — all secrets should be in plugin settings or API Connector with Private checked. Verify all pages have proper titles and meta descriptions in Settings for SEO. Test the app as a non-admin user using the Run as feature to check permission issues. Review all workflows for error handling.
Pro tip: Create a checklist data type or use a spreadsheet to track each item — rushed deployments are the top cause of post-launch issues.
Expected result: All Privacy Rules are reviewed, API keys are secured, SEO metadata is set, and the app works correctly for all user roles.
Use the Issue Checker
Use the Issue Checker
Click the Issue Checker icon in the top toolbar (the checkmark icon). Bubble scans your app for problems like broken references, missing data sources, incomplete workflows, and unused elements. Fix all errors (red items) before deploying — these will cause runtime failures. Review warnings (yellow items) and decide which to address. The Issue Checker does not catch logic errors, so manual testing is still essential.
Expected result: The Issue Checker shows zero errors and only acceptable warnings.
Test thoroughly in development mode
Test thoroughly in development mode
Open your app in Preview mode and test every user flow: registration, login, core features, payment (with Stripe test cards), and edge cases (empty inputs, large data sets, mobile viewport). Use the Debugger (bug icon in preview) to step through workflows and inspect data. Test as different user roles by logging in with test accounts. Check that emails send correctly using Bubble's email logs or your email service dashboard.
Expected result: All user flows work correctly in development mode across different user roles and device sizes.
Deploy to live
Deploy to live
Once testing is complete, go to the deployment page by clicking the blue Deploy to Live button in the top right of the editor (or go to the Deployment tab). You will see a comparison of changes between your development version and the current live version. Review the changes list carefully. Click Deploy. Bubble will copy your development version to the live environment. This typically takes 10-60 seconds depending on app complexity. Your app is now live at yourapp.bubbleapps.io.
Pro tip: Deploy during low-traffic hours if you have existing users. The deployment process briefly interrupts the live app.
Expected result: Your app is live and accessible at the bubbleapps.io URL or your custom domain.
Set up a custom domain
Set up a custom domain
Go to Settings then Domain/email. Enter your custom domain (e.g., app.yourdomain.com). Bubble provides DNS instructions — typically add a CNAME record pointing your subdomain to your Bubble app URL. If using a naked domain (yourdomain.com without www), you need an A record or a redirect from your DNS provider. Wait for DNS propagation (up to 48 hours, usually much faster). Bubble automatically provisions an SSL certificate once DNS resolves correctly.
Expected result: Your custom domain points to your Bubble app with a valid SSL certificate.
Monitor and roll back if needed
Monitor and roll back if needed
After deploying, go to the Logs tab to monitor server logs for errors. Check the app as a real user — visit the live URL and test key flows. Watch the Workload metrics in Settings to ensure WU usage is within expected ranges. If you discover a critical issue, you can roll back: go to the Deployment page and click Revert to previous version. This restores the last deployed version. Note that database changes (new records, modified data) are NOT rolled back — only the app logic and UI revert. For complex launches requiring zero-downtime deployment, consider working with RapidDev.
Expected result: The live app is monitored for errors, and you know how to revert if a critical issue appears.
Complete working example
1DEPLOYMENT CHECKLIST — WORKFLOW SUMMARY2========================================34PRE-DEPLOYMENT CHECKLIST:5 [ ] Privacy Rules set for ALL data types6 [ ] API keys in Private fields only (not in page elements)7 [ ] All pages have SEO metadata (title, description)8 [ ] Tested as non-admin user (Run as feature)9 [ ] All workflows have error handling10 [ ] Issue Checker shows zero errors11 [ ] Tested registration + login flow12 [ ] Tested core business flows13 [ ] Tested payment flow (Stripe test cards)14 [ ] Tested on mobile viewport15 [ ] Tested email notifications16 [ ] Removed test data or use separate dev database17 [ ] Favicon and app name set in Settings18 [ ] 404 page customized19 [ ] Page load redirects work for protected pages2021DEPLOYMENT STEPS:22 1. Click Deploy to Live button (top right)23 2. Review change comparison24 3. Click Deploy25 4. Wait for completion (10-60 seconds)26 5. Verify live URL works2728CUSTOM DOMAIN SETUP:29 1. Settings → Domain/email30 2. Enter custom domain31 3. Add DNS records at domain registrar:32 - Subdomain (app.domain.com): CNAME → app.bubbleapps.io33 - Naked domain: A record or redirect to subdomain34 4. Wait for DNS propagation35 5. SSL auto-provisioned by Bubble3637POST-DEPLOYMENT MONITORING:38 - Logs tab: watch for server errors39 - Settings → Metrics: monitor WU usage40 - Test key flows on live URL41 - Check email delivery42 - Monitor page load times4344ROLLBACK PROCEDURE:45 1. Go to Deployment page46 2. Click Revert to previous version47 3. Note: database data is NOT reverted48 4. Test that rolled-back version works4950STRIPE LIVE KEYS (when ready):51 - Switch pk_test_ → pk_live_52 - Switch sk_test_ → sk_live_53 - Update webhook endpoints to live URL54 - Do NOT change keys until deployment is confirmedCommon mistakes when deploying a Bubble app
Why it's a problem: Deploying without reviewing Privacy Rules
How to avoid: Review every data type's Privacy Rules before deploying. Ensure sensitive types (User, Payment, etc.) have appropriate restrictions.
Why it's a problem: Forgetting to switch from Stripe test keys to live keys
How to avoid: After confirming the deployment works, switch Stripe publishable and secret keys to their live versions in the plugin settings.
Why it's a problem: Using Cloudflare proxy (orange cloud) for DNS
How to avoid: Set the DNS record to DNS-only mode (grey cloud icon) in Cloudflare so the traffic goes directly to Bubble's servers.
Why it's a problem: Expecting database rollback when reverting the app version
How to avoid: Understand that rollback only affects the app version. For data issues, you need to manually fix records in the database.
Best practices
- Run the Issue Checker and fix all errors before every deployment
- Test as a non-admin user using the Run as feature to catch permission issues
- Deploy during low-traffic hours to minimize disruption to existing users
- Set up a custom domain on a paid plan for a professional appearance
- Use DNS-only mode (not Cloudflare proxy) to avoid SSL certificate conflicts
- Monitor the Logs tab and WU metrics immediately after deployment
- Keep a deployment log noting what changed in each version for easier debugging
Still stuck?
Copy one of these prompts to get a personalized, step-by-step explanation.
I am about to deploy my Bubble.io app to production for the first time. What is the complete checklist I should follow? What are common deployment issues and how do I set up a custom domain with SSL?
Review my app before deployment. Check that all data types have Privacy Rules, all API keys are in Private fields, all pages have SEO metadata, and the Issue Checker shows no errors. Then walk me through deploying to live.
Frequently asked questions
Can I deploy on Bubble's free plan?
No. The free plan does not allow deployment to a live URL. You need at least the Starter plan ($29/month) to deploy and access a custom domain.
How long does deployment take?
Typically 10-60 seconds for most apps. Very large apps with many pages and workflows may take a few minutes.
Will deployment affect my existing users?
There may be a brief interruption (a few seconds) during deployment. Users on the app at that moment may need to refresh their page. Deploy during low-traffic hours to minimize impact.
How do I set up a staging environment?
Bubble's development version serves as your staging environment. You can also duplicate your app to create a separate testing copy. The live version is your production environment.
Can I deploy only specific changes?
No. Bubble deploys the entire development version to live. You cannot selectively deploy individual pages or workflows. Review the change comparison carefully before deploying.
Can RapidDev help with complex deployments?
Yes. RapidDev specializes in Bubble development and can help with deployment planning, security audits, performance optimization, and custom domain configuration for production launches.
How do I know if my deployment succeeded?
After clicking Deploy, Bubble shows a success message. Visit your live URL to verify the app loads correctly. Check the Logs tab for any immediate errors.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation