It has been a long time since I drafted some piece of content. To be more precise, my latest article dates from when I was still managing a video game website (see LesJeuxVideo.com). And my latest technical blog post is from 2010 when I started mobile programming (see for instance this article about iOS/UIButton at GeckoGeek.fr from 2009). So let’s not wait (almost) an entire decade before writing again.

1. From homemade brew to static site generator

My experience in programming started with a video game website developed from scratch (back in the 90s until ~2013). All homemade with simple HTML/CSS/JS (all Vanilla), and awesome PHP (which is still, by the way, a nice language if you want to be productive ¯_(ツ)_/¯). It’s fine for a complex website (and back in the days, your options were limited). But reinventing the wheel for such a “common task” as a blog isn’t wort it, is it?

So at some point, I started using, like a lot of people, “blogging” platforms such as WordPress (even if you can do much more these days). I have to say, the project has come a long way since its first release back in 2003. However, I still find it too complicated when you mostly want a website to write your thoughts. For most of people, it’s okay, because what matters is the outside (being on internet, the design, the content), and not the inside (the tech, the speed, the security, etc.). And I guess it’s fine for personal projects! Myself included, I have started choosing more straightforward technologies depending on the need / occasion.

So… for this new blog, I decided to move on a static blog generator, and more specifically Hugo

2. Why a static blogging platform?

Decision is mostly based on personal interests and what motivates you to write! For my case, I decided to use a “static” website generator because:

  • Focus: after the setup, I’ll mostly focus on what matters: creating some content.
  • Simple is beautiful: no need for complex dynamic website when you can load html files!
  • Easier to customize: while it’s still some programming vortex behind, the software architecture is often quite simpler to understand. So creating a theme or a plugin is more doable without spilling blood everywhere.
  • Security shit: I may be wrong or fooled, but it feels safer within a generator than when your code is on the loose being dynamically executed. Plus, load times should be blazing fast too.
  • Markdown! (by default): please, no more WYSIWYG bullshit ; just, NO. And eventually migrating from one to another platform is a piece of cake.

Yes, you can find alternatives to each problem within most of “dynamic” blogging platforms. However it’s often not “by design” either, that’s what bothers me.

3. Why (Go)Hugo?

Let’s not go into a deep post-DYOR analysis. However let’s just say that you have the choice between:

  • Gatsby: it offers the latest web technologies (React.js, Webpack, etc), for the better and for the worse. You can have multiple sources for the data, allowing you for instance to build atop of an existing API.
  • Hexo: fast rendering blog framework powered by Node.js. Hexo supports Octopress plugins. While it shouldn’t be a downside itself, the community is mostly from China. So if you don’t speak Chinese, it could become difficult to participate to the open source project.
  • Hugo: fast and flexible, that’s the way Hugo wants to be perceived. Written in Go, the generator has already a few years behind it (2013), and is maintained by a very active community (~ 2-3 releases per month). Main “downside” is you can’t add plugin/extension, but it’s part of the reason that Hugo is so efficient to build your website!
  • Jekyll: written in Ruby, it’s probably the oldest one. The community is more or less active despite the 35k★. You have some plugins, but consistency and inter-compatibility is sometimes problematic. For such a respectable dinosaur, this open-source project didn’t age very well. Still, version 4 seems on its way.
  • and so on… (yes, they’re many more)

How to choose? Just shoot with the tech you like. If anytime you want to switch, it shouldn’t be too hard besides the theme. While I chose Hugo for a blog, I might choose another one if I were to create a more complex website.

4. Big-ups to “even” theme

Deciding a theme (or creating one) should be your first priority when choosing the static website generator. The community offers quite a lot of themes, but most are very simple, or have 90s design. Hey, you can’t ask everything for free, right! But while static website generators are becoming a trend since recent years, it’s difficult to find nice paid themes except with themeforest (or did I miss something?). As a consequence, you have to deal with it and make concessions.

That’s the reason I first started by creating a theme from a paid bootstrap theme (when trying Jekyll). I wanted something “clean” (in every meaning): sweet and reactive interface, clean html code, few (third party) dependencies, resized images, etc. However, it turned out Jekyll wasn’t the best option in my case, and I eventually turned to Hugo with an existing theme (found something “better” than the other theme). Side note about Bootstrap themes: support could be (much) better (i.e.: doesn’t answer emails while you paid for something on their store).

So after browsing infinite theme webpages (meaning, “option” + “click” on dozens of links 😅), I eventually found the hugo-even theme (port from the hexo-even theme) translated by olOwOlo, good job 👍.

5. Alternative to a static blog

You’re reading this post and you are very unsure what kind of tool you would like to (or should) use? Say no more, take a look at Ghost (which just released its v2 at the moment of this article), it’s a good alternative to a static blog generator, while avoiding WordPress.

6. See you soon!

Now that I set up this blog, I should start writing much more.