Kick off your project with this boilerplate. This starter ships with the main Gatsby configuration files you might need to get up and running blazing fast with the blazing fast app generator for React.
Have another more specific idea? You may want to check out our vibrant collection of official and community-created starters.
-
Clone the repository.
Use
gitclone the repogit clone https://github.com/cazuba/gatsby-starter-boiler.git
-
Start developing.
Navigate into your new site’s directory and start it up.
cd gatsby-starter-boiler/ npm run develop # or it can also be npm start
-
Open the source code and start editing!
Your site is now running at
http://localhost:8000!Note: You'll also see a second link:
http://localhost:8000/___graphql. This is a tool you can use to experiment with querying your data. Learn more about using this tool in the Gatsby tutorial.Open the
gatsby-starter-boilerdirectory in your code editor of choice and editsrc/pages/index.js. Save your changes and the browser will update in real time!
-
Build
Build your static code with this command:
npm run build
-
Storybook
Start developing stories and see how it looks like with this command:
npm run storybook
-
Build Storybook
Start developing stories and see how it looks like with this command:
npm run build-storybook
-
Test cases - Once
See how unit tests are working with this command:
npm run test -
Test cases - Watch
Start developing tests and see how it looks like while coding, with this command:
npm run test:w
-
Test cases - Coverage
See how the coverage looks like with this command:
npm run test:c
-
Other commands
You can also run another commands than sometimes are being used under the hood or maybe for the CI/CD
npm run format # uses prettier to format your code npm run serve # uses the build code to run as static app npm run eslint # Checks if your code follows the rules/standards and try to fix simple problems npm run precommit # shortcut for lint-staged [prettier, eslint, git add]
A quick look at the top-level files and directories you'll see in a Gatsby project.
.
├── __mocks__
├── .storybook
├── node_modules
├── src
├── static
├── stories
├── .env.example
├── .eslintrc
├── .gitignore
├── .nvmrc
├── .prettierrc
├── gatsby-browser.js
├── gatsby-config.js
├── gatsby-node.js
├── gatsby-ssr.js
├── jest-preprocess.js
├── jest.config.js
├── LICENSE
├── loadershim.js
├── package-lock.json
├── package.json
└── README.md
-
/__mocks__: This directory contains all config files for jest -
/.storybook: This directory contains all config and addons files for storybook -
/node_modules: This directory contains all of the modules of code that your project depends on (npm packages) are automatically installed -
/src: This directory will contain all of the code related to what you will see on the front-end of your site (what you see in the browser) such as your site header or a page template.srcis a convention for “source code”. -
/static: This directory will contain all of the static files related to what you will see on the front-end of your site -
/stories: This directory will contain all of the code related to the stories of every one of thesrc/components -
.env.example: This file contains an example of the environment variables you must setup in every environment you want to install the gatsby app -
.eslintrc: This file contains all the developer exception or specific configuration rules for linting the code for standardization -
.gitignore: This file tells git which files it should not track / not maintain a version history for. -
.nvmrc: This file tells which is the project'snode versionyou should be using (local, staging or production) to install and run within a stable and controlled nodejs environment. -
.prettierrc: This is a configuration file for Prettier. Prettier is a tool to help keep the formatting of your code consistent. -
gatsby-browser.js: This file is where Gatsby expects to find any usage of the Gatsby browser APIs (if any). These allow customization/extension of default Gatsby settings affecting the browser. -
gatsby-config.js: This is the main configuration file for a Gatsby site. This is where you can specify information about your site (metadata) like the site title and description, which Gatsby plugins you’d like to include, etc. (Check out the config docs for more detail). -
gatsby-node.js: This file is where Gatsby expects to find any usage of the Gatsby Node APIs (if any). These allow customization/extension of default Gatsby settings affecting pieces of the site build process. -
gatsby-ssr.js: This file is where Gatsby expects to find any usage of the Gatsby server-side rendering APIs (if any). These allow customization of default Gatsby settings affecting server-side rendering. -
jest-preprocess.js: Jest tells that all js or jsx files need to be transformed using ajest-preprocess.jsfile in the project root. -
jest.config.js: Because Gatsby handles its own Babel configuration, you will need to manually tell Jest to use babel-jest. The easiest way to do this is to add ajest.config.js -
LICENSE: Gatsby is licensed under the MIT license. -
loadershim.js: Jest changing the defaulttransformIgnorePatternsto exclude the gatsby module. Transpiling before running in Jest -
package-lock.json(Seepackage.jsonbelow, first). This is an automatically generated file based on the exact versions of your npm dependencies that were installed for your project. (You won’t change this file directly). -
package.json: A manifest file for Node.js projects, which includes things like metadata (the project’s name, author, etc). This manifest is how npm knows which packages to install for your project. -
README.md: A text file containing useful reference information about your project.
Looking for more guidance? Full documentation for Gatsby lives on the website. Here are some places to start:
-
For most developers, we recommend starting with our in-depth tutorial for creating a site with Gatsby. 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. In particular, check out the Guides, API Reference, and Advanced Tutorials sections in the sidebar.