SPA Integration Best Practices - Bloomreach Experience - Open Source CMS
16-11-2020

SPA Integration Best Practices

There are many ways in which an SPA could potentially be integrated with Bloomreach Experience Manager. This page intends to help front-end engineers with a set of best practices, such that their integration is as smooth as possible, and such that Bloomreach can optimally support them in their efforts.

Use the SDK

The first best practice is to use the SPA SDK. It reduces the amount of code to write and maintain for integrating with Bloomreach Experience Manager. Bloomreach maintains the SDK, so you can take advantage from fixes for bugs discovered by other users. If your SPA uses a different JS rendering framework or a version that is not supported by the SDK, you may want to fork the SDK and adjust it to your specific needs, in such a way that you can keep up with the evolution of the SDK.

Avoid Mixed Content

Modern browsers typically block the display of a page or display warning messages if secure content (HTTPS) is mixed with insecure content (HTTP).

This can occur in your development environment when, for example, loading an SPA channel in the Experience manager while Bloomreach Experience Manager uses HTTPS and the SPA uses HTTP.

To avoid mixed content issues while developing your SPA, make sure your SPA uses HTTPS if your Bloomreach Experience Manager instance uses HTTPS.

HTTPS can be enabled in most frontend frameworks through a single configuration variable, see below for some popular frameworks:

Although it is also possible to enable mixed content in most browsers, this workaround is not recommended.

Production instances should always use HTTPS!

Deprecated Best Practices (14.0-14.1)

The best practices described below only apply if you are still using v14.0 or v14.1 of Bloomreach Experience Manager and the SDK.

Use the URL Rewriter for Reverse Proxying

In most real-world scenarios, your SPA lives separate from the Bloomreach Experience Manager instance. The integration of your SPA into the Experience manager's previewing and editing capabilities require you to access your SPA on the Experience manager's host on the front-end, which requires reverse proxying on the server side. We recommend to use the URL Rewriter enterprise plugin for this mechanism, because it is available also in a Bloomreach Cloud environment. There is a page describing how to set up the URL Rewriter.

Use Absolute URLs for Static Resources

By default, your SPA may refer to static resources (such as icons or styling) through host-relative links such as /images/icon.svg. This will break when the SPA is served over the Experience manager's host. In order to keep these links working in all situations, your SPA should use absolute URLs for its static resources.

Did you find this page helpful?
How could this documentation serve you better?
On this page
    Did you find this page helpful?
    How could this documentation serve you better?