Ten Years of Blogging

Nick Galbreath

A look at various blogging platforms I’ve used over 10 years.

I really like writing. But writing is slow and error prone for me. And coding is fast and easy for me. So it’s very often find myself at the intersection of writing and coding. It’s also a great way for me to investigate various technologies outside of the day job.

I just found some old posts from 2007 (not currently online, you’ll see why below), and thought I’d summarize my history of my attempts at blogging and blogging platforms. Missing are experiments with WordPress and Medium.com.

Blosxom circa 2007 (or earlier)

blosxom. It’s pronounced “Blog-some”… get it??

It’s one-file perl CGI script that uses normal files for articles. You just make and edit text files, it serves them. It slaps on a header and footer. No database. No markdown. Completely great for old shared hosting accounts circa 2007.

I can’t remember but I believe my issue at the time was, “where do I save my files?” – this was before the rise of GitHub, and I didn’t want to deal with backup/restore/SFTP or other nonsense.

Blogger

At some point I was using blogger before it was bought by Google. It had a number of problems:

At some point Google bought it. Integration with Google’s infrastructure took a long time. Then they rolled out some change that made all article loading to be async with the page. Besides ugly (with a big gear spinning), it was slow. I think the idea was that it would get a different version of the page depending on your screen size or mobile capability. This was like 2012 or so, so the Web was a hot mess of HTML and JS incompatibilities.

Now days, I think blogger is too big to for Google to kill off, but it’s also not making any money. So improvements are quite modest. I haven’t looked at it a long while.

Jekyll and GitHub pages

Somehow I moved off Blogger to using Jekyll and GitHub Pages. I loved the concept. You get complete control, while being free, and on high-speed infrastructure with nothing to manage.

In practice, I found trying to use Jekyll locally to be near impossible. This is mostly due to ruby and the difficultly of making ruby development be identical to what GitHub uses in production (or perhaps not ruby but GitHub’s use of ruby). Maybe it is better now, but GitHub now uses a very old of Jekyll compared to the open source project, so who knows.

Hugo and GitHub Pages

I swapped over to Hugo. I love it. And compared to Jekyll, it’s trivial to get the same setup of Hugo on multiple machines and operating systems (it’s a single binary).

But GitHub Pages at the time had no TLS support. At least now for the few years I was using it. Currently, they do support TLS for their GitHub.io domain, but do not support it for custom domains.

Hugo / AWS S3+CloudFront / Travis-ci.org

To work around the TLS issue on GitHub pages, I used a Hugo + AWS S3 + AWS CloudFront and published via travis-ci.org. You know what?

The downsides are:

I have mixed feelings about travis-ci. I mean it’s free so really I can’t complain.

Hugo / GitHub Pages / Cloudflare / Travis-ci.org

I decided the complexity and cost of AWS is not worth it for something so simple. And moved my DNS and TLS to Cloudflare, and my origin back to GitHub Pages.

I’m oddly surprised at the great support for GitHub pages with Travis-CI. It’s faster and simpler than pushing to S3 but yet does more. Travis takes the hugo output and over-writes everything in client9.github.io repo in one git commit. This makes the deploy atomic (I think). Travis-ci also blew out for 4 hours today, so there’s that too. Hey it’s free.

CloudFlare’s TLS like AWS has a super easy TLS setup. Yay! Since I know someone will ask, “How does CloudFront compare with CloudFlare”… Both made it simple to deliver TLS content, both seemed better than not using a CDN. So both “met my requirements” for this project. Your mileage may vary.

Hugo is still great.

What’s next?

The biggest issue is being able to write… anywhere. With the extra condition that I don’t manage any servers. GitHub has really let me down here. It’s so close, yet so far. They integrated a nice code editor into their site, but… it’s complete crap on mobile (and even on the desktop it is crippled). They seem to really be doubling down on their desktop Atom editor, and I’m not sure what to make of that.

I currently using some unnamed Git app on iOS. It works, but is not ideal.

Given a static site, a static editor would be a perfect match. GitHub / Google / AWS provide all the APIs you need to making a browser-based editor using just Javscript, especially with great components like Quill JS and CodeMirror. I started down that road but quickly lost a Saturday and realized I bit off more than I could chew.

Fortunately, I discovered Netlify CMS. It’s early days for this project but appears to work. Well, in fact, I’m writing this article using it right now. We will see what happens when I hit Save.

Update: After filing 3 bugs, Save and Netlify CMS works! More details to come.