SlideShare a Scribd company logo
1 of 22
JSS
SUG BLR
August 8th 2018
Presented by: Gopi Sivanappan Vasanthi
Sr. Associate - SapientRazorfish
Why JSS?
• To overcome the shortcomings of monolithic mode of current Sitecore Development and Deployment.
• To make Sitecore more scalable by reducing the load from Sitecore servers and delegating the same to Node.
• To provide full experience editor capabilities for application developed using front end technologies like react,
angular etc.,
• To enable analytics, personalization and mv (multivariate) testing capabilities for application developed using front
end technologies.
• To enable front end developers to work in disconnected mode without having Sitecore instance in their machine.
Thus reducing the license dependency for Sitecore development.
• To enable both behavior and content to be consumed from Sitecore and functionality to come from other front end
technologies,
What is headless?
• To have a application development environment agnostic of the content to be consume.
• Current Presentation Architecture of Sitecore was tightly coupled with its Information Architecture.
• Headless will make development of applications possible with Sitecore i.e., the Information
architecture and presentation architecture is decoupled.
Setting Up….
Sitecore 9.0.1 +
Node JS v6.9 +
npm v5.7+ or yarn
Jss enabled license
Setting up….
Step 1: Installing JSS CLI
npm install -g @sitecore-jss/sitecore-jss-cli
yarn global add @sitecore-jss/sitecore-jss-cli
Step 2: Choose an application styleguide template:
• react
• vue
• angular
jss create <your-app-name> <app-template-name>
Experimental Templates:
sitecore-embedded-jss-app
sitecore-javascript-renderings
Running a disconnected JSS App
jss start
http://localhost:3000
JSS Server Setup
• Download and Install the JSS Server Components Sitecore package.
• Sitecore JavaScript Services Tech Preview Server 9.0.1 rev. 180724
• Add the following element to the bottom of the system.webServer/handlers section of the
Sitecore Web.config:
• <add verb="*" path="sitecorejss_media.ashx"
type="Sitecore.JavaScriptServices.Media.MediaRequestHandler, Sitecore.JavaScriptServices.Media"
name="Sitecore.JavaScriptServices.Media.MediaRequestHandler" />
• Verify your server components install worked, by visiting http://your-sitecore-
instance/sitecore/api/layout/render/jss?item=/&sc_apikey=TEST.
• You should receive HTTP Error 400.0 - API key is not valid if it is working correctly.
JSS App Deployment
• Configuring the Sitecore server to receive the JSS app
• Configuring Host Name > sitecoreconfig<appname>.config
• Creating API Key > /sitecore/system/Settings/Services/API Keys
• Connecting the JSS app to Sitecore (from app directory)
jss setup
jss deploy config
jss deploy app --includeContent --includeDictionary
Creating our JSS Component
Scaffolding a running a JSS Component
Step 1: Keep your JSS app running by invoking “jss start”
Step 2: jss scaffold <Component Name>
Step 3: Define the component's data in
sitecoredefinitionscomponentsMyCardHolder.sitecore.js
Step 4: Implement the React component in srccomponentsMyCardHolderindex.js
Step 5: Add the component to a route layout (/data/routes) and test it with jss start
Sitecore JSS - Architecture
JSS Elements
Workflow
• Code-First
• JSS App defines the manifest of the content data and the structure of the data.
• Thus, it can execute local content without a Sitecore Instance.
• Used mainly during early prototyping of a design.
• Sitecore-First
• JSS app consumes data from Sitecore but has no responsibility for defining the structure of that data
Most Sitecore-first projects will begin life with at least one code-first app deployment, just to create the
structures in Sitecore for the app (app root, rendering root, template root, etc). After this initial
deployment, the app can migrate to Sitecore-first.
JSS Application Modes
Development
• Disconnected dev mode
• Connected dev mode
• Integrated mode
• API-Only mode
Production
• Integrated mode
• Headless server-side rendering
mode
• API-only mode
Disconnected developer mode
Connected developer mode
Integrated Mode
Headless server-side rendering mode
• Rendering performed by server (SSR by Node-as-a-service provider, i.e.
Azure App Service, Netlify, Heroku, etc)
• Data comes from Sitecore CD server via LayoutService API (HTTP calls)
• Full Sitecore marketing/personalization engine support
• Usages: decoupling rendering of the JSS app from Sitecore, multichannel
API usage
API Only Mode
• Consume Sitecore APIs that return JSON data from anything that
understands JSON, e.g. native mobile apps, chatbots, etc.
Sitecore Layout Service
• The Sitecore Layout Service is the REST
endpoint which provides data for Sitecore
JSS apps.
• Rendered fields with Experience Editor
markup for inline editing.
• /sitecore/api/layout/render/[config]?item=
[path]&sc_lang=[language]&sc_apikey=[key
]&tracking=[true|false]
Questions please….

More Related Content

What's hot

API Management Within a Microservices Architecture
API Management Within a Microservices Architecture API Management Within a Microservices Architecture
API Management Within a Microservices Architecture Nadeesha Gamage
 
Introduction to REST - API
Introduction to REST - APIIntroduction to REST - API
Introduction to REST - APIChetan Gadodia
 
OpenAPI 3.0, And What It Means for the Future of Swagger
OpenAPI 3.0, And What It Means for the Future of SwaggerOpenAPI 3.0, And What It Means for the Future of Swagger
OpenAPI 3.0, And What It Means for the Future of SwaggerSmartBear
 
Getting Started Monitoring with Prometheus and Grafana
Getting Started Monitoring with Prometheus and GrafanaGetting Started Monitoring with Prometheus and Grafana
Getting Started Monitoring with Prometheus and GrafanaSyah Dwi Prihatmoko
 
Deep-Dive to Application Insights
Deep-Dive to Application Insights Deep-Dive to Application Insights
Deep-Dive to Application Insights Gunnar Peipman
 
AZ-204 : Implement Azure security
AZ-204 : Implement Azure securityAZ-204 : Implement Azure security
AZ-204 : Implement Azure securityAzureEzy1
 
Front end architecture
Front end architectureFront end architecture
Front end architectureRemus Langu
 
NashTech - Azure Application Insights
NashTech - Azure Application InsightsNashTech - Azure Application Insights
NashTech - Azure Application InsightsPhi Huynh
 
MuleSoft Architecture Presentation
MuleSoft Architecture PresentationMuleSoft Architecture Presentation
MuleSoft Architecture PresentationRupesh Sinha
 
SpringBoot with MyBatis, Flyway, QueryDSL
SpringBoot with MyBatis, Flyway, QueryDSLSpringBoot with MyBatis, Flyway, QueryDSL
SpringBoot with MyBatis, Flyway, QueryDSLSunghyouk Bae
 
Adobe Experience Manager Core Components
Adobe Experience Manager Core ComponentsAdobe Experience Manager Core Components
Adobe Experience Manager Core ComponentsGabriel Walt
 
Java applications developer responsibilities and duties
Java applications developer responsibilities and dutiesJava applications developer responsibilities and duties
Java applications developer responsibilities and dutiesSuri P
 
Python/Flask Presentation
Python/Flask PresentationPython/Flask Presentation
Python/Flask PresentationParag Mujumdar
 
APIs in a Microservice Architecture
APIs in a Microservice ArchitectureAPIs in a Microservice Architecture
APIs in a Microservice ArchitectureWSO2
 

What's hot (20)

API Management Within a Microservices Architecture
API Management Within a Microservices Architecture API Management Within a Microservices Architecture
API Management Within a Microservices Architecture
 
Introduction to REST - API
Introduction to REST - APIIntroduction to REST - API
Introduction to REST - API
 
OpenAPI 3.0, And What It Means for the Future of Swagger
OpenAPI 3.0, And What It Means for the Future of SwaggerOpenAPI 3.0, And What It Means for the Future of Swagger
OpenAPI 3.0, And What It Means for the Future of Swagger
 
Getting Started Monitoring with Prometheus and Grafana
Getting Started Monitoring with Prometheus and GrafanaGetting Started Monitoring with Prometheus and Grafana
Getting Started Monitoring with Prometheus and Grafana
 
Deep-Dive to Application Insights
Deep-Dive to Application Insights Deep-Dive to Application Insights
Deep-Dive to Application Insights
 
Function as a Service
Function as a ServiceFunction as a Service
Function as a Service
 
AZ-204 : Implement Azure security
AZ-204 : Implement Azure securityAZ-204 : Implement Azure security
AZ-204 : Implement Azure security
 
Front end architecture
Front end architectureFront end architecture
Front end architecture
 
NashTech - Azure Application Insights
NashTech - Azure Application InsightsNashTech - Azure Application Insights
NashTech - Azure Application Insights
 
MuleSoft Architecture Presentation
MuleSoft Architecture PresentationMuleSoft Architecture Presentation
MuleSoft Architecture Presentation
 
SpringBoot with MyBatis, Flyway, QueryDSL
SpringBoot with MyBatis, Flyway, QueryDSLSpringBoot with MyBatis, Flyway, QueryDSL
SpringBoot with MyBatis, Flyway, QueryDSL
 
API strategy with IBM API connect
API strategy with IBM API connectAPI strategy with IBM API connect
API strategy with IBM API connect
 
C# Async Await
C# Async AwaitC# Async Await
C# Async Await
 
Adobe Experience Manager Core Components
Adobe Experience Manager Core ComponentsAdobe Experience Manager Core Components
Adobe Experience Manager Core Components
 
Java applications developer responsibilities and duties
Java applications developer responsibilities and dutiesJava applications developer responsibilities and duties
Java applications developer responsibilities and duties
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Python/Flask Presentation
Python/Flask PresentationPython/Flask Presentation
Python/Flask Presentation
 
Azure
AzureAzure
Azure
 
Azure App Service Deep Dive
Azure App Service Deep DiveAzure App Service Deep Dive
Azure App Service Deep Dive
 
APIs in a Microservice Architecture
APIs in a Microservice ArchitectureAPIs in a Microservice Architecture
APIs in a Microservice Architecture
 

Similar to Sug bangalore - headless jss

Sitecore User Group - JSS & GraphQL
Sitecore User Group - JSS & GraphQLSitecore User Group - JSS & GraphQL
Sitecore User Group - JSS & GraphQLThom Puiman
 
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Lucas Jellema
 
Sitecore 8.2 Update 1 on Azure Web Apps
Sitecore 8.2 Update 1 on Azure Web AppsSitecore 8.2 Update 1 on Azure Web Apps
Sitecore 8.2 Update 1 on Azure Web AppsRob Habraken
 
What is Server-side Rendering? How to Render Your React App on the Server-sid...
What is Server-side Rendering? How to Render Your React App on the Server-sid...What is Server-side Rendering? How to Render Your React App on the Server-sid...
What is Server-side Rendering? How to Render Your React App on the Server-sid...Shelly Megan
 
Sitecore9 key features by jitendra soni - Presented in Sitecore User Group UK
Sitecore9 key features by jitendra soni - Presented in Sitecore User Group UKSitecore9 key features by jitendra soni - Presented in Sitecore User Group UK
Sitecore9 key features by jitendra soni - Presented in Sitecore User Group UKJitendra Soni
 
Getting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online developmentGetting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online developmentJeremy Thake
 
Blazing fast web experience at your fingertips with Experience Edge, JSS for ...
Blazing fast web experience at your fingertips with Experience Edge, JSS for ...Blazing fast web experience at your fingertips with Experience Edge, JSS for ...
Blazing fast web experience at your fingertips with Experience Edge, JSS for ...VarunNehra
 
Sitecore 10 - ASP.NET Core Rendering with Docker and Sitecore 10
Sitecore 10 - ASP.NET Core Rendering with Docker and Sitecore 10Sitecore 10 - ASP.NET Core Rendering with Docker and Sitecore 10
Sitecore 10 - ASP.NET Core Rendering with Docker and Sitecore 10Jitendra Soni
 
Creating personalized cross platform mobile apps with the Sitecore Mobile SDK
Creating personalized cross platform mobile apps with the Sitecore Mobile SDKCreating personalized cross platform mobile apps with the Sitecore Mobile SDK
Creating personalized cross platform mobile apps with the Sitecore Mobile SDKMark van Aalst
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...Mark Leusink
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...Mark Roden
 
Progressive Web Apps and React
Progressive Web Apps and ReactProgressive Web Apps and React
Progressive Web Apps and ReactMike Melusky
 
Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012Dimitri de Putte
 
ASP .Net Core SPA Templates
ASP .Net Core SPA TemplatesASP .Net Core SPA Templates
ASP .Net Core SPA TemplatesEamonn Boyle
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples Yochay Kiriaty
 
Mastering react with redux
Mastering react with reduxMastering react with redux
Mastering react with reduxGaurav Singh
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolith Stay productive while slicing up the monolith
Stay productive while slicing up the monolith Markus Eisele
 

Similar to Sug bangalore - headless jss (20)

Santosh_Resume_Java
Santosh_Resume_JavaSantosh_Resume_Java
Santosh_Resume_Java
 
Sitecore User Group - JSS & GraphQL
Sitecore User Group - JSS & GraphQLSitecore User Group - JSS & GraphQL
Sitecore User Group - JSS & GraphQL
 
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
 
