Static Site Generators

This article is about the tech stack used to create this blog. My objective is to create a minimalistic blog with a focus on speed, simple to maintain and low bandwidth consumption.

The best way to achieve this objective is to create a static website. But if you create a lot of content, it could be impracticable to update and maintain the site, even creating your own templates. That’s the reason for the success of the static site generators like Jekyll, Hugo or Gatsby. They provide a simple framework to generate a static site in seconds.

There are dozens of static site generators in every programming language you desire, and the majority are open source projects. You can search for them at your favorite search engine or look at this page: Jamstack Generators.

Hexo

I’ve chosen Hexo, as a blog framework. It has been developed in Node.js, which is my main programming language. It’s simple, fast and has an active community which creates lots of plugins and themes. But most of the themes listed are not maintained by his creators, so they are not usable for the newer versions of Hexo. Luckily, there is a team maintaining a high quality theme: Theme Next. As you can see, this is the one I am using for this blog. Another great quality theme is Hueman.

Also, the developers of Theme Next have created the plugin Hexo optimize, which improves the pages loading speed minifying and bundling the css and javascript files. You can check the rate of this blog at Google PageSpeed Insights.

Firebase Hosting

One of the advantages of static sites is that you have many great options for hosting your site for free. One of the most popular is Github Pages. Other great services have free tier: Netlify and Firebase to name some of the bigger players. They all provide a CDN and custom domain with SSL.

For this blog I am using Firebase Hosting, mainly because I’m also using Firebase to build other projects in which I use many of the features they provide.

Cloudflare

Another great service is Cloudflare. Cloudflare provides a DNS, CDN, and DDoS protection service. It could be necessary if your project grows, and you need more security and protection. At this stage I’m not using Cloudflare CDN or DDoS protection for this blog. I am not expecting to generate a lot of traffic here. I’m using the analytics service, because it is easy to use and no adds cookies.