Bubble Docs
  • Introduction
  • New? Start Here
  • What is Bubble?
  • The Glossary
  • User manual
    • Getting started
      • What is Bubble?
      • Building your first app
        • Planning features
        • Database structure
        • Design and UX
        • eCommerce and payments
          • Shopping cart
          • Checkout page
          • One-time payments
          • Subscriptions
          • Marketplace
      • Creating and managing apps
      • The Bubble editor
        • Tabs and sections
          • Design tab
            • The element tree
            • The property editor
          • Workflow tab
          • Data tab
          • Styles tab
          • Plugins tab
          • Settings tab
            • Application settings
              • Custom headers/body
              • Visual settings
              • Social media sharing
              • Translating your app
              • Email settings
              • Collaboration
            • Custom domain and DNS
          • Logs tab
        • Tools
          • Key features
          • The search tool
          • The Issue Checker
          • The element tree
          • The element property editor
          • The debugger
          • Notes
        • Previewing your app
      • Transitioning to Bubble from...
        • JavaScript
        • HTML and CSS
        • SQL
    • Design
      • Elements
        • The element hierarchy
          • The element tree
        • The page
        • Containers
          • Groups
          • Repeating groups
          • Table elements
          • Popups
          • Floating groups
          • Group focus
        • Visual elements
        • Input forms
          • Text and numbers
          • Dates and time
          • File uploads
          • Selection controls
        • Reusable Elements
      • Styling
        • Color variables
        • Font variables
        • Styles
        • Custom Fonts
      • Responsive design
        • Building responsive pages
        • Legacy articles
          • The Basics (Legacy)
          • Building Responsive Pages (Legacy)
          • Migrating Legacy Pages
          • Tips When Designing (Legacy)
      • Templates
      • The Component Library
      • Importing from Figma
    • Data
      • The database
        • Data types and fields
        • Creating, saving and deleting data
        • Finding data
        • Displaying data
        • Protecting data with privacy rules
        • The database editor
        • Export/import data
          • Exporting data
          • Importing data (CSV)
        • Working with location data
        • Using Algolia
        • Database structure by app type
          • Marketplace Apps
          • Directory & Listings Apps
          • Social Network Apps
          • SaaS Apps
          • Project Management Apps
          • CRM Apps
          • Professional Services Apps
          • On-demand Apps
          • Documentation/ CMS Apps
          • Applicant Tracking System (ATS) Apps
          • Portfolio Apps
          • Gallery Apps
          • Online Store / Ecommerce Apps
          • Blog Apps
          • Messaging App
          • Dashboards
          • Building Block Apps
          • Bubble as a backend
      • Files
      • Images
      • Static data
        • App texts (translations)
        • Option sets
      • Temporary data
        • Custom states
        • URL parameters
      • User accounts
        • Authentication plugins
          • Facebook plugin
          • Fitbit plugin
          • Google plugin
          • Instagram plugin
          • LinkedIn plugin
          • Pinterest plugin
          • Slack plugin
          • Wistia plugin
          • YouTube plugin
        • Cookies set by Bubble
      • Time, dates and time zones
    • Logic
      • The frontend and backend
      • Workflows
        • Events
          • Frontend events
            • Recurring workflows
            • Custom events
          • Backend events
            • Database trigger events
        • Actions
        • API Workflows
      • Dynamic expressions
      • Conditions
      • Navigation
        • Single-page applications (SPA)
        • Multi-page applications
        • Page slugs
    • Workload
      • Understanding workload
        • Activity types
        • The workload calculation
        • Client-side and server-side processing
      • Tracking workload
        • Measuring
          • Using App Metrics
        • Monitoring
          • Workload notifications
          • Infinite recursion protection
      • Optimizing workload
        • Optimization framework
        • Optimization checklist
          • Page load
          • Searches
          • Workflows and actions
          • Backend workflows
        • Agency showcases
          • Minimum Studio
          • Neam
          • Support Dept
    • Security
      • Bubble's security features
      • Planning app security
      • Client-side and server-side
      • Bubble account security
      • App security
      • Page security
      • Database security
      • API security
        • API Connector security
        • Data API security
        • Workflow API security
      • Flusk
        • Overview
        • Flusk plan features
        • Getting started with Flusk
        • Flusk security tools
          • The Issues Explorer
          • Issue details
          • Tools and settings
            • Pages rating
            • Database rating
        • Flusk FAQ
      • Cookies
      • Security checklist
    • Publishing your app
      • Web app
      • Native mobile app
        • Global native mobile settings
        • iOS App Store
        • Google Play Store
        • Publishing FAQ
    • AI
      • Generate apps with AI
        • About AI app generation
      • AI page designer
      • Connect to AI agents
    • Maintenance
      • Collaborators
      • Version control
        • Best practices: Version control
        • Transitioning from the legacy version control
        • Terminology: Version control
        • Version Control (legacy)
      • Commenting
      • Database maintenance
        • Copying the database
        • Restoring database backups
        • Bulk operations
          • Bulk operation methods compared
        • Wiping change history
      • Performance
        • Hard limits
        • Capacity Usage (legacy)
        • Notes on queries
      • SEO
        • Introduction to SEO
        • SEO: App
        • SEO: Page
      • Testing and debugging
        • Introduction to testing and debugging
        • The debugger
        • The server logs
        • Supported browsers
      • API workflow scheduler
    • Integrations
      • API
        • Introduction to APIs
          • What is a RESTful API?
        • The Bubble API
          • Bubble API terminology
          • Authentication
            • How to authenticate
            • No authentication
            • As a User
            • As an admin
          • The Data API
            • Data API Privacy Rules
            • Data API endpoints
            • Data API requests
          • The Workflow API
            • Workflow API privacy rules
            • Workflow API endpoints
            • API workflows
              • Creating API workflows
              • Scheduling API workflows
              • Recursive API workflows
              • API Workflow Scheduler
              • Case: Stripe notifications
        • The API Connector
          • Authentication
          • API Connector security
          • API guides
            • OpenAI
              • Authentication
              • Calls
                • ChatGPT
                  • Chat
            • Google Translate
              • How to setup Google API keys
          • Streaming API
        • API security
        • Plugins that connect to APIs
        • API Glossary
      • Plugins
        • What Plugins Can Do
        • Installing and using Plugins
        • Authentication plugins
        • Special Plugins
      • SQL Database Connector
      • Bubble App Connector
      • WorkOS
        • WorkOS SSO
        • WorkOS API
    • Infrastructure
      • Sub-apps
      • Bubble release tiers
      • Hosting and scaling
        • How Bubble hosting works
        • Scaling with Bubble
        • CDN (Cloudflare)
        • Bubble app names
        • Domain and DNS
      • Compliance
        • GDPR
        • SOC 2 Type II
        • HIPAA
        • Other frameworks and standards
    • Bubble for Enterprise
      • Hosting and infrastructure
        • Dedicated instance
          • The Dedicated editor experience
          • Technical specs
          • Main cluster dependencies
          • Customizable options
          • Migration process
            • Pre-migration
            • During migration
            • Post-migration
      • Security and compliance
        • Single sign-on (SSO)
        • GDPR
        • SOC 2 Type II
        • HIPAA
        • Other frameworks
        • Bubble's security features
      • Admin and collaboration
      • Priority support
      • Billing and Payment Guideline for Dedicated Instances
  • Core Reference
    • Using the core reference
    • Bubble's Interface
      • Design tab
      • Design tab (Legacy)
      • Workflow tab
      • Data tab
      • Styles tab
      • Styles tab (Legacy)
      • Plugins tab
      • Settings tab
      • Logs tab
      • Template tab
      • Toolbar
      • Top and context menu options
      • Deployment and version control
        • Deployment & Version Control Dropdown (legacy)
      • Notes
    • Elements
      • General properties
      • General properties (Legacy)
      • Styling properties
      • Styling Properties (Legacy)
      • Responsive Properties
      • Responsive Properties (Legacy)
      • Conditional formatting
      • States
      • Page Element
        • Page Element (Legacy)
      • Visual Elements
      • Containers
      • Container Layout Types
      • Containers (Legacy)
      • Input Forms
      • Reusable Elements
      • Element Templates (legacy)
    • Workflows
    • Events
      • General events
      • Element events
      • Custom events
      • Recurring event
      • Database trigger event
    • Actions
      • Account
      • Navigation
      • Data (things)
      • Email
      • Element
      • Custom
    • Data
      • Data Sources
      • Operators and comparisons
      • Search
      • Privacy
    • Styles
    • API
      • The Bubble API
        • The Data API
          • Authentication
          • Data API endpoints
          • Data API requests
        • The Workflow API
      • The API Connector
        • Authentication
        • Adding calls
    • Bubble-made Plugins
      • AddtoAny Share Buttons
      • Airtable
      • API Connector
      • Blockspring
      • Box
      • Braintree
      • Bubble App Connector
      • Chart.js
      • Circle Music Player
      • Draggable Elements
      • Dropzone
      • Facebook
      • Fitbit
      • Full Calendar
      • Google
      • Google Analytics
      • Google Optimize
      • Google Places
      • Ionic Elements
      • iTunes
      • Slidebar Menu
      • LinkedIn
      • Localize Translation
      • Mixpanel
      • Mouse & Keyboard Interactions
      • Multiselect Dropdown
      • Progress Bar
      • Rich Text Editor
      • Rich Text Editor (Legacy)
      • Screenshotlayer
      • SelectPDF
      • Slack
      • Segment
      • Slick Slideshow
      • SQL Database Connector
      • Star Rating
      • Stripe
      • Tinder-like Element
      • Twitter
      • YouTube
      • Zapier
    • Application Settings
      • App plan
      • General
      • Domain / email
      • Languages
      • SEO / metatags
      • API
      • Collaboration
      • Sub-apps
      • Versions
  • Account & Marketplace
    • Account and billing
      • Pricing and plans
        • Plans and billing
        • Billing cycle
        • FAQ: Pricing and Workload
      • Account Management
      • Building Apps for Others
      • Selling on the Marketplace
      • Plans & Billing (legacy)
    • Official Bubble Certification
      • Hiring certified developers
    • Building Plugins
      • The Plugin Editor
      • General Settings
      • Updating to Plugin API v4
      • Adding API Connections
      • Building Elements
      • Building Actions
      • Loading Data
      • Publishing and versioning
      • Github Integration
    • Building Templates
    • Application and data ownership
    • Marketplace policies
    • Bug reports
  • Vulnerability Disclosure Policy
  • Beta features
    • About the Beta features section
    • Native mobile apps 🔒
      • Introduction
        • What is a native mobile app?
        • Native mobile vs. web development
        • Differences in native and web elements
        • Native mobile app terminology
      • Building
        • Views and navigation
        • Native mobile actions
        • Components and gestures
        • Device resources
          • Location services
          • Camera/photo library
      • Previewing
      • Publishing
