How to create an app using Sitecore JSS and run in disconnected / connected / integrated mode

Do you want to explore Sitecore JSS and don’t know where to start with. This blog is a perfect to start with creating a sitecore jss site.

Pre-requisites:

  1. Operating system which supports Node. (I am using Windows 10)
  2. Install Node. Recommended to use latest LTS release.

If node is already installed, you can check the version using powershell.

Let’s now start!!

  • Install JSS CLI using command below.

Open powershell and run the below command

npm install -g @sitecore-jss/sitecore-jss-cli         

You can validate your installation by running the below command

jss –help

  • Create the application based on the templates

I will be using react template in this demo. (There are other types of templates as well like angular, vue etc..)

Open powershell and run the below command

Firstly set the path of the folder where you want to create the app

cd C:\SitecoreJssDemo

and then run below command

jss create nav-graphql-connected-demo react

where

nav-graphql-connected-demo is the name of your application,

react is the app-template

You will see a folder with all the artefacts are created.

  • Open the app folder in Visual Studio Code.
  • Now to run the application in disconnected mode, open a terminal in VS Code and run the  below command

jss start

The app will be built and a local development server will be started. Your jss app will now rendered on  http://localhost:3000/ (will automatically open in default browser. If it doesn’t open try to hit this url on browser)

  • To run the app in connected mode, run the below command

jss start:connected

When I try to run the above command, I get the below error.

Before trying to run in connected mode, please install the Sitecore Javascript Services or Sitecore Headless Rendering package to your sitecore instance based on your version of Sitecore. (if not already completed)

and follow below steps to link and deploy app to a running sitecore instance. Below are the steps to do it.

  • Create a Sitecore Api Key
  1. 1. Login to sitecore and open content editor. Navigate to path /sitecore/system/Settings/Services/API Keys
  1. 2. Create an API Key and provide a name
  1. 3. Set the properties as below of the API Key created. (These values are for local development setup)
  1. 4. Keep the API Key item id. In my case it is {3F9C5109-1785-4578-856D-A57209D883A8}
  • Now when you ran jss start:connected command for first time you see below error

Put the values of these as per below snapshot and press enter

If you do not have SSL then put host name without SSL like http://jssapp.dev.local

  • Run below command to deploy the config files to your sitecore instance.

Check your config details. (If you need to do any change in config do it now)

jss deploy config

jss deploy app -c -d

I got the below error while running this command

Sending package sitecore\package\nav-graphql-connected-demo.1619475767488.manifest.zip to https://jssapp.dev.local/sitecore/api/jss/import…
Unexpected response from import service:
connect ETIMEDOUT

To resolve this issue, add an entry in hosts file located at C:\Windows\System32\drivers\etc

use the host name which was provided during the setup

and add the same host name in sitecore instance binding on IIS (I am putting non-SSL binding so please ensure your jss import url and hostname in scjssconfig.json should be non-SSL)

now try to run the deploy command

jss deploy app -c -d

  • Publish the site
  • To run the app in connected mode, use below command

jss start:connected

References- https://jss.sitecore.com/docs/client-frameworks/getting-started/quick-start

Happy Sitecoreing !! Thanks Sitecore