Integrating Gatsby/Jamstack/Static Site Generation(SSG) with Headless BRXM

I am currently investigating the potential of using BRXM as a headless CMS with a jamstack approach.

There are a few articles found on the BR blog about this. For example:

(This is very out of date now and didn’t work)

and

Some questions:

  1. Can editors still preview with this approach?
  2. How do you handle documents that are edited after an SSG has been deployed?
  3. Has anyone successfully achieved this?

I see many other CMS apps being officially listed on the Gatsby site, but not Bloomreach. Is there any plan to move in this direction?

Hi,
I can try to answer to some of your concerns, maybe from a generic perspective.

Headless integrations in Bloomreach XM are driven by the (Page) Delivery API[1]. In a nutshell, the front-end gets a JSON containing the (HST) page definition/description: this would include the details about each component of the requested page.

In addition, the JSON contains all the documents defined/needed as part of that page. Please also note that Bloomreach provides the SPA SDK library [2], that automatically processes the Page Delivery API.

At the moment SSG is not automatically handled OOTB: for example, if you are searching for an event based mechanism, that’s not available OOTB at the moment. But it may be possible to implement that if needed, and it should not be difficult in my opinion.

Regards,

[1] Delivery API
[2] @bloomreach/spa-sdk - npm

Thanks for your response. I think some more experimentation and exploration will need to be done.

My main confusion is not so much consuming the endpoints, it’s about what happens when an editor makes a change and publishes it. Does the entire SSG build have to re-run or is there a more clever approach?

Yes, if an editor makes a new change and publishes it, then a new site deployment needs to be triggered and the entire SSG would need to re-run.

If with “a more clever approach” you mean re-building only what has been changed, that probably depends on the front-end hosting platform you are using: most likely several optimisation are done on that level.