Hi all,
This is our latest monthly community update. You can read the prior update here: Monthly Community Update - August 2020
My current feeling about how things are going can be summed up by a catchphrase from a prior job: “building the airplane while flying it”. This has been amazing couple of months for the no-code movement as it continues to become more and more mainstream, and we’re feeling it as a team in terms of the number of new users joining us, existing users continuing to grow their apps, and the overall pace of activity. To put some numbers on it, the total number of people who’ve contacted our team to ask for help or report a bug is up 25% this month, on top of 8% growth last month. We crossed the milestone of 500,000 user accounts on the 20th. So we’re trying to maintain a high quality of service for our current users, while simultaneously building the organization that we’ll need to have in place six months from now to support an exponentially growing movement.
This kind of growth leads to a virtuous cycle: as we get more users and paying customers, we can budget to hire more aggressively. As the world catches on to how exciting no-code is, it becomes easier to attract world-class talent to join us. By growing the team, we can raise the bar on our operational quality, which in turn makes it increasingly true that no-code development is a better choice than writing custom software for a wider and wider set of use cases. That leads to more interest in Bubble, and the cycle continues.
We’ve been through a couple of iterations of this cycle already: we’ve gone from about ten people at the beginning of 2019 to almost thirty today. The hard part of the cycle is the lead times: it takes a long time to find great people, interview them, bring them on board, train them, and evolve our processes and structure to accommodate a bigger team. Right now we’re in the investment phase: we’ve been doing a ton of hiring and interviewing, and as a result, everyone on the team is stretched extremely thin. We’re doing our regular jobs under increasing demands, as well as recruiting and training the next generation of our teammates.
On some fronts, I’m proud to say we’re living up to the challenge. During the same time period that users contacting us went up 25%, our average response time to inquiries went down 25%: kudos to the hard work by our Success team! This has also been a good month for shipping new user-facing features, as you’ll see in the “Changes we made this month” section below.
On other fronts, we’re treading water. This month had a number of outages (including one earlier today), as well as several code deploys we needed to roll back or hotfix. Our turn-around time on harder bugs that required deep investigation by the engineering team also degraded.
Overall, I’m extremely optimistic about Bubble, the no-code movement, and the long-term prospects for our community, but we definitely have our work cut out for us. We’re retrofitting the Bubble airplane with new internal processes, new team structures, new technology, and new people, while continuing to try to improve the product and ensure that the platform is stable enough that users building on top of us can be successful. Here’s the update:
Changes we made this month
In terms of user-facing features:
-
We had another team hackathon day where we shipped a bunch of smaller features and UX improvements
-
We rolled out native support for complete customization of how the current page thing appears in URLs via our new slug feature
-
We moved our Google Optimize (A / B testing) plugin into open beta
-
We added a new “contains” database search constraint to allow exact-match searching (and renamed the old “contains” operator to “contains keyword(s)”).
-
We added the ability to export and import translations from the Languages tab, which is useful for bulk editing work or sending them to an external translator.
-
We finished our overhaul of the code that powers our inputs to make it more robust (especially on Android, but making it less bug-prone in general).
In addition, we updated our blog’s design to match the changes we made to our homepage last month, and continued to feature the amazing things you all are building with us via 17 new “App of the Day” posts. We also kicked off a new series, “Movers & Makers”, highlighting the diversity of stories in our community.
On the legal front, we responded to the recent Schrems II decision by implementing the Standard Contractual Clauses as part of our DPA, which is relevant for any user worried about their continued GDPR compliance.
Earlier this evening, we made the switchover from our old Success platform (Helpscout) to our new one (Front)! We’re excited by the workflow and productivity improvements it offers, and hope to see an impact on our response times.
Finally, on the team front, we’ve mostly finished the internal analytics work mentioned in the last update, and we’re excited to have welcomed two new people on our Growth team, Kim and Michael.
This month in numbers
-
Total customers who reached out to us through bug reports or support@bubble.io: 2,014 (up 25% from last 30 days)
-
Total received messages: 3,293 (up 19% from last 30 days)
-
Average response time to messages (4h 19m counting only our work hours; 10h 4m in absolute terms)
-
Total bug reports: 603 (down 1% from last month)
-
Time to resolve bug reports escalated to the engineering team: for bugs resolved in the last 4 weeks, it took on average 6.4 days for engineers to investigate and deploy a fix or find a workaround for the customer.
Things on our minds
Reliability continues to be a big challenge. We’re still receiving lots of bug reports about our version control feature, which we’re still working on improving. We’ve also been chasing down a smattering of hard-to-reproduce bugs that lead to occasional page load or workflow failures: these are affecting a minority of our apps, but take up a disproportionate amount of our mindshare, because for the users they affect, they undermine confidence in our platform, and because they tend to be nightmares to debug (if we can’t reproduce the problem ourselves, we often have to go through multiple iterations of deploying increasingly-refined logging and then waiting for the issue to recur).
We’ve also had some infrastructure failures, mostly attributable to increasing load on our systems as well as our team being reactive rather than proactive about dealing with it, due to our limited bandwidth. The outage today was an illustrative example:
-
The actual bug that caused the database crash dates back to at least 2017. It was a safety catch on a periodic backend cleanup process that was supposed to ensure that if the process fell behind, we wouldn’t keep re-scheduling it on top of itself. The safety was broken, meaning that if it took longer to run the process than the scheduling window, we would run multiple instances of it.
-
This went undetected for three years because under normal circumstances, this cleanup process is very fast. But as load increases on the database, it can take longer to run under certain conditions, leading a compounding effect where we’re running more and more copies of it until it eats up all the memory in the database and crashes. We’re working on a project to spread out load by scaling the database out horizontally, but the project is behind schedule.
-
This process has caused at least one prior outage over the last month. After the previous outage, we did a shallow diagnosis of the problem and found some inefficiencies in the cleanup process that we thought were responsible, but missed the broken safety catch.
As a result, we had several minutes of downtime today, which is a disappointing outcome, especially because with more time and dedicated resources, it’s likely we could have prevented this. At least now we’ve fixed the safety catch, and we’re looking into other ways of lightening the load on this database in the short term while we finish the project that’s meant to be the longer-term solution.
Our sense is on the reliability front, we’re holding the line: I don’t think this month was notably worse than last month for the average Bubble user. That said, our goal is an upwards trajectory here. My sense is that we’ll achieve this through a combination of smart investments (see below for the update on multiple release tiers), and ultimately, scaling the team so that we’re staffed to do deep bug investigations, extensive testing, and thorough postmortems across our very large infrastructure and product surface area.
Speaking of scaling the team, another thing on our minds is building a diverse, inclusive culture as we grow. A big part of our mission is making sure that tech is accessible to everyone, not just the traditional big tech enclaves. We want to reflect that in the team we create, both in terms of hiring people from a wide range of backgrounds, and in terms of building a set of cultural norms that are inclusive and respectful. At approximately thirty people, we’re at a place where the decisions we make right now will set our direction on this for the long-haul, so we’re investing time with the team to figure out the habits and practices that are going to ensure we live up to this vision as we grow.
In addition to working on this internally, we’re also working on helping pursue this externally, by launching a founder diversity and inclusion initiative to further our mission of expanding the set of people who can participate in the technology industry.
What we’re currently working on
New initiatives since the last update:
-
We’re working on a better backend and student portal for our popular bootcamp program to improve the student experience and help scale the program up
-
We’re developing standards for sponsoring hackathons and helping the organizers get their participants using Bubble, since Bubble is often a great fit for hackathons and we get frequent inquiries from hackathon organizers
-
We’ve been assessing the feasibility of offering a premium support plan that includes guaranteed response times to inquiries during team office hours, training sessions with the team, and a dedicated account manager, to see if it would be viable to run such a program at our current scale and if it would be valuable to users scaling their businesses on us.
-
Following up on our first Bubble crash course video series, we’re working on building a second crash course that goes a level deeper.
Updates on our ongoing initiatives:
-
Moving apps between different databases: the engineer working on that project left the company, so no progress on this since our last update. We plan to pick it back up again once another project finishes and we can re-allocate people’s time.
-
Moving more of our asset-building onto our new system (to fix many of the problems with version control and to move the issue checker from the browser to the server): no substantial progress on this project, either. I was leading the engineering on it myself, but it was becoming increasingly impossible for me to make progress while simultaneously leading our engineering hiring and managing the team, so I’m in the process of transitioning it to another engineer. I think this marks the end of my attempts to code major new platform additions as an individual contributor…
-
On the flip side, we’ve made substantial progress on our work to split the main cluster into two release tiers, Immediate and Scheduled. The Immediate tier will get code immediately, and the Scheduled tier will get code after it has been in production long enough that the odds of an undiscovered major bug are much lower. We plan to offer this as as an opt-in feature on our higher-tier main cluster plans, as a way of mitigating the impact of bad code rollouts and transient production issues on our customers with more established businesses. We now have a lot of the initial code for this project written, and hope to deploy it this month.
-
We’re continuing to work on a Zapier integration that will allow native two-way integration between Bubble apps and Zapier. We made a little progress on this in August, but it got displaced by other priorities: we’re now allocating more time to it and expect to see significant progress this month.
-
The complete redesign of our editor continues to make progress: we’re almost done with the Styles tab, and a couple weeks of work away from the Data tab.
-
And, as mentioned at the top of the update, we’re actively recruiting!
As always, thanks so much to everyone in the community for your support and contributions: so many people in the community contribute so much to making Bubble a viable ecosystem, and we’re eternally grateful.
All the best,
Josh and Emmanuel