Sitecore 8.2 Update 1 on Azure Web Apps
Sitecore 8.2 Update 1 on Azure Web AppsSitecore 8.2 Update 1 on Azure Web Apps
Sitecore 8.2 Update 1 on Azure Web Apps
 
What is Server-side Rendering? How to Render Your React App on the Server-sid...
What is Server-side Rendering? How to Render Your React App on the Server-sid...What is Server-side Rendering? How to Render Your React App on the Server-sid...
What is Server-side Rendering? How to Render Your React App on the Server-sid...
 
Sitecore9 key features by jitendra soni - Presented in Sitecore User Group UK
Sitecore9 key features by jitendra soni - Presented in Sitecore User Group UKSitecore9 key features by jitendra soni - Presented in Sitecore User Group UK
Sitecore9 key features by jitendra soni - Presented in Sitecore User Group UK
 
Getting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online developmentGetting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online development
 
Blazing fast web experience at your fingertips with Experience Edge, JSS for ...
Blazing fast web experience at your fingertips with Experience Edge, JSS for ...Blazing fast web experience at your fingertips with Experience Edge, JSS for ...
Blazing fast web experience at your fingertips with Experience Edge, JSS for ...
 
Chalam_JAVA_Portal
Chalam_JAVA_PortalChalam_JAVA_Portal
Chalam_JAVA_Portal
 
Sitecore 10 - ASP.NET Core Rendering with Docker and Sitecore 10
Sitecore 10 - ASP.NET Core Rendering with Docker and Sitecore 10Sitecore 10 - ASP.NET Core Rendering with Docker and Sitecore 10
Sitecore 10 - ASP.NET Core Rendering with Docker and Sitecore 10
 
Creating personalized cross platform mobile apps with the Sitecore Mobile SDK
Creating personalized cross platform mobile apps with the Sitecore Mobile SDKCreating personalized cross platform mobile apps with the Sitecore Mobile SDK
Creating personalized cross platform mobile apps with the Sitecore Mobile SDK
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...
 
Progressive Web Apps and React
Progressive Web Apps and ReactProgressive Web Apps and React
Progressive Web Apps and React
 
Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012
 
Google App Engine overview (GAE/J)
Google App Engine overview (GAE/J)Google App Engine overview (GAE/J)
Google App Engine overview (GAE/J)
 
ASP .Net Core SPA Templates
ASP .Net Core SPA TemplatesASP .Net Core SPA Templates
ASP .Net Core SPA Templates
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples
 
Mastering react with redux
Mastering react with reduxMastering react with redux
Mastering react with redux
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolith Stay productive while slicing up the monolith
Stay productive while slicing up the monolith
 

More from Anindita Bhattacharya

SUG Bangalore - Extending Sitecore Experience Commerce 9 Business Tools
SUG Bangalore - Extending Sitecore Experience Commerce 9 Business ToolsSUG Bangalore - Extending Sitecore Experience Commerce 9 Business Tools
SUG Bangalore - Extending Sitecore Experience Commerce 9 Business ToolsAnindita Bhattacharya
 
Sug bangalore - sitecore solr nuggets
Sug bangalore - sitecore solr nuggetsSug bangalore - sitecore solr nuggets
Sug bangalore - sitecore solr nuggetsAnindita Bhattacharya
 
Sug bangalore - sitecore commerce introduction
Sug bangalore - sitecore commerce introductionSug bangalore - sitecore commerce introduction
Sug bangalore - sitecore commerce introductionAnindita Bhattacharya
 
SUG Bangalore - WFFM Customizations with Sanjay Singh
SUG Bangalore - WFFM Customizations with Sanjay SinghSUG Bangalore - WFFM Customizations with Sanjay Singh
SUG Bangalore - WFFM Customizations with Sanjay SinghAnindita Bhattacharya
 
SUG Bangalore - Overview of Sitecore Experience Accelerator with Pratik Satik...
SUG Bangalore - Overview of Sitecore Experience Accelerator with Pratik Satik...SUG Bangalore - Overview of Sitecore Experience Accelerator with Pratik Satik...
SUG Bangalore - Overview of Sitecore Experience Accelerator with Pratik Satik...Anindita Bhattacharya
 
SUG Bangalore - Decoding DXF with Prasath Panneer Chelvam
SUG Bangalore - Decoding DXF with Prasath Panneer ChelvamSUG Bangalore - Decoding DXF with Prasath Panneer Chelvam
SUG Bangalore - Decoding DXF with Prasath Panneer ChelvamAnindita Bhattacharya
 
SUG Bangalore - Marketing Automation by Aji Viswanadhan
SUG Bangalore - Marketing Automation by Aji ViswanadhanSUG Bangalore - Marketing Automation by Aji Viswanadhan
SUG Bangalore - Marketing Automation by Aji ViswanadhanAnindita Bhattacharya
 
SUG Bangalore - Sitecore EXM with Jisha Muthuswamy
SUG Bangalore - Sitecore EXM with Jisha MuthuswamySUG Bangalore - Sitecore EXM with Jisha Muthuswamy
SUG Bangalore - Sitecore EXM with Jisha MuthuswamyAnindita Bhattacharya
 
Sugblr sitecore search - absolute basics
Sugblr sitecore search - absolute basicsSugblr sitecore search - absolute basics
Sugblr sitecore search - absolute basicsAnindita Bhattacharya
 
Sugblr deep dive data exchange framework with sitecore
Sugblr deep dive data exchange framework with sitecoreSugblr deep dive data exchange framework with sitecore
Sugblr deep dive data exchange framework with sitecoreAnindita Bhattacharya
 
What's new in Sitecore 9 by Kamruz Jaman
What's new in Sitecore 9 by Kamruz JamanWhat's new in Sitecore 9 by Kamruz Jaman
What's new in Sitecore 9 by Kamruz JamanAnindita Bhattacharya
 
Machine Learning with Microsoft by Nalin Mujumdar
Machine Learning with Microsoft by Nalin MujumdarMachine Learning with Microsoft by Nalin Mujumdar
Machine Learning with Microsoft by Nalin MujumdarAnindita Bhattacharya
 
Let's explore Helix by Gopikrishna Gujjula
Let's explore Helix by Gopikrishna GujjulaLet's explore Helix by Gopikrishna Gujjula
Let's explore Helix by Gopikrishna GujjulaAnindita Bhattacharya
 
Sitecore with Azure AD and Multifactor Authentication
Sitecore with Azure AD and Multifactor AuthenticationSitecore with Azure AD and Multifactor Authentication
Sitecore with Azure AD and Multifactor AuthenticationAnindita Bhattacharya
 
SUGBLR - Salesforce Integration with Sitecore
SUGBLR - Salesforce Integration with SitecoreSUGBLR - Salesforce Integration with Sitecore
SUGBLR - Salesforce Integration with SitecoreAnindita Bhattacharya
 
SUGBLR - Dependency injection in sitecore
SUGBLR - Dependency injection in sitecoreSUGBLR - Dependency injection in sitecore
SUGBLR - Dependency injection in sitecoreAnindita Bhattacharya
 
SUGBLR - Explore working with mongo db in Sitecore
SUGBLR - Explore working with mongo db in SitecoreSUGBLR - Explore working with mongo db in Sitecore
SUGBLR - Explore working with mongo db in SitecoreAnindita Bhattacharya
 

More from Anindita Bhattacharya (20)

SUG Bangalore - Extending Sitecore Experience Commerce 9 Business Tools
SUG Bangalore - Extending Sitecore Experience Commerce 9 Business ToolsSUG Bangalore - Extending Sitecore Experience Commerce 9 Business Tools
SUG Bangalore - Extending Sitecore Experience Commerce 9 Business Tools
 
Sug bangalore - sitecore solr nuggets
Sug bangalore - sitecore solr nuggetsSug bangalore - sitecore solr nuggets
Sug bangalore - sitecore solr nuggets
 
Sug bangalore - sitecore commerce introduction
Sug bangalore - sitecore commerce introductionSug bangalore - sitecore commerce introduction
Sug bangalore - sitecore commerce introduction
 
SUG Bangalore - WFFM Customizations with Sanjay Singh
SUG Bangalore - WFFM Customizations with Sanjay SinghSUG Bangalore - WFFM Customizations with Sanjay Singh
SUG Bangalore - WFFM Customizations with Sanjay Singh
 
SUG Bangalore - Overview of Sitecore Experience Accelerator with Pratik Satik...
SUG Bangalore - Overview of Sitecore Experience Accelerator with Pratik Satik...SUG Bangalore - Overview of Sitecore Experience Accelerator with Pratik Satik...
SUG Bangalore - Overview of Sitecore Experience Accelerator with Pratik Satik...
 
SUG Bangalore - Decoding DXF with Prasath Panneer Chelvam
SUG Bangalore - Decoding DXF with Prasath Panneer ChelvamSUG Bangalore - Decoding DXF with Prasath Panneer Chelvam
SUG Bangalore - Decoding DXF with Prasath Panneer Chelvam
 
