It's 2021, we're still in the middle of a pandemic. All this time at home has given me some time to learn new technologies, reflect on life, finally clean the garage, and build a new website. Not that my old website was bad, but it was more of a novelty and it didn't help my SEO. It was time for a fresh start which a lot of us have been seeking for over a year now.
At work, I've been working on more projects that utilize statically generated frameworks such as Gatsby and Next.js, and I'm growing fond of them. For my purposes, Gatsby was the best choice and I rolled with it. I'll explain my decision more throughout this article.
What was the motivation for a new site?
There are quite a few points that motivated a new site for me but it mostly boiled down to my web presence. As I become more involved as a freelancer and in the open-source community, it's more meaningful to have a bigger web presence outside of the normal means of social media and Github. Some of the other motivations are:
- A more professional site versus the old novelty site.
- A blog where I can share my thoughts and knowledge while also improving my writing and communication skills.
- Ability to deep-dive into new technology that I can apply to my job.
- Improve the SEO on my site.
For the past 5 years, my job has consisted mostly of backend development and it was time to brush up on my frontend skills again.
Whenever you plan to start building a new website, you must start by deciding the technology you want to use and stick with it. This is the hardest part for any engineer. For personal projects, an engineer will most likely not write up a requirements document or have a complete picture of the end product; they typically fly by the seat of their pants. Every time I've redesigned and re-engineered this site, it was driven by the craving for more knowledge without much thought of the end product. This go-around I've changed, somewhat.
My old site was a rip-off of the look and feel of VSCode. The idea was to make it look like you've opened up a new VSCode window with a handful of files, with each being a different page of the site. Each file was written in a specific format or language in a corny attempt to reflect information about me. It was a novelty that got a great response from my fellow programmers but no so much from prospecting companies looking to hire me and my SEO was garbage. It was my first attempt at building a statically-generated website using Metalsmith and it was fun to build. With that type of layout, design, and technology, I was extremely limited and I don't like being limited.
It was time for something new, something more extendable and meaningful. I knew if I was going down this path, I needed to start thinking ahead. There are a ton of static site generators out in the wild and it was time to make a choice that will provide a much more pleasant developer experience and be much less limiting. I was heavily evaluating different options such as Next.js, Nuxt.js, and Gatsby and the latter won for my purposes. All three of those options are great but have their pros and cons. At the time, Gatsby won particularly due to its extensibility and heavy GraphQL usage that simplifies building out a site. Gatsby's competitor, Next.js, is also a great option but required more work out of the box for what I wanted in my personal site.
This led me to the following tech stack:
- Gatsby — Static site generator framework using React.
- Styled Components — Easy way to write CSS in JS for React components.
- Contentful — Headless CMS where much of the content is managed for the site.
- Netlify — Awesome platform for building and hosting websites and apps.
- A handful of different Gatsby and React plugins.
- Plus a couple of custom Gatsby plugins.
I've desired a blog for a while now but I didn't have the time in the past. With this pandemic, I've found a bit of extra time that allows a blog to happen. It's a great way for me to improve my writing skills and share some of my knowledge with everyone. With the means of a blog, I hope to help other engineers and share my random ramblings with others.
From technical articles to personal thoughts, I hope to share some wisdom and knowledge through my blog versus social media.
While I'm new to the blogging scene, I'm excited to get started on writing articles to share with you! Stay tuned for updates.