• Stars
    star
    288
  • Rank 143,818 (Top 3 %)
  • Language
    JavaScript
  • License
    BSD Zero Clause L...
  • Created almost 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Gatsby starter using the latest Shopify plugin showcasing a store with product overview, individual product pages, and a cart

Gatsby

Gatsby Starter Shopify

Kick off your next Shopify project with this boilerplate. This starter creates a store with a custom landing page, individual filtered views for each product, detailed product pages, advanced instant search and a shopping cart. All styled with CSS Modules.

Deploy this starter with one click on Gatsby Cloud:

Deploy to Gatsby Cloud

Check out the demo site showcasing a proof-of-concept with 10k products and 30k variants.

πŸš€ Quick start

  1. Create a Gatsby site.

    Use the Gatsby CLI to create a new site, specifying the Shopify starter.

    # create a new Gatsby site using the Shopify starter
    npx gatsby new my-shopify-store https://github.com/gatsbyjs/gatsby-starter-shopify
  2. Link to your store

    Follow these instructions here to link your Shopify store. Create a .env file with your Shopify store URL, password, and Storefront access token, using the .env.example file as an example. If you want to try with a development store, see the sample data and instructions here.

  3. Start developing.

    Navigate into your new site’s directory and start it up.

    cd my-shopify-starter/
    npm start
  4. 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 my-shopify-starter directory in your code editor of choice and edit src/pages/index.jsx. Save your changes and the browser will update in real time!

🧐 What's inside?

A quick look at the top-level files and directories you'll see in this project.

.
β”œβ”€β”€ example
β”œβ”€β”€ src
β”œβ”€β”€ static
β”œβ”€β”€ .env.example
β”œβ”€β”€ gatsby-browser.js
β”œβ”€β”€ gatsby-config.js
└── gatsby-node.js
  1. /example: This directory includes a CSV file containing sample data to import into a development store. There are also instructions on generating your own sample data, and a link to a dataset with 30,000 SKUs.

  2. /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. src is a convention for β€œsource code”.

  3. /static: Every file in this directory will be copied over to the public folder during the build. Learn more about using the static folder. In this project it holds the og:image and favicons.

  4. /.env.example: Duplicate this file, rename it to .env, and fill out the keys. You'll need to define those environment variables to get the source plugin, cart and search working.

  5. 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. In this project it wraps the whole application with the context provider of the store/shopping cart.

  6. 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).

  7. 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. In this project it adds a custom Babel plugin to Gatsby.

Detailed look into src

The whole logic for how the site looks and behaves is inside src.

.
β”œβ”€β”€ components
β”œβ”€β”€ context
β”œβ”€β”€ icons
β”œβ”€β”€ images
β”œβ”€β”€ pages
β”œβ”€β”€ styles
└── utils
  1. /components: Contains the React components used for building out the pages.

  2. /context: Contains the store context (e.g. adding/deleting/updating items in shopping cart, accessing Shopify), and the urql context used for search using Shopify's Storefront API.

  3. /icons: Contains all custom SVG icons and the logo.

  4. /pages: Contains the homepage and all automatically generated pages for each product category and individual product pages. The File System Route API is used to create those pages from your Shopify data.

  5. /styles: Contains globals styles. These are variables.css, used to define shared CSS custom properties, reset.css, which contains a CSS reset based on Chakra, and global.css, which includes a tiny set of global styles.

  6. /utils: Utility functions, e.g. formatting the price correctly, plus custom hooks used for handling search and pagination.

🎨 Styling

The site uses CSS Modules for styling, which allows you to use regular CSS, scoped to the individual component. Theme values such as fonts, colors and spacing are set in src/styles/variables.css.

SSR Search Page

The /search page uses server-side rendering to show a list of products based on filters and search terms in the URL query parameters.

πŸŽ“ Learning Gatsby

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.

πŸ’« Deploy

Build, Deploy, and Host On The Only Cloud Built For Gatsby

Gatsby Cloud is an end-to-end cloud platform specifically built for the Gatsby framework that combines a modern developer experience with an optimized, global edge network.

More Repositories

1

gatsby

The best React-based framework with performance, scalability and security built in.
JavaScript
55,268
star
2

gatsby-starter-blog

Gatsby starter for creating a blog
JavaScript
3,487
star
3

gatsby-starter-default

The default Gatsby starter
JavaScript
1,389
star
4

gatsby-starter-hello-world

Starter with the bare essentials needed for a Gatsby site
JavaScript
639
star
5

store.gatsbyjs.org

The Gatsby store for swag and other Gatsby goodies.
JavaScript
603
star
6

gatsby-source-wordpress-experimental

The upcoming v4 of gatsby-source-wordpress, currently in beta
JavaScript
385
star
7

gatsby-docker

Docker image that builds and hosts a Gatsby site
Shell
358
star
8

desktop

TypeScript
222
star
9

wp-gatsby

WordPress plugin for gatsby-source-wordpress
PHP
167
star
10

gatsby-ja

Japanese translation of Gatsbyjs.org
JavaScript
151
star
11

gatsby-pt-BR

Brazilian Portuguese translation of Gatsbyjs.org
JavaScript
150
star
12

themes

This is a repo for Gatsby's official themes.
JavaScript
141
star
13

gatsby-starter-blog-theme

Starter for using the official gatsby blog theme
JavaScript
121
star
14

gatsby-starter-wordpress-blog

CSS
102
star
15

rfcs

RFCs for changes to Gatsby
85
star
16

gatsby-graphql-toolkit

TypeScript
79
star
17

gatsby-source-shopify

TypeScript
67
star
18

gatsby-starter-documentation

This starter is for Gatsby v0 and is not maintained
JavaScript
67
star
19

gatsby-starter-wordpress-homepage

JavaScript
63
star
20

