Why I Chose Hugo Framework For My First Blog?

A journey of exploring various CMSs, website builders and static site generators before settling on Hugo

If you’re an over-thinker like me, you’re bound to share my experience ahead of launching your first blog. The most strenuous part is platform selection. Wordpress.org? Wordpress.com? Squarespace? Wix? Hubpages? A never ending cycle begins: Weigh pros and cons of each and choose one, only to start over again on second-guessing.

Web development background doesn’t help either. It only presents more options like static website generators such as Hugo and Jekyll (though equally accessible to non-developers), and non-wordpress systems like Keystone.

Now I’ve comfortably settled on Hugo, I’d like to list down all platforms, both commonplace and unpopular, I happened to explore.

HubPages

Back in 2013 I suddenly desired to write something on side. HubPages was a relatively well-known writing platform at the time. Perhaps I bought into some blog’s over-sold recommendation and joined it. I wrote a few articles but my short stay was fruitless. The system was too controlled to be hospitable for new writers.

Publishing, and thus Google indexing, was tightly regulated. An article needed to be grammar-perfect, have certain length and passed by community to get published. Additionally, Hubpages was partner in good share of Adsense generated income, always a necessary tradeoff to bear in such platforms. The overall experience discouraged me to the point of leaving the platform after publishing a couple of articles, even though two of them did appear in Google search.

It was long time ago. Today the complexion of HubPages is completely changed and might have improved. There was also news of HubPages sold to Maven .

Wordpress.org

The world is wordpress overdosed. Blogging and wordpress are now synonyms. Everyone loves it, majority of bloggers recommend it, and bulk of newcomers gladly jump on the bandwagon.

This popularity of the CMS, however, comes with decision paralysis. It transfers all the burden of decision making on you. Install the software, hire a wordpress developer (if you’re not one), choose a theme, brainstorm additional plugins, explore hosting options, manage MySQL database, worry about security updates. All these efforts might be worth for a mighty website with good budget but definitely an overkill for a one-man personal blog.

Wordpress hosting service providers come to your aid to reduce this decision making down to one. They offer one click installation for everything wordpress site requires, including security updates, on shared hosting environment at very nominal price. The plan carries great many free themes too. Purchase it and your blog is up and running instantly.

Now the newly aroused problem is viability. Most of the bloggers who second these providers make money off people like us, who purchase it through affiliate links on their overly praising posts. As soon as you dig deeper, the overhype dawns on you. Flood of negative reviews reveal deplorable customer service. Countless simply end up buying an upgraded package to solve their slow and buggy website because that is what they are presented as cause of the trouble.

Thankfully, I got the gist before investing myself any deeper. For all I know, I may delve into this option in future just to test my views again. But for now, I’m better off without it.

Wordpress.com

Easily confused with wordpress.org, wordpress.com is a separate platform that builds a website for you using the same wordpress software. It’s different from hosting companies as you’re not installing anything but using a system to create a site. With just a few clicks, you get a limited wordpress site with everything taken care of for you by wordpress.com.

Admittedly, it looks promising for starters. But is it great in the long run? No. The control you have over your site/blog is too restricted and monetizing options have complete wordpress.com oversight. A concern always a deal-breaker for me. A careful reading of their pricing and features page reveals it all.

Squarespace

If you ever tuned in to some episodes of Stuff You Should Know podcast then perhaps you should know about Squarespace, because Josh and Chuck, the hosts, often present its impressive commercial during breaks. That’s the first time ever I heard of Squarespace.

Squarespace is a drag-and-drop, non-wordpress, and quick setup website builder which beats other similar platforms by offering a great collection of eye-catching themes. Apart from the same limited control problem and high price there’s little else one can find negative. I even recommended it to one of the clients for his product website and it proved to be a great choice.

For my personal use, I would’ve accepted all the trade-offs, even limited control, in favor of quality themes and ease of use. But the price was too high with no free version to test it beyond 14 day trial.

Wix

Wix is another strongly marketed (notably on youtube) non-wordpress, drag-and-drop website builder. And it does offer an unlimited time free version with 500MB storage, 500MB bandwidth and url format username.wixsite.com/sitename/page-url. This one I almost invested in despite not really liking its look and feel because the main selling point for me was the free plan and relative ease of use.

However, in the middle of setup, I came across an unbelievable part of their blog creation. In their own words:

Your blog post URL looks like this:

