Heroku has always had a place in my heart. It was, by far, the best way to deploy small apps. One `git push` to deploy. It just worked. The problem is that by the time you grow up and hire multiple people, you very quickly run into a point where hiring a devops guy is cheaper than Heroku. You hit this limit much quicker if you are doing something more complicated than monolith + database.
There is also something I like to call the Ruby on Rails dilemma. Rails is a beast when it comes to rapid prototyping and small teams. I don't think anything else comes close. But as your team and system grow, all the conventions that let you speed ahead in the beginning start holding you back. Now you are digging through Rails code and doco trying to find ways to override defaults without destroying everything else.
Heroku is the PaaS version of Rails. Small projects are super easy to get going. You don't get a better starting experience. But as you grow, all the conventions of Heroku that helped you launch with ease start becoming month-long expeditions for work-arounds. Worse, Heroku isn't open source. You can't look at the code to understand your issue. It doesn't take long for someone to lose their minds and spend a weekend creating a presentation on the benefits of moving to another platform.
There is also something I like to call the Ruby on Rails dilemma. Rails is a beast when it comes to rapid prototyping and small teams. I don't think anything else comes close. But as your team and system grow, all the conventions that let you speed ahead in the beginning start holding you back. Now you are digging through Rails code and doco trying to find ways to override defaults without destroying everything else.
Heroku is the PaaS version of Rails. Small projects are super easy to get going. You don't get a better starting experience. But as you grow, all the conventions of Heroku that helped you launch with ease start becoming month-long expeditions for work-arounds. Worse, Heroku isn't open source. You can't look at the code to understand your issue. It doesn't take long for someone to lose their minds and spend a weekend creating a presentation on the benefits of moving to another platform.