What is Bubble?

I’ve been using (and loving) Bubble for over a year, but I struggle to describe it to other technical people…or even semi-technical people (like myself).

Would it be accurate to describe Bubble as a visual framework for Node.js?

Frameworks, like Rails or Express, generate a lot of boilerplate code. That is what (I assume) Bubble is doing as I build out my workflows.

Webflow, for example, allows you to export the HTML/CSS/Javascript it creates and host it wherever. In theory, would I be able to export the Node code that Bubble generates and go run that code on a Node server somewhere else (say Digital Ocean or Heroku)?

Does this answer the question?


It answers the first part of my question, yes…thank you!

So when I’m building out workflows in the Bubble editor, Bubble is actually “combining hand-coded javascript modules seamlessly into a working node.js application”.

Would I be able to export that “working node.js application” and go run it on a Node server somewhere else (say Digital Ocean or Heroku)? Can the node.js application that Bubble creates run independently of the Bubble hosting infrastructure?

No we do not support this.

The app is combining different JavaScript actions and modules, but we do not generate code that can be run independently. But that’s where we offer dedicated, as a way for people to have their own servers to run their bubble apps.


Thanks for this description. I too am looking to for ways to explain Bubble’s capabilities to other developers. When you say “It includes a simple but powerful expression language for linking components together and defining business and display logic” or from your developer job posting: “Bubble is a cross between a new programming language, a cloud operating system etc…”. Could you further explain what you mean when you say Bubble is a new programming language/new expression language? This will really help me to further explain the underlying technology behind my awesome app.


This very cool Trees In the Clouds Bubble blog post made me think of this old thread.

I won’t pretend to have understood the whole blog post, but it was an interesting read. This, in particular, stood out to me…

Bubble, unlike a traditional programming language, doesn’t have code. It’s just an AST, without any syntax. Instead of storing Bubble apps as code, we just store the tree itself. Our web-based visual editor manipulates the AST directly.

Because Bubble apps are stored as ASTs instead of code, it is much easier for us to evolve the Bubble language over time than it is in a traditional programming language. We can make radical changes to the user interface that Bubble programmers work with without breaking compatibility with existing user applications, because we can write code that interprets the existing ASTs and translates them into the new format.

@emmanuel or @josh, is storing Bubble apps as AST’s instead of as code (JS) the primary reason why Bubble doesn’t (or can’t) support the exporting of a Bubble app as a working node.js app that we could, in theory, install and run elsewhere?


There are a few reasons why we made this decision, and yes, storing apps as AST is one of them.

1 Like

Hi @emmanuel! You’ve got a great product here, and I really appreciate your effort and the quality of service you all provide.

After reading your blog post, I went ahead and downloaded one of our larger applications and reviewed the AST – it’s pretty brilliant, and I have a big question/ask:

Is there a way to programmatically access the AST through an existing API? I believe I have an interesting solution to one of our problems, and I’d like to discuss it further with you. I’m @jhampton on Twitter, or you can reach me at the email associated with this message.

Thank you in advance, and thanks again for the awesome work!


Jeff Hampton

I should have also mentioned @josh. :slight_smile:

It’s not something we currently offer, though we want to do this at some point. I can give a timeline though.

Thank you sir. I began looking at the initial CloudFront xfalse JS and started picking apart the various bundle pieces. If I’m not mistaken, the public-facing JS actually contains everything I need, and it’s in the open. I was hoping for some guidance, but I can slog through it.

I’ll give you the high-level, though: Expo.io automatic component creation from the AST elements. Mapped components to native. GraphQL REST wrapper. Native login for social. Auto-conversion of HTML plugins where feasible.

If you’d like to talk, please DM me. And thank you again!

1 Like

Hey, I just wanted to see if you started/have been working on this. Having used bubble for quite sometime time I think this is the most elegant way to run bubble natively