If you looked at the date the other blog posts were created you could assume that this site is simply dead. But this is not the case! The case would much rather be that I take little time to write blog posts due to having zillion other things that I'm also doing along with maintaining my blog. I also have a really bad case of liking to rewrite parts of my website but I'm getting ahead of myself.

You've clicked for a reason and I'm here to give you what you're looking for! Let's see how this website came to be and how it has changed from it's beginnings til now from a technical standpoint!

Origins Of This Site

The origin story of this site was quite simple: I wanted to have a place where I could host stuff I want to host, share thoughts or knowledge, share projects I'm working on and just have fun really :)

I've watched a lot of CCC talks and one of them stood out to me. It was a talk by fefe about how he made his blog. Here is a link to his talk: https://media.ccc.de/v/37c3-11811-writing_secure_software

I was mostly inspired by the idea of making software as stupid and simple as possible as to avoid vulnerabilities: If you make software simple you can understand it better and notice vulnerabilities. Making software more complicated as to make it safer is an antipattern that needs to be avoided. But this is just my interpretation of his talk. View it and form your own opinion!

In the spirit of that blog i wanted to make my first version of the blog using only static files using a static site generator.

Static Site Blog

My blog and all other pages of my website were made using a self written static site generator in Ruby! Why Ruby? Idk man i just felt like it. It's actually quite funny since there already is a big SSG that was written in Ruby: Jekyll! So yeah it was basically a worse Jekyll if you want to see it like that. But it was MY bad version of Jekyll and it was a fun learning experience :D

The content files were all Markdown since it's easy to read, write and it's everywhere so it's widely supported.

The code for the static site generator is not publicly available anymore since I don't think anyone has any need for it but it was quite fun. It was made using only the standard library except for the markdown conversion. Templating relied only on ERB templates which was quite nice. I was quite surprised by how much the standard library covers in terms of functionality. I do have to admit that I don't like Ruby as a language as much as it's standard library though xD There are a lot of odd things in the language and for being a purely OOP language, the OOP parts are actually really clunky to work with. Maybe I just didn't understand how to use it properly but looking at Jekylls code gave me the impression that it's not just me.

The blog was hosted under blog.sebico.de and my website under sebico.de. This separated the websites quite nicely and that was basically the first version of the website.

The Will To Rewrite

I've previously mentioned that I like to rewrite things...well...here we are.

I like static files since they're simple and I don't have to do much except for pumping them through a static site generator and host them somewhere. I wouldn't even need my own server, I could have used Github pages and would probably be fine just writing markdown but that's BORING! I want to write my own website damn it! And so I abolished my old Website and rewrote everything in Go.

Here's a really quick rundown of how my website works: The content is still written in Markdown. For the blog the content is read, metadata is parsed and the content is converted to HTML on startup of the webserver and then saved in a database. From then on, the blog handler searches the database for a post if a user asks for one.

Most of the website uses the go standard library and the database is an sqlite3 database.

I was really against using a database at first since I didn't want to add any more complexity but ultimately decided for one since it makes searching, sorting and filtering really easy and safe. No more reading files from disk! (Except for the database file obviously)

The website is now moderately complex but I have plans to do more with it anyway so that is a trade-off I'm willing to make :) Go seems like a good language since it's boring and feels like a normal non-bullshit programming language to me (Note: I learned programming with C and C++). I like it's standard library, the syntax feels natural and the language is not overly intrusive with safety mechanisms or belief systems.

Maybe I'll rewrite the whole thing once again in the future but for now I'm quite happy.

Expect more posts and maybe even series coming in the future~