The site platform

This site is a static site built using Hugo, the popular static site generator built using the Go programming language.

I was part of the Grav core team for 2 years in the past. Grav is a flat-file CMS, which means it does not need a database, and stores data into files instead. Why not use that, which I know inside-out?

The reason I chose Hugo are:

  • a static site generates plain HTML files, which make it faster than having to process every request server-side
  • a static site is more flexible in terms of deployment and hosting
  • I was learning Go, and trying Hugo seemed a good thing for my learning process
  • it’s really fast, my local live reloading is instant and I don’t have to wait 10 seconds to recompile (not every platform can do this on my 2010 Mac)

The theme

I used the Ghostwriter theme, slightly optimized and tweaked to serve my needs. I might detail those changes soon.

Where do I host the site

I use Netlify. I used to run on Firebase Hosting, but I moved to Netlify during an outage of Firebase and I never looked back - it’s made exclusively for static sites, and it’s really awesome. I wrote a blog post about Netlify, check it out. I also wrote a post where I describe how I automatically deploy my posts and schedule them.

The posts

I write the posts using Markdown, which make it a great format because it’s very portable - I could move to Gatsby, Vuepress or any other static site generator in a minute if I want, since using Markdown there’s no lock-in, but I’m very happy with Hugo now.

My workflow for posting an article

When I write a blog post, I set the published date in the future.

I have a bad memory, so I write down everything. I have a list of scheduled posts in Notion and I try to keep one or two weeks of content in front of me, so I don’t have anxiety about not knowing what I am going to publish or write about.

Schedule

I push all my content to a private GitHub repository, which is synchronized to Netlify thanks to their integrations.

Every time I push to GitHub, Netlify deploys an updated copy of the site.

I just run an IFTTT webhook every morning at 08:00 CET to automatically trigger a new deploy on Netlify, which will publish the blog post of the day (I date every post at 7:00 AM, just to be sure).

I might be sleeping at 8 AM (hint: I’m usually not, as I wake up at 6 AM usually).

More often I’m out walking the dog, and it’s nice to have this piece of the infrastructure out of my mind. I just know a post is going to be published.

It’s also going to be posted on Twitter automatically, thanks to another IFTTT applet which is linked to my RSS feed.

Tweet new posts

Post images

I make sure all the post images are optimized using ImageOptim, to avoid useless bandwidth usage and a faster page speed.

Sometimes I use an app to generate a banner image for the post, which is also used in the Twitter card.

I used to create an ASCII-text image, using TAAG.

More recently I started adding images I draw using the new iPad (not the Pro, too pricey) and an Apple Pencil. After trying many apps to draw, I now use the Sketches app, it’s great. I am not gifted at all for drawing, I just like doing something kind of funny.

The newsletter

I have one main newsletter. I send an email every week, with the list of the posts I wrote during the week, plus any free resource I created.

It runs on ConvertKit, highly recommended.

Twitter

Twitter is a great platform for me. I have more than 2000 followers, although I don’t really know how that works and I think lots of those never see what I post.

Even though I joined Twitter in 2007, I never really used it effectively. I only started a few months ago to get any kind of interaction with the people out there 🙃

It’s pretty cool. I also follow some hashtags where newbies hang out, and I try to help sometimes with their questions.

I also have a cool script that runs on Glitch and it’s triggered 2 times a day by IFTTT. I explain it here. Basically I have a list of posts on Airtable that I posted in the past and I want to repurpose on Twitter.

It’s sad to write a post, share it once and never post it again, but doing it manually it’s 1) tedious 2) not something I can do consistently 3) had to track which posts I shared already.

Perfect for a machine, that posts them while I am sleeping, 2 per day.