The question of exporting your app is one of the most common I get from new Bubble users and clients who are looking into Bubble as a platform. To understand the answer, we’ll need to look a bit deeper into why exporting is not simply a non-supported feature, but a natural consequence of what Bubble is and isn’t.
The perspective of this article is not to criticize nor defend Bubble, but to shed some light on why the answer to this question is what it is. Bubble, as I keep repeating, is a tool that may fit your project or not. It’s not a religion, it has pros and cons like every other piece of software. It simply is what it is, and as a project manager or developer, it’s your job to do the necessary research before deciding whether to use it or not.
Some questions will be important in your decision making. This is likely one of them. So let’s look at what you get, and what you don’t.
So… can I?
To quickly actually answer your question: no, you can’t export your app. You can export its data, but the design and workflows are running on Bubble’s proprietary engine, and can’t be moved onto any server or framework outside of Bubble’s walled garden. There is no export feature available today, and it likely won’t be available in any foreseeable future.
Now, read on if you want my perspective on the whys.
Quick disclaimer: I don’t represent Bubble and I don’t have any privileged insight into their strategic planning. Consider this article my own personal perspective and educated guess.
The reason Bubble is stable, easy to build on and scalable, is that they set the rules. They pick the hosting, they’ve built and maintain your app’s engine and they lock you into this system… well… for life. Kind of evil and greedy, no?
As usual, the answer is a bit more nuanced. Bubble was built from its first line of code to serve one purpose: to allow non-technical developers to build their own app without sacrificing flexibility. For any app, a few basic things need to be in place to function:
- A database to store information that can be scaled as the user base grows
- A user interface
- A set of workflows that perform one or more tasks
In traditional development, all of those three can be done by one person, but often they are set up and maintained by individuals or teams that specialize in that particular domain. Bubble aims to let everything from hosting, scaling, design, workflows and data management be handled by a single developer. That focus has resulted in a platform that automates and simplifies a lot of otherwise complex processes, and also the ongoing balancing of flexibility, ease of use and stability.
In short, when you’re paying for Bubble, only a small fraction is for the actual hosting: what you are really paying for is the leasing of their proprietary software engine. The server-side actions and workflows that you place in the Bubble editor don’t actually perform any work by themselves, but simply pass on a command to the Bubble engine, where the actual work takes place. What this means in practice, is that no code can be exported, because no code is ever generated.
Just like the mouse and keyboard on your computer is worthless without an operating system, a Bubble application does not function without a connection to the engine on which it runs.
Will it be added in the future?
Would it still be possible to build an export feature? I’m sure it would, but I wouldn’t count on it to happen. Strategically, it makes little sense for Bubble to implement such as thing, since it would be a massive undertaking to build and maintain, and it directly opposes both the Bubble’s core USP (build, host and scale your web app easily) and their financial interests (recurring service revenue). In short: this is not really what Bubble is meant to do.
I make this point not in defense of their position: like everyone else, I’d love to be able to export the app. The lock-in is one of the typical concerns I get from potential clients, sometimes stopping a project that I genuinely think would have benefited the client. The reason I do make it is to share my perspective on the pros and cons of choosing Bubble for any project, client or not. There are many upsides to Bubble’s lock-in approach, but it makes no sense not to be transparent about its drawbacks.
Let’s go over in a bit more details what exactly that means:
- Low development costs and short time to market
- Ease of use: Bubble’s learning threshold is considerably lower than learning to develop, host, scale and design your app traditionally
- Stability: Bubble’s invests a lot of resources to make sure that hundreds of thousands of apps run stably at the same time
- Monitoring: Bubble also monitor any server downtime for you and react if something occurs
- Security: Bubble’s technology and hosting takes care of a lot of privacy and security issues without any work needed from users
- Regulation: They also in many ways protect users from themselves, by setting limitations on server actions that could potentially max out the capacity of one or even all apps on the server
- Scaling: is done with the click of a button
- Issue tracking: Bugs and potential issues are easily recognizable and even stops you from deploying
- Features: you don’t get to decide what core features are prioritized or introduced next
- Performance: Bubble overall is pretty fast, but it’s no secret that it does under-perform in some areas. There’s a lot you can do to improve your app’s performance, but once you hit Bubble’s actual limitations, you won’t be able to optimize the underlying technology
- Platform independence: Bubble is built to be run in a browser. If you’re looking to set up native apps for any other OS (mobile or not), the lock-in may present challenges that outweigh the cons
- Pricing: Bubble sets the price. Not only is Bubble hosting more expensive in the long term than renting server space somewhere else, but if the need suddenly arises for a dedicated instance (which can become necessary for all sorts of reasons, not just capacity) you can be looking at significantly higher costs
- Long-term strategy: While it is of course in Bubble’s interest to facilitate for mutual trust and long-term predictability, new management, investment rounds, an acquisition/merger or even bankruptcy can all have a minor or major effect on how the service performs
Making a decision
When it comes to picking a system that locks you in, I recommend taking the time to weigh pros and cons. For an MVP, a lock-in may not be a huge issue, but for an app that you plan to run on Bubble for the foreseeable future, a proper due diligence makes sense. Keep in mind that while you can substantially reduce the time and cost to go to market, develop new features and maintain/scale your app, these upsides shouldn’t automatically blind you to the realities of choosing a locked-in platform. The downsides may be trivial or a deal-breaker, depending on what kind of app you will be building.
As always, the Bubble community both in the forum, on Twitter and different Slack communities are incredibly helpful Describe your app and your concerns clearly and in detail, and you’ll get a lot of feedback that can help you reach a decision.