Use Visual Editor with Hydrogen
Learn how to use Visual Editor with a Hydrogen-based website.
Configure Visual Editor for a Hydrogen project
Section titled “Configure Visual Editor for a Hydrogen project”Hydrogen is supported through the ssgName: custom
option (learn more.
Follow the example repository for a concrete example of using Visual Editor with Hydrogen. Here’s an excerpt from Visual Editor configuration file:
// stackbit.config.jsexport default { stackbitVersion: "~0.6.0", cmsName: "contentful", nodeVersion: "16", ssgName: "custom", devCommand: "echo Starting && APP_PORT={PORT} npm run dev-no-window", experimental: { ssg: { name: "Hydrogen", logPatterns: { up: ["Local: http"] } } }};
Notes on the above:
- In development mode, Hydrogen currently always opens a browser window automatically on startup, which fails when running inside a terminal-only container. Hence, note the
npm run dev-no-window
script which takes care to work around this behavior. - Usage of the
experimental.ssg.logPatterns.up
property. The string ‘Local: http’ is part of the log message that appears when the Vite dev server is ready to accept requests. - At the time of writing, Hydrogen is not yet based on Vite 3.x and thus HMR is not in effect while a Hydrogen site is open in the visual editor.
Content reload
Section titled “Content reload”In the example repository, the main App component includes the StackbitHCR
client-side component, which is tasked with capturing the 'stackbitObjectsChanged'
window event.
When a relevant content change is detected, the code utilizes Hydrogen’s useServerProps
React hook to trigger a refresh to the displayed server-side components.
However, that is not yet a streamlined solution with a stable API. We expect that Hydrogen will provide a clear method for triggering a refresh to server-rendered pages from the client-side
Learn more about listening to content change events.
Example
Section titled “Example”Hydrogen Demo Store + Contentful Example — based on Hydrogen’s demo store, with the Journal section modified to fetch data from Contentful rather than Shopify’s backend.
Did you find this doc useful?
Your feedback helps us improve our docs.