A review of Bubble

I am posting it here before publishing it on my blog because there are no doubt inaccuracies!

A Test Drive of Bubble.io: A Visual Programming Tool

I heard about a visual programming tool named Bubble on Product Hunt. I decided to give it a try by building an approval workflow app.

A Bubble schema is built from things — basically tables. The scalar field types are text, number, numeric range, data, date range, date interval, boolean, file, image, geo address, and thing. A scalar type can have a default value. List is the only collection type. Encryption at rest isn’t supported. The App Data tab has CRUD, import, export, transformation, copy dev (production) to production (dev), and PIT recovery commands. The Privacy tab allows thing-specific access control entries termed Roles. I don’t see a distinction between read & write, or owner & not. Surely, I’m confused because it must be necessary to express that only the owner & a row-specific white list (decision makers in this app) can write.

I defined a DecisionStatus thing with 3 rows: undecided, approved, rejected. I set my Decision thing’s status field’s type to DecisionStatus. However, I couldn’t figure out how to make the UI set it. So I switched to a text field set by radio buttons. This is a problem for localization but Bubble doesn’t support that.

There’s a built-in User thing with fields email, Created, Modified, id — password is hidden. I chose the built-in, reusable element Signup/Login Popup. I don’t see how to generate a confirmation email. I don’t see any security info such as (IP, time) history. I don’t know if there’s login throttling. The UI is inconvenient because the default is Signup despite Login being a more frequent event.

I want to store the allowed decision makers. This could be a list of Users or emails. I could not determine how to populate and enforce this list.

Most of the programming time is spent designing the UI. The widgets are:
visual elements: text, button, icon, link, image, shape (?), alert, video, HTML, map, powered by Bubble
form elements: input, multiline input, checkbox, dropdown, search box, radio buttons, slider, date/time picker, picture uploader, file uploader. The lack of a multi-select, auto-complete element is a showstopper for me. There is a plugin architecture but I didn’t study it.
containers: group, repeating group (data bound grid), popup (a group that is invisible initially), floating group (pinned despite scrolling), group focus (I didn’t study).
reusable elements: footer, header, new element. There’s a tab group but I couldn’t determine how to use it.

A nice feature is the style selector shows a preview of the styles.

All app frameworks feature data binding so it is no surprise that Bubble containers and form elements can be bound to things (as a reminder, these are like tables).

The page becomes cluttered with groups playing the role of modal forms. There is no way to auto-center a group when shown so there’s no choice but to pile them on top of each other in the designer. I recommend a way to stash invisible groups somewhere — similar to Bubble workflow folders perhaps.

Programming is expressed through events in the workflow tab of the designer. Elements have the familiar event types like onClick and Page.onLoad. An interesting event type is reactive (Bubble doesn’t use this term), eg, when a radio group’s value is X. Another event type is a recurrence.

Each event has an action sequence such show group; bind data; set focus (this action isn’t reliable for me).

There is no textual language — not even JSON. Expressions are built by clicking. Events have conditions expressed by boolean expressions like X is clicked (in contrast to ev.type == “click” && ev.target == X) or Current User is logged in (in contrast to curUser.isLoggedIn()). Data bindings are paths like Current cell’s Decision’s Title. As a programmer, I find this harder to read than currentCell.decision.title. To avoid clutter, events can be grouped in folders.

Happily, there is a debugger and an element tree (like the DOM) inspector. The tool has video help and a manual (too terse & several omissions such as modifiers like :filtered). The tours step through using the real UI.

In summary, Bubble’s mission is noble and they have worked hard on this tool. Unfortunately, I could not program a simple approval workflow app.

I think you left out the part where the author was too lazy to apply a few minutes of his obvious technical expertise to learn Bubble. You outline a lot of the platform’s features, take zero time to learn how to use it, and patronizingly summarize Bubble’s mission as “noble”. Sweet post. Where can I downvote this?


