Deploy Django apps using a PaaS

Developing an application and deploying it to production are two different things. App deployment requires knowledge of devops, CI/CD, scaling your infrastructure, etc.

You could always learn how to do this on your own, or you could use PaaS providers that take care of all of this for you while you focus on development.

What is a Platform as a Service (PaaS)?

A PaaS is like a virtual devops engineer that you pay a monthly fee to keep on retainer, only it costs a lot less than an actual engineer.

A PaaS gives a software developer the luxury of focussing only on development while not worrying about what happens once the code is shipped to production. 

What features should a PaaS have?

Firstly, there should be a way to connect your github repository so that deployment can happen automatically when there is an update in the code.

Furthermore, there should be a dashboard where you can scale your apps with a couple of clicks or by configuring auto scaling. You should also be able to provision managed databases and switch between them easily.

Finally, it should be easy to add plugins or add-ons to your application such as a background task executor, a cache, an analytics module, etc.

Tutorials for deploying a Django application using a PaaS

To understand further about how a PaaS works, you can deploy a Django application using any of the below 2 providers:

  1. Deploy on Heroku
  2. Deploy on DigitalOcean

At the moment I use Heroku to run dailyhabits.xyz and it costs me $16/month. DigitalOcean would cost around $20/month.

Closing notes

If you are an indie hacker trying to launch your niche product, there are already a ton of things that you need to worry about like figuring out who your customers are, finding a distribution channel where you can deliver your product to these customers, actually building your product, etc.

Which is why I highly encourage you to use a PaaS so that at least the overhead of provisioning hardware and software to deploy your product is something that you don’t have to worry about.

You can focus on building your business instead.