I initially intended to host this website directly from my home computer because:
In fact I already successfully self-hosted some websites I maintained in the past. But this time I had a different ISP (Optus) who uses carrier-grade NAT to mitigate IPv4 address exhaustion. That meant that, while my computer was able to initiate connections with computers on the internet (e.g. to view a website), computers on the internet couldn't initiate connections with my computer (e.g. to ssh into my machine). So I contacted my ISP but I was told that, despite vague articles like this which offered a glimmer of hope, it's impossible to get a static IP address on Optus' 4G home internet plan unless you have an ABN. The next-best option was a VPS.
Now, if you've ever made the mistake of searching for "free VPS" on Google, you likely would've come across a 50-50 mix of sites offering free trials (as opposed to always being free), or sites which are just outright scams. Luckily, while searching for ways to make my computer appear as if it wasn't behind a CGNAT, I stumbled across Joe Ramirez's tutorial explaining how to use Google Compute Engine (GCE) to setup a VPN. While I decided not to set up a VPN, Joe's blog made me realise that I could use a GCE f1-micro instance as a free VPN. Sure, you may only get only 600 MB of RAM, but it seems like enough so far:
GCE: ~ % free -h total used free shared buff/cache available Mem: 583Mi 112Mi 104Mi 6.0Mi 366Mi 374Mi Swap: 0B 0B 0B
Plus GCE's f1-micro instance is "always free" (subject to some usage limits), unlike AWS's EC2, which is pretty much just a year-long trial. And I also found GCE's web UI a lot easier to use than AWS's.
I'd still like to move to self-hosting at some point (or maybe even build a peer-to-peer compute network one day). But if you're reading this, GCE is working well enough.