I use Jekyll (https://jekyllrb.com/) which generates static html pages from templates and your blog posts written in markdown. The advantage of this is that I can put my entire blog in git. Also there is no database needed, which makes hosting much easier.
I generate the static html and then put them inside a docker container to deploy. The host is a bare metal server (not free but cheap) with docker installed.
Both of these blogs use Jekyll + Docker as described above: