Welcome to my inner thoughts!
For the longest time I have wanted to create a blog with a technical focus. The goas is for me to have a place to write up my thoughts and ideas as I find this helps me make better sense of it all. As such, I will attempt to explain my thoughts as I go though the process of creating this blog. This also means that the very first part of this blog is actually this post. In fact, the entire directory structure is currently this:

In the future I will attempt to build a templating system and a way to publish and host the blog. If nothing else, it should be an interesting side project.
Being a developer, I also have some technical goals for the project:
Keep it as simple as possoble
As a software architect, I try my very hardest to keep everything as simple as possible. The reasoning is that if things are kept simple, they are easy to understand, easy to change and easy to verify.
If I can get away with not writing code to get a feature working, that's the path I'll choose!
GIT all the things!
Source control is a developers time machine. Having everything in source control means I always have the ability to see which changes were made when, why and by whom. The latter isn't very important as I doubt I will have anyone else pushing to my repo, but the first two items are very important. Time and time again I have found that seeing how things have developed over time gives me context I can get nowhere else.
Leverage CI/CD
Publishing new content should be as simple as possible, and to me as a software developer, git push seems like the obvious choice.
A build step should prepare and package the blog and all content into a docker image and a subsequent deployment step should spin a new container up whereever the blog ends up being hosted.
Keeping the above points in mind, here's the plan so far:
- All blog posts should be written entirely in markdown.
- Write blog posts using a (to me) well-known tool like Visual Studio Code.
- Website hosting this should be selfmade using dotnet 8.
- If I end up generating static HTML pages, the generator should be created in dotnet.
- If I end up generating the HTML pages dynamically, the web server should be created using ASP.NET Core.
- The blog should be self-contained. It should be possible to bake the entire thing into a single docker container image and run that.