Update June 2021 – the book is now in its second release, with several new points of information added.
How do I get the new revision
If you have already purchased the first edition of the book, this update is free. Simply re-download it from Gumroad again to get the updated version.
First revision (June 2021)
Since its original release, several new sections have been added to expand on the original book, expanding it from 156 pages to 209. The purpose of this article is for readers who have already bought and read the book to see what’s new, and be able to skip directly to the updated sections if you want. It’s also to provide a transparent documentation of corrected errors, new methods and feedback from both readers and Bubble’s development team.
I’m especially thankful in this revision that I’ve been fortunate enough to borrow the valuable time of several Bubble key employees, including its founders, who have patiently answered questions, corrected errors and misinterpretations as well as offering a wealth of information about how Bubble works. This has made it possible not only to verify key points in the book, but also that the book offers information not available anywhere else.
The revision has also corrected some mistakes present in the first version (thank you to all the readers who have brought that to my attention!).
Yes, there’s a new cover! Let’s be honest – the first one was pretty ugly. Let’s call it an MVP.
The table of contents has been moved to the front of it to make navigation more efficient.
Several places in the book we discuss specific topics where we have accompanying articles on this website. We’ve set up callout boxes in the book in spots where you can learn more by visiting an article here.
Section updates: Knowing the platform
This section has been extended with a lot of new and more in-depth information about how Bubble processes stuff on their side:
- An entire new section on the underlying technology of Bubble’s database and how and when it indexes certain data types to speed up queries
- The part on Structured and Unstructured data has been moved to this section
- New section: The general sequence of events and priorities as Bubble loads a page
- New section: The priority of general events such as Page is loaded, Current User logged out etc.
- New section: What the criteria are for the Page is loaded (entire) to return true
- New section: How your browser renders the page and how you can measure different parts of it using Chrome Dev Tools
- New section: The part on using Chrome’s Network tab (briefly mentioned) in the first edition has now been extended to show how to identify things like plugins, fonts and icon sets and how much they contribute to your page’s total download size.
- New section: How Bubble prioritizes different actions in the same workflow.
- How regular workflows, custom events and back-end workflows differ in how they are sequenced.
- How Bubble queues server-side actions to avoid discrepancies when several on-page actions have already been executed
Client-side vs server-side operators
A new table outlining how operators like merged, grouped, intersect are applied on the server vs on the client. It also corrects an error from the first book that states that :filtered operators are always applied client-side. The :filtered operator is actually more intelligent than that, and will try to send every constraint that you add as a single query performed on the server, but in certain scenarios, it will be forced to run that client-side.
Section updates: Building for performance
Structuring your database
The most requested content from readers was more details on how to actually structure your database. This new chapter introduces the complete process that we use for thinking about your database from the idea stage to the actual structure and introduces several new terms that help you think about and discuss your database.
The scenarios in the previous book also contained an error in the illustration, showing the same database table twice, to the confusion of many readers. The scenario has been completely re-written to fit better with the above-mentioned database structure section, so this error is no longer there.
Two updates have been made to the section about Option Sets:
- The original edition described CloudFlare as Cloudfront, getting the two brands mixed up. This has been corrected
- The fact that Option Sets are a cache-able asset has been added.
- It’s also been confirmed that Option Sets are loaded in their entirety, no matter their use on a page and been made clearer that filtering of Option Sets happens purely client-side.