My answer assumes:
- "personal website" means you want a blog with a few static pages
- "moderate technical knowledge" means you know how to use a CLI and write some basic JS/CSS.
For this use case, I highly recommend a static site generator framework like Hugo.
Make a repository on GitHub for your Hugo website, and set up your content as markdown files inside the repository.
Then, hook your Hugo website's repository up to a managed static site hosting solution like AWS Amplify or GitHub Pages. Finally, set up your website's domain name and you're done.
Once these pieces are set up your authoring workflow is:
- Open your Hugo website locally from a local copy of the Git repo and edit the markdown files to change the content of your site
- Once you're happy, commit the result
- Amplify / Github pages will automatically pick up the change and redeploy your site with the new content
And that's it. There's no servers to maintain, so the only upgrade you have to do is keep Hugo and any dependencies up to date within your repo.