Premium site: yourdomain.com/single-post/date/blog-post-title

And

You can change the blog-post-title part of the post URL from the blog post’s advanced SEO settings.

Lastly

Important:

  • You cannot shorten the URL. If you want to shorten your post URL then you can use a link shortening service, such as bit.ly.

To summarize:

  • You cannot replace awful looking “single-post” part with something conventional like “post”, or “blog”
  • You cannot remove date part
  • And obviously you cannot shorten the url except by using shortening service bit.ly and the likes

A horrid discovery, indeed. “single-post”, simply put, is ugly and I’d never want it in any of my urls. I wonder which genius made it irreplaceable part of their blog ecosystem. Furthermore, date part in the url nowadays is but optional, yet here it was, in take it or leave it form. Clearly, I had no choice except to give up on wix.

Pencilblue

One of our client, an MD, had a prominent wordpress website on foot education. A discontent with wordpress made him seek another platform. If I recall correctly some non-PHP, preferably Node.js, solution was requested. After lengthy discussion Pencilblue, a CMS built on Node.js and MongoDB, emerged winner, mainly because migration from wordpress to Pencilblue seemed easy.

We were well aware of Pencilblue’s very small community at the outset, but we still went ahead and performed the migration. It was a lot trickier than expected and community’s size gave us hard time in finding solutions to glitches. In fact, we had a hearty laugh (no disrespect intended) when we stumbled upon a stackoverflow’s answer and furious reply to it by some helpless:

In all fairness, the other co-founder was always active on github issues and put to rest many of our queries. It was with his help the migration performed successfully and the site continued serving heavy load of visitors.

Having said that, from developer’s perspective a lesson well re-learned: Never adopt a new technology that has no sizable community or at least a sign of growth, even for personal blog.

Keystone

Outside of PHP, keystone.js is one of very few systems which presents a viable alternative to wordpress. Built on Node.js, Express.js and MongoDB, it has a very healthy developer community, a great sign. But I haven’t had chance to explore Keystone any further for two reasons:

Firstly, keeping my budget in check meant I couldn’t afford a system that relies heavily on database that I had to manage myself. Remember, Keystone is just a software like wordpress and not a service provider that manages small deployment details (hosting, database etc.) for you. So, purchasing/managing mongoDB database is not cheap.

Secondly, there’s a limit to what I’m willing to do to actually start blogging. Playing around and troubleshooting MongoDB just for the simple pleasure of writing is beyond the limit, even if it’s one-time initial setup only (which it isn’t).

With that Keystone.js also got out of the way.

Hugo

And finally here I am writing on Hugo, enjoying the blogging experience. With all other options dismissed, I narrowed down my choice to Jekyll and Hugo, both static site generators.

Jekyll is more popular and has larger community of developers and users. I ultimately chose Hugo because reviews spoke of its quicker build time compared with Jekyll’s. Also, Jekyll depended on rubygems for its development environment while Hugo only required setup for operating system, which was a plus. In any case, differences were not substantial and Jekyll would have been equally fulfilling experience.

Needless to say, a static site generator like Hugo doesn’t have problems of other platforms. But Hugo is not a silver bullet either and it’s only fair to list downsides first. Here are some:

  • Knowledge of Markdown is essential

  • Though only few commands, you can’t work your way out without some knowledge of terminal, as Hugo (and Jekyll) works through it only

  • Knowledge of git is not required for Hugo but unless you plan to manage project and build directories in dropbox or flash drive, always a cumbersome process, you’re better off learning git basics. Without git making use of CDN or github for deployment is nearly impossible

  • Hugo doesn’t come with pre-existing theme. You have to choose it from Hugo themes or build one yourself

  • Any considerable tweak you want to make in your website will require some knowledge of basic programming

Now, to the pros:

  • Hugo is an open source and free software. You have 100% control over everything you produce, writing and code tweaks alike

  • It has no requirement of database (the build has complete site in the form of static files, thus the name static site generator)

  • Being static means a small site like this personal blog can operate freely on a content delivery network (thanks to netlify) which offers free hosting. Even github offers free hosting of static sites. You only need to buy a domain name

  • Being static also means no security threat. Whereas, we often hear news of wordpress security breach

  • With database removed altogether, website speed increases manyfold. Wordpress and other similar platforms, with all the shiny features they offer, cannot come close to page rendering speed of a static site