In the universe of No-code application development, Bubble.io quickly established itself as the reference platform. If you are still unfamiliar with Bubble, I invite you to consult our overview article:
→ Bubble.io: The creation of No-code applications in 2025
In this article, we are going to explore 7 techniques for optimizing performance of your Bubble.io applications, based on our years of experience and the best practices recommended by top experts of the subject.
Although much more accessible than traditional programming, creating applications or modules with Bubble comes with a major challenge: performance.
Your role as a developer (Bubble or not) is to offer your users a smooth and functional application and to avoid as much as possible the points of friction that could affect customer retention.
A slow application is the assurance of a project that goes straight into a wall.
A few figures to understand the impact that performances have on your users:
🔥 The word of the expert : As explained by Petter Amlie, Bubble expert and author of The Ultimate Guide to Bubble Performance : “Performance is a war of a thousand battles” - performance optimization is the cumulative sum of many small improvements and not a single magic bullet.
Now let's see how win these battles - one by one.
The database is one of the main limiting factors of Bubble application performances. Here's how to optimize it:
Create types of ”satellite data“ to separate information that is frequently sought from information that is rarely used:
💡 Practical tip : For a blog, separate your articles into two types of data: a lightweight “ArticlePreview” type (title, main image, date, and author) and a heavier “ArticleContent” type containing the complete content. Your page or tables will load much faster!
Each level of nesting (a piece of data that contains a list of data that itself contains data...) multiplies the number of requests needed.
Limit yourself to 2-3 levels maximum.
Les Option Sets in Bubble.io are predefined sets of values. The advantage is that they are automatically loaded with your application code and do not require additional queries. Use them to:
Repeating Groups (and Tables) are essential but can quickly become bottlenecks for your performances. Besides, they are the No. 1 cause of endless loading times on poorly configured Apps.
Show only what the user needs immediately :
💡 Practical tip : A Repeating Group containing 50 cells with 10 elements each generates a total of 500 elements in the DOM. Reduce this number to 10 cells and you'll only manage 100 items, dramatically improving rendering performance.
When your application or tables load, each item in a Repeating Group (or Table) cell is multiplied by the total number of cells. Simplify the content of each cell as much as possible.
This point joins the nested structures explained in the database. A search in each cell in a Repeating Group multiplies the number of queries:
⚠️ Lookout : Repeating Group/Tables present a trap for beginning Bubble developers. In the development phase with little data, everything seems fast, but in production with hundreds of records, your application may become unusable.
As mentioned earlier, 53% of users leave a site/an App that puts more than 3 seconds to be charged. In this context, a page that loads quickly is not a necessity, it is an obligation.
Contrary to popular belief, a “One Page” application is not always the best approach. It all depends, of course, on the type of application you are looking to create.
✅ Solution : Use the tab Chrome DevTools Network (Ctrl+Shift+J) to identify the largest resources in your application. By simply optimizing the 3-5 largest files, you can often reduce load time by 30-40%.
Don't load everything up front:
Bubble offers the possibility of processing data server side or client side. Find the good balance is crucial:
💡 Optimization tip : For frequent searches on limited data sets, consider using client-side filtering. If your list contains 50 items, filtering on the client side will be instant, while a new server request will take several hundred milliseconds.
Bubble applies the visual changes immediately on the client side before the server finishes processing. Use this feature to create the impression of responsiveness :
→ 1 - Server side : Database modification, start the update process in the background.
→ 2 - On the client side : Visual aspect, so make the button be activated visually with the use of Custom States
✅ Practical example : Let's say the user wants to create a new entry in the database. When he clicks on the button to create, we will separate the workflow into 2 steps. We start by displaying the visual effect on the button (client side) and then we create the entry in the database (server side).
Workflows are the motor of your application. Making them effective is essential:
✅ Solution : Create an invisible reusable element called “actions” that contains all of your frequently used custom events. Place this element on each page for easy access to these workflows throughout your application.
✅ Solution : Set up progress bars, informative messages, and play with the interface to make processes smooth for your users.
For the heavy operations that don't need to be immediate:
⚠️ Important : Since the end of 2023 and the introduction of the Workload (WU) metric by Bubble, “Schedule API Workflow on a list” is generally more efficient than recursive workflows for bulk operations, as it consumes fewer WUs and runs in parallel.
You can't improve what you don't measure:
Chrome DevTools offers several essential features:
💡 Practical tip : For accurate analysis, always test your performance in private browsing or after emptying the cache, using Chrome's “Empty Cache and Hard Reload” option. This mimics the experience of a new user visiting your application for the first time.
Performance varies considerably between devices:
Focus on metrics that really impact the user experience:
Optimizing performance is important, but it should not become a Paralyzing obsession :
✅ Recommended approach : Treat performance optimization as a feature in your backlog. It is better to launch a functional application to quickly test your product and adapt afterwards, rather than spending months on its application and waiting for everything to be perfect.
Optimize performance of a Bubble.io application is not a one-time task but an ongoing process. Every design decision, data structure, and workflow contributes to The global experience.
By applying these 7 essential techniques As best as you can, you're sure to improve performance global aspects of your application.
💙 The final word : Remember that the goal is not to create the fastest application in the world, but an application that is powerful enough for your users to never even have to think about it...