Website Update & Hugo Framework

April 9, 2019 · 897 words · 5 minutes read · Personal Thoughts

Well, I should definitely work on my master’s essay but I thought it could be a good time to update my website. Again. Less than 2 months after the previous version…

WordPress to Hugo Framework

WordPress is certainly the most popular blog platform. However, a popular application, with many available plugins developed by third parties, also means a good target for malicious actors. The result is to have many weekly updates. On one side, the platform and popular plugins are well maintained. But, since I want to keep control on updates, and to manually deploy them, I could, sometimes, be at a higher risk for a few days.

There is also the factor that WordPress is more and more a CMS used for any kind of websites. It is not without distraction for a blogger. I tried in the past, Ghost, which is an interesting blog platform written in Node.js. Still, it requires to maintain a web server with a database.

In 2017, I deployed the main website for Kantoku with Middleman, a framework to generate a static website. It was so amazing to only deal with static pages, without server-side languages and databases. Why not do the same thing for a personal website? After all, it is possible to write content such as blog posts with most frameworks, and the build process will automatically create several HTML pages. There are many other frameworks alike such as Jekyll, GatsbyJS, Hexo, Hugo, etc. Many are written in Node.js or Ruby but I finally opted for one written in Go, the Hugo framework.

Markdown

I was also in a quest for something simpler when it is time to write a new post. WordPress recently introduced a new editor that is not always as friendly as the previous one. I could have used the old editor but it was clearly not the WordPress intent for users. Not to mention that the previous template, which I bought on ThemeForest, often added various HTML tags and, in my opinion, the code was not as clean as before. The beautiful part with Hugo is to be able to keep it uncomplicated. It cannot be easier than a basic Markdown document. For example, I am currently using Atom to edit this post. There are probably more suitable editors to write Markdown content but I will explore those in the future.

Design

I was not convinced by the overall code quality of the previous template. I was also clueless on all scripts involved and, more particularly, external scripts. The main reason that I bought a template is that I am not a designer. However, I realized that I am not here to show off advanced design skills. My favorite blogs are often the ones that are clean and minimalism. Why should I not follow the same concept? Many websites often look alike, which is what, I guess, a “modern” website should be. But I usually remember websites who do not follow the latest design trends. It will be a work in progress..!

Comments

I definitely like to read your comments here. However, since I don’t publish as often, I receive more emails, and most comments are… spam. There are a few arguments online about comments for blog posts. A blog without comments is apparently not a blog. So, I would not call this website a blog but simply a website where I publish, sometimes, pages in chronological order. I am always interested to continue a discussion on Twitter or by email.

DigitalOcean to CloudFront

For the last few years, a virtual machine, or Droplet, from DigitalOcean powered the website. A classic configuration on Debian with NGINX, MariaDB, and PHP-FPM. Not too much trouble to maintain but still, a server exposed on the Internet, to update once in a while. Nonetheless, with only static pages, it is now possible to streamline the technology stack. Amazon Web Services (AWS) have services that can easily be provisioned for that:

  • Amazon S3 : Object storage
  • Amazon CloudFront : Content Delivery Network (CDN)
  • Amazon Route 53 : Domain Name System (DNS)
  • AWS Certificate Manager : SSL/TLS Certificates

The main advantages are definitely the speed, the redundancy, and the cost. Furthermore, I don’t have any more manual tasks to perform on a virtual machine.

Build Process

It is also straightforward to automatically build and deploy updates on AWS with the service that manages the code repository, Gitlab. It offers powerful continuous integration (CI) and continuous deployment (CD). Thus, when I push a new commit, the Gitlab CI will build the static pages with Hugo, and the result is an artifact. After, Gitlab CD will upload the artifact on Amazon S3 with the AWS CLI.

jprlauzier.com to jprl.net

In 2007, I used the domain jprl12.com for my personal website. After, rlauzier.com and, not long after, the subdomain jp.rlauzier.com. More recently, jprlauzier.com. I honestly have no clue why I change so often for a website with a few yearly updates. My current thinking is to have something shorter and simpler. There is always the debate about whether a .com is better than other TLDs such as .net. I got jprl.net not so long ago but I was unsure if it was wise to use it or not. The .com is obviously registered by someone else for his personal website. But the content is the most important. Up to me to publish more often…