Hi all,
This is our May community update! Read last month’s update here.
The biggest change we made this month was announcing and rolling out our new pricing plans and the accompanying workload metric. We very much appreciate all the community feedback on our workload visualization tools and the metric itself, and are working on a number of improvements based on it.
April was also a strong month for making Bubble more usable: We rolled out a number of long-anticipated improvements to our product.
In addition, we continued to invest in growing our engineering team and are excited to welcome four new senior engineers: Wayne, Maurice, Alex, and Sarah!
If you would 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
We are excited to announce you can now override individual properties from a style without removing the style from the element. This is an important step toward having a mature, robust styling system, and it reflects modern design practices where a property may need to be tweaked on an individual instance but you would still like the benefits of grouping the element with others sharing the same style.
Another investment in our toolkit for building modern UIs is the ability to detach reusable elements. We are working toward greater flexibility in our reusable components, and being able to decompose them into their constituent pieces to modify them individually is a key feature along that path.
We also shipped a couple key un-blockers for integrations:
- The ability to specify a custom “content-type” header when returning data from a Bubble API enables integrations with systems that rely on this header being set correctly
- We extended the default timeout for outbound API calls to 150 seconds. This was motivated by OpenAI’s GPT-4, which often takes a long time to return results —, but it’s useful whenever you’re connecting to an API with an extended delay
We also re-introduced advanced timezone controls, a previously experimental feature that we’ve now added to our core feature set.
We also added an option for page navigation workflow actions to open a new tab.
Finally, you might notice a few new easter eggs: We are experimenting with interactive tutorials when you create a new app; we have added some helper labels to Repeating Groups to make them easier to understand for new users; and we changed the icon for showing per-element video tutorials to make it clearer what it does.
This month in numbers
-
Tier 1 (FAQs, account and billing issues) handled tickets: 5,876 (up from 4,955)
-
Tier 2 (app development questions and bug reports): 2,889 handled tickets (up from 2,615)
-
Average tier 1 reply time: 30 minutes (down from 36 minutes)
-
Average tier 2 reply time: 2 hours and 9 minutes (up from 1 hour and 25 minutes)
-
Tickets closed by the engineering team: 146 (up from 130)
-
Average days to closure by engineering for high priority tickets: 2.9 (up from 1.6)
-
Average days to closure by engineering for all tickets: 7.3 (up from 5.8)
-
Incidents and regressions: 14 (down from 17)
-
Of those, the number that are high-severity (greater than 20 bug reports): 3 (up from 2)
Things on our minds
Last week, we brought the whole company together at our office in New York. We usually work mainly remotely, with a sizable fraction of the company dropping by the office on a regular basis, but periodically we like to get everyone together in person for a mixture of routine work, brainstorming sessions and workshops, and socialization.
We’re a believer in hybrid, flexible work, but that occasional in-person get-together matters: some kinds of brainstorming are just easier to do in person, and it helps a lot when working through a difficult issue with someone if you remember the last time you grabbed a drink with them. We’re getting to be a pretty big company now – we crossed the 100 person threshold a few months ago – and keeping cohesion as a group that size is tough.
We’re hoping you all see the payoff in bringing the team together over the next several months in terms of elevated quality of work, and a bit more vision in the day-to-day decisions we make as a group.
What we’re currently working on
-
Building a Table element (similar to a Repeating Group but can customize each column and header): goal is to start user-testing this month
-
We’ve kicked off work on a project to make the expression composer significantly easier to use! Think: inserting into the middle of an expression, changing stuff without losing everything you’ve built on top of it.
-
We are making some updates and changes to the API for building server-side actions in plugins, both to fix some bugs and to enable upgrading to node 16, which requires switching from a synchronous to an asynchronous API. We will communicate out to plugin developers when it is ready for them to start upgrading, likely early this month.
-
We are continuing to work on overhauling our infrastructure, with the goals of enabling SOC2 certification and improving page load performance
-
We are working on improvements to our workload charts, including deeper drill-downs (specific actions inside a workflow, data requests, workflow + data APIs), and by-the-minute data. We are also investigating other potential improvements to the tooling around managing workload.
-
Moving off CoffeeScript and onto Typescript. We are now down to 1.2% CoffeeScript in our main codebase. Typescript is now up to 17.2%, with the remainder being Javascript.
Happy May,
Josh and Emmanuel