SUG Bangalore - Marketing Automation by Aji Viswanadhan
SUG Bangalore - Marketing Automation by Aji ViswanadhanSUG Bangalore - Marketing Automation by Aji Viswanadhan
SUG Bangalore - Marketing Automation by Aji Viswanadhan
 
SUG Bangalore - Sitecore EXM with Jisha Muthuswamy
SUG Bangalore - Sitecore EXM with Jisha MuthuswamySUG Bangalore - Sitecore EXM with Jisha Muthuswamy
SUG Bangalore - Sitecore EXM with Jisha Muthuswamy
 
Sugblr sitecore search - absolute basics
Sugblr sitecore search - absolute basicsSugblr sitecore search - absolute basics
Sugblr sitecore search - absolute basics
 
Sugblr problem solving coveo
Sugblr problem solving coveoSugblr problem solving coveo
Sugblr problem solving coveo
 
Sugblr deep dive data exchange framework with sitecore
Sugblr deep dive data exchange framework with sitecoreSugblr deep dive data exchange framework with sitecore
Sugblr deep dive data exchange framework with sitecore
 
Sugblr sitecore forms
Sugblr sitecore formsSugblr sitecore forms
Sugblr sitecore forms
 
What's new in Sitecore 9 by Kamruz Jaman
What's new in Sitecore 9 by Kamruz JamanWhat's new in Sitecore 9 by Kamruz Jaman
What's new in Sitecore 9 by Kamruz Jaman
 
Machine Learning with Microsoft by Nalin Mujumdar
Machine Learning with Microsoft by Nalin MujumdarMachine Learning with Microsoft by Nalin Mujumdar
Machine Learning with Microsoft by Nalin Mujumdar
 
Let's explore Helix by Gopikrishna Gujjula
Let's explore Helix by Gopikrishna GujjulaLet's explore Helix by Gopikrishna Gujjula
Let's explore Helix by Gopikrishna Gujjula
 
Sitecore with Azure AD and Multifactor Authentication
Sitecore with Azure AD and Multifactor AuthenticationSitecore with Azure AD and Multifactor Authentication
Sitecore with Azure AD and Multifactor Authentication
 
Sitecore Goals – Why, What & How
Sitecore Goals – Why, What & HowSitecore Goals – Why, What & How
Sitecore Goals – Why, What & How
 
SUGBLR - Salesforce Integration with Sitecore
SUGBLR - Salesforce Integration with SitecoreSUGBLR - Salesforce Integration with Sitecore
SUGBLR - Salesforce Integration with Sitecore
 
SUGBLR - Dependency injection in sitecore
SUGBLR - Dependency injection in sitecoreSUGBLR - Dependency injection in sitecore
SUGBLR - Dependency injection in sitecore
 
SUGBLR - Explore working with mongo db in Sitecore
SUGBLR - Explore working with mongo db in SitecoreSUGBLR - Explore working with mongo db in Sitecore
SUGBLR - Explore working with mongo db in Sitecore
 

Recently uploaded

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 

