The setup of the blog
What's a better way for first blogpost than describing my most recent project, a setup of the blog itself? Let's go then!
Hosting
First, the most important part: the blog is statically hosted on Gitlab Pages. You can see the public repository here. I chose this service because it's free, I already use Gitlab for my git repos, and it doesn't have the limit of one page per repo like Github pages. I also have some other sites deployed on Gitlab Pages, and I'm familiar with its CI/CD workflow.
Static site generator
For generating the website I chose Zola, mainly because it seemed easy to setup, I liked the idea of a single binary executable that's portable and easy to run. And I also found a theme I liked: Anemone, so the decision was simple.
Comments, or lack of them
I was thinking about adding comments to the blog, but since it's statically hosted it's not so easy. I've found this comparison of different options, and after considering them I chose to go without comments for now - I might add them later if there will be some traffic on the blog. From the listed solutions I was also thinking about Giscus, but it works on Github only, and I didn't find existing alternative for Gitlab - might be a fun project for later
Analytics
For me, the ideal solution would be parsing access logs of the web server, with something like Goaccess - but it's a tradeoff with Gitlab Pages, that I can't use it, since there is no way to get access logs there (Fun fact, the feature is included in this epic on Gitlab issue tracker, and might get implemented soon, probably as a paid feature). I even checked out other providers of free static hosting, but none of them offered any server side analytics for free, so I decided to stick with Gitlab Pages and use some third party analytics service. I chose Goatcounter, because of it's privacy orientedness, simplicity, and free hosted solution. Any third party solution might be less accurate with server access logs, because adblocks like Ublock Origin is blocking Goatcounter by default, but this should be good enough.
Conclusion
And that's all, the setup is rather simple, it allows me to write the posts in markdown and publish them easily, and I don't have to run the webserver myself on any VPS and care about availability and server security, updates etc. There are downsides like lack of comments and need of third party service for analytics, but I can live with that for now.