I am a bit in a pickle. Looks like I cannot trust or even use Heroku any more. The trust is broken a bit because of how they are handling the breach, that they had.
The "use" is even more complicated. I've used review apps extensively with their pipeline, and since they revoked GitHub integration 2/3 of Heroku are non-functional for me (no review apps, no staging migration pipeline).
I've been looking for alternatives and found them severely lacking in security scope or basic functionality.
Render.com
- There is no concept of read/manage permissions. Anyone who is invited into a team can delete the team, all apps, services etc. By design of their UI also possibly by mistake. Support responded that they have been working on this the last 2 years or something like that.
- /tmp folders are misconfigured. This means that if you send a large enough POST and the web server stores the payload into a temp folder, that seek file is lost. I noticed this after a week of random EOF errors that the web server reported. The support responded I should just use their disk offering and that ephemeral services should not use temp folders, mind that Heroku is also ephemeral but /tmp folder can still be used because otherwise you have above problem.
- GitHub integration. The problem is that only one team/user can link the app to the entire platform. This means that if other team members visit the "Blueprint Sync" page, they will see an error that GitHub integration is broken. And for every team that you have, you would have to create a new GitHub user, just to set up sync and only that user can then see sync status.
I feel they are working hard and are closest to the Heroku. Yet I feel they are not up to the task that Heroku was/is, in particular I think they are not using the service themselves otherwise they would fix these shortcomings a long time ago.
Railway.app
They have Teams properly solved, and GitHub integration also works as expected. But they have issues elsewhere.
- Builder is slow as hell. For example, 200mb bundle needed 6 minutes to be deployed (they don't have build cache) and I was able to do it only once. The second attempt resulted in timeout (builds in 179s on Heroku and on Render in ~30s).
- No support for scheduled executions. This is a feature that both Heroku (Scheduler) and Render (Cron Jobs) provide. What it does, it spins the bundle/container and executes something at specific interval, you pay extra, but that's the whole point so that you can run more demanding tasks. I would have to rewrite everything into fake web cron of PHP era.
Do you know any alternatives besides these two? What are your plans with Heroku?
So why haven't we fixed everything yet? Ultimately, our bandwidth is limited (but growing!) and every day is an exercise in ruthless prioritization. We haven't ignored role based access control — we just haven't gotten to it yet (as a side note, https://feedback.render.com shows things we're working on right now).
I can't provide ETAs, but I can say with full confidence we will address everything you mentioned, and more. Give us time!