Per Heroku's docs, I understand that the Procfile is required for deploying a Sinatra app. I have however been able to deploy apps to Heroku even without it with no issues. Just trying to understand under what circumstances is it absolutely required.
Heroku knows how to launch different types of applications by default and it tries to detect your type of app when you deploy. If you have a config.ru
for example, Heroku knows you’re deploying a rack app and then rack uses that file.
A custom Procfile is needed if you want to customize the command that boots up your application, for example to run it with a different webserver or to start an additional worker process.
So: You don’t need a Procfile for default app configurations (like most Sinatra or Rails Apps for example).
More info here: https://devcenter.heroku.com/articles/procfile