Forum Academy Marketplace Showcase Pricing Features

Performance has gotten worse over time and is fixable. Why is bubble not acting?

This is part rant and part education for you all.
I have been on the bubble platform for 5 years now and have a dedicated server and also many community applications.
I have delved deep into the timings and stats of backend calls and validated my findings with support.

  1. they are not batching enough of their calls from the client and many are sequential when they could be parallel. Without batching, we are at the mercy of number of browser connections.
  2. CloudFlare is masking a huge issue which if fixed would improve performance by 5x. The connection from Bubble to CloudFlare (cloudflare to you is cached) is not caching the SSL connection (validated by support), so EVERY SINGLE CALL is adding 100-150 MS. Mgets, bulk_watch and search should be 50/70 ms and are > 150ms every single time. This issue + #1 makes for a very slow application. The fix is very easy for them do, and 2 years ago i just gave up fighting with them to get it done. crazy.
  3. in addition they hadn’t enabled gzip compression from the bubble servers last i checked, which is also masked by cloudflare but not as big an issue.

The question here is why not fix it? Bubble?


My guess is that it is simply a massive technical debt from the early architecture.

Back-end performance has always been poor. And not just poor but also inconsistent.

In my case, 7 years and I STILL can’t delete more than a dozen or so rows without timeouts or massive workarounds.


agreed. but the impact across all clients would make it worthwhile.
I understand cloudflare for libraries and images, but data calls should go direct also with the fixed ssl caching.

1 Like

Does anyone know if these types of features is a priority for them?

Seems to be they are focusing a lot on entry-level features (think “components” or “element opacity”) vs. actually improving performance and features for expert bubblers.


we got a dedicated customer success person when they got their big round of funding and we brought this up again and it went no where.

This is really not good news - I have been on Bubble for only 6 months+ and starting to feel performance being a constraint. I am only on Personal Plan right now so I was maybe hoping for increased performance with the higher pricing products.
If performance is not decent most of the time - the product is more or less useless in practice.


They are talking about their heavy large scale apps on a dedicated plan and need to squeeze every ounce of performance.

If you’re on a personal plan and feel like your app’s performance isn’t great then just upgrade and see how it performs then. Though i would recommend you work to optimize your Bubble app first.

Most beginners in Bubble tend to overreact here in the forums when they should be learning how to optimize their apps. I have a complex ERP for my organization running on a personal plan and have no performance issues. Any issues that once were slow I just learned how to optimize better.


You’re right for most people. I think the problem is that since they are beginners, they envision their app will grow to that point one day (and I hope that it does!). And so when investing money and a lot of time of learning and learning and then developing they want to feel confident that they’re not doing it for nothing and that one day their app will be successful and it won’t be too much work to get it performing right.

Just my two cents


I realise that - and I am also humble that I have to learn more. But you kind of want to know for sure that the problem is my knowledge rather than a limit to Bubble performance.

This is just my two cents, results may vary.

At the end of the day, it doesn’t matter how fast your product is, it matters if it’s answering a need for your client. I used to spend tons of time focused on speed, squeezing every millisecond out that I possibly could, re-working pages, going from a multi-page app to a single page app and do you know how many people were complaining about speed? 0.

I’ve wasted a lot of time focusing on making things faster when in reality, nobody thought it was slow to begin with. When I would do trainings with my clients, I would always ask how the speed was and after hearing “The speed seems fine” so many times I decided to stop worrying about it.

Before Bubble, I worked on a very old codebase that is still used by lots of state park facilities to this day, which is miles slower than my app in comparison, but we rarely had complaints about speed because at the end of the day it was a tool, and it was a tool that got the job done.

Now, I’m obviously not saying this applies to everyone and you should use the best practices you possibly can to make your app efficient, but from my point of view when it comes to Bubble and Speed, I have not had any issues or complaints in that regards and I’m going on year 3 of being live with Bubble.


It depends on what you mean by ‘complex’.

I have broken Bubble’s data handling even on expensive plans. It simply doesn’t work consistently as the OP said. And I can 100% prove it doesn’t work.

There are workarounds of course. But that is not ‘optimising’.


I most definitely agree with you and OP. It’s very clear that Bubble is being haunted by it’s bootstrapping days.

I’ve read more than enough threads by vet Bubblers like yourself to know the negative impact of what is being discussed.

Sorry if i sound accusatory. Not trying to assume anything about how your app works.

I’ve been stalking the forum daily since i was in my Bubble jammies and made those beginner boo-boos myself. Just pointing out what my experiences reading the threads by Bubble beginners.

There’s very clear division of Bubble users based on my observations. Bubblers with little to no coding background, those with and then those with loads of experience like @NigelG and OP

Depending on who you are talking to, you can get very different responses about what is “optimized”. What’s important to know is that one Bubble has it’s own layer that we have no control over but you can always optimize your Bubble apps. Sometimes with native Bubble and sometimes with workarounds.

Optimization using workarounds is just the nature of the beast for products like Bubble.


I think only a small percentage of performance complaints are valid around here. I used to do a lot of coaching and could constantly improve performance/speed by fixing obvious things.

1 Like

Our main app is a mix of bubble data and external JSON api calls and yes is complex, but even pages that are not very complex suffer from the loading performance hit that i mentioned.

I have another app that hosts landing pages for campaigns and it was taking 4-7 seconds to load, that just wasn’t going to cut it. So I have moved the landing page to Azure Razor app and it loads in under 1 second, while i keep the admin and complex app within bubble. You can try it. goto and then click the oneseed campaign on the middle right side. That landing page is bubble data being rendered from azure app instead…

but to bring this back around to the original point.
There are of course best practices on how to improve performance of your app, both perceived and actual.
I just want the bubble architecture to not be the bottleneck on complex apps and it doesn’t need to be.


I just tried to delete 50 things from the editor and it timed out :slightly_smiling_face:

you have to create a backend workflow and run it on a list.

1 Like

Even that times out at large enough numbers. What you need to do is batch up the deletes into packets of 100 or so and maintain a pointer (tend to use created date) for where you are in the list.

You can’t rely on a search working correctly, as Bubble’s “Index” to your data is deleted differently to your actual data. So if you delete 100 and then say “hey, get the next 100” thinking the 100 will be delete - it will still have some of the 100 lurking about.

So you save the “created date” of the 100th - and then use that in your recursive workflow to pass into itself and the search can start from that created date.

Still takes far far too long.

It used to be that you could copy the empty table from Live (assuming you hadn’t gone live yet) and it would work really quickly. But Bubble stopped that recently.

Alternatives are running Data API calls. Or, as I did recently, just setting up a new table and binning the old one :roll_eyes:

1 Like

I can attest to this - and why I migrated my backend away from Bubble (and now migrating frontend away as well).

Every month, I have a massive CRON job which needs to update all users. Issue is, I have users in the 6 digits, and every month, I get complains that somebody was missed out in the update somehow.

When I raise this to Bubble, somehow it’s always my fault, my logic is wrong. But ever since I migrated to Xano, I’ve not had that complain, not once. Clearly my logic is right :rofl: