Building a Website

The Making of this Website

This Website has gone through a few iterations before I released it. At first, I opted for a static website built with native JS, HTML and CSS. Keeping things simple and easy.

But then I brooded for a while over what technology to use to write blogs. I did not want to maintain the blog entries using native HTML, for obvious reasons. Having used Storyblok in the past (for example for bauxxi.com), I tried to integrate the API into the existing static website. Which was, I have to say, quite the headache.

Having just come from a position where I did quite a bit of programming with React, I tried to convert the static web page into a React site and integrate Storyblok. The integration was not the problem, but converting all the HTML and JS code from the default template to React proved to be too much work.

Next I looked into building the site with Blazor, thinking that rendering server-side should make it easier to convert the static website. Which it was! By a lot.

Instead of writing the blogs in Storyblok I found a cool library that let me convert markdown files to HTML easily: Markdig. With a bit of coding to automatically scan RefactoratWebsite.csproj for .md files and integrate the paths for the breadcrumb navigation, category selection, and search functionality, I got the blog up and running. That is the result you are seeing now.

Hosting

At first the site was hosted on AWS, then it was still a static website. But I found it difficult to get Blazor to run in AWS. Azure was the obvious option, but for my use case it was too expensive.

The site you are seeing now is hosted on a Hetzner server. Yes, I had to set up .NET, NGINX, etc. on the server, which is the trade-off. Still, I am happy with this option and now that I have the server running, I am thinking of converting other websites over to run on the same tech stack.

Overall, the total cost for running the web application is really low, and any additional website is practically free: The configuration already is in place and the server I chose is easily powerful enough to run several websites (as long as traffic does not go through the roof - but then there is always caching options).

Next Steps

The navigation could use some work, as does the content on the main page.

I18N is also completely missing at the time of writing. A German version of the Website should come up soon.

I do have some other ideas, but at this point I don't think I will find the time.