Documentation

Read and search through all the Sitecore JSS documentation

What’s different about the Next.js SDK?

The Next.js SDK for Sitecore has some key differences from other Sitecore JavaScript SDKs.

Architecture and Deployment

  • Next.js provides built-in options for build time and runtime static site generation (SSG).
    • Out of the box, the Next.js SDK does not support Sitecore tracking or personalization with SSG.
  • The Headless SSR Proxy is not required for production deployment.
  • Experience Editor integration does not require a separate deployment, and only supports the HTTP Rendering Engine.
    • There is no requirement to install node.js on your Sitecore Content Management role.
    • There is never a need to deploy your application to the Sitecore Content Management role.
  • By default, the Next.js sample uses the new "Edge" Sitecore GraphQL schema, which mirrors the schema that will be available with Sitecore Experience Edge.

Development

  • Overall, less boilerplate code than other Sitecore JavaScript SDKs.
  • Development and production runtime parity, including server-side rendering during development.
  • The Next.js Styleguide sample has a simplified component filesystem structure.
  • The Next.js Styleguide sample defaults to TypeScript, which is supported out of the box by Next.js.
  • The Next.js Styleguide sample includes code generation for GraphQL schema types.
  • A container-based starter template is available for Next.js, which is optimized for a Sitecore-first workflow.

In Detail

  • You should not use jss deploy app or jss deploy files when working with Next.js.
    • jss deploy items can be used for code-first item import.
    • You do not need to configure a sitecoreDistPath in your package.json.
  • The Link and RichText field helpers support client-side routing out of the box.
  • If you add .graphql files to your solution, or make changes to your Sitecore data model (templates), you should update GraphQL introspection.
  • We configured Next.js to proxy Sitecore media requests. Therefore, the Layout Service excludes server URLs.

Found a problem? Have something to add? Edit this on GitHub