Jordan Butterwick

A Critique of Gatsby

What is Gatsby?

Learning Gatsby has been interesting. I really like the framework and have been enjoying my time with it immensly. It feels like a great balance between simple static sites and complicated dynamic ones. Probably because it's kind of both.

Gatsby uses Reactjs to build out a static website. React is interesting because it allows dynamism without page refreshes. React creates what they call a "Virtual DOM" that serves as a platform for changes on the website to take place.

Essentially, the Virtual DOM can be changed very quickly and easily with very little effort from the browser. React then takes these changes, "reacts" to them, and makes the true DOM reflect those changes. This is a much more resource efficient way to make dynamic changes to a website on the fly than to have what some might call "true" dynamism, using JavaScript or PHP functions to make changes to the web page.

Using Gatsby

Using Gatsby has been a breeze. It may have a lot of dependencies, but it contains everything you need to rapidly develop and deploy an static website.

Here are some pro's I found while learning Gatsby:

  • gatsby develop
  • Gatsby has built in support for Zeit Now
  • React and JSX are fun to use
  • Resources and tutorials

And here are some cons I found

  • It's difficult to use images and external files
  • A lot of dependencies
  • Awkward Learning Curve
  • script tags become weird

Summary

Gatsby is awesome to learn when just starting out. It's fun, it's fast, it has a lot of cool flashy features that make you "ooh" and "ahh". But with the new found efficiency comes a couple of drawbacks. Not being able to have pure javascript without a dangerouslyinserthtml is weird and takes a couple of tries to learn whats allowed and what isn't and how to deal with it.

Operations that in pure HTML and CSS and JavaScript are rather easy get a layer of complexity added to them that kind of slaps you in the face.

All in all, I can see how it can be an extremely helpful tool in the hands of a developer with a lot more experience than me. Maybe one day I'll get there. It's been a lot of fun using Gatsby for this project, and rest assured I'll be using it again in the future. Maybe one day I can be an expert at Gatsby. Who knows.