Tool Guides
Audit
Paused. The Audit tool is not currently available while we rework it, and it is listed as coming soon in the portal. This page is kept for reference and is not linked from the docs index. Everything below describes how it worked and how it will work when it returns.
The Audit tool scans a Bubble export for the patterns that quietly make apps slow.
Unlike the other tools, it is not a viewer. You upload once, then run specific checks against the file.
What to upload
A full Bubble application export. The parser needs pages or element_definitions; without either you get "Invalid Bubble JSON format. Expected pages or element_definitions."
See get your app export out of Bubble.
The file is parsed once and cached, so running a second check does not require re-uploading.
The checks
Locate advanced filters
Bubble's :filtered operator with an advanced expression runs in the browser, after the data has already been downloaded. A Do a search for with an advanced filter therefore pulls every matching row to the client and then throws most of them away. On a large table that is the single most expensive thing an app can do.
The check does a deep scan for advanced filter constraints anywhere in the export, including inside nested expression chains, and reports where each one lives.
Reading a finding: a search whose type is a server-side database query is fine; the cost is in the client-side filter attached to it. The fix is usually to move the condition into the search constraints so the database does the work.
Nested repeating-group searches
A search inside a repeating group's cell runs once per cell. Twenty cells, twenty searches. Nest a second repeating group inside and it multiplies.
The check finds searches evaluated inside repeating-group cells and reports the nesting.
Reading the results
Findings are scored by severity and can be grouped by the page or reusable they live in (By Container) or by the data type they touch (By Data Type), which is usually the faster way to spot a systemic problem rather than twenty individual ones.
When a check turns up a repeating pattern, the left drawer also grows an Insights section. It rolls the raw findings up into a handful of patterns, worst first, each with a one-line recommendation: "12 RepeatingGroup data_source filters" instead of twelve separate rows. Read it before working through the findings one at a time, because it groups the ones that share a cause and therefore share a fix.
"No findings for this action in the uploaded file." is good news, not an error.
What it does not do
This is not a full performance profiler and it does not check privacy rules. It finds two specific, high-cost, easy-to-miss patterns. Treat a clean result as "these two problems are absent", not "this app is fast".