A couple updates on pricing, and then some thoughts and reflections.
Starting with the updates:
We want to make sure that people who have taken a risk on Bubble don’t feel like the ground is shifting out from under them. We appreciate you taking a chance on us, and hear you that this pricing change is a major shift. So, we’re going to enable current users (people who have accounts as of yesterday), to freely switch their apps between the old personal, professional, team, and production plans for the next two years. (After two years, we will disable the ability to change to one of the old plans).
On the new professional plan, we are enabling buying up to 7 additional units of capacity (for a total of 10). In retrospect it seems obvious to us that there should be a scale-up path from professional to production: thank you for the feedback on this.
As several people suggested, we are adding the ability for users on the new professional plan to have one additional version of their app using the new feature we released, which enables a hot-fix version and an ongoing development version
We may make further changes as we continue discussing this, but the above changes are all things we’re pretty confident are improvements, and are rolling out now.
That’s the end of the updates. On the reflections, we want to touch on two topics:
The sense of disappointment and betrayal a lot of you are expressing
How we think about pricing and why we’re changing things around
I want to be really clear: we care a LOT about not throwing you under the bus. We completely understand that people are betting their passions on us, and that you are relying on an implicit promise from us to do the right thing to let you continue to be successful.
Over the years, we’ve gone to some pretty extraordinary lengths to make sure we weren’t leaving users behind, many of which were behind the scenes and you guys don’t know about. To give one example, a couple years ago when we were doing a major database migration, we discovered at the last moment, after working on the project for months, that one bubble app had a custom type with so many custom fields that it wouldn’t fit in the new storage system. It was just a single one app, on a cheap plan, but after looking at the app, it looked like it wasn’t possible to delete those fields without completely restructuring the app. So to keep that app working, we modified our code to have an alternate storage mode, which we did in a crazy 48 hour sleepless push (which may have been the last straw that led to an ex-girlfriend breaking up with me, but that’s another story…)
From day one, it’s been obvious how much Bubble means to the community. Back when the Bubble team was just Emmanuel and me, and Emmanuel answered every customer email himself, he was off the grid and not answering emails for three days, and came back to an email from one of our more active users with the subject line “Why do you hate me???” The level of emotional involvement from our user base has been a constant from the beginning, and one of the main reasons we’ve been successful.
So, we absolutely and completely understand that the fundamental unit we are offering is trust. That cuts both ways, though: we need to be able to trust you guys to hear us out, take our actions with an expectation of good faith, and understand that we are going to make changes to how things work over the course of Bubble. For us to be successful and the community to flourish, we can’t be locked into decisions, pricing or otherwise, we made years ago. Our goal is for Bubble to be the best platform in the world for building applications, and that means we have to be constantly changing things up and trying new things.
We did a really bad job with this pricing change rollout. We didn’t adequately think through all the scenarios of how it would impact each user, and missed some important use cases. We did it a time when most of the recent work we’ve been doing has been behind-the-scenes (hiring, raising money, training and on-boarding our new team members, and working on giant infrastructure projects that don’t have immediate payoff but pave the way for future scalability and performance wins), so it hasn’t been obvious that we’ve been adding value. And we didn’t communicate our thinking at all, nor really put ourselves into the shoes of our users and realize how it would be perceived. So, we completely understand the reactions of shock and betrayal. That said, we’re still the same team you’ve been trusting for the last seven years. We’ve added some new faces, but they all buy into our mission, and Emmanuel and I still take responsibility for every decision Bubble makes. So I hope you guys are willing to re-extend your trust here.
Shifting topics, let’s talk about how we think about pricing.
Pricing Bubble is really hard, and from day 1 we’ve been struggling to find the best way to do it. We have two main challenges.
The first challenge is that our cost model is super complicated. Each Bubble app incurs a variety of different kind of expenses for us. Off the top of my head:
- Webserver CPU
- Webserver RAM
- Database CPU
- Database storage
- Database RAM
- CPU in our application storage database
- Storage in our application storage database
- RAM in our application storage database
- S3 storage
- Cache cluster CPU
- Cache cluster RAM
- Bandwidth into an out of AWS, as well as between different AWS systems
- Cloudfront costs
- Volume of log data produced and metrics data produced
- External APIs that we pay for
- Customer support
… and I’m probably forgetting a few. Not only are there a lot of different variables, but:
- Different apps use different ratios of each one
- Not all of these are easy to measure and attribute to a specific app
- The ratios change over time as we change Bubble’s code
In addition to all that, we also have to pay for R&D and the growth of Bubble, which isn’t attributable to a single app but needs to be paid for to be able to provide the platform we want to provide.
The only realistic way to handle this kind of cost structure is to accept that we’ll lose money on some customers and make money on other customers, and put together pricing bundles with limits and extras to try to shape something that lets us be profitable while offering customers a range of choices that fit their business needs.
Some of you have wondered why this is still necessary with our recent fundraising. It’s true that some companies scale on VC capital with an unsustainable business model, and then hope to fix things when they’re ready to IPO. We do not want to do that. It’s a high-risk strategy that we think is a betrayal of the approach we’ve taken so far. We see our fundraise as a way of letting us take short-term bets and to spend money today that otherwise we’d have to wait two years for, but we don’t see it as an excuse to not continually work on our pricing and sustainability.
The second pricing challenge we face is that the amount of value we provide to customers is radically different. On the low end, we have people who are just trying things out, and aren’t making a cent yet, but have the expectation of making money in the future. On the high end, we have people running successful businesses on us that we are saving hundreds of thousands of dollars a year by drastically reducing the size of the engineering organization they would need if they built things by hand.
We care a lot about our customers who are using Bubble to learn and to try out ideas, so we don’t want to build a pricing model that locks them out. But we also want to make sure that we’re capturing a reasonable percent of the value we’re providing to our bigger customers, because that’s going to make Bubble long-term sustainable. It’s very hard to make money selling an extremely complex technical product to price-sensitive users who are trying out ideas, so it’s really important that when users do become successful, we financially share in that success.
So we are trying to construct a pricing model that keeps Bubble accessible, which we value personally and feel is a key driver of growth, but that also lets us charge customers who have more money something proportional to the value we’re providing without them feeling like we’re hiking up the price arbitrarily for them.
So, we’ve been discontent with our pricing for a while, and making adjustments are overdue. We’d rather do them sooner rather than later, since the more users who join on the old pricing, the harder it is to change, which is why we made the changes now instead of waiting til when we had more wins and good news to pair it with. That said, we did a really poor job of the rollout, and a big part of this is also experimentation and learning: we’re not sure this new pricing is exactly right either, and we’d like to see how new users who don’t already have the current pricing scheme in their heads react to it.
Anyway, I hope this gives some visibility into why we feel we have to change things. We very much care about keeping Bubble accessible, and doing that while making sure Bubble is financially viable as we continue to grow and incur costs is not easy. We care a lot about you guys, and want to build the best possible platform.
As announced above, we’re making some immediate adjustments now based on the initial reactions, and we’ll continue this conversation and reply to people more specifically over the next week. Thank you all for your patience and for your continued support of the Bubble community.
– Emmanuel and Josh