At the company I work for, we're shifting over to a stack that uses Gatsby (which means we'll also be using React and GraphQL). While I have intermediate level expertise in React, I didn't even know what GraphQL or Gatsby were the first time they were mentioned. It was obvious I would have to do a lot of catching up.  I figured the best thing to do would be to try and convert my existing portfolio site into a JAM Stack site with Gatsby and React.

While it means a lot of work, I firmly believe the best way to learn something new is to do it (rather than read about it, or watch someone else do it, although doing those things can add to your learning).

The old cristin.io was a single page site that used React. It didn't need React, but I'd used it just to learn it, just like I'm doing now.

My new site, as I envisioned it, would incorporate a blog with single posts, category pages, and an index page. I'd keep my Resume page, but redesign it. 

Styles would be handled with Emotion, another technology I'd soon  be using at work. I didn't know how routing would work until I figured out Gatsby (it's so easy!) and I'm slowly getting used to GraphQL. 

The funnest part of the redesign was "shopping" for cool packages and plugins.

Below are the most useful ones I found and ultimately incorporated into my new site:

  1. Emotion packages for styled components
  2. FontAwesome packages
  3. The ability to use SASS
  4. A page transitions animation plugin
  5. A GraphQL friendly API for my CMS, ButterCMS
  6. The ability to parse html returned from my CMS' API
  7. The ability to change metadata dynamically
  8. A sitemap generator
  9. A code syntax highlighter
  10. A robots txt generator
  11. Netlify CLI for deploys
  12. Google Fonts
  13. Google analytics

Overall it was a great learning experience and I highly recommend that you do a project with the technologies you want to learn instead of simply trying to read up on them.

redesign icon