Not sure why you could not program the simple workflow app. This is actually very easy with Bubble and most people on this forum could have one for you in an hour or so. Bubble is a noble idea and it has completely changed the way I view ideas because it removed the one roadblock I had, not being able to program. Now when I have an idea I pull up the editor and stay building. Give it another try. You will love it!!


Also obviously you are going to run into some stiff opposition to your post. Bubblers are a loyal bunch;)

You admit yourself you “didn’t study it” yet you are happy to publish this negative review. I have come from spending huge amounts of money with proper programmers and not got what I want. I invested time and a very small amount of money to do an online course and got started. From knowing absolutely nothing about coding I now have a complex database structure that is functional and I am extremely confident I will be able to publish this app in the near future with a bit more time. When I don’t know how to do something I consult the experts by either going back to my on line course, or consulting the forum. The users on this forum are the most wonderful helpful people around and they make this platform what it is - brilliant. I can not recommend them highly enough.

Before publishing this please go back and do a bit of “study”, do an online course - there are plenty of them, consult the forum. Your answers are probably already there - if not ask. You will be amazed at what you can achieve


I see you’ve made a grave error and been chastised for it, but nevertheless. There is somewhat of a learning curve, admittedly, but once one summited it, it becomes a tool more powerful than text-based programming. This is coming from one who programmed before Bubble (and still do, just much less). By powerful I don’t mean sheer functionality (as Bubble is nowhere near full programming functionality, data modeling… forget it. However, one can connect an R script to it through Blockspring).

By powerful, this is what I mean. It creates a sense of experimentation programming languages can’t even get to, since you can move much, much faster and don’t have to reinvent the wheel every time you want to create an app. After validating an idea, one can move onto solidifying it to make it function better and safer. Sure this means it’s easier for just anyone to make an insecure app that’s easily hackable, but one who just finished a intro programming course could end up with the same result (just slower I suppose).

True you can’t explicitly make a distinction between read & write permissions in the privacy tab @emmanuel :grin:. I usually build these permissions into conditionals based on the current user. For why you can’t get the approval app working, you message me a link to the editor, I could help you out here. As for the tracking IP and login/logout times, currently you will have to create this by scratch. I did this for AdFoam, an ad platform for websites built on Bubble, it can track IPs, local times, etc. There’s a plugin called Ipify for getting IPs you can install in Bubble and created a custom integration with http://userinfo.io. Login throttling in the based on browser cookies and IP is possible and fairly simple to make.

Theres an element called Search Box which functions as autocomplete. You can build a multi-select pretty easily, but it would be nice if already a pre-made element for sure.

There are ways around piling groups on top of one another, it can be a pain before figuring out alternative methods. But I imagine the Elements Tree could help you here.

Even if someone wants to stick with text-based programming, Bubble is still a fierce prototyping tool. I know, because I use it everyday.

I would recommend https://www.udemy.com/bubble-course/, https://www.udemy.com/buildastartup/, or even my blog https://medium.com/@ryan.roberts if you are interested in continuing to learn Bubble.


Ryan, thx for your reply & offer. Before I created the app, I did all the tutorials & read the manual. Thx for the Udemy links – maybe one of the courses would get me over the hump.

MotorHome, of course I studied it. My review is not negative but it isn’t 100% positive either.

CSBlack, of course I spent >0 time learning Bubble.

Bradluffy, I did program a simple workflow app – too simple. Thx for the encouragement.

I’d encourage you to post your application questions to this forum so that the community can answer any questions you may have. This forum is a very helpful place; I rarely see any questions go unanswered. The strong support for Bubble is not for show; but because of the reality that it has changed many of our lives. To see your review dismiss Bubble as a noble idea was a little bit difficult to read, but that doesn’t mean that there isn’t a learning curve. There is, just like with anything (whether it’s coding, Bubble, Photoshop, etc). Users have built clones of Twitter, Yelp, Airbnb and more. Startups are built using Bubble. If you look through this forum, there are some posts which talk about a loan startup built entirely on Bubble (that’s no small project). With all of that said about Bubble’s functionality, I think Nigel said it best in a comment on Product Hunt when he said “a quiet revolution is taking place”. This is a community where complete non-coders and veteran coders work side-by-side to help one another from all over the world. It’s pretty unreal when you think about it, and that’s why many of us are quite protective of it. I encourage you to stay with it some more before reviewing it; it’s absolutely worth it. Best of luck to you.


