- The site platform
- The theme
- Where do I host the site
- The posts
- My workflow for posting an article
- Post images
- The newsletter
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)
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.
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.
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.
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.
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 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.