Serious question about advanced search performance & more

Hello guys!
I’m building an app with two main features: matching users together and matching users and “places” together. I give you a screenshot below, it’s always nicer:

I’ve been trying to optimize the performance of the app for the 2 last day, which was successful thanks to the posts of @josh and @petter

My app is actually pretty slow on loading, because of the number of visual elements and it’s ok I prefer to keep a nice UI with animations, … and slow loading time.

But necessarily my app does a lot of research with those “matchers” and I’m afraid the app to be overwhelmed fast …

What I’ve done:

  • Set strict privacy settings to reduce the amount of data collected
  • Removing Parent’Child values in search

So I was wondering:

  • Is it possible to make the research by an external provider to alleviate Bubble (like a database hoster who offer advanced searching)
  • Do you see any other performance solution that I didn’t think about?

I’m also looking for:

  • How do “sort by” operate when there are multiple sorting values, first sorting, then second, … ?

  • A way to add sorting by “dropdown values”:intersect"user values" and sort by the more similar values.

This is an example of the user matcher, so you can see the number of filters used:

Thank you!

:up: :up:

You can focus on reducing the Advanced filter (and :filtered) .
Exemple: instead of having a field in current user for dislike, change the “direction” of the field and maybe user unique ID instead. (this avoid loading ref data)
Create a list of “text” field in user called “disliked by”
When a user dislike, you “Add” to list of the user disliked “Current user unique ID” (you can also use Current user instead if you prefer)
In your search User, you will be able to set Disliked doesn’t containt Current user unique ID (or current user) instead. This will reduce the search data size returned.
When you user :filtered, the filter are applied after the search. So it may that if you have 100 items and the filter reduce 20 items. you will load 100 items on the page! But if you can apply the filter directly in the search, your will only load 20 items.

For the graphic element, you can avoid loading everything on initial load and wait for some stuff to load later. For example, if the small list on bottom is a RG, you can make it invisble on page load and add a condition to show it only when page load entire is yes. this is not really faster, but for the user it seem to load faster :stuck_out_tongue_winking_eye:


@Jici Thank you for the :filtered tip! I didn’t know this!
Will implement soon!
But for big databases isn’t better to make the search on browser-side to avoid the server to crash/timeout?

1 Like

You ahve more chance that your app timeout if you get too much data to load. If you set filter, you are loading less data. For the server, it doesn’t make a big difference to manage 1 filter or 10.

@Jici Alright thank you for these clear explanations!

1 Like

This topic was automatically closed after 70 days. New replies are no longer allowed.