<p align="center">
  <a href="https://www.gatsbyjs.com">
    <img alt="Gatsby" src="https://www.gatsbyjs.com/Gatsby-Monogram.svg" width="60" />
  </a>
</p>
<h1 align="center">
  Gatsby v4
</h1>

<p align="center">
  ⚛️ 📄 🚀
</p>
<p align="center">
  <strong>
    Static. That. Scales.
  </strong>
</p>
<p align="center">
  Gatsby is a free and open source framework based on React that helps developers build blazing fast websites and apps. </br> It combines the control and scalability of dynamically rendered sites with the speed of static-site generation, creating a whole new web of possibilities.
</p>
<p align="center">
  <a href="https://github.com/gatsbyjs/gatsby/blob/master/LICENSE">
    <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="Gatsby is released under the MIT license." />
  </a>
  <a href="https://circleci.com/gh/gatsbyjs/gatsby">
    <img src="https://circleci.com/gh/gatsbyjs/gatsby.svg?style=shield" alt="Current CircleCI build status." />
  </a>
  <a href="https://www.npmjs.com/package/gatsby">
    <img src="https://img.shields.io/npm/v/gatsby.svg" alt="Current npm package version." />
  </a>
  <a href="https://npmcharts.com/compare/gatsby?minimal=true">
    <img src="https://img.shields.io/npm/dm/gatsby.svg" alt="Downloads per month on npm." />
  </a>
  <a href="https://npmcharts.com/compare/gatsby?minimal=true">
    <img src="https://img.shields.io/npm/dt/gatsby.svg" alt="Total downloads on npm." />
  </a>
  <a href="https://gatsbyjs.com/contributing/how-to-contribute/">
    <img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs welcome!" />
  </a>
  <a href="https://twitter.com/intent/follow?screen_name=gatsbyjs">
    <img src="https://img.shields.io/twitter/follow/gatsbyjs.svg?label=Follow%20@gatsbyjs" alt="Follow @GatsbyJS" />
  </a>
</p>

<h2 align="center">
  <a href="https://www.gatsbyjs.com/docs/">Quickstart</a>
  <span> · </span>
  <a href="https://www.gatsbyjs.com/tutorial/">Tutorial</a>
  <span> · </span>
  <a href="https://www.gatsbyjs.com/plugins/">Plugins</a>
  <span> · </span>
  <a href="https://www.gatsbyjs.com/starters/">Starters</a>
  <span> · </span>
  <a href="https://www.gatsbyjs.com/showcase/">Showcase</a>
  <span> · </span>
  <a href="https://www.gatsbyjs.com/contributing/how-to-contribute/">Contribute</a>
  <br />
  Support: <a href="https://twitter.com/AskGatsbyJS">Twitter</a>, <a href="https://github.com/gatsbyjs/gatsby/discussions">Discussions</a>
  <span> & </span>
  <a href="https://gatsby.dev/discord">Discord</a>
</h2>

Gatsby helps professional developers efficiently create maintainable, highly-performant, content-rich websites.

- **Go Beyond Static Websites.** Get all the benefits of static websites with none of the
  limitations. Gatsby sites are fully functional React apps, so you can create high-quality,
  dynamic web apps, from blogs to e-commerce sites to user dashboards.

- **Choose your Rendering Option.** You can choose alternative [rendering options](https://gatsbyjs.com/docs/conceptual/rendering-options/), namely Deferred Static Generation (DSG) and Server-Side Rendering (SSR), in addition to Static Site Generation (SSG) — on a per-page basis. This type of granular control allows you to optimize for performance and productivity without sacrificing one for the other.

- **Use a Modern Stack for Every Site.** No matter where the data comes from, Gatsby sites are
  built using React and GraphQL. Build a uniform workflow for you and your team, regardless of
  whether the data is coming from the same backend.

- **Load Data From Anywhere.** Gatsby pulls in data from any data source, whether it’s Markdown
  files, a headless CMS like Contentful or WordPress, or a REST or GraphQL API. Use source plugins
  to load your data, then develop using Gatsby’s uniform GraphQL interface.

- **Performance Is Baked In.** Ace your performance audits by default. Gatsby automates code
  splitting, image optimization, inlining critical styles, lazy-loading, prefetching resources,
  and more to ensure your site is fast — no manual tuning required.

- **Host at Scale for Pennies.** Gatsby sites don’t require servers, so you can host your entire
  site on a CDN for a fraction of the cost of a server-rendered site. Many Gatsby sites can be
  hosted entirely free on [Gatsby Cloud](https://www.gatsbyjs.com/cloud/) and other similar services.

[**Learn how to use Gatsby for your next project.**](https://www.gatsbyjs.com/docs/)

## What’s In This Document

- [Get Up and Running in 5 Minutes](#-get-up-and-running-in-5-minutes)
- [Learning Gatsby](#-learning-gatsby)
- [Release Notes](#-release-notes)
- [Migration Guides](#-migration-guides)
- [How to Contribute](#-how-to-contribute)
- [License](#-license)
- [Thanks to Our Contributors](#-thanks)

## 🚀 Get Up and Running in 5 Minutes

You can get a new Gatsby site up and running on your local dev environment in 5 minutes with these four steps:

1. **Install the Gatsby CLI.**

   ```shell
   npm install -g gatsby-cli
   ```

2. **Create a Gatsby site from a Gatsby starter.**

   Get your Gatsby blog set up in a single command:

   ```shell
   # Create a new Gatsby site using the interactive setup wizard
   # Give it this name: My Gatsby site
   gatsby new
   ```

3. **Start the site in `develop` mode.**

   Next, move into your new site’s directory and start it up:

   ```shell
   cd my-gatsby-site/
   gatsby develop
   ```

4. **Open the source code and start editing!**

   Your site is now running at `http://localhost:8000`. Open the `my-gatsby-site` directory in your code editor of choice and edit `src/pages/index.js`. Save your changes, and the browser will update in real time!

At this point, you’ve got a fully functional Gatsby website. For additional information on how you can customize your Gatsby site, see our [plugins](https://gatsbyjs.com/plugins/) and [the official tutorial](https://www.gatsbyjs.com/tutorial/).

## 🎓 Learning Gatsby

Full documentation for Gatsby lives [on the website](https://www.gatsbyjs.com/).

- **For most developers, we recommend starting with our [in-depth tutorial for creating a site with Gatsby](https://www.gatsbyjs.com/tutorial/).** It starts with zero assumptions about your level of ability and walks through every step of the process.

- **To dive straight into code samples head [to our documentation](https://www.gatsbyjs.com/docs/).** In particular, check out the “<i>How-to Guides</i>”, “<i>Reference</i>”, and “<i>Conceptual Guides</i>” sections in the sidebar.

We welcome suggestions for improving our docs. See the [“how to contribute”](https://www.gatsbyjs.com/contributing/how-to-contribute/) documentation for more details.

**Start Learning Gatsby: [Follow the Tutorial](https://www.gatsbyjs.com/tutorial/) · [Read the Docs](https://www.gatsbyjs.com/docs/)**

## 🚢 Release Notes

Wondering what we've shipped recently? Check out our [release notes](https://www.gatsbyjs.com/docs/reference/release-notes) for key highlights, performance improvements, new features, and notable bugfixes.

## 💼 Migration Guides

Already have a Gatsby site? These handy guides will help you add the improvements of Gatsby v4 to your site without starting from scratch!

- [Migrate from v3 to v4](https://www.gatsbyjs.com/docs/reference/release-notes/migrating-from-v3-to-v4/)
- [Migrate from v2 to v3](https://www.gatsbyjs.com/docs/reference/release-notes/migrating-from-v2-to-v3/)

## ❗ Code of Conduct

Gatsby is dedicated to building a welcoming, diverse, safe community. We expect everyone participating in the Gatsby community to abide by our [**Code of Conduct**](https://www.gatsbyjs.com/contributing/code-of-conduct/). Please read it. Please follow it. In the Gatsby community, we work hard to build each other up and create amazing things together. 💪💜

## 🤝 How to Contribute

Whether you're helping us fix bugs, improve the docs, or spread the word, we'd love to have you as part of the Gatsby community!

Check out our [**Contributing Guide**](https://www.gatsbyjs.com/contributing/how-to-contribute/) for ideas on contributing and setup steps for getting our repositories up and running on your local machine.

### A note on how this repository is organized

This repository is a [monorepo](https://trunkbaseddevelopment.com/monorepos/) managed using [Lerna](https://github.com/lerna/lerna). This means there are [multiple packages](https://github.com/gatsbyjs/gatsby/tree/master/packages) managed in this codebase, even though we publish them to NPM as separate packages.

### Contributing to Gatsby v3

We are only accepting critical security patches for Gatsby v3.

## 📝 License

Licensed under the [MIT License](./LICENSE).

## 💜 Thanks

Thanks go out to all our many contributors creating plugins, starters, videos, and blog posts. And a special appreciation for our community members helping with issues and PRs, or answering questions on Discord and GitHub Discussions.

A big part of what makes Gatsby great is each and every one of you in the community. Your contributions enrich the Gatsby experience and make it better every day.
