I think pricing was a big issue with Heroku. You're not wrong that Heroku means you can get a lot out of a single employee. At the same time, I think that people can be "penny wise, pound foolish" and I think that people often have a sense of markup that feels unfair to them (even though they're often wildly off-base about what that markup is).

Let's say that a product saves you 5 hours a week of developer time. If you're paying a developer $100,000, that should be worth around $12,500 to you, right? Except that people often don't see it that way. Yes, often they're being penny wise and pound foolish - they'll try to save the pennies on Heroku while spending dollars on developer time. But this can also be a bit of an accounting thing. Developer time can be counted as R&D while Heroku would be operating costs and cost of goods sold (I think, I'm not an accountant).

When Heroku launched, it felt like a great value. Fast forward to today and it seems quite expensive. $250 for 2.5GB of RAM and unspecified CPU? That seems to be 16x higher than Google Cloud pricing. I remember Heroku being $0.05/hr for 512MB at a time when AWS was $0.10/hr for 1.7GB. Sure, you'd need 3.4 Dynos equal one of those 1.7GB AWS instances, but that would only cost you $119 which is a 65% premium. Today, you'd need 3.2 Performance M Dynos at $800/mo to equal Google's 8GB boxes that cost $50. I think that stings a lot more and feels like something people want to look for alternatives to. In essence, it feels like an unfair markup.

It also feels like a company that has lost touch with the market. If Heroku has gone from charging me a 65% markup to a 1,600% markup, have they decided that acquiring new customers isn't important? Have they decided to give up and milk existing customers until they die? You can say, "no, we think we're charging the right price for the value we're providing and the time you're saving." That might be true while it also sends a signal to the market that you aren't trying to grow - that your path to profits is via heavy markups. While cloud pricing came down over time as servers became cheaper, Heroku remained almost the same on price. It certainly didn't match the changes in cloud pricing.

There were two roads: one where Heroku tried to grow marketshare at lower margins and another where Heroku kept pricing stable as cloud pricing dropped around them. Given that Heroku would have a lot of negotiating power with Amazon (and at the very least could get committed use discounts), they could make up a lot of margin there. But Heroku now just feels expensive.

The thing is that you're right that Heroku is still kinda the gold-standard for developer experience. You folks were awesome. But if I'm going to be running a bunch of services that need the equivalent of 100 8GB servers, that's $5,000 from Google or $80,000 from Heroku. When there's the potential for $900,000/year in cost savings, you start looking at getting off Heroku - and that's just with 100 somewhat small boxes by today's standards. Plus, buying direct from a cloud provider means I can get committed use discounts. The problem with Heroku's pricing is that it only saves you time/money when you're small. Do you want to build on Heroku knowing that success is really expensive there? Maybe, but it certainly isn't the "of course" that the old 65% markup offered.

I think companies are just operating services with a lot of scale today and today's Heroku markup becomes several engineers' salaries very quickly. Yes, Heroku means you can get a lot out of one employee. When you have 50 engineers and 500 8GB box equivalents costing you $400,000/mo...maybe you wanna task 3 of them to in-house a PaaS. Even if it isn't the gold-standard, there's several millions of dollars on the table each year. What's the sales-pitch for Heroku for a company running a bill of $400,000/mo? "We make your developers more productive." Sure, but we think we can get K8s and a PaaS team running for under $2M/year, spend $300,000 with Google, and pocket $2M+.

I feel a bit wrong writing this, but I think at some point Heroku is too expensive and it's so much cheaper to build your own in-house PaaS team. I think Heroku's high markup makes that tipping point sooner than later. Fly.io is charging me $92 for 2CPU/8GB which is an 84% markup over Google's pricing. If I have 500 8GB boxes, that's $46,000 with Fly or $25,000 with Google. There's $250,000/year in the difference. I don't think 1 engineer makes a PaaS team. To get the $4.5M/year differential that Heroku hits with 500 8GB boxes, I'd need over 107,000 boxes from Fly. Even to get to a $250,000/year differential, it would be 6,000 boxes with Fly. Yea, seems totally reasonable to spend 1 engineer's cost on PaaS markup with 6,000 boxes.

With Heroku, 500 8GB boxes means leaving $4.5M on the table. With Fly, 107,000 boxes means leaving $4.5M on the table. 107,000 boxes feels like a problem for me in the far future. 500 boxes feels a lot closer.

I really feel like I'm wrong and I've missed something, but I keep going over the numbers and Heroku just seems extremely expensive. Again, when it was young and charging a decent markup over AWS, it was such a no-brainer. Sure, give Heroku that money. Either you're small using a few Dynos and paying nothing and getting the amazing no-headache PaaS that makes you so productive or you're large and you're getting the equivalent of 500 1.7GB boxes for $60,000 when AWS would charge you $36,000, but $288,000/year isn't that interesting compared to what you're getting. Unless I'm missing something, Heroku's pricing has just gotten so high that even a bit of scale and you want to move off it. But I might just be wrong and missing things.