You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 19, 2026. It is now read-only.
Right now -- this plugin has several areas that could be augmented to better support the Gatsby ecosystem, particularly with Gatsby Cloud. Specifically:
Gatsby Cloud uses webhooks to synchronize content from the CMS with the running Gatsby application. Ghost already supports webhooks, so we're part of the way there towards supporting hot reloading of data.
How it works under the hood is that the sourceNodes function in gatsby-node.js is re-invoked whenever we receive a web hook. What's missing now is some way to incrementally know what has been changed, and how to take the current state of the GraphQL schema and update it to match the new Ghost data.
To best support plugin authors, we've put together an Integration Guide that outlines several approaches in updating a plugin to have great Gatsby Cloud support. The eventual result of this work would be:
This plugin has a way to request changed data
This plugin (when sourceNodes is invoked) calls createNode, deleteNode, and touchNode to get the schema consistent with Ghost
@JohnONolan question -- does the webhook that's triggered receive a payload? That could be a relatively low-effort way to get the updated content!
Adding Gatsby Cloud as an Integration
For anyone else who may be working on this, adding Gatsby Cloud will look something like this:
Summary
Right now -- this plugin has several areas that could be augmented to better support the Gatsby ecosystem, particularly with Gatsby Cloud. Specifically:
static.ghost.orgrather than tying intocreateRemoteFileNodefunctionality (See Add gatsby-transformer-sharp support #5)Let's focus on #2 for this issue.
Live Updating
Gatsby Cloud uses webhooks to synchronize content from the CMS with the running Gatsby application. Ghost already supports webhooks, so we're part of the way there towards supporting hot reloading of data.
How it works under the hood is that the
sourceNodesfunction ingatsby-node.jsis re-invoked whenever we receive a web hook. What's missing now is some way to incrementally know what has been changed, and how to take the current state of the GraphQL schema and update it to match the new Ghost data.To best support plugin authors, we've put together an Integration Guide that outlines several approaches in updating a plugin to have great Gatsby Cloud support. The eventual result of this work would be:
createNode,deleteNode, andtouchNodeto get the schema consistent with Ghost@JohnONolan question -- does the webhook that's triggered receive a payload? That could be a relatively low-effort way to get the updated content!
Adding Gatsby Cloud as an Integration
For anyone else who may be working on this, adding Gatsby Cloud will look something like this: