Spectrum is now read-only. Learn more about the decision in our official announcement.


Fast in every way that matters. Gatsby is a free and open source framework based on React that helps developers build blazing fast websites and apps.


Tips on building ecommerce with Gatsby

July 30, 2018 at 5:33pm

Tips on building ecommerce with Gatsby

July 30, 2018 at 5:33pm (Edited 4 years ago)
Hey everyone,
So I'm trying to figure out the best approach to building an ecommerce solution with Gatsby. What I'm thinking of doing is integrating Snipcart onto a Gatsby site and using Netlify's lambda functions to perform any backend actions.
What I'm struggling to get my head around is which parts should be generated as static pages, and which parts should be part of a "hybrid app".
I also should point out a couple of details:
  • All the product data will be pulled in via an API call to an external service
  • Each product "item" from the data set represents a single item. So my store will have no concept of a quantity of items in stock, only of an item is for sale or not.
Lets say the product listing & product detail pages are all generated during Gatsby's build step:
  • The issue that I'm anticipating here is that there will be a gap when the site is rebuilding between when an item has been bought or source data has changed.
    • In this window where the site is re-building customers browsing the site could potentially purchase an item that has just been purchased. (Though a check could possibly implemented here via SnipCart's webooks to prevent the item being purchased twice).
    • I can see caching issues potentially cropping up here especially as site rebuilds would be automated.
The other solution I can see then is to have a "hybrid-app" which hits this API and renders the product data on the fly.
  • So this would apply to the product listing & product detail pages, as it would ensure a user is seeing the current product data
    • But this seems to defeat the point of using Gatsby as most of the site won't be statically generated.
If anyone has any experiences they could share or advice they could offer on this Ill be super thankful!
All the best,
Show previous messages

May 20, 2019 at 8:41pm
Here is the github issue with code examples. It will be awesome if someone can have a look at it, please.

November 22, 2019 at 1:23pm
How do you handle customers account's?