Originally sent to the bubbleio.wtf newsletter. Sign up to get the next issue.
The origins
My friend Alex once lifted the veil and told me how the Bubble plugin numbers are wildly inflated. I was immediately nerd-sniped. How could I count how many plugins were actually bought?
The answer led me to learn Elixir, queuing systems, reverse-engineering the Bubble.json, and build a scanner of Bubble apps.
I still don’t know the answer to the original question, but I’ve got more interesting questions now.
The scanner
The scanner reads Bubble apps from the outside: no login, no editor access, just the public bundle. Run that for a year and you end up with something I did not set out to build — a view of Bubble’s own customer base.
As of today, across the 20,656 Bubble apps it tracks:
| Plan | Apps |
|---|---|
| Free | 10,502 |
| Paid | 8,983 |
| Dedicated server | 486 |
| Marketplace template | 376 |
| Not yet classified | 309 |
| Total | 20,656 |
Each label comes from what Bubble answers when the scanner visits the app:
- Paid: the live version loads. Bubble only serves a live version on a paid plan.
- Free: the live version redirects to Bubble’s “live not supported” page, but the test version loads.
- Dedicated server: the live version redirects to its own
d123.bubble.is-style server. - Marketplace template: the app is listed in Bubble’s template marketplace.
- Not yet classified: I haven’t figured out how to classify these yet. Maybe agency apps?
A label is only as fresh as the app’s last scan, so an app that downgraded since then still shows its old plan.
Estimating Bubble’s revenue
From the limited data I’ve got, I can’t yet see how AI has impacted Bubble’s business.
How much is that worth? Here is a back-of-the-envelope estimate. Every number below rests on my assumptions.
The estimate uses fewer apps than the table above because it counts only the 8,274 paid apps whose live version answered on the latest scan, plus 74 dedicated servers that host 396 apps between them.
If 90% of those paid apps are on Starter and the rest split between Growth and Team, Bubble’s public list prices put each one between $40.70 and $61.75 a month. The low end assumes everyone pays annually, the high end monthly. I also assume a dedicated server costs $5,000 a month, plus $300 a month for each app it hosts; Bubble does not publish either price.
That makes the apps I can see worth between $826k and $1.0M a month in base subscriptions, or $9.9M to $12.0M a year.
The scanner does not see every Bubble app, and I do not know what share it sees. If it sees only part of the paying apps, the total scales up:
| If the scanner sees… | Annual run-rate |
|---|---|
| every paying app | $9.9M – $12.0M |
| half of them | $19.8M – $24.0M |
| a quarter of them | $39.6M – $48.0M |
This counts base plans only. Workload overages, mobile plans, add-ons and plugin sales come on top, and none of them is visible from outside.
WiP: Bubble to Code migration
I’ve been toying with the idea of taking a bubble.json export and creating a whole app from it. It kind of works, but the problem is that so much of what we build on Bubble is to get around the design decisions of Bubble. That is not technically solid ground to work from. Nonetheless, you can give it a stab in the migration tool Bubble to Elixir.
Tools and tips
- Leaked-key check — read-only, names the provider and where in the app the key sits.
- Simple Rick has been keeping the Noodl dream alive and he has an open-source Bubble to Noodl exporter. Ah, yeah, and Noodl can look like Star Wars now.
- You should give your agents feedback via screen-recording. Cleanshot X + Paste is my go-to combo.
— Rico