Recently uploaded (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 

Sug bangalore - headless jss

  • 1. JSS SUG BLR August 8th 2018 Presented by: Gopi Sivanappan Vasanthi Sr. Associate - SapientRazorfish
  • 2. Why JSS? • To overcome the shortcomings of monolithic mode of current Sitecore Development and Deployment. • To make Sitecore more scalable by reducing the load from Sitecore servers and delegating the same to Node. • To provide full experience editor capabilities for application developed using front end technologies like react, angular etc., • To enable analytics, personalization and mv (multivariate) testing capabilities for application developed using front end technologies. • To enable front end developers to work in disconnected mode without having Sitecore instance in their machine. Thus reducing the license dependency for Sitecore development. • To enable both behavior and content to be consumed from Sitecore and functionality to come from other front end technologies,
  • 3. What is headless? • To have a application development environment agnostic of the content to be consume. • Current Presentation Architecture of Sitecore was tightly coupled with its Information Architecture. • Headless will make development of applications possible with Sitecore i.e., the Information architecture and presentation architecture is decoupled.
  • 4. Setting Up…. Sitecore 9.0.1 + Node JS v6.9 + npm v5.7+ or yarn Jss enabled license
  • 5. Setting up…. Step 1: Installing JSS CLI npm install -g @sitecore-jss/sitecore-jss-cli yarn global add @sitecore-jss/sitecore-jss-cli Step 2: Choose an application styleguide template: • react • vue • angular jss create <your-app-name> <app-template-name> Experimental Templates: sitecore-embedded-jss-app sitecore-javascript-renderings
  • 6. Running a disconnected JSS App jss start http://localhost:3000
  • 7. JSS Server Setup • Download and Install the JSS Server Components Sitecore package. • Sitecore JavaScript Services Tech Preview Server 9.0.1 rev. 180724 • Add the following element to the bottom of the system.webServer/handlers section of the Sitecore Web.config: • <add verb="*" path="sitecorejss_media.ashx" type="Sitecore.JavaScriptServices.Media.MediaRequestHandler, Sitecore.JavaScriptServices.Media" name="Sitecore.JavaScriptServices.Media.MediaRequestHandler" /> • Verify your server components install worked, by visiting http://your-sitecore- instance/sitecore/api/layout/render/jss?item=/&sc_apikey=TEST. • You should receive HTTP Error 400.0 - API key is not valid if it is working correctly.
  • 8. JSS App Deployment • Configuring the Sitecore server to receive the JSS app • Configuring Host Name > sitecoreconfig<appname>.config • Creating API Key > /sitecore/system/Settings/Services/API Keys • Connecting the JSS app to Sitecore (from app directory) jss setup jss deploy config jss deploy app --includeContent --includeDictionary
  • 9. Creating our JSS Component Scaffolding a running a JSS Component Step 1: Keep your JSS app running by invoking “jss start” Step 2: jss scaffold <Component Name> Step 3: Define the component's data in sitecoredefinitionscomponentsMyCardHolder.sitecore.js Step 4: Implement the React component in srccomponentsMyCardHolderindex.js Step 5: Add the component to a route layout (/data/routes) and test it with jss start
  • 10. Sitecore JSS - Architecture
  • 11.
  • 12.
  • 14. Workflow • Code-First • JSS App defines the manifest of the content data and the structure of the data. • Thus, it can execute local content without a Sitecore Instance. • Used mainly during early prototyping of a design. • Sitecore-First • JSS app consumes data from Sitecore but has no responsibility for defining the structure of that data Most Sitecore-first projects will begin life with at least one code-first app deployment, just to create the structures in Sitecore for the app (app root, rendering root, template root, etc). After this initial deployment, the app can migrate to Sitecore-first.
  • 15. JSS Application Modes Development • Disconnected dev mode • Connected dev mode • Integrated mode • API-Only mode Production • Integrated mode • Headless server-side rendering mode • API-only mode
  • 19. Headless server-side rendering mode • Rendering performed by server (SSR by Node-as-a-service provider, i.e. Azure App Service, Netlify, Heroku, etc) • Data comes from Sitecore CD server via LayoutService API (HTTP calls) • Full Sitecore marketing/personalization engine support • Usages: decoupling rendering of the JSS app from Sitecore, multichannel API usage
  • 20. API Only Mode • Consume Sitecore APIs that return JSON data from anything that understands JSON, e.g. native mobile apps, chatbots, etc.
  • 21. Sitecore Layout Service • The Sitecore Layout Service is the REST endpoint which provides data for Sitecore JSS apps. • Rendered fields with Experience Editor markup for inline editing. • /sitecore/api/layout/render/[config]?item= [path]&sc_lang=[language]&sc_apikey=[key ]&tracking=[true|false]

Editor's Notes

  1. Why JSS? Sitecore JSS is a way to develop JavaScript-based frontends with a Sitecore backend. For Developers Enables modern web development workflow, combined with the power of an enterprise backend. Have the freedom to use the latest JavaScript frameworks and libraries, any IDE, any OS and any dev workflow. Makes Sitecore install optional during development. Build full-fledged Sitecore solutions (websites, PWAs, SPAs, you name it) by being completely disconnected from the Sitecore platform during the development process. Support for physically decoupled "headless" deployments. Deploy your app "headlessly" to any platform that runs server-side JavaScript. You can even run your app in the browser. The data powering the app will come from a separate Sitecore server. Automate app integration. With a code-first approach, your app can be imported into Sitecore XP, and JSS will take care of the generation of all the necessary artifacts. Easy deployment. Your web app is a nimble self-contained JS bundle, easier to deploy and manage. JSS is designed to bring just enough of Sitecore to the JavaScript app to unlock the power of Sitecore, but still enable a flexible and idiomatic JavaScript development experience. Please refer to the docs for a more in-depth walkthrough. For Marketers Maintain full control over not only content, but presentation and marketing features as well. As opposed to a typical Headless CMS deployment, where marketers lose control over the presentation aspect and experience management, with JSS you can leverage full Experience Platform capability including Experience Editor, page-level content composition, personalization, multi-variate testing, tracking and analytics. Achieve faster time-to-market and more experimentation. You can do most of the development without integration with Sitecore XP as a requirement. You can experiment more by building the app stand-alone, test the UX, and do automated integration afterward. Key Principles and Goals Empower and not burden JavaScript developers. Set of capabilities rather than an all-or-nothing framework. JSS allows you to cherry pick what makes sense for your particular use case and your team. Express as little opinion as possible. Component-centric architecture. JSS is built to support JavaScript frameworks that are putting component architectures and atomic design principles at the center. This is a strength that both Sitecore and modern JavaScript share. There is more than one way of executing a project. Provide a clear boundary between back-end work in .NET and front-end work in JavaScript and enable more effective specialization on projects.
  2. JSS includes a handy Node-based command line tool to make it easy to get started and maintain your application. App name should be in lower case and can contain – or _ Next steps: * Enable source control (i.e. git init) * Try out your application with cd my-second-jss-app then jss start * Connect to Sitecore with jss setup (optional) * Check out the JSS documentation at https://jss.sitecore.net Enjoy!
  3. x
  4. Allowed Controllers: Sitecore.LayoutService.Mvc.Controllers.LayoutServiceController; Sitecore.JavaScriptServices.Globalization.Controllers.DictionaryServiceController; Sitecore.Services.GraphQL.Hosting.Mvc.GraphQLController Deployment Secret: /scjssconfig.json /sitecore/config/AppName.deploysecret.config NEXT STEPS * Deploy your configuration (i.e. 'jss deploy config') * Deploy your app (i.e. 'jss deploy app -c -d') * Test your app in integrated mode by visiting http://my-first-jss-app.dev.local
  5. JSS' sample apps include a script that allows you to easily scaffold new JSS components. This script can be customized in the boiler plate file /scripts/scaffold-component.js Component name should start with an uppercase letter and contain only letters and numbers. Next steps: * Define the component's data in sitecore\definitions\components\MyCardHolder.sitecore.js * Implement the React component in src\components\MyCardHolder\index.js * Add the component to a route layout (/data/routes) and test it with jss start
  6. Using manifest definitions and the JSS CLI, developers can deploy an application "code first" via the Import Service. Note that this is optional -- you always have the option of working Sitecore-first. As described above, the Layout Service provides the data needed to render the JSS app. It is typically consumed for both initial render on the server, as well as directly from the browser on route change. The JSS View Engine runs within the Sitecore instance and provides server-side rendering via communication with an out of process node.js instance, which it manages. JSS apps may consume the JSS Dictionary Service, Sitecore GraphQL, other Sitecore.Services.Client services, or custom REST endpoints as needed. For a true headless architecture, you may utilize independent node.js host(s) for server-side rendering of your application, via the sitecore-jss-proxy module. App configuration within Sitecore provides app-specific settings for the Import Service and View Engine.
  7. JSS SDKs: A series of npm packages facilitate working with Sitecore data and layout in JavaScript. Framework-specific SDKs provide Sitecore's dynamic placeholder layout system and helpers for rendering Sitecore fields so they can be editable by authors. https://www.npmjs.com/org/sitecore-jss Sitecore Layout Service: provides the composition of route/pages, as well as the needed data for each component. JavaScript view engine: Allows Sitecore to perform server-side rendering (SSR) of JavaScript applications, enabling use of the Sitecore Experience Editor. Application import: Developers may take a code-first approach when using JSS via the Application Import Service, which generates Sitecore renderings, templates and/or content based on data and JavaScript-defined Sitecore entities such as renderings and templates.
  8. For development: Disconnected dev mode - Sitecore not required, hosts locally, uses local content data. Connected dev mode - Sitecore required, hosts locally, content data from Sitecore. Integrated mode - Sitecore required, hosts on Sitecore, content data from Sitecore, server-side rendering. API-only mode - Consume personalized Sitecore layout data from any platform that understands JSON. For production: Integrated mode - Server-side rendering performed on Sitecore CD server. Headless server-side rendering mode - Server-side rendering performed on Node server, data from Sitecore CD. API-only mode - Consume personalized Sitecore layout data from any platform that understands JSON.
  9. This mode hosts your JSS app within a Sitecore instance. The application is server-side rendered (SSR) by the Sitecore instance