Uniform for Sitecore introduction

Uniform for Sitecore consists of two main capabilities: Deploy and Optimize; they can be used separately or together to complement each other. The main goal of Deploy is to make the Jamstack architecture possible for any Sitecore version. While Optimize's primary purpose is to retain the "XP" part of the Sitecore platform functionality - personalization, testing, and tracking by decoupling and offloading it to the edge or client-side where relevant.

Deploy's primary mission is to decouple the front-end of your Sitecore solution by enabling static site generation and deployment to your target hosting environment of choice. You can also migrate the MVC renderings to React one by one and have them coexist with MVC renderings. This enables front-end modernization scenarios that some Sitecore customers seek.

Deploy Capability Overview#

Deploy makes it possible to adopt Jamstack for Sitecore with any version, any topology, and any presentation technology - MVC or JSS.

Deploy's main mission is to decouple the front-end of your Sitecore solution by enabling static site generation and deployment to your target hosting environment of choice. You can also migrate the MVC renderings to React one by one and have them coexist with MVC renderings. This enables front-end modernization scenarios that some Sitecore customers seek.

Deploy components#

1. The Sitecore module - Uniform Connector#

A classic installation package to be installed on a Sitecore instance, in most cases, is your Sitecore CM. This package consists mainly of DLLs, configs, and items that extend Sitecore capability with APIs that power the Jamstack process.

Besides the Sitecore package, we also distribute NuGet packages and a starter server-side project that also includes Unicorn items. Usually, the preferred way of integrating Uniform into your solution and existing CI/CD pipelines.

2. Front-end Application#

This JavaScript application built using one of the preferred frameworks, Next.js and Nuxt, is supported depending on the use case and bootstrapped with the @uniformdev plugins/npm packages to connect this app with Uniform APIs that sit on top of your Sitecore instance.

There are multiple usage scenarios of this application; it can function in any of the following ways:

  1. Host your application code, the presentation layer, which is not the case if you keep using Sitecore MVC.
  2. Act as a Build Service, run Static Site Generation triggered either from CLI or Sitecore Publishing pipeline.
  3. A Preview Service that is responsible for fetching and rendering the latest draft content from Sitecore.
  4. Initiate and execute the deployment of your statically generated site to the target hosting platform; the exact mechanics depend on the specific platform you use.

The exact role of this application is different depending on your use case:

  • For the use cases where you'd like to "Jamstackify" Sitecore MVC solutions, we support this via a Next.js application that is bootstrapped with Uniform plugins and scaffolding, allowing the reconstruction of the Sitecore pages at build time from MVC rendering fragments. In this case, this app acts as the Static Site Generation and site deployment tool, as it doesn't host any custom code related to your presentation layer since it is maintained in Sitecore MVC and deployed to the Sitecore instance. In this case, the service handles static site exports triggered either by the release pipeline or the Sitecore publishing process. This application will only contain the static resources that you deploy together with your page HTML existing .css, .js, images, and font files if any.

The starter kit is open-sourced in our GitHub repo here.

Check out the MVC tutorial here to experience this flow.

  • JSS sites - we support both Next.js and Nuxt frameworks. Both frameworks have SSR and SSG capabilities Uniform SDK can access. This allows to add the missing piece to any Sitecore JSS solution.

  • React-based implementations, Next.js adds the full framework aspect - built-in routing, Server-side Rendering, styling, great Developer Experience out of the box, as well as a rich plugin ecosystem.

  • Vue-based implementations, we have a Nuxt.js starter. It also features capabilities, such as routing, Server-side Rendering, styling, great Developer Experience out of the box, and a rich plugin ecosystem.

Both frameworks come with the static site generation feature, which Uniform extends with a plugin, allowing to source the pages from Sitecore via Uniform APIs.

The starter kits for Sitecore JSS using both Next.js and Nuxt are open-sourced in our GitHub account here.

Make sure to check out the JSS Next.js tutorial here to experience this flow.

3. Uniform JavaScript SDK#

You can't have a modern Jamstack application without a JavaScript SDK.

It is represented with a set of @uniformdev npm packages that extend a particular Framework / Static Site Generator with extra functionality related to either page definition extraction from Uniform APIs, component rendering, or tracking.

The npm packages are private, so you would need a .npm token from us to download these.

Supported Sitecore Versions#

Sitecore 8.2 Update-7 and up are officially supported. The latest version tested with Uniform is Sitecore 10. It's unlikely, but if your Sitecore version is not in this broad supported release spectrum, let us know it may work on your earlier version as well.

Supported Topologies#

Deploy supports both XM and XP topologies.

Supported Presentation Technologies#

Currently, both Sitecore MVC and JSS are supported. SXA has partial support in this release; see Known Issues list in Release Notes. There is no support for WebForms.

Supported Target Hosting Environments#

Due to Deploy's output being a set of static files, the range of hosting platforms for your website/web app is quite wide. The following platforms are the ones that are current customers or tested with during QA:

  1. Azure (Blob Storage + CDN + FrontDoor or Static Web Apps)
  2. Akamai (NetStorage + Ion / CDN)
  3. AWS (S3 + Cloudfront)
  4. Cloudflare (Worker Sites and Pages)
  5. Netlify
  6. Tencent (COS + CDN)
  7. Vercel

In some instances, customers mix and match the platforms. Any cloud hosting service that can support static file hosting and comes with a facility to deploy the files to will work as well.

No Dependencies on Sitecore Headless Services#

Uniform has independent APIs to access page-level item data and other APIs to power Jamstack scenarios. It also comes with the SDKs targeting specific Frameworks/Static Site Generators, like Next.js and Nuxt.

How About Personalization and Tracking?#

Uniform for Sitecore has a separate capability for that - Optimize. It allows for decoupled personalization and tracking. It is compatible with Deploy. Read more about Uniform Optimize for Sitecore here.

What's Next?#

Now you know what Deploy is, head over to the Getting Started.