gatsby-starter-theme-workspace

JavaScript
62
star
21

gatsby-starter-contentful-homepage

JavaScript
53
star
22

gatsby-starter-theme

A Gatsby theme starter using the official blog theme, and the official notes theme
JavaScript
52
star
23

api.gatsbyjs.org

The API for the Gatsby swag store.
JavaScript
47
star
24

tutorial-example

The example project built by following the Gatsby Tutorial: https://gatsbyjs.com/docs/tutorial/
JavaScript
45
star
25

gatsby-es

Gatsby documentation in Spanish
JavaScript
41
star
26

gatsby-starter-kontent-ai-homepage

JavaScript
39
star
27

gatsby-id

Indonesian translation of Gatsbyjs.org
JavaScript
36
star
28

gatsby-starter-kontent-ai-homepage-ts

TypeScript
34
star
29

gatsby-starter-landing-page

Create custom landing pages using Gatsby and Contentful
JavaScript
34
star
30

gatsby-ko

Korean translation of Gatsbyjs.org
JavaScript
30
star
31

mdx-deck-theme

The theme we use for Gatsby-related slide decks powered by `mdx-deck`
HTML
27
star
32

gatsby-starter-minimal

JavaScript
26
star
33

gatsby-starter-notes-theme

Starter for using the official gatsby notes theme
JavaScript
20
star
34

gatsby-starter-drupal-homepage

JavaScript
20
star
35

gatsby-ru

Gatsby documentation in Russian
JavaScript
20
star
36

gatsby-zh-Hans

Simplified Chinese translation of Gatsbyjs.org
JavaScript
19
star
37

gatsby-fr

French translation of Gatsbyjs.org
JavaScript
19
star
38

homepage-starters

Development setup for homepage starters with multiple CMS backends
JavaScript
18
star
39

gatsby-starter-datocms-homepage

JavaScript
16
star
40

gatsby-functions-beta

A showcase of Gatsby Functions for the public beta
JavaScript
15
star
41

gatsby-starter-kitchen-sink

This starter is for Gatsby v0 and is not maintained
JavaScript
13
star
42

peril-gatsbyjs

This repo houses the settings for Peril.
TypeScript
13
star
43

gatsby-starter-sanity-homepage

Create a homepage with Gatsby and Sanity
JavaScript
11
star
44

themejam.gatsbyjs.org

Website for the Gatsby Theme Jam
JavaScript
11
star
45

gatsby-starter-blog-theme-core

JavaScript
10
star
46

gatsby-starter-contentful-homepage-ts

TypeScript
9
star
47

gatsby-pl

Polish translation of Gatsbyjs.org
JavaScript
9
star
48

react-18-ecommerce-demo

gatsby-starter-shopify with react 18 features
JavaScript
9
star
49

gatsby-starter-minimal-ts

TypeScript
9
star
50

gatsby-hi

Hindi translation of Gatsbyjs.org
JavaScript
8
star
51

gatsby-starter-plugin

JavaScript
8
star
52

gatsby-starter-rendering-modes

An example starter using new rendering modes in Gatsby 4
JavaScript
7
star
53

gatsby-it

Italian translation of Gatsbyjs.org
JavaScript
7
star
54

gatsby-bn

Bengali translation of Gatsbyjs.org
JavaScript
7
star
55

gatsby-starter-sanity-homepage-ts

Create a homepage with Gatsby and Sanity
TypeScript
7
star
56

gatsby-tr

Turkish translation of Gatsbyjs.org
JavaScript
7
star
57

gatsby-i18n-source

Source repo for gatsbyjs.org translation
JavaScript
6
star
58

gatsby-starter-wordpress-homepage-ts

TypeScript
6
star
59

gatsby-web-creators

A repository of live coding examples from the Gatsby Web Creators livestream series
HTML
5
star
60

gatsby-partial-hydration-starter

Example on how to implement partial hydration in Gatsby
JavaScript
5
star
61

gatsby-de

German translation of Gatsbyjs.org
JavaScript
4
star
62

gatsby-starter-slices

A starter showcasing Gatsby 5 and Slices
JavaScript
4
star
63

gatsby-starter-mdx-basic

This functionality is now built into Gatsby. Run `npm init gatsby` from the command line and choose MDX as the data source to get started.
CSS
4
star
64

webinar-using-mdx

Sample repository implementing MDX pages in a new Gatsby site
CSS
4
star
65

gatsby-zh-Hant

Traditional Chinese translation of Gatsbyjs.org
JavaScript
3
star
66

gatsby-fi

Finnish translation of Gatsbyjs.org
JavaScript
3
star
67

will-it-generate

A utility to generate benchmark data of varying sizes with similar complexity
JavaScript
3
star
68

gatsby-provision-contentful

Provision Contentful Content for your Gatsby site
JavaScript
3
star
69

vscode-extension

Experimental vscode extension to improve your Gatsby experience
TypeScript
2
star
70

gatsby-vi

Vietnamese translation of Gatsbyjs.org
JavaScript
2
star
71

gatsby-starter-drupal-homepage-ts

TypeScript
2
star
72

gatsby-nl

Dutch translation of Gatsbyjs.org
JavaScript
2
star
73

gatsby-mn

Mongolian translation of Gatsbyjs.org
JavaScript
1
star
74

gatsby-en

(THIS IS A TEST REPOSITORY) English translation of Gatsbyjs.org
1
star
75

gatsby-fa

Persian translation of Gatsbyjs.org
JavaScript
1
star
76

gatsby-dev-sites-proxy

Proxies sites built for PRs from their S3 bucket
JavaScript
1
star
77

gatsby-starter-datocms-homepage-ts

TypeScript
1
star
78

gatsby-ca

Catalan translation of Gatsbyjs.org
JavaScript
1
star