If you want a no-code solution, I recently created a homepage using GrapesJS (for free). I'm hosting it on Cloudflare Pages (for free). The whole setup was dead simple and almost completely free, I'm only paying for the domain.
EDIT: oops, that isn't technically self-hosted....but GrapesJS is a very cool tool for building a simple HTML website. Just make it looks like you want and it'll spit out all the files you need for hosting wherever your heart desires. Caddy, GitHub, whatever.
Probably overkill, but for projects like this I've setup WordPress in the past. Once everything was done, I converted the WordPress page to a static site with httrack and use the static version.
This gives the ease of setting up and editing combined with the stability and security of a static HTML website.
As others have said: it depends on your technical expertise.. But a nice and cheap solution is hosting a static blog build with Jekyll on Gitlab pages.
If you wanna expand your site in the future, something like Kirby CMS might be great. It is paid but dev experience, community and loading speed of pages are much better that with something like Wordpress.