Hi all,
This is our second monthly community update. (Here’s the first one in case you missed it).
It’s been a busy month, with a number of exciting things as well as disappointing things. Although not everything went as smoothly or moved as fast as we’d hoped, big picture, the no-code movement is continuing to snowball and we’re proud to do our part in pushing it along. It’s exciting to see Wired covering it, and we appreciated the Bubble shout-out.
Changes we made this month
We made reducing bugginess and improving our response time to bugs a priority in May. This led to several changes:
-
We made a major process overhaul to the way our engineering team works with our customer success team to address bug reports. Our new approach is that for most issues, when an engineer starts working on it, they now take over communication with the user, and their mandate is to get the user unstuck as fast as possible. Previously, the success team handled most of the communication, and the engineering team’s mandate was to work their way through the list of bugs and fix them. It’s often a lot faster to get a customer unstuck than it is to fix a bug at the root cause level: we can do things like offer a workaround, manually fix the user’s app, or make a small change that handles the short-term pain point. There are two goals here. First, by focusing on fixing the immediate need as quickly as possible, we can get through things faster and be more responsive to more customers. Second, de-coupling the job of solving our customer’s problems from the job of improving our codebase lets us do the latter more strategically, since we can pick our battles and commit the necessary time and resources to fix the most impactful issues.
-
We increased the engineering staffing on responding to incoming customer bug reports from one full-time engineer plus a couple new-hire engineers who are learning the ropes, to two-full time engineer plus new hires. This means engineering projects will move a little more slowly, but we were falling behind on the number of bugs we were getting to, so we decided it was necessary. (We currently have four engineers fully trained to handle incoming bugs, three engineers in training, and one who tackles plugin-related projects and issues).
-
We fixed a bug with our undo / redo feature that we suspect was responsible for a number of weird issues with elements mysteriously disappearing from apps. We had built a feature a couple months ago to remember the changes you could undo between editor page refreshes. The feature was supposed to remember the most recent 50 changes. But, it was actually remembering the oldest 50 changes. As a result, clicking undo after a page refresh could lead to the wrong thing being undone, which could cause all kinds of havoc. Thankfully, the feature is now working properly.
-
We’ve compiled an internal list of “known issues”: various odd, buggy, or quirky behavior about Bubble that can’t be fixed without a major project. This should help us be better about recognizing them when they lead to a bug report so we can offer a workaround more quickly. It also serves as a guide to our development efforts: we’re now tracking how many bugs come in related to each of them, so we can allocate engineering time to hunt down the worst offenders in priority order. The first one we’re tackling is the code that shows placeholders in text inputs, because that code relies on an out-of-date library and is a frequent source of bugs.
-
As mentioned in the last update, we’re currently doing a complete rebuild of our system for doing calculations on top of application data. We finished building the new engine, and have been systematically moving calculations over from the old system to the new system. This has actually led to some new bugs (such as the deleted page reappearing issue) as we’ve moved things over, but we expect that long-term the new system will be much more stable because it can’t get out of sync in the same way the old system could. We believe this will solve many of the bugs related to our version control merging code, as well as fixing a number of miscellaneous “my app somehow got in a bad state” issues that happen from time to time.
On the new development front, things were a little slow this month, but we did move a few projects forward:
-
Our video chat plugin went from a closed alpha to an open beta, and is now available for everyone to use.
-
Our new rich text editor and database change triggers are now out of beta. This involved fixing a bunch of bugs with the rich text editor in particular: we now think it’s in a much better state, although due to the tricky nature of rich text editing it’s still not 100% perfect.
-
We’ve improved the way “Ignore empty constraints” works with list search operators to be more intuitive
-
We rolled out a connection pooling layer in front of all our main cluster databases. This was a major blocker for a scalability project we’re working on that should lead to capacity having more bang for its buck. There’s still more work to do, but getting the connection pooling in place was a major milestone.
In addition to product work, we’ve pushed forward a few educational and outreach initiatives, including:
-
Our first Bubble bootcamp classes have started! Reception has been really positive, so we’re setting up more classes for June
-
We’ve started a series of new “App of the day” posts on our blog, where we feature the awesome apps you’re creating – we’re really excited to highlight the amazing work you all are doing
This month in numbers
-
Total customers who reached out to us through bug reports or support@bubble.io: 1,529 (up 6% from last 30 days)
-
Total received messages: 4,593 (down 4% from last 30 days)
-
Average response time to messages (4h 20m counting only our work hours; 12h 40m in absolute terms)
-
Total bug reports: 691 (up 34% from last month)
-
Bug fixes that we deployed: 38
Things on our minds
-
We’re still not happy with the reliability of our version control feature. We’ve made a lot of progress on the new system for doing app calculations, but there’s still a lot of work remaining, and we suspect that after we finish the project there will be a couple rounds of additional bug fixes before it is as stable as we want it to be. We know this is a really high-impact feature for a lot of users, so we want to get this up to our quality standards as soon as we can.
-
We’ve gotten more feedback recently about the Bubble editor being slow. The editor has always been a memory hog that tends to get very slow on big apps, so this is unfortunately nothing new. We aren’t 100% sure yet if things have gotten worse on our end, or if, as our userbase grows, and our long-time users’ apps get bigger, we just hear more feedback. Either way, we’re keeping an eye on it. One hypothesis is that it might be due to us simultaneously running both the new system and the old system for doing app calculations. The good news is if that’s what’s going on, it’ll get better once we finish phasing out the old system. Also, the new system should put less stress on the editor overall, because it does a lot of the work server-side instead of in the browser. Eventually, we should be able to move the issue checker onto the new system, which should be a big win for editor performance: moving the issue checker server-side would change the game a lot.
-
On a positive note, while we’ve had a couple issues this month in terms of downtime and critical bugs making it into production, it’s been a big improvement over last month.
-
In general, engineering time is a bottleneck for us right now, and there’s always tradeoffs between keeping the system stable and moving things forward. This month we’ve been focused more on stability, which I think is necessary and is paying off for our users, but we can feel the tradeoff in the amount of code we’re shipping. This situation should get better over the next couple months: we have three people currently learning the ropes (getting up to speed on all our technology takes a long time!), and three new engineering hires starting in July and August, so we’re optimistic that we’ll have a lot more bandwidth in a few months, but the interim period is tough.
What we’re currently working on
-
We’re working on an upgrade to our SSL LetsEncrypt integration. We were hoping to have it shipped by end of May, but it looks like it should go live this week.
-
Now that our database pooling project is complete, we’re making some additional changes to add more Bubble servers to the main cluster, which should unlock some user-visible performance improvements that we’re excited about.
-
Still ongoing from last update: we’re alpha-testing a feature to allow importing much larger CSVs than our current CSV import feature can handle.
-
Still ongoing from last update: we’re alpha-testing an integration with Google Optimize to make it easy for users to do A/B tests in Bubble. We’re now testing this out on our own homepage, so if you see different taglines and text, that’s our new A/B testing feature in action!
-
As mentioned above, we’re doing a complete rebuild of our system for doing calculations on top of application data.
-
Still ongoing from last update: we’re working on a project to seamlessly transfer apps between databases in our main cluster without causing disruption to the app, which is important for continuing to scale. We’ve wrapped up the majority of the planning and are moving into implementation.
-
As mentioned above, we’re doing an overhaul of the code that powers the Input element, specifically around showing placeholders for different types of inputs.
-
We have an intern working with us on an feature to allow importing Figma files into Bubble, which we’re going to start alpha-testing shortly.
-
Still ongoing from last update: we’re working on a complete redesign of our editor. This involves changing the visual appearance, moving components around, and smoothing out some of the jankier interactions. This is a huge project that’s been going on since last year and that we don’t expect to finish for a few more months. We’re currently pushing towards getting it to a (very janky, very buggy) alpha that has 80 - 90% of the new design implemented, so that we can start seeing how it feels in practice.
-
We’re also doing a redesign of our homepage; we’ve shifted from sketching the design out to moving forward with the implementation.
-
As mentioned in the last update, we’re doing a ground up overhaul of all our educational and reference content, including the reference, manual, and video tutorials. This is a big, multi-month project to get our learning resources to the next level. What we’re currently focusing on is building a 15 video crash course for new users, as a starting point for learning Bubble.
-
We’re working on a side project to build a data set of all accelerators by city and industry. We’re going to publish this as a toolbox for entrepreneurs to help no-code startups find an accelerator that’s a good fit for them.
-
We’re working with our legal team to revise our terms to lower the minimum age for using Bubble to 13 (with parental consent).
-
We’re doing some backend work on our internal analytics and business metrics, to help us have better visibility on what’s going on with the business, including an overhaul of how we calculate our recurring revenue while factoring in various complications such as credits.
-
We’re continuing to hire for our customer success and growth team.
Thanks, everyone. We look forward to seeing what you build in June!
– Josh and Emmanuel