This is My Website now

on Web,

Before this, I was using Ghost (the open-sourced version) as my blogging platform. At the time, the idea of having previews as you write was brilliant (and it still is). However, I soon felt restricted about the things I could present, since adding there was no way of adding scripts and snippets to blog posts.

For the past few months, I have been working on a new blog that could support my favourite way of writing posts. Interactive posts are the most fun to write, and also challenging to make.

Many other platforms I’ve used too had trouble with supporting code blocks that run. A static site builder generates both the theme and the content at the same time, so it’s extensible enough to make interactive posts without feeling like I’m hacking the system.

Not just minimal

Even though the site is compiled using a static site generator, it does not have to be bare-bones minimal.

Having used Webpack in WordPress themes before, I found a Hugo theme that uses Webpack. With that solved, it’s simple to include Sass and Javascript transpiling/ minifying into this website. This wonderful starter theme can be found here.

Lots of addons

On top of the starter theme, I’ve added Bootstrap, Font Awesome, jQuery, multiple iterations of a library to generate backgrounds, my custom sidebar, and a nice contact form. It is just enough to get started.

SSL with Let’s Encrypt

SSL certificates provided by Let’s Encrypt. Using the Nginx plugin for Certbot, and setting up a Cron job for automatic renewals means no downtime when renewing SSL certificates.

CI with Jenkins

A Jenkins CI server builds the website and deploys to production when commits are pushed.

Hosted on Digital Ocean

Finally, if anyone wonders, this site is hosted on an Ubuntu VPS using Nginx.

The contact form requires a backend, so a server is still needed. Gocontact (I wrote this) runs the contact form using reCaptcha.