This is something that doesn't really need to be self hosted unless you're wanting the experience. You just need:
- Static website builder. I use hugo but there's a few others like jekyll, astro
- Use a git forge (github, gitlab, codeberg).
- Use your forges Pages feature, there's also cloudflare pages. Stay away from netlify imo. Each of these you can set up to use your own domain
So for my website i just write new content, push to my forge, and then a pipeline builds and releases the update on my website.
Where self hosting comes into play is that it could make some things with static websites easier, like some comment systems, contact forms, etc. But you can still do all of this without self hosting. Comments can be handled through git issues (utteranc.es) and for a contact form i use 'hero tofu' free tier. In the end i don't have to worry about opening access to my ports and can still have a static website with a contact form. All for free outside of cost of domain.