We use Heroku. It's a Platform as a Service built on Amazon's cloud
infrastructure. It is simple to use when our app is just a toy and is built to
scale up for high concurrency or high sustained load.
They act as our outsourced operations team, helping us deliver working
software, instead of dealing with already solved problems which we would have
to worry about with a bare-bones hosting provider.
Heroku uses conventions to make decisions for us that are unnecessary for us to
make. Some things like web servers and app servers are solved problems and can
be standardized across applications, regardless of the framework that they're
written in. Heroku has additional features like review apps (which helps in
code review by being able to test behaviour as it is used), pipelines (which
makes handling review, staging and production apps easier) and integrations
with other third-party services.
The cloud promises lower operating costs, especially at the beginning when
capacity can be lower. Forget about sunk costs of expensive servers.
The cloud and the services it enables will empower our clients' businesses to
start and operate in a manner that has never been possible before without
significant upfront investment.
If we offer file uploads for features like user avatars, we upload them to
Fastly or Cloudflare.