start says one thing: one HTTP server on one port. That is why a Telegram bot,
a queue consumer and a nightly job have nowhere to live in it.
Keyed by name, not by kind
An app may have two different workers, and the app’s own Procfile already looks like this —bot: python bot.py resolves to a worker called bot with nobody
having to learn a new dialect.
"web" | "release" | "worker" | "cron"
What sort of thing this is. The sizing rules differ per kind, which is why the
kind is declared rather than guessed from the command.
string
required
string
Cron only. Run on the node’s own scheduler.
release
Therelease command on a service is the same idea with a guarantee attached:
it runs once per deploy, before any traffic, on the node, and the app does
not start until it has finished.