Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Gatsby Shopify starter

JamStackBox Status

Kick off your next eCommerce experience with this Gatsby starter. It is based on the default Gatsby starter to be easily modifiable. Demo

This starter also includes credentials to a Shopify demo store so you can try it out immediately without having to start a store. To use your own just change the values inside of .env.

If you have questions feel free to message me on Twitter πŸ€™πŸ»

Checkout for a real public shop built with this starter, the code is also public.

πŸ’Ž Features

  • Cart
  • Product grid
  • Product page
  • Dynamic Inventory Checking
  • Image optimization with Gatsby Image
  • Styled Components with Emotion
  • Google Analytics
  • SEO

πŸ“¦ Dynamic Inventory Checking

The Shopify product inventory is being checked in realtime, therefore no rebuilding and redeploy is needed when a product goes out of stock. This avoids problems where products could still be available even though they're out of stock due to redeploy delay.

πŸ–Œ Styling

I'm using Emotion as styled components library, but the starter is purposely only sparsely styled so you don't have to remove unecessary code but can instead add your own styling immediately.

⚠️ Common problems

  • You need to use the Shopify Storefront API credentials not the regular Shopify API.
  • You need to have at least one published product on Shopify.

πŸš€ Quick start

  1. Create a Gatsby site.

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

    # create a new Gatsby site using this starter
    gatsby new my-shopify-store
  2. Start developing.

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

    cd my-shopify-store/
    gatsby develop
  3. 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-store directory in your code editor of choice and edit src/pages/index.js. Save your changes and the browser will update in real time!

  4. Connect your own Shopify store.

    Open both .env files located in the root directory of your page end replace the credentials with your own. Don't forget to restart Gatsby for your store to be loaded!

    ⚠️ Make sure to use the Shopify storefront API credentials, not the regular Shopify API!


Checkout my other open-source project JAMStackBox to continuously deploy your Gatsby site on your own server.

πŸŽ“ 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.

πŸ“Œ ToDo

I'll happily merge any pull request to improve the starter. πŸ™‚

  • Convert Layout to function component.
  • Add dynamic inventory checking to avoid re-building after every purchase.
  • Add better styling.
  • Add image optimization using Gatsby sharp plugin.
  • Convert ProductForm to function component.