Powered by GitBook
On this page
  • Selecting environments
  • Live environment
  • Live branch
  • Create a hotfix
  • Hotfix branch
  • Development environment
  • The Main branch
  • Load a branch
  • Create a new branch
  • Edit description
  • Deploy to Live
  • Sync with Main
  • Sync with Live
  • Reset to Live
  • Delete
  • Merge changes from another branch
  • Savepoints
  • Create savepoint
  • Restore savepoint
  • Restore to custom date and time
  • Warning messages
  • Your branch is out of sync with Live
  • Other ways to learn

Was this helpful?

  1. Core Reference
  2. Bubble's Interface

Deployment and version control

Last updated 9 months ago

Was this helpful?

This core reference entry is suited for intermediate-to-advanced-level builders.

To learn about this topic more in-depth, we recommend reading the suggested articles below:

Deploying your app

This article covers the process of deploying your app to live users.

  • Article:

Version control

Version control a tool that allows you to set up multiple isolated development environments. This enables individuals or teams to concurrently work on various features or fixes, ensuring that each person's work remains undisturbed by others. It's an effective way to manage multiple tasks simultaneously in a collaborative setting.

Article series:

Video lessons on deployment

Video tutorial:

Video lessons on version control:

Video tutorial: Video tutorial: Video tutorial: Video tutorial: Video tutorial: Video tutorial: Video tutorial: Video tutorial: Video tutorial: Video tutorial:

