I do this quite a bit and have many small sites that I manage and create. My go-to VMS hosting service is Digital Ocean (DO) [0] as they offer reasonable rates ($5 - $10/mo) for reasonable machines and have a very nice interface. There's also LowEndBox.com [1] to scour for cheap VMs but I've had mixed results for many of the services listed.

I don't do anything fancy and usually have a VM that runs Ubuntu and Apache or Nginx with mostly static content and some custom Python CGI, where appropriate. I'm not above hand-writing HTML but I also some type of static site generator when Markdown, or something similar, is easier to write it. I haven't found any static site generators that I particularly like, though I've used mkdocs [2].

Personally, I favor minimal front end styling so I tend to gravitate to things like Skeleton.css [3] or Bootstrap [4]. I tend to use Javascript heavy web applications and I personally hate the new breed of front end development frameworks so I prefer the very boring option of jQuery [5] or plain Javascript. I appreciate D3 [6] but I don't really use it. I've found better utility through Pixi.js [7], Two.js [8], Three.js [9]. MathJax [10] is also nice if you're writing math formula. Whenever I get worried about a new front end framework taking over completely, I just have to wait a few years before it drops off and gets replaced with another one. Many of my sites have been running for many years without issue because I use minimal dependencies.

I'm usually a solo developer working on small projects, without the need to interface to a team, have clients update web content, etc. so the above works for me. I think it makes more sense to use heavier duty front end web frameworks or back end CMS fraemworks, like Wordpress, in those scenarios.

I'll just briefly mention websocketd [11] as a nice little tool to play around with websockets. As I said, I usually focus on static site stuff but Mariadb [12] is my go to DB, just out of familiarity (from mysql), though if I can get away with it, I try to use Sqlite [13]. I have various cron jobs running to update various static sites or do other tasks on the server and elsewhere. Analytics are a big blind spot for many of my projects but I've used Piwik in the past (now Matomo [14]) to good effect. A more DIY approach is audience minutes [15] which is a small JS widget that sends periodic pings to the web server that show up in the logs so that you can track usage.

I'm not as security conscious as I should be as I'm such a small fish on the big internet but my attack surface is not open in the ways that others would be because I don't use an off-the-shelf CMS or other standard frameworks that are the low hanging fruit that attackers try to exploit. My threat model is mostly guarding against attackers trying to take advantage of software exploits. I'm not at all protected against any sort of DDoS attack but considering the stakes, I prefer to focus on creating interesting things than expending large amounts of effort preempting an attack that has minimal critical impact and low reward for an attacker.

The advice that I'll give is to not get hung up on doing things the "right way". It's more important to do something, even if imperfect. Once something is in place, it's easier to improve or upgrade. If it's a blog you want to do, write it in HTML if you have to, or write it in Markdown and then use pandoc to convert to HTML. Once that gets too clunky, especially if you're writing blog posts consistently, then upgrade to a static site generator, or write you own minimal one. If that's too clunky, install Wordpress. etc. The same goes for other content.

There's other miscellaneous "awesome" lists on front end, back end, static site generators, etc. that you can look at to see what strikes your fancy.

Here's a curated list of some sites or projects I've created:

https://mechaelephant.com/

https://calebharrington.com/

https://meowcad.com/

https://mechaelephant.com/dev/

https://mechaelephant.com/nymlist/

https://mechaelephant.com/ResonatorVoyantTarot/

https://mechaelephant.com/hsvhero

https://mechaelephant.com/whatisthislicense/

https://mechaelephant.com/noixer/

https://mechaelephant.com/notenox/

https://mechaelephant.com/feed

All of the above code and content is libre/free/open and can be found on GitHub:

https://github.com/abetusk

https://github.com/abetusk/www.mechaelephant.com

https://github.com/abetusk/calebharrington.com

https://github.com/abetusk/dev

With some of the above projects having their own repo.

Also happy to chat further if that's useful at all.

EDIT: link formatting

[0] https://www.digitalocean.com/pricing/droplets#basic-droplets

[1] https://lowendbox.com/

[2] https://www.mkdocs.org/

[3] https://github.com/dhg/Skeleton

[4] https://getbootstrap.com/docs/3.4/

[5] https://jquery.com/

[6] https://d3js.org/

[7] https://pixijs.com/

[8] https://two.js.org/

[9] https://threejs.org/

[10] https://www.mathjax.org/

[11] http://websocketd.com/

[12] https://mariadb.org/

[13] https://www.sqlite.org/

[14] https://matomo.org/

[15] https://github.com/berthubert/audience-minutes