Skip to content
Menu

Bubble performance audit

350 EUR, one day

Is it the app, or is it the platform?

Part of what makes a Bubble app slow is the app, and part of it is the floor under the app. I measure yours in a day and tell you which is which, in writing, with a number against every line.

You usually get here after one of these

03

Slow is an opinion until it is a number.

01

Someone said it is slow and you have no number

A user, an investor, your own patience on a bad connection. Slow is an opinion until it is measured, and an opinion cannot be fixed.

02

The bill goes up and nothing you built changed

Workload grows with how much the app is used, and some of that use is pages rendering for crawlers that asked for nothing.

03

You are being told to rewrite it

Possibly correct, and possibly expensive advice given without a measurement. One day of measuring costs less than finding out in month three.

What sits on what

Everything you can fix sits on top of something you cannot.

What a day of measuring finds

Searches
Repeating groups
Workflows
Plugins
Images

What it sits on

The Bubble runtime

Arrives before your first word. No setting removes it.

Each bar is work you can have done. The base is not a bar.

What a day of measuring separates

Two lists. One you can act on, one nobody can.

What the app does to itself

Fixable
  • Searches that load a whole list in order to count it, and the ones that run again on every view
  • Repeating groups that query inside the row instead of once at the top
  • Workflows that fire on every page load because nobody put a condition on them
  • Plugins loaded on every page for the one screen that uses them
  • Images served at the size they were uploaded at
  • Pages that wait for data they do not show

What nobody can move

The floor
  • The runtime. It arrives before your first word and no setting removes it
  • A public page renders by asking the database, so a crawler that asked for nothing still costs you
  • The bill follows how much the app is used, not what you built. Tuning moves the number, not what it is tied to

The second list is why this page exists. An audit that only ever finds fixable things is a sales document, and you would be right not to believe it.

The floor, measured

Measured 27 October 2026

You can take thirty seconds and check the worst of it yourself.

1,371KB

The Bubble runtime ships over a megabyte of JavaScript before the first word is read, on every public page of every app.

That number is the same on every public Bubble page there is. Nothing in your app put it there and nothing in your app can take it away. Everything the audit finds sits on top of it.

manual.bubble.io, performanceChecked 27 October 2026

Your browser console, on your own app

const kb = n =>
  Math.round(n / 1024) + ' KB';
const size = a => a.reduce(
  (t, x) =>
    t + x.encodedBodySize,
  0
);

const all = performance
  .getEntries()
  .filter(x =>
    x.encodedBodySize);
const js = all.filter(x =>
  /\.js(\?|$)/.test(x.name));
const nav = all.find(x =>
  x.entryType === 'navigation');
const ms =
  Math.round(nav.loadEventEnd);

console.table({
  total: kb(size(all)),
  javascript: kb(size(js)),
  load: ms + ' ms',
});

Open the console on your own app, paste the code below, press Enter. It takes thirty seconds and the number is yours, not mine.

If that is the only thing you ever take from this page, it was worth writing. The audit is the other forty measurements, and what to do about each one.

The whole price

350 EUR

One working day

Ask for the measurement

If it turns out the answer is to leave, the 350 comes off the 600 of the migration audit. The staircase is 350, 600, the project, and nothing on it is paid twice.

You get a document with:

  • The measurement as it is today: what loads, in what order, and how long before anything is readable
  • Every fix worth making, with what each one is worth, in order of what it returns
  • What cannot be moved at any price, with the number next to it
  • One of two verdicts, in a sentence, with the reason under it

The two endings

Fix these and stay. The app is doing things to itself and the platform is not the problem yet. You get the list, in order of what it returns.

You are already at the floor. The app is as fast as Bubble allows and the only thing left is to leave. Then we talk about the migration, and not before.

Before you order it

A day of reading

An audit is not an optimisation.

It is a day of reading and measuring, not a day of fixing. The fixes are quoted separately or done by you.

I do not touch your app. I need a link and, for the parts behind a login, a test account.

It cannot make a Bubble app as fast as code. Nothing can, and the document says so in the same words as this page.

Send me the link to your app and one sentence about what feels slow.

Ask for the measurement

Answered the same working day. If a minute of looking says the audit would not pay for itself, I will tell you that instead of selling you one.