The kicker with Gatsby is it’s actually not compatible with GitHub or any hosting where you can’t control caching headers. Gatsby relies on page-data.json files to not be cached[1] in order to work correctly. This is not possible with GitHub pages. After deploying a new version of the site, some users will use a cached version of page-data.json which can cause them to see a flash of the new data that quickly gets replaced with the old data. It can also cause the site to throw a JS exception in some cases.
Or only partially replaced, such that some React components get updated and some don't so if you have i.e. a list of stuff with text and pictures, the text will get updated but the pictures will not. It's a mess
[1] https://github.com/gatsbyjs/gatsby/issues/15080#issuecomment...