Henry Chong

Running On Gatsby

Logo for Gatsby, static website generation platform.

πŸ“·: Gatsby, Inc.

This website is now running on Gatsby, a static website generator. Microsoft is shortly retiring the VM type that my website used to run on, which was the kick I needed to finally revisit everything, and the landscape is a bit different after a decade!

I've only just switched over, and my bare-bones implementation is still missing many features, but I've been quite pleased with Gatsby and the free hosting on Github Pages so far.

What else was out there?

I looked into several options before settling on Gatsby, including:

  • Medium as a primary web presence.
    • I enjoyed the authoring experience and it's great for writing blog content, but the lack of customizability and their business model meant it wasn't the right fit.
    • I particularly wanted to ensure that my content remained widely accessible to the public, not restricted to Medium subscribers.
    • As far as I'm aware, Medium doesn't have a free API or similar so I couldn't use it as a headless CMS either.
  • Squarespace and similar website builder services.
    • I liked the visual branding but again the lack of customization and cost eventually meant I didn't go down this route.
    • I also wanted to use my website as a way to stay technical, and this felt like "Easy mode" when I was after at least Normal difficulty (for a software engineer!)
  • Jekyll as a static website generator.
    • Very popular in the community, and I did almost go this route. Unfortunately for Jekyll, I wasn't keen on installing Ruby on Windows.

Why did I pick Gatsby?

Gatsby won because it ticked many boxes I was looking for:

  • A focus on content. With everything configured, I can easily create new blog posts in Markdown and publish directly. I don't need fancy tricks, but even if I did, I can leverage MDX where needed.
  • Avoid tech stack lock-in. Having experienced two website transitions before, I wanted a platform that would easily enable me to switch out if required in the future. Unlike Wordpress or Orchard as full blown CMS systems, I will always have my Markdown content, images and everything clearly managed in Github. If I want to migrate to Next.js in the future, I expect this to be easier!
  • Modern (ish) open source. I've spent many of the last few years working on Meta specific internal, proprietary technologies. Gatsby is the perfect blend of open source, familiar and novel work. I've worked with React and GraphQL from my time at Meta, but I'd still need to stretch myself to learn and use Gatsby.
  • Decent documentation. The platform and product makes sense, they have an excellent starter tutorial and honestly it's refreshing for me to be able to Google and StackOverflow answers for a change!

We're just starting out

I have plenty more to learn about Gatsby, but even just getting to this point has given me plenty of ideas for upcoming blog posts, including:

  • How to set up Github Pages deployment
  • How to add a custom domain with Github Pages
  • How to add a custom font
  • How to add code formatting
  • How to integrate with Google Analytics and a GDPR-compliant cookie banner

At the time of writing, I don't have comments yet (sorry!) but if there's any specific topic you'd rather see first, get in touch and let me know!