Forum Academy Marketplace Showcase Pricing Features

BUBBLE Editor is too slow. Is it because of the specs of my computer?

Can you talk more about this idea

@toby2 any specfic reason why you’ve went to brave for testing?

@jared.gibb For sure, it depends on app setup but for an example case i have a very large heavy feature CRM app with a drag and drop proposal builder as one of the features. To keep load speeds high we split the data to ensure as little data is being loaded as needed.

The data looks like this:

Data type : Draft Proposals
Fields: Name, description, user(obj)

Data Type: Draft Proposal Content
Fields: user(obj), linked proposal(obj), HTML, JSON

Data type : Sent Proposals
Fields: Name, description, user(obj)

Data Type: Sent Proposal Content
Fields: user(obj), linked proposal(obj), HTML, JSON

Data type : Sent Proposal signers
Fields: Name, email, phone, linked sent proposal(obj), trackID, user(obj), viewed time (list of dates)

Data type : Finalized Proposals
Fields: Name, description, user(obj), finalized date

Data Type: Finalized Proposal Content
Fields: user(obj), linked proposal(obj), HTML, JSON

Data Type: Finalized Proposal Signers
Fields: Name, email, phone, linked finalized proposal(obj), user(obj), signed time (list of dates)

Data Type: All Proposals
Fields: Finalized, proposal signers(obj), Finalized Proposal Content(obj), Finalized Proposals (obj), Sent Proposal signers (obj), Sent Proposal Content (obj), Sent Proposals (obj), draft proposals (obj), Draft Proposal Content (obj), user(obj)

It’s broken up like this to ensure load speed at scale so unused large data objects aren’t being loaded unless actually needed. Honestly, it’s quite obnoxious to build like this but it helps load speed a ton.

How is this structured?
In our single page app our page that displays the list of proposals it uses a do search for draft proposals ONLY when proposal selected status is draft. If filter is sent it will search sent, and finalized will search for finalized. Once a proposal goes to the next status it’s removed from the prior so searches stay small and light weight.

When navigating to the view or edit page it will load the “Draft/sent/finalized proposal content” as well but our initial dash page doesn’t need to load it because as you can imagine loading 10k records with a large amount of HTML/JSON can be a heavy load thus making the search time incredibly slow and now scaleable. Same concept with signers.

In the case we need more flexibility or the user intends to search ALL (not default) we use the satellite field “all proposals” this is usually unlikely but there if it’s needed but it’ll definitely be a heavy load.

This helps with save display speeds too, if your list of proposals to the users only saves a few light weight text items it’ll be near instant even if saving some 10+ items with workflow api for any reason.

If it wasn’t done like this rather if your data was structured as something like below -

Data Type: Proposal
Fields: Name, description, user(obj), finalized date, HTML, JSON, Signer Name, Signer email, signer phone, signed time, views, Status (option set).

Or any variation of the above you’re expecting bubble to load pretty heavy data even if just displaying a simple list of proposals name in a repeating group you as it needs to load the full record including the heavy content like HTML/JSON and you’ll hold per say 10k items in this DB type rather than just a fraction when splitting up the data to be more light weight and loading required data dependent on use case like the first data structure.

Hi Matt and @chris.williamson1996

I have come to the same point that each of you have in the past with the preview page and editor loading (more than) extremely slow - with a new 32g Macbook. I will attempt to follow your suggestions to strip down the feature sets into reusable elements in order to spread out the elements and workflows.

In an attempt to not go down the wrong path, would either of you mind sharing a short video highlighting some of the do’s and don’t when taking this approach (e.g. estimate of how many elements and/or workflows/actions in a reusable, passing data, setting up the pages, etc.) or be able to point to any other existing videos?


I put as many elements as I need for the feature set to work. I add as many workflows as needed for the features to work.

I pass data through URL parameters.

I use custom workflows on reusable elements so that from the page the reusable element is placed on I can trigger the custom workflow on the reusable element to get more ‘communication’ between page and element.

If you are interested in some one-on-one training to get up to speed with some of the more advanced methods, feel free to book a session.

Learn More

Boston85719 is an expert Bubbler with a decade experience as an educator. Real name Matthew, he has been actively building SaaS apps, marketplace apps, scheduling apps and more for clients, himself and for sale as templates.

As an official Bubble Bootcamp Instructor, he leads Bubble Bootcamps on a regular basis.

Always willing to offer advice via the Bubble Forum, Matthew also offers Private Personal and Group Training Sessions.

Through his site, NoCodeTrainer, Matthew provides a range of tutorials with editor access to help you jumpstart your Bubble development.

Always accessible you can send Matthew a private message via the forum or send an email directly with your requests.

Be sure to checkout the Stripe Integration Course when you are ready to integrate Stripe payments to start monetizing your application via product sales or subscriptions.

Stripe Integration Course

You bet. Makes sense. Thanks, Matt.

Any idea why this happens?

I am trying to work on an app and can’t get a single thing to work. Can’t navigate, can’t select and group elements, just nothing is working. Looked at the activity monitor and see all these Google Chrome Helper and Renderers.

Is this Bubble or something else?

This is bubble. Close the main chrome app
And things will get faster.