To run a website all you really need is a computer that is constantly connected to the internet, running some kind of web server and—if your website is a bit fancy—maybe a database and some server-side scripting language.
For a long time I’ve been using a shared server. It’s been cheap and just about reliable enough that I’ve not been motivated to change. But now I’ve decided to shift everything over to a VPS.
So we’ll see how that goes.