Forum Academy Marketplace Showcase Pricing Features

The Ultimate Guide to Bubble Performance - the new edition is out (now 210 pages!)


I’m very happy to say that after months of work, the new revised edition of The Ultimate Guide to Bubble Performance is out! The new version has more than 50 pages of new content, including a detailed guide on how to think about database structuring - one of the most requested guides from the first book. There’s also a full section on all the steps Bubble goes through while loading a page - @philledille you’re gonna like that one :slight_smile:

For those who have already read it, this article outlines the most important changes so that you don’t have to re-read everything. That being said, I’ve made several structureal changes to the book, corrected errors and expanded sections to the point where you may actually want to read it again.

I’m incredibly thankful for the time that @josh and his team have spent answering questions about how Bubble works behind the scenes, which quite simply has made this a better book, and allowed it to explain details not currently available anywhere else. Also, the amount of feedback that I’ve received from readers has been incredible - I can rest assured any mistake I make will be caught :sweat_smile:

How to get it
Good news! If you’ve already bought the first version, the new edition is available for free. Simply re-download it from Gumroad. If you liked the book, please consider giving it a good rating on Gumroad - it really does help!

I’ve raised the price of the book slightly as there’s a lot more content now, but using this discount code will let the first 100 buyers get 25% off: bubble-forum.


thats great, thanks for making it available for free for first time purchasers, the first one was already very helpful
Do you have a dono page? :smiley:


Thanks for the kind words @TipLister

You can donate on my Buy me a Coffee page or help out by giving the book a good rating on Gumroad :slight_smile:


Nice to see you on the forums Tip!

Just bought it!!! Thank you Petter. :fire:

1 Like



Awesome news! You just reminded me I hadn’t rated it yet. Definitely 5/5. This is by far the best guide to Bubble performance there is!


Thanks for rating it @pheredia24 :slight_smile:

1 Like

Hi Petter - fantastic news, I loved the first edition! I wanted to check out the updates but wasn’t able to get the new edition. Is there a way to download the update for free if you’ve already bought the book? I tried the above link but it doesn’t recognize that I’ve already bought it and tries to charge me again.

Hi @jdubbya,

You should be able to download it as long as you’re logged in with the same account that you used to buy it. Can you check that?

If it’s not doable in that way, I’ll check how we can solve it in some other way.

1 Like

Ah! Had to go to the main Gumroad site to login, not the original link. Got it - thanks! :slight_smile:

1 Like

Awesome :slight_smile:

cool @petter , thanks donated.

Just have a question or rather scenario I want to hear your thoughts on.

Imagine you have a quiz app. Every week you create a new quiz with 10 questions and 20 students answer it. You record the answers and give points.
datatypes: quiz, questions, answers, useranswers given, users

now I would have quiz have a list of questions.
questions have a list of answers and a single right answer and a question text and a nr of points it gives if answered correctly (and a quiz they are part of.)
answers each have a text (and a root question.)
useranswers have (a quiz they are related to, a question) and an answer the user selected.
users have points.

now when I read about database best practice for coders, as far as I understood you want to minimize the amount of redundant columns (hence I put things in brackets above) e.g.
answers do not need a root question as each question has a list of answers.
Or also questions do not need a root quiz as each quiz has a list of questions
or user answers do not need a quiz or question as the answer selected relates to a question and its right answer.

However for scoring quizzes it is much easier to use “Do a search for useranswers” where quiz = x or question = y
instead of require nested searches or advanced searches. "Search for useranswers whose answers questions quiz=
Or sometimes in a repeating group for certain functionalities you also do not want to have to do a search every time but just use “useranswer’s quiz”. or “quiz’s list of questions”

However this breaks the rule of not having redundant columns.
How much does that matter?
What columns would you leave out and why?

(Assuming this is a quiz app which should also work for more than 1 class but 1000s)

How would I go about redownloading it?

Just go to the gumroad page here and click on View content (if you previously had purchased it)

Hmm, I previously purchased it but dont see a View content button

in my case I searched for the gumroad confirmation email I got when I bought the initial guide, clicked the download link, had to reconfirm my email and then was granted access to the pdf link.

1 Like

@petter, great to hear, and thanks for allowing previous buyers to get the next edition. Your work is stellar, and I’m looking forward to seeing what’s new.

I’ll do that

Update: It worked!

@TipLister keeping in mind I don’t know the exact specifics of your app, tend to favor Searches over Lists, and I actually don’t mind adding some redundant and even duplicate data to the database in order to be able to search efficiently. The number of fields is a factor on the time it takes for a search to complete, but adding short fields of structured data does not add significant loading time- I would much prefer having an extra field or two over having to set up a nested search or advanced filtering for example, which is more likely to slow everything down (especially if by advanced you mean using the :filtered:advanced)

Privacy Rules are one of the main reasons why I prefer Searches though, as I feel it gives the most control over who can see what - but that may not be an issue if these quizzes are public data.

Thanks for helping out with the download instructions also @mazorshimon and @TipLister

@eLPDev Thanks :slight_smile: look forward to hearing what you think!

I guys…i have also purchased the first copy of the book but i cancel the email after a while …there is another way to download the new version cause i don’t see the view content button thanks:)