Nikolay Andonov

Hi, I'm Nikolay

Web Developer, Wannabe Doer

The technology powering this blog

1st of March, 2020

Let me start by saying I am a huge fan of keeping things simple. That being said, it may not be that surprising to say that this blog is powered by plain HTML/CSS.

Yep, you read that right. There is no CMS, no Gatsby, no VuePress, or whatever fancy tools are out there right now. Don't get me wrong, I am not saying these tools are bad in any way. It's just me who prefer to be able to create the blog really fast, and to have full control of everything in here, without having to spend time reading docs, or figuring out how stuff works.

It's worth mentioning that I am using the CSS framework TailwindCSS, tho. And sadly there is a build step just for that. I am so used to that framework nowadays, that I miss it a lot when not included. Basically that's the reasoning behind the decision to use the framework for this blog.

At this point you may be thinking "OK, I got it, you use tools you know. Why not using PHP then? Why not your favourite framework Laravel where you feel most comfortable with?". The answer is simple - I just don't feel the need of a dynamic content for my personal blog. I prefer to open my editor, and write the things with HTML/CSS over creating a UI just for myself, and using some WYSIWYG library. And also, having a full framework loaded just for serving the blog seems a bit off to me.

And yeah, I am losing the flexibility of a dynamic language, fe I can't easily extract the HTML that's generated across all the pages and reuse it everywhere. Which means I am copy/pasting it over and over. Which means I am violating the DRY (Don't Repeat Yourself) principle. But I guess I can live with that trade-off for now.

Yep, "for now" is always something I have in my head. I am not afraid to "upgrade" to more suitable tools when the right time comes, ie when I feel the need to. I highly recommend having that mindset, it was a game changer for me once I adopted it.

Update: I've actually upgraded to a Laravel application. I needed to extract common html partials, add an RSS feed, and few minor other things which wasn't possible by sticking to html/css. I still keep it simple, I am not caching the content, not using any cool technology to build a static website on top of the Laravel app. Just plain old web app which does the job for now.