Learn Django

Understanding Heroku

Heroku is considered a Platform-as-a-Service (PaaS). It allows you to build a custom application and deploy it to their servers without any code changes. Heroku will then manage all the complexity of running the application. Heroku can significantly reduce the complexity of hosting web applications.

The value in using a service like Heroku is in the development workflow. Using it, you can build a Django application on your local computer just like you normally would. Then you can use common Git commands to deploy your application to the internet for use by anyone. It's a very simple to use workflow that will reduce the time to get your application into the hands of users.

If you didn't use a PaaS service like Heroku you'd have to manage a lot more complexity. You'd have to know how to manage and configure a server operating system, database server, and possibly a load balancer. If your application grew you'd have to learn how to scale all of this. It can involve a great deal of complexity.

While there are lots of benefits, there are some downsides. Heroku is a premium service. If your application grows past the free tier it can become expensive to run compared to alternatives. You're also buying into their ecosystem. If you want to do things like add a NoSQL storage option you're somewhat limited in what you can do. There are many add-ons, but they usually cost extra. This is something to be aware of as you evaluate the long-term host for your applications.

Track your progress with a free account