10 June 2019

This Blog is Brought to You by Jekyll, Not Rails

ruby operations

Even though I am a ruby developer, my blog isn’t written in rails. I know your first thought here must be to shun me, but hear me out. I serve my blog on Heroku, using their static buildpack, generating the content with Jekyll. I am much happier because of this.

I love ruby, I spent my early career as an app developer and I fell in love with tools like fastlane and cocoapods. I love how expressive the language can be and I love the community. So whenever I want write some back end thing, the first thing I reach for is Rails.

This was the case for the first few iterations of my blog. The story is not unique. I should have a blog, I have so many good opinions. I should resurrect my blog, I am so much more mature now and my opinions are so much better. So after a few days and having read pretty much every ‘How to Build a Blog’ post on the internet (yes, every time) I have a working blog. It’s a bit rough around the edges but it works.

You know, I really like writing in markdown, not HTML or HAML (we were all young once) so I need to hook up a markdown to HTML converter. Ah but now I need to refactor the controller and the way it prepares the content. I should also restyle the publish post page. Now I need to restyle the rest of the admin pages. I’m a bit busy for all that now, I’ll come back to it later.

That incarnation of the blog will never be seen again.

Maybe building a glorified markdown reader from scratch in Rails isn’t the best way to go, I’m never going to spend a lot of time on the plumbing of the blog - it’s hard enough to find time to write and polish the content. You know, I never did get round to setting up backups for the database, is everything still working?

One of the best realisations I every had is that as a developer, I actually quite like the idea of git being my CMS. No admin pages, just write the file, git commit and git push. Put it on Github and backups are done for you. I’m more comfortable with this than I am with a GUI. If you think I’m enlightened because of this, I actually got it from Release It! by Michael Nygard.

Jekyll solves all these problems. Store it with git and deploy it with Heroku and there’s no thinking, nothing to constantly refactor, just write the posts and push to main. All I have to do now is settle on a design.


Since Jekyll has been basically abandoned, I’ve made the switch to using Bridgetwown and I am loving it!