Last Updated on October 3, 2018
Gatsby is a fast, simple and multi-purpose solution that simplifies website development. For a budding organization, to invest in complicated deploys with complex databases and servers are going to work expensive and time-consuming. Gatsby.js can help in the construction of a site as static that is compatible with multiple services. Sites that undergo minimal changes are the best models for static sites.
Types of sites that work well with a static pattern
- Company Information
- Product Brochure
- Event announcement sites
What are Static site generators?
Static site generators are those that are used to construct and update a static site. It expands the ability to quickly serve the content to the users.
In a recently conducted survey, 88.5% of the survey contributors mentioned slow loading time as the top reason for a visitor to leave a website. Static sites built with a static site generator like Gatsby load very quickly. They are relatively fast, secure, reliable, flexible, scalable and much cheaper to create.
Why use a static site generator?
Static site generators are the backbone to create static websites.
- Users tend to abandon sites that take a longer time to load. Static sites load extremely fast.
- Static sites are easy to cache
- Serve via CDNs.
- No database to breach
- No vulnerabilities
- As you are not working within a framework, there are no limitations as to how you can construct the site.
- Hosting a static site is inexpensive and completely free
- Since static sites are made up of static files, it is easy to track and make changes using control systems.
- A static web page allows you to make changes and view those changes in real-time without refreshing the browser.
Can time and resource constraint businesses benefit with Static Site Generators?
If you are looking to brand yourself well in the digital space, you need to build your own website. Websites act as one of the best networking tools where you share your offerings, expertise and strengths. But, building a website involves serious investment in terms of time and resource depending upon whether you want it to be simple, static or dynamic.
HTML and CSS can build Static websites and there is no requirement for scripting. Content stays the same. Even in a static site, you can integrate some simple, user-friendly features and functionalities that can make it more responsive and compatible to multiple devices thereby saving on the overall cost and time for designing a website.
How Does a Static Site Generator Work?
- With the help of a simple document markup language like HTML, you can write the content.
- By selecting a pre-designed template, one can load the content.
- The pre-designed template and the document are processed through the static site generator which creates the HTML files.
- After the creation of the HTML files, you can easily load it to a configured web server or Content delivery network to make the static pages accessible.
What is Gatsby and why should you choose to create static files with Gatsby?
Gatsby’s flexible plugin system allows users to bring their own data sources. Static sites generated via Gatsby are easy to deploy. Implementing Gatsby code and data splitting is very easy. Loading is quick. With the help of React components, Gatsby allows you to share and reuse them across pages with the help of GraphQL.
Some popular Static site Generator Gatsby Deployments
There are hundreds of users. To name a few;
- Facebook is one of the prime examples to cite that has been using Gatsby to support their docs and blog.
- Stitch Fix, an online dealer offering exceptionally personalized shopping experience designed their site using Gatsby.
- With the help of Gatsby, Nike’s “Just Do It” campaign site was build.
- Airbnb is yet another user of Gatsby.
Key features of Gatsby:
- Gatsby can build your site as ‘static’ files and deploy them without a server, cached on CDN
- Gatsby supports faster loads through plugins and starter kits. Google’s Accelerated Mobile Pages (AMP) project is a specific type of static page that supports faster loads.
- Many of the CDN-providing hosts including Netlify support sites built on Gatsby static frameworks
- Gatsby supports offline access which is one of the core principles of Progressive Web Apps.
- Gatsby supports content pre-fetching – a performance optimization function, where, the content to be available in the next link is made available in advance in the backdrop.
- Page caching is much simpler with Gatsby
- With Gatsby, there is no irrelevant code fetching. Just ideally fetches the only page that is in need.
- Gatsby offers progressive image loading, Responsive image loading and Inlines Critical CSS
- Since there is no requirement for a server, there is no need to worry about security and framework upgrades
- Faster edit/debug cycle time
- Hot reload content – This facility is a boon to modern web development. The facility lets you edit content and view the changes simultaneously without refreshing the page. Gatsby comes with this facility.
- Componentization – allow developers to plug-n-play either external 3rd party components or internal components from a shared codebase or component library.
- Declarative API queries – Gatsby is built on top of GraphQL, which allows you to write declarative queries for the data you want, and co-locate your components.
- One-way data binding – essential to building complex frontend component
- Allows a hierarchical UI construction
- Faster design iteration – programmatic design, native support for design systems, native support for component libraries
- Works well with static hosts
- Offers various themes
- Supports modern code syntax
Now let us see how to create a blog with Gatsby
- node v8
You can easily set up your Gatsby blog by installing the Gatsby CLI
The command for the same is;
npm install -g gatsby-cli
The Gatsby CLI comes with several development features such as Gatsby build, Gatsby develop, etc. Once, you do this, you are ready to start off with your CLI (command line interface) that will let you start a working site, and develop the site.
gatsby new my-new-blog && cd $_
The above command will help you create the folder “new-blog” and eventually change it into a directory.
How to build a new Gatsby site using the default starter?
To create a Gatsby site all you need to do is install Gatsby starter.
gatsby new my-new-blog-site
gatsby new gatsby-site https://github.com/gatsbyjs/gatsby-starter-default
The commands for your default Gatsby starter project is as follows;
Let your site be in the develop mode
Now, move your new site’s directory and start the site
You can now open the source code and start editing your blog site. Save all your changes and the browser will update in real-time. You can literally see can see that your code and content changes happens almost instantly in the browser soon after you save the file.
Gatsby uses hot reloading to expedite the development process. Gatsby development environment is accessible at localhost:8000
Once your data is ready and you feel like adding an image component then, this is how you can do;
Although these commands are the written just to explain. You can change by choosing the path rightly.
How can you build components?
Since Gatsby is built on React, you can define components that are actually React components – a piece of code written generally with JSX that can accept input and return elements that purely describes a part of UI.
How can you add functionalities to Gatsby?
The answer is through Gatsby Plugin system.
With plugins you can:
- Add external data or content
- Transform data from other formats
- Add third-party services like Google Analytics, Instagram etc, to your site
For example, you can add Google Analytics to your Gatsby site.
All you have to do is;
npm install –save gatsby-plugin-google-analytics
Similarly, there are different plugins to perform different functions.
How to Query data?
GraphQL is a Query language that can help in pulling the required data that you wish to have in your component. It works in a similar way as a SQL. In short, Gatsby leverages GraphQL to let components to declare the data they would be requiring.
How to Prepare Your Pages to Go Live
Once you build components, add plugins and create your pages, you are set to test it and prepare your site to go live. Lighthouse is one important tool that you will be using to improve the quality of your pages. By merely running Lighthouse’ audit, you can address minor errors it finds and implements the changes quickly. This can be the big step to prepare your site to go live.
To name a few Static file hosting providers;
Whether it is a blog or a website design, Gatsby can work as a better choice for you. Some of the top web development companies are seeing major benefits with the facility offered by Gatsby.
With close to 457 plugins, more than a thousand contributors, Gatsby offers exceptional performance and developer experience. Clients using Gatsby have experienced reduced build-time by up to 75% and runtime by 31% with reduced memory usage while server rendering. The latest version as of writing this article is Version 2.0.0.
Like how you learned to create a blog in this article, you can create new Gatsby sites, add pages and other components, enhance with plugins, source data, transform the data and simultaneously use GraphQL too to query data. The facilities are wider with Gatsby. Dive in and you will learn there are more to experiment.
“You will easily get lost for hours in the rush of creation trying one thing after another improvising our way to an eventual design” Fed Brooks