Why you should use GatsbyJs and when not to use it
Tags: gatsby, webdev, javascript, react
Published: 2020-05-31 18:03:32

## What is GatsbyJS?

It is a blazingly fast modern site generator for React. ( The website defines it this way ). What they mean is:
- **It is blazingly fast!** Take my word, anyone who visits your website will go like Whoa!
- **It is a modern site generator:** You can build websites using it
- **for React** Yes, it works with React.

## Do I have a demo?

Yeah sure, my blog is completely based on GatsbyJs, you can visit it to experience its speed : https://www.tharunshiv.com

## How it basically works?

Gatsby does the data sourcing and the fetches the files during the build time itself. All this built data is then used to generate the HTML, CSS and JavaScript file necessary to run a super fast website. This static rendering is the backbone of Gatsby.

## Why you should consider using GatsbyJs??

### 1. The Speed

I would mentioned the word 'fast' and 'speed' a lot of times in this post, this is pretty much the same where ever you read about Gatsby, because it is indeed superfast. By employing the speed of Gatsby and the power of PWA, you will be able to build a mobile app like experience, where the user will feel like switching pages in a mobile app, rather than a website.

> A PWA is a progressive web app. [Read about how you can convert any website into a PWA in 3 simple steps here](https://dev.to/tharunshiv/convert-any-website-into-a-pwa-in-just-3-simple-steps-35pp Read more about it here)

### 2. The Plugins

There are amazingly useful plugins that are available at Gatsby's official website, which you can `npm instal` or `yarn add` ( ways of installing packages to your project ). Some useful plugins are:
- `gatsby-plugin-manifest` : Make your site a installable and a PWA with this plugin
- `gatsby-plugin-offline` : Make your site run offline with this plugin.
- `gatsby-plugin-google-analytics` : Use Google analytics for your website with this plugin
- `gatsby-remark-embed-youtube` :  Embed YouTube videos into your website

> [GatsbyJS Plugins](https://www.gatsbyjs.org/plugins/)

And a lot more amazing plugins that you can use to speed up most of the work efficiently and make your website look feature rich.

### 3. Starters & templates 

There are a sufficient amount of GatsbyJs Starter repositories and templates that is as simple as cloning and changing the content of them. In this way you can completely develop websites like your Blog, super quick and efficient. The documentation is super friendly, and I would definitely recommend you starting from there if you want to learn Gatsby.

> [GatsbyJS Starter Library Link](https://www.gatsbyjs.org/starters/?v=2)

### 4. The rise of the Jamstack

Jamstack is the culture of using JavaScript, APIs and Markup to build website. They mainly focus on how you can use these technologies to build websites that don't depend on managing servers, but decouple the front-end and the backend, supported by the CDN ( Content delivery Network ). 
Building websites with Gatsby is again a way of following the Jamstack culture. This results in a better performance, increased security, cheap and easy scaling, better developer experience.

### 5. ReactJs based

Since it is nothing but ReactJs itself, you can use the existing techniques and components of ReactJs here. The ReactJs community is powerful with a lot of existing components that are one click away. This is a huge advantage as you need not worry about how new GatsbyJs is.

### 6. Ease of use with Markdown

If you are using dev.to , you will definitely know what Markdown is. Markdown is a simple syntax that can be used to write rich text. You can use Markdowns in Gatsby and convert it into a blog based on Markdown. Everytime you need to write a new article, all you need to do is add a new `.md` file and push the code, that is it! How simple is that? 

### 7. SEO

The use of GatsbyJs enables your websites to harness a lot of optimization techniques used by the internal code. This results in your website being ranked higher on search engines. There are also a lot of plugins that can help you boost this.

## Why should you avoid Gatsby?

### 1. Increasing build times

As the content in your website increases, the build time also increases. This is not only disappointing during development, but also consumes time during deployment. So if you want to build a site that changes very often, Gatsby is not recommended.

### 2. Completely Dynamic website

If your website is completely a Dynamic one, then I would recommend you to go with similarly advantageous technology such as Next.js . Gatsby is more suitable for Blogs, portfolios, landing pages and other websites with lesser dynamic activities. ( feel free to correct me in the discussions if I'm wrong )

> Consider subscribing to my YouTube channel if you like it : https://youtube.com/c/developerTharun

Thank you very much for reading, let me know in the discussions if you have any doubts or suggestions. 

Written by,
{% user developertharun %}

# Thank you for reading, This is Tharun Shiv a.k.a Developer Tharun

![Tharun Shiv](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xtxq6bdms36fmn62450h.png)