For this you have to consider many aspects and some of them are:
• Is your application having any dynamic functionality where content should be severed in real time from the Sitecore instance?
• Is your client more interested in Modern web tech by utilizing GatsBy? In which Sitecore CMS will just serve the content via Headless API’s to Gatsby’s ecosystem and then use Sitecore CMS Content directly into your pages using GraphQL.
• Is there any business need to utilize Sitecore Experience Platform for Personalization (personalization rules, multivariate tests, etc) & Analytics? In Sitecore JavaScript Services (JSS) personalization works exactly how it does in a non-headless Sitecore site.
• Is there any Business need to provide easy content authoring via Sitecore Experience Editor to Business User’s including facility to build pages using existing layout/components?
• From Infrastructure point of you are you going to deploy your application on IIS or Node server?
The Sitecore JavaScript Services (JSS) SDK providing you the complete flexibility in terms of Sitecore JavaScript Services (JSS) Application Modes which will be covering above questionnaire and its very important point of Sitecore Omni channel experience which will provide the true Headless CMS capabilities without sacrificing any of the powerful marketing features you need:
• 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 on CD server.
• API-only mode - Consume personalized Sitecore layout data from any platform that understands JSON.
• Headless server-side rendering mode - Server-side rendering performed on Node server, data from Sitecore CD.
All of the above Application Modes supports many different features and for this you have to deep dive into Sitecore JavaScript Services (JSS) Application Modes .
For the ease of Sitecore Community members I tried to create a Sitecore JavaScript Services (JSS) Application Modes Compatibility Table:
I hope it will be helpful for Sitecore Community and let me know if any correction required in above mentioned Compatibility Table.
We can also build Single Page Application (SPA) and Progressive Web App (PWA) in Sitecore JSS with support of Sitecore Experience Editor functionality.
You can check functionality of Sitecore JavaScript Services (JSS) Single Page Application (SPA) at Habitat Fitness App and code base for the same present at GitHub for your reference. Currently Habitat Fitness App sample application not having all the functionality of Progressive Web App (PWA) but you can utilize this sample app to build full-fledged Progressive Web App (PWA).
Credit/References:
Pingback:
Sitecore JavaScript Services (JSS) | Sitecore JSS Application Modes | Sitecore Helix Recommendation and Conventions - Helix 2.0 |
Sitecore JSS connected mode | Sitecore JSS integrated mode | Sitecore JSS Disconnected Mode |
Sitecore JSS API-only Mode | Sitecore JSS Headless server-side rendering (Headless SSR) Mode | Sitecore JSS Experience Editor |
Sitecore Experience Platform | What is a headless CMS? | Sitecore JSS api |
Sitecore JSS architecture | Sitecore JSS angular, reactjs | Sitecore JSS and sxa |
Sitecore JSS sample app | Sitecore JSS Personalization & analytics | Sitecore JSS advantages |
Sitecore JSS pros and cons | Sitecore Helix | Headless CMS vs Hybrid CMS |