It’s been a while since I felt the need for a blog to put down my various thoughts and finds. At the same time, I feel more and more that it’s time to start giving back to the community. Combined with the fact that I’ve been doing some pretty interesting new things at work lately I thought there’s no excuse in putting it off any longer and set up a goal to get it done last weekend.
As you can see in the about page, I am not really an web guy so I knew going in that this will not be easy. But hopefully I made it work and I will be more than happy to hear your feedback and learn from you guys how to make it better.
From the get-go, I knew I wanted a lightweight and modern platform that would be easy and elegant to manage and that it would not tie me down to a provider.
So I started laying down some of the basic requirements:
- no database
- runs on azure
- free (to start)
I did a bit of research and came up with 4 options (some of which really did not fit the bill but wanted to make sure I’m not missing anything)
Probably the default choice for many and probably for good reason. But I wanted something different, something new, that doesn’t require constant updates to plug security holes and call me crazy but something without a database to mange. Also due to its mySQL dependency I couldn’t find a way to host it on Azure for free. So Wordpress was out the race before it even started.
I’ve used this platform in the past when I tried blogging in the past. Unfortunately it didn’t work out then (my fault not the engine) so I thought I would revisit it now. I liked that it’s based on .NET and that I could potentially futz with it. You can deploy out of the box on Azure and it can run off the file system with no database. But it was still a dynamic web-site and for thid endeavor I set my eyes on a whole new adventure fileld with static site generators, no administration panels, npm installs and markdown posts.
Jekyll is on top of every list of static site blog generators so I defitely got interested. It runs on Ruby so I expected some issues on the Azure deployment side.
Hexo was another top-listed blog engines. Written in node.js I knew I would be able to host it easily in Azure. Lots of plugins and themes available as well so I was looking good.
I had seen some interesting examples and tutorials around docpad, but when I checked their page I noticed that it is no longer actively developed so I dropped it from consideration.
So by the end of the first triage phase I was left with two viable options that I was going to start looking into: Hexo and Jekyll. I started playing with both of them, deploying them to Azure and trying to figure out how they work.
Biggest problem I found with Jekyll was the customization part. Probably due to my web noob-ness, I failed miserably at customizing the theme to my liking and the default template is way to simple, no sidebar, no tags and the list of blogs was just a boring list of links to articles.
Looking at Hexo, I found it super easy to install a theme that would completely change my layout and customize everything from the config.yml file
At this point, I was relatively happy with my progress. I had chosen an engine that I was happy with, I had a deployment plan (more or less) and I knew I can get a nice looking theme with not so much effort.
Browsing though the themes list two of them caught my eye: bootstrap and icarus. Both of them look really good, come with a number of features and scale well from mobile to the big screen.
Started with bootstrap, very easy to get going. Clear instructions on the documentation page (clone the git repo and change a line in the main config file). However I soon found that the vanilla look, as great as it was, was hard to change and improve. Tried to change some colors, add some side-widgets before I decided to give icarus a try.
With icarus, install was again super easy. What I liked most was the banner and thumbnail features that gives the blog a more visual feel. Customization was a breeze by just changing values in the theme’s config file. I updates some parameters on the syntax highlight plugin to get the colors I wanted, and as a bonus, there’s a really nice search integrated in the theme.
At this point I knew I had a winner and you are reading it now.
A the end of this this inaugural post I will let you in on some of the secrets that I learned while building this blog.
- What’s great about hexo (probably not unique to hexo, but great nonetheless) is that you can always change the theme in the settings file, regenerate the site and you’ll have a brand new look for the blog.
- One of the biggest pains in my short time blogging was managing comments. There’s going to be spam, there’s going to be nasty people, you need to moderate, etc. So this time, Disqus to the rescue - comments as a service as I call it. Just put a script in your page and it works like magic. Most respectable static site generator blog engines will have it well integrated so you only have to enter you disqus shortname to get it up and running.
- Since this will be a tech blog, I hopefully will post some code here and there and I would like it nicely formatted. Hexo and others like it use the popular highlight.js plugin to automatically format and colorize code. Nothing to do from my end, other than pick a coloring style and set it in the the theme config fie - easier in some themes than in other but possible.
- Finally, I found it super useful that I can mix my markdown text that I use for posts with html pages where I need to (i.e. if I have a special page that I can’t find a template for, I can write it in html and use as-is). I can also use inline html in my markdown files and it will work just fine.
Ok, fine those weren’t secrets at all, probably most of you knew that already but remember, I’m still getting the hang of this blogging thingy so a few of these things were new to me.
Feel free to leave your comments below.