Wrapping up 2019, I decided to rewrite my portfolio/blog in Gatsby—leaving Jekyll behind. This is a personal documentation of why I made the decision and how I approached the process.
Why not Jekyll
One word: Ruby. Two words: Ruby and Liquid.
RUBY. Two words:
Liquid. I am a complete stranger to the language, and have no huge interest in learning it. The only times I interfaced with Ruby was when handling Jekyll sites, and it was not fun. Having to look up everything each time trying to do anything, I often felt inadequate and frustrated. Slow build time didn't bother me as much as the occasional errors that broke the build. Yes, I could have invested more time learning the language. But no, I didn't want to do it.
Jekyll to Gatsby
It's something I know and use every day. There's a gazillion packages to take advantage of if I need. It's the familiarity with the tools that hooked me. Hugo, written in
GO, is famous for its incredible speed, but it wasn't as appealing to me for the same reason Jekyll wasn't attractive. With Gatsby, everything is just
Long answer: React, the new hotness, and the batteries included
I've been picking up React and Gatsby skills in the past year but my day job doesn't involve writing either. With no real project at hand, my understanding of the tools remained theoretical and basic. I needed a thing, and a long-dormant portfolio site seemed like a perfect thing. And actually Gatsby appears to be an impeccable tool to build a portfolio site with as it handles SEO, image optimization, responsive assets, and other tedious tasks with minimal efforts. It's an undebatable advantage over other static site generators.
A complete redesign is not the goal. This project is primarily to gain Gatsby experience and skills, and secondarily to clean up UX/UI. Other than removing jQuery dependency and adjusting layouts, the changes to the site bahavior and structure will be minimal if at all. I'm excited to learn more about
GraphQL, SSR, and a variety of other React- and Gatsby-specific tools, and going to document my learnings along the way.
Toward the end, I look to end up with a platform I can continue to improve and iterate upon, where I could publish my short keep documenting my learnings and post work samples.