If I had to write a review ,

I’d say I’ll rather LEAVE [ Facebook + WordPress + Netflix ] than leaving BUBBLE . And I’m not even an expert .


Hey Ken,

I am a complete noob and fly on the wall who is trying to learn with the tuts and after market vids.I have noticed that people in the teaching vids seem to deliver the same result by doing it in different ways, maybe you mind is black and white, it does or does not. It’s a zero or a 1. I think it’s awesome because is applies to an array (<— did i just use a technical term?) of learning styles.
I think your perspective left a lot out on the table, such as: How you really can’t break it. I do something wrong and editor tell me I have an issue (or 23).
Lets jump over to a script kittys world and let’s open a block of code in a random location, tinker for a minute and see what happens and then see how long it takes for someone else to find it. I can post a question and someone will walk me through it with detail answers and screen shots. How awesome are these people??

It is what it is. I appreciate it for that. The NSA isn’t picking up Bubble for the future platform.

I hope maybe you stick with it, learn it and can contribute to my face palming questions in the forum. You seem like an intelligent guy who could be leading with answers and solving problems in no time.

(Disclaimer: all of this published before my first cup of coffee)

1 Like

Hi @ken.keller, welcome to the bubble forums!

Thanks for taking the time to write up a review of bubble.io, it’s such an incredible platform and although I’ve only been apart of this community for a little under 2 months now, I’ve seen a great deal of growth in both the community and the platform itself. I’m a firm believer that the more discussion about bubble the better!

I didn’t see a link to your blog, is this it? https://medium.com/@kellerapps

Regarding your review, if you’re open to some constructive criticism read on!

It sounds as though your intention while writing this is an objective review of bubble’s capability as a platform. However, although my internal voice started off with an objective tone (cool!) it quickly turned sour. There’s a couple of generalizations that come across as ignorant of the language followed by extrapolations that sound authoritative in their conclusions, ultimately being summarized in inconsistent logic (Bubble is good, but I couldn’t do what I set out to do with it) inferring the fault lies with bubble’s functionality, instead of the writer’s lack of ability.

That being said, my constructive criticism is simply to find your voice - as an opinion piece, this is a good place to start with bubble. It has thought and consideration, you’ve experience in traditional programming, as many of us do, and bubble is a new and intriguing platform that you’ve begun exploring.

Unfortunately, from my point of view it sounds as if your opinion is fact which is aimed towards someone with a background in programming could use as an objective insight into this platform, which if that is your end goal I would amicably suggest a more in-depth examination.

For many of us, bubble isn’t a toy or a curiosity, it’s a robust programming platform, analogous to a plumbers wrench or shopowners till. We rely on it to build tools and concepts that ultimately provide for us. I say this because you might consider some of our reactions to your piece overly strong. I assure you we’re a friendly bunch and there are no barriers entering this community, but no professional likes a cursory glance and dismissal of their tools. Bubble surely lacks in certain things, one of them being the documentation. Most of us rely on the forums as a sort of living document to level up our bubble skill. I invite you to participate more here, this growing community would benefit greatly from your participation and background.


I especially hope that people with a programming background stick around, because our main goal in the next six months is to open bubble up so that people can build and share or sell their own plugins. Having some seasoned coders around when we open that up would help jumpstart things :grin:


I just don’t have data to evaluate this. I’m just quiet and observing.

What, may I ask, is your point?


Forget the Guy…he wants attention…