Hi all,
This is our June community update! Read last month’s update here.
This month, we made rapid progress against two releases we are very excited about: the upcoming table element, and the overhauled expression composer. Although it will still be a month or two before they’re ready for widespread release, we have working code for both. We also shipped a number of smaller features and improvements detailed below. Finally, we’ve continued work on improvements to our tools for visualizing workload usage (expecting to ship them next month), and we’ve been working directly with customers on our new workload-based plans to make sure they have a smooth experience with the transition. The new Starter plan is now our second-most popular plan, following only the legacy Personal plan.
Over the course of May, we welcomed five new teammates:
- Chris and Donny, joining us as experienced engineers
- Utsav, joining our marketing team working on paid acquisition
- Bennet and Calypso, joining our success team
If you’d like to join us, check out our careers page here. As always, we highly encourage community members with solid Bubble skills and a love for helping people to join us as Technical Product Support Specialists.
Changes we made this month
As regular Bubble users have probably noticed, we completely overhauled bubble.io/home to make it better organized and easier to use! We hope you enjoy it. As a side note, almost everything on bubble.io (with the notable exception of the application and plugin editors) is written in Bubble, not code, which has allowed us to make extremely rapid changes to our homepage over the last few months.
An important behind-the-scenes product update is that the new design canvas, announced as an experimental feature in March, has now been released to everyone. This reflects a significant modernization of a big chunk of our editor’s technology and should enable better performance, less memory usage, and faster development of new features going forward. The release was not perfect — it introduced a few new bugs, which we’re continuing to hunt down and fix — but it puts us on a much better foundation moving forward, and as we finish fixing the new bugs, we expect the editor to be more stable post-release than it was pre-release.
For plugin developers writing server-side actions, we’ve launched a public alpha for v4 of our API. This API upgrade goes from Node 14 to Node 16. It will be mandatory for all plugins later this year because we’re unable to continue to support Node 14 on Amazon Web Services.
We released two small improvements to editor usability:
- We’ve added a customizable editor placeholder for dynamic text and images to allow you to add dummy content to make it easier to visualize how things will look when you run your app.
- We’ve made some improvements to how you interact with the elements tree, including more helpful hover effects.
Finally, we’ve made some tweaks to our onboarding flow to benefit new Bubblers trying to build an app for the first time.
This month in numbers
- Tier 1 (FAQs, account and billing issues) handled tickets: 6,095 (up from 5,876)
- Tier 2 (app development questions and bug reports): handled tickets 2,773 (down from 2,889)
- Average tier 1 reply time: 33 minutes (up from 30 minutes)
- Average tier 2 reply time: 1 hour and 36 minutes (down from 2 hours and 9 minutes)
- Tickets closed by the engineering team: 121 (down from 146)
- Average days to closure by engineering for high priority tickets: 5.4 (up from 2.9)
- Average days to closure by engineering for all tickets: 5.9 (down from 7.3)
- Incidents and regressions: 9 (down from 14)
- Of those, the number that are high-severity (greater than 20 bug reports): 0 (down from 3)
Things on our minds
Our platform infrastructure reliability has dipped over the past month; there’s been a number of micro-outages and transient performance degradations recently. These often show up as spikes in the “Externally Measured Latency” graph on our status page. Sometimes they show up as incidents on the status page if they are severe enough to set off our alerting, or prolonged enough that an engineer has time to investigate and put a notification up. They can also cause users to see a spike in their app’s own capacity usage charts or get capacity warning emails; this happens because issues that cause all database operations to run slowly register as that app doing a lot of expensive operations. We’re exploring how to better separate platform-wide issues from app-specific capacity problems, since we know it’s confusing to see a capacity spike when the issue is with Bubble, not with your app. We are also making progress on addressing the root cause of the issues: We’ve had a number of recent problems with expensive database queries and scheduler usage impacting the underlying database systems in ways that become visible to other applications sharing the same database. We’re making adjustments to our code that helps isolate issues from spreading like this, as well as making our systems scale more gracefully with extreme usage patterns, and we expect to see meaningful improvements over the next week.
We’ve also been working with the community on a number of issues and concerns related to editor performance and reliability. Regular readers of this forum will have noticed an uptick in reports of problems using the editor.
After going through all the bug reports we’ve received, forum posts, and conversations with some of the affected users, we think there are a couple things going on here:
- Long-standing memory usage issues with both the editor and the issue checker, as well as some recent memory leak regressions. Bubble’s editor has always been a memory hog, and as app sizes grow (especially single-page applications), we find that slow-downs and crashes become increasingly common. Some recent code changes over the last couple months have introduced new memory-usage regressions, some of which we have already fixed and some of which we are still investigating.
- Increased rate of change in recent months, leading to more new bugs. We have touched the editor code a lot more in the first five months of 2023 than we did in all of 2022. That is generally a positive, but each time we change things, we risk introducing new problems, and so it makes sense that the community is collectively noticing that things are breaking more frequently as we build more improvements.
- An ongoing issue around elements being created with duplicate IDs, which does bad things to our editor and can cause a wide variety of symptoms. We had previously stamped out all possible causes of duplicate IDs being created, but over the last month or two, we’ve seen a return of those bugs.
Over the course of May, we’ve fixed a number of editor bugs, including issues with un-clickable checkboxes, problems with our new reorganized drop-downs, a high-impact regression with the issue checker detecting deleted search boxes, as well as a number of miscellaneous problems.
Here is what we are currently working on to improve editor stability:
- We are following up on reports of editor memory usage to track down and eliminate any new regressions we have introduced
- Improving the overall memory usage of the editor is a journey, not a quick hit, but we’re making steady progress modernizing the editor’s technology and improving memory consumption. The design canvas update mentioned above is one important step in that direction. On top of that, we have another improvement in the works that should have a big impact on the memory usage of large single-page applications. We are currently testing it with specific users who have written in to us; feedback on it has been positive, and we plan to release it to everyone once we are confident it is a net stability improvement. As always, if your app is experiencing extreme slowness or crashes, try disabling the issue checker by appending &issues_off=true to the editor url.
- To prevent new memory issues going forward, we are investigating automated memory-usage testing to catch issues before they start impacting users.
- We are working on fixing the duplicate ID issues mentioned above.
- We are almost done building tooling that will help us do a better job of tying new console errors to the deploy that introduced them. Currently, new errors we introduce sometimes get lost in the noise, especially if they only occur under relatively infrequent circumstances, which can lead to a gradual degradation of editor quality over time. The new tooling will automatically flag new bugs to the team whose code introduced them, which we think will help prevent further degradation while still allowing us to rapidly improve Bubble.
As we work through these issues, we really appreciate your patience. The best way to let us know when you encounter a problem is by filling out our bug report form. Even if you (or we) aren’t able to consistently reproduce the problem, we can analyze the pattern of reports to isolate issues over time. We very much appreciate the help!
What we’re currently working on
- Building a table element (similar to a repeating group but can customize each column and header): We have finished the initial build and are doing quality assurance.
- Overhauling the dynamic expression composer to support mid-expression inserting, parentheses, etc.: We have finished the initial build and are doing a private alpha to get feedback. Even if the feedback is positive, we do have more work to do before we can fully release it, because we have not yet integrated it with text fields, which is an important and tricky use-case.
- Adding properties to reusable elements, to make them much easier to customize and bring them closer to native elements in terms of capabilities.
- Single Sign-On (SSO) for larger organizations on Custom plans who want to let their team log in to the Bubble editor using their own identity provider.
- Continuing to work on overhauling our infrastructure, with the goals of enabling SOC2 certification and improving page load performance.
- Improving our workload charts, including deeper drill-downs (specific actions inside a workflow, data requests, and workflow + data APIs), and by-the-minute data. We are aiming to release this by the end of the quarter, although some improvements may slip into July.
- Moving off CoffeeScript and onto Typescript. We are now down to 1.1% CoffeeScript in our main codebase. Typescript is now up to 19.0%, with the remainder being Javascript.
Thank you all for your support, and wishing you a great June,
Josh and Emmanuel