This is the short-form technical reference entry describing version control. If you are looking for more in-depth and long-form content on how it works, you may be interested in reading the .

If you are transitioning to the new version control in an app that currently has at least one custom branch, we recommend reading our .

Version control provides distinct Development and Live environments that exist in parallel, enabling continuous application development without affecting the live application. This system also facilitates the creation of customized branches to segregate projects and divide them into more manageable components.

Selecting environments

To select an environment, click on the Live option or choose one of the available branches listed under the Development section in the branch tree.

Live environment

Live branch

The live branch is your live site on the web. It cannot be edited directly.

Create a hotfix

This will create a branch to make urgent updates to your application. The hotfix branch is connected to the Development database. While a hotfix branch exists, from Main will be blocked. You'll be prompted for a confirmation before the branch is created..

Hotfix branch

Create savepoint

Create Savepoint lets you capture a snapshot of the current state of the hotfix branch. You can include a description to identify the save point later.

Deploy to Live

This will deploy the changes you have in hotfix to Live. You'll be prompted for a confirmation before the process starts where you can provide a description for the deployment. Once it has been deployed, the hotfix branch will be deleted and a savepoint will be created automatically with the description you provided.

Reset to Live

Click to reset the hotfix branch to match Live. You will retain savepoints and can restore to a savepoint or custom date/time at any time after resetting to undo it. You will be prompted for a confirmation before the process starts.

Delete

This will delete the hotfix branch. You will be prompted for a written confirmation before the branch is deleted.

Development environment

The Main branch

The Main branch is where your app is developed and tested before being deployed.

Load a branch

To load a branch, click it in the branch tree.

Create a new branch

Any branch that you created under the Main branch is known as a custom branch. Select the branch that you want to be the parent of the new branch and click the Create a new branch button. You will be prompted for a name and description. The new branch will be created as a child branch to the currently selected branch.

Next to the create button you will see a count of the remaining custom branch spots you have available in your current plan.

If you have created the maximum number of branches available in your plan, the Create new branch button will instead say Upgrade to add more branches.

Edit description

This option in the more options dropdown lets you edit the description of the currently selected branch.

Deploy to Live

This will deploy the changes you have in the Main branch to Live. You'll be prompted for a confirmation before the process starts where you can provide a description for the deployment. A savepoint will be created automatically with the description you provided.

Sync with Main

This lets you changes from Main into the currently selected branch. You will be prompted for a confirmation before the process starts. Clicking Continue will refresh the page and you will be able to review non-conflicting changes and resolve conflicts before confirming the merge.

Click Cancel merge in the bottom right corner of the screen to cancel the process at any point.

Sync with Live

This lets you merge changes from Live into the currently selected branch. You will be prompted for a confirmation before the process starts. Clicking Continue will refresh the page and you will be able to review non-conflicting changes and resolve conflicts before confirming the merge.

Click Cancel merge in the bottom right corner of the screen to cancel the process at any point.

Reset to Live

Click to reset the currently selected branch to match Live. You will retain savepoints and can restore to a savepoint or custom date/time at any time after resetting to undo it. You will be prompted for a confirmation before the process starts.

Delete

This will delete the currently selected branch. You will be prompted for a written confirmation before the branch is deleted. This option is not available on the Main branch.

Merge changes from another branch

This will the changes from another branch into the currently selected branch. The process is split into four steps. Clicking Merge changes from another branch will open the merge dashboard where the available branches in your app are listed. Selecting a branch and Clicking Continue will refresh the page and you will be able to review non-conflicting changes and resolve conflicts before confirming the merge.

Click Cancel merge in the bottom right corner of the screen to cancel the process at any point.

Savepoints

Create savepoint

Create Savepoint lets you capture a snapshot of the current state of the current active branch. You can include a description to identify the save point later.

Restore savepoint

If you've saved one or more savepoints, you can pick one from the list and click "Restore to this Savepoint" to begin the process. You'll be prompted for a final confirmation before the process starts, and the page will refresh automatically once the restoration is finished. A new savepoint will automatically be created.

Restore to custom date and time

To restore the branch to its state at a specific date and time, click Custom date and time and provide a date and time. Then click "Restore to this custom date and time" to begin the process. You'll be prompted for a final confirmation before the process starts, and the page will refresh automatically once the restoration is finished. A new savepoint will automatically be created.

Warning messages

Your branch is out of sync with Live

Other ways to learn

User manual articles and video lessons

In the version control manual you'll find more in-depth articles explaining how version control works:

Legacy documentation

For the documentation on the legacy version control system, check out the resources below:

This warning will be displayed when Live contains changes that the currently selected branch does not have. Click Sync or choose Sync with live from the more options to .

Article:

We also have a list of video lessons that take you through version control. You can also visit and subscribe to our for more lessons:

Video lessons:

Article: (legacy) Reference: (legacy)

Deploying your app
Version control
Deploying to Live
Introducing New Version Control
What is Version Control?
Interface Overview
Using Version Control | Bubble Tutorials
Creating Custom Branches
Resolving Conflicts
Creating Savepoints
Syncing Custom Branches
Deleting Custom Branches
Using the Hotfix Branch
version control manual
version control transition guide
Version control
Youtube channel
Version Control Manual
Version control
sync with Live
Version control