Technical Post: Blogging process
I’ve had a couple of people enquire what the process and tools I’m using to create the posts while travelling. If you’re just here for the gripping commentary and photos, you can give this post a miss otherwise strap on your propeller hat and let’s dig in.
Like most things that have any sort of technical component, my approach and tooling have evolved over the years. My first incarnation of my travel blog was a self hosted wordpress site. It was fairly easy to use, but it was such a hassle keeping on top of all the updates for the platform and plugins. I needed to constantly update and given that I would typically only write blog content while travelling, it wasn’t ideal. After wordpress getting hacked for the fourth or fifth time, I decided to chuck it all out and start from scratch.
My current blogging approach harkens back to the good old days when we didn’t need a mountain of technology to serve up websites. toddcostella.com is hosted on Apache on a digital ocean droplet running Ubuntu.
I’m using Hugo which is a static site generator. I looked at a few different static site generators and landed on hugo, mostly due to the great theme support. I’m not a visually creative guy so finding nice looking themes that can be extended was something that was high on the selection list.
In prior trips, I’ve travelled with my MacBook Air, which is a pretty decent machine. A good balance between power and lightness. We’re travelling really light this trip with carry-on suitcases and small packs. I decided to use just my iPad instead of carrying both a laptop and an iPad. To date, this has worked out well. We’re only 1⁄3 of the way through the trip but so far things have held together well. I did pick up a Bluetooth keyboard case which isn’t perfect but is decent enough. I wouldn’t want to write any code on this thing, but it’s perfectly fine for jotting down a few thoughts.
Process
I have a slightly complicated process that culminates in a blog post.
Content is written in Bear App which is a note taking app for iOS. It’s really good and the primary reason I chose it, is I can export the content that I write in Markdown which is a lightweight text format that Hugo can grok when generating the site.
Photos are taken using iPhones. I debated getting a small camera for the trip, but honestly I left that too late. While the photos aren’t awesome, they’re good enough for this purpose. After a day of touring around, photos are curated on the phone (or on the synchronized iPhoto library on the iPad). An album for each day is created and my favourite ones are put in the album.
With the content now pretty much complete, it’s time to get it organized. The content for the post is imported into a git repository on the iPad. I found Working Copy which is a surprisingly good git client. Git is a version control system that developers and other creative types use to keep revisions of things. The things in my case are blog posts and photos associated with them. My personal git content is hosted on Bitbucket. Once changes are pushed to by repository, it’s safe. If I lose the iPad, there is a copy of everything I need in my git repository to recreate the blog.
With content in git, pushed to BitBucket, I’m now in the position to generate the site and publish it.
This is accomplished with a bash script that I run on my digital ocean droplet. I use Terminus which is a really good terminal emulator for iOS. I can ssh into my Ubuntu vm and do whatever I need to do.
There isn’t anything too magical on the Ubuntu side of things. I install Z shell as I find directory navigation something that I do quite a bit of. Fairly recently I started using Midnight Commander for some of the file system type tasks, moving groups of files etc. and it’s pretty good but I am using maybe 2% of it’s features and it’s not a crucial part of the tool chain.
That’s it. A bit messy with a few tools but all in all it works quite well.
Here is a summary of everything.
Bear App IPhoto Working Copy Terminus Git BitBucket Hugo Apache Ubuntu
If you have any questions, drop me a note and I would be happy to follow up in more detail.
There are a few things with the Hugo theme that I would like to tweak. The photo handling isn’t ideal, but it’s good enough for the time being. Once I have a spare moment I might look at implementing some sort of thumbnail generator into this process.