Hi everyone,
This is the August community update. You can read last month’s update here.
Addressing recent platform stability
Before I get into the product updates, I wanted to spend a moment talking about some recent outages you’ve been experiencing. First of all, I’m sorry for the disruption these have caused to you and your users; we know it’s frustrating, and we want you to feel confident in your apps, and in us.
We shared a longer post-mortem on July 22 about these incidents on the forum, which you can read here.
As of last week, we’ve fully removed the piece of our stack (“balancer”) that was the cause of these outages and replaced it with a solution that leans more heavily on Cloudflare’s very robust routing functionality. This was a planned improvement to our infrastructure that we had expected to tackle over the course of a few weeks, but we dramatically accelerated that timeline when balancer’s instability spiked. I want to give a shout-out to our engineers who dropped everything to get done what we thought was a month-long project in a matter of days.
What we shipped
First, you can now chat with the Agent to edit mobile apps! Now you can generate a mobile app and keep editing with AI across frontend UI, backend logic, and database. (Before, you could only edit UI and dynamic expressions.)
Additionally, the Agent can now write API calls for you. This is useful to connect to providers like Stripe or Anthropic, and it can make set up faster even for more experienced users. It can also write and edit backend workflows, and it is now smarter when it comes to fixing app issues from the issue checker. These updates reduce some of the more tedious work that can happen during development.
We added and updated several operators for when you create expressions:
-
:index of, which finds a thing’s position within a list -
An expansion of
:convert to list, which now includes basic types (beyond just data types) and turns a single value like text, number, or address into a list you can use with other list operators -
An expansion of
:defaulting to, which returns a default value if the original expression is empty across more types like text, numbers, dates, option sets, and API values -
:toggle item, which adds an item to a list if it’s not already there and vice versa.
Thanks to our community for suggesting these improvements, including @brenton.strine for :index of and the expansions of :convert to list; @georgecollier for the expansion of :defaulted to; and an attendee of Emmanuel’s monthly AMA livestream for toggle item. Speaking of which, the AMA also surfaced a request to allow users to track all the places where style variables are used, like you can already do with styles. That’s now live as a filter in the app search tool.
Global expressions got a few new updates to make it more useful at scale and officially take it out of beta! There’s now a sidebar navigation of folders, so you can organize your expressions. We’ve also added new parameter fields, which give you the ability to make a parameter optional, set default values, and add a description. You can read more on the forum here.
As you might have noticed, the redesigned property editor is now the default experience for all users. You can still toggle it off if you prefer, and we’re maintaining the old experience for the foreseeable future. That said, the new PE unlocks a few new features that we think are worth making the switch for, and if it’s been a while since you tried it, we’ve made a number of usability improvements that can help speed up development.
Finally, we shipped an update that should noticeably improve editor speed on very large pages with lots of text elements. In runmode, the size of that improvement will depend on how many text elements were set to overflow ellipsis — the more elements you had, the more you’ll notice a decrease in loading time.
For a full list of releases and fixes, you can read our release notes here.
What we’re working on
-
Workflows: We’re making upgrades to our workflow engine, with the goal of enabling branching, looping, and try/catch error handling. As part of that work, we’re also rethinking how workflows handle concurrency and data consistency, so multi-step actions on the same data become more predictable and less prone to race conditions. Emmanuel showed off a sneak peek of the UI during his demo and AMA session last week that you can watch here if you’re interested. There’s also a discussion in the forum here. This is really core product functionality, so we’re aiming to open this up for alpha testing very soon. I know this is a feature a lot of you are very excited about, and we are too!
-
Mobile sign-in: We’re working to add “Sign in with Apple” functionality. That means you’ll be able to build functionality on your native iOS apps so your end-users can sign-in with their Apple ID. That’s important because Apple requires you to offer it if you also offer the ability to sign in with other third-party providers like Google. We’re targeting the end of this month for that release.
-
In-editor preview: The team is building out preview functionality that will allow you to see changes you’ve made in the editor without opening a new tab. The first phase of robust user testing should happen around mid-August.
ICYMI
-
Emmanuel demoed some new features, including global expressions navigation and a preview of the workflow engine updates I mentioned above. You can read the recap or re-watch the session here and RSVP for next month’s here.
-
Don’t forget to submit your app to the app gallery for a chance to be featured. The page recently underwent a big overhaul. Check it out if you haven’t yet.
-
Claim your profile to show up on Bubble Is Global, which showcases live deploys of apps across the globe.
-
Wuufy is a pet health app that connects owners to diagnostic services and telemedicine — and it’s built on Bubble! Check out their story here.
New hires
We had four new hires join the team this month:
- Leela, senior software engineer (AI)
- Amy, senior product manager
- Matthew, senior product manager
- Richard, senior recruiter
Welcome to the team!
That’s all for this month.
— Josh and Emmanuel