SlideShare a Scribd company logo
Do You Need Server Side Rendering?
What Are The Alternatives?
Vitali Zaidman
Web Architect and Blogger
https://vzaidman.com
https://codevalue.net
About Vitali Zaidman
2
 8 years of experience in web programming
 Leading teams- currently in 10bis
 Used SSR, SSG, and Dynamic Rendering on several projects
 Web Architect and Blogger
 https://vzaidman.com
 https://medium.com/@vzaidman –
writing about web programming
Agenda
 Client Side Rendering (CSR)
 Why Sometimes CSR Is Not Enough
 Static Site Generation (SSG)
 Server Side Rendering (SSR)
 SSG and SSR challenges
 Dynamic Rendering For Bots
3
What Is “Rendering” In “Server / Client Side Rendering”?
The generation of the initial meaningful content of a webpage (HTML?)
Includes:
 Templating / Calculations
 API Calls
Not to be confused with:
 Browser rendering (or painting)
 React.js Render functions
 Other renders
4
Meaningful content that user sees
CSR
Before we speak about SSR….
Client Side Rendering
5
Client Side Rendering (CSR)
The user receives only a shallow HTML
The website is then generated on the client using JS
Usually using a library like:
 React
 Angular
 Vue
6
No meaningful content – only loading
angular.io Is CSR
7
Let’s take https://angular.io/guide/glossary
8
angular.io Is CSR
If we look at the HTML that returns
from the server for
https://angular.io/guide/glossary
 The title is just a generic title
 The body element is empty
angular.io Is CSR
9
https://angular.io/guide/glossary
 This is how the initial HTML
looks like without JavaScript
 Later, it is expanded with Angular
10
angular.io Is CSR
If we inspect the DOM after loading
https://angular.io/guide/glossary
 The title is a specific title
 The body is expanded to be a
beautiful website
Why Sometimes CSR Is Not Enough
 Link Previews
 SEO
 Performance
11
Link Previews
12
Link Previews
 Link previews in websites and apps like Facebook, WhatsApp, Medium
 Might be surprising but this trivial feature doesn’t work with full CSR
13
14
angular.io Is CSR
 Because the bots receive the shallow HTML
When Do You Care About Link Previews?
 We do care about link previews on
 Public pages like homepage, products
 Content based websites like blogs, news, videos
 We do not care about link previews on
 Private pages like pages behind a login
 Dynamic pages like dashboards, studios
15
SEO
Search engine optimization
16
Search Engine Optimization (SEO)
17
The process of increasing the visibility of a website or a web page to users of a
web search engine.
Search Engines And CSR
It seems like search engines handle can handle CSRs
so why CSR is considered not compatible with SEO?
18
SEO – CSR Handling Is Not Perfect
Crawl
Parse / Index
/ Rank
Render
Index the HTML received
Queue
Wait for rendering resources (weeks?)
Load the website on a machine
Index using the rendered DOM
Crawl all links
Google receives an empty HTML
and skips the first index / indexes a bad version of the page
You need to wait in queue in order to get indexed
Your page might not render as you expect it
19
Performance
20
21
Read about Lighthouse Performance Scoring: https://web.dev/performance-scoring/
The topic will be expanded at 14:00 by Vered Flis Segal in the talk “Because Performance Matters!”
Google Lighthouse Performance Scoring
First / Largest Contentful Paint (FCP / LCP)
Image from: https://web.dev/lcp/
CSR Page Load Performance
 Content Visible –
 It takes time to show us content on CSR
 Download JavaScripts
 Run JavaScripts
 Make Ajax calls
Image from: https://web.dev/lcp/
So If Not CSR….
24
We saw that CSR has some problems with:
• Link Previews
• SEO
• Performance
SSG
Static Site Generation
25
Static Site Generation (SSG) Build SPA
generate
route HTMLs
26
Generate route HTMLs in build time
 ReactDOM.renderToString
 Next.js static export, Gatsby, custom implementation
 Headless, JSDom – Prerender a CSR app
 Scully.io for Angular
 Puppeteer for anything
 Easier Solution
 SSG Frameworks
 Hexo (Node.js)
 Jekyll (Ruby)
 Hugo (Go)
 Pelican (Python)
Meaningful content on build
…article-1
.html
article-2
.html
article-100
.html
homepage
.html
dist/homepage.html of an SSG build:
Static Site Generation Example
In Takeaway Pay, we generate full HTMLS for the homepage in advance for
different countries and languages
dist
/
landing-page
Static Site Generation Example
In Takeaway Pay, we generate full HTMLS for the homepage in advance for
different countries and languages
Static Site Generation Example
In Takeaway Pay, we generate full HTMLS for the homepage in advance for
different countries and languages
Time To Interactive (TTI)
Image from: https://web.dev/lcp/
Hydration
31
JavaScript attaching to the initially returned HTML
 After the hydration the website
becomes fully interactive.
 Before the hydration the website
is visible but not interactive.
Meaningful content from the server
SSG Page Load Performance
 Content Visible –
Very fast
 The HTML is generated in advance
and can be returned from a CDN
 Time To Interactive –
Depends
 Need to wait for the hydration
Image from: https://web.dev/lcp/
So CSR or SSG?
 SEO
 In CSR you will have your website queued to be crawled. In SSG you will not.
 Link Previews
 In CSR your pages will not have link previews. In SSG they will.
 Performance
 Content Visible - Faster in SSG
 Time To Interactive - Faster in CSR
 Maintenance
 Less in CSR
No JavaScript – No Problem
34
 Very Fast Content Visible
 You get all the content immediately
 Immediate Time To Interactive
 No JavaScript is running so the website is
“interactive” immediately
Why Not SSG
35
…
Build SSG:
Article 1 Article 2
Article
100000
But imagine a news website with thousand of articles.
Most of them are rarely visited. Say you updated the footer.
 Would you want to regenerate all the articles from scratch?
 Would you want to re-upload them all to some database?
SSR
Server Side Rendering
Server Side Rendering (SSR)
37
…
Build SSG:
Article 1 Article 2
Article
100000
Imagine a news website with thousand of articles.
Most of them are rarely visited. Say you updated the footer.
 Would you want to regenerate all the articles from scratch?
 SSR:
…
Build
Article 1 Article 2
Article
100000
Server
Generate (and cache) upon navigation:
App
Server Side Rendering (SSR)
Server
38
How HTMLs are rendered on the server?
 PHP
 ASP.net
 Angular Universal
 React
Build
/blog-post?page=2
Meaningful content from the server
Hydration
App
App
SSR Benefits
39
Content visible speed:
 Rendered on fast CPU on the server
 Fast Ajax
 Because the server is close to the API server
 Caching
 HTML responses can be compressed
 gzip
 br
Cached page
(Can work like SSG)
Or:
Data calculations
Ajax requests
JS Render of HTML
Server
With an HTML
rendering app
Build
/blog-post?page=2
Meaningful content from the serverhydration
SSR Benefits
Dynamic content:
 Can generate dynamic content
on server
 It’s possible to implement
smart caching for this
• Login per user
based on cookies
• Generate
dynamic content
Server
With an HTML
rendering app
Build
/blog-post?page=2
Meaningful content from the serverhydration
SSR Page Load Performance
 Content visible
 Fast for cached pages
 Average for non cached pages,
depends, faster than CSR
 All scripts are ready
 Fast CPU
 Fast connection,
closer to the API server
 Time To Interactive - Depends
 Need to wait for the hydration
41
Image from: https://web.dev/lcp/
Dynamic Content
Dynamic Content
43
What if we want a dynamic content
to be returned from the server?
For example:
 The username
 Items order for the user
 Recent items
Dynamic Content
44
We have several solutions:
 In SSG / SSR
 Some things can be populated on
the client- like the username section
 This complicates the initialization
 In SSR
 Login on server and serve the
website with the dynamic content
 This complicates the serving
SSR / SSG Challenges
Before we get to dynamic rendering for bots….
SSR / SSG Challenges
 Universal / Isomorphic code
 Same application should run on client and server / build time
 Might lead to bad hydrations / broken app
For Example, the following code
will cause a flickering
because the server and client
results are not exactly the same
46
Always new number
SSR / SSG Challenges
 Caching
47
SSR / SSG Challenges
 Dynamic Content
 Lack of local storage
 only cookies are shared between server and client
 Complex initialization
 Load things on the client after hydration
48
SSR / SSG Challenges
 Bigger infrastructure
 Logging, debugging
 Managing frontend server scaling
 Prices
49
SSR / SSG Challenges
 Documentation, training, and bugs
50
Dynamic Rendering For Bots
But the previous solutions are complex…
This is why-
Dynamic Rendering For Bots
Build SPA
 Advantages- Link previews work, no queue in SEO
 Prominent tools- Google’s Rendertron
Server
Serve
Shallow HTML
52
Users
Render on headless
browser
or serve from cache
Bots
Meaningful content
No meaningful content
Dynamic Rendering For Bots Example
10bis.co.il CSR for users
53
Dynamic Rendering For Bots Example
54
10bis.co.il CSR for users
Dynamic Rendering For Bots Example
55
10bis.co.il CSR for users, but dynamically rendered for bots
Dynamic Rendering For Bots Example
56
10bis.co.il CSR for users, but dynamically rendered for bots
Hybrids
Hybrid Example – CSR With SSG For Headers
Build SPA
generate
route HTMLs
58
Only generate the header section of each page
 Handles link previews
 Relies on google for indexing
 Otherwise – CSR
 Slower content visible
 Fast time to interactive
 Easier than SSG because we don’t generate
pages’ body sections in build time
dist/home/index.html
dist/about/index.html
dist/blogposts/blog_post1.html
dist/blogposts/blog_post2.html
No meaningful body
Meaningful headers
Summary
CSR SSG SSR
Dynamic Rendering
For Bots
Content Visible
(LCP)
≈Average, Depends
on JS size + network
requests speed
Very Fast
≈Above Average
Very fast for cached
pages
≈Average, Depends
on JS size + network
requests speed
Time To Interactive
(TTI)
Fast
≈Average, Depends
on JS size and speed
≈Average, Depends
on JS size and speed
Fast
SEO
Rely on search
engine rendering
resource queue
Control over the
HTML for crawlers
no queues
Control over the
HTML for crawlers
no queues
Control over the
HTML for crawlers
no queues
Link Previews Doesn’t work Works Works Works
Infrastructure Size /
Maintenance
Small Relatively Complex Complex
Just a little more
than CSR
Summary
60
Q
A
61
Vitali Zaidman
Web Architect and Blogger
vzaidman@gmail.com
medium.com/@vzaidman
twitter.com/vzaidman
https://vzaidman.com
https://codevalue.net

More Related Content

What's hot

Will the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir ZukerWill the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir Zuker
CodeValue
 
Node.js Frameworks to watch for in 2019
Node.js Frameworks to watch for in 2019Node.js Frameworks to watch for in 2019
Node.js Frameworks to watch for in 2019
BrainMobi
 
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K..."Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
Tech in Asia ID
 
Progressive Web Apps. What, why and how
Progressive Web Apps. What, why and howProgressive Web Apps. What, why and how
Progressive Web Apps. What, why and how
Riza Fahmi
 
Typescript 102 angular and type script
Typescript 102   angular and type scriptTypescript 102   angular and type script
Typescript 102 angular and type script
Bob German
 
The Future of-the CMS (Twin Cities DrupalCamp 2015)
The Future of-the CMS (Twin Cities DrupalCamp 2015)The Future of-the CMS (Twin Cities DrupalCamp 2015)
The Future of-the CMS (Twin Cities DrupalCamp 2015)
Todd Ross Nienkerk
 
Java PaaS Vendor Survey - September 2011
Java PaaS Vendor Survey - September 2011Java PaaS Vendor Survey - September 2011
Java PaaS Vendor Survey - September 2011
Craig Dickson
 
Writing less code with Serverless on AWS at OOP 2022
Writing less code with Serverless on AWS at OOP 2022Writing less code with Serverless on AWS at OOP 2022
Writing less code with Serverless on AWS at OOP 2022
Vadym Kazulkin
 
Build 2017 - B8013 - Developing on Windows Server: Innovation for today and t...
Build 2017 - B8013 - Developing on Windows Server: Innovation for today and t...Build 2017 - B8013 - Developing on Windows Server: Innovation for today and t...
Build 2017 - B8013 - Developing on Windows Server: Innovation for today and t...
Windows Developer
 
Node.js BFFs: our way to better/micro frontends
Node.js BFFs: our way to better/micro frontendsNode.js BFFs: our way to better/micro frontends
Node.js BFFs: our way to better/micro frontends
Eugene Fidelin
 
Breaking Down the Monolith - Peter Marton, RisingStack
Breaking Down the Monolith - Peter Marton, RisingStackBreaking Down the Monolith - Peter Marton, RisingStack
Breaking Down the Monolith - Peter Marton, RisingStack
NodejsFoundation
 
Build Cloud Native Apps With DigitalOcean Kubernetes
Build Cloud Native Apps With DigitalOcean KubernetesBuild Cloud Native Apps With DigitalOcean Kubernetes
Build Cloud Native Apps With DigitalOcean Kubernetes
DigitalOcean
 
Vue3: nuove funzionalità, differenze e come migrare
Vue3: nuove funzionalità, differenze e come migrareVue3: nuove funzionalità, differenze e come migrare
Vue3: nuove funzionalità, differenze e come migrare
Andrea Campaci
 
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
VMware Tanzu
 
Build 2017 - B8033 - Give your conversations superpowers: Building intelligen...
Build 2017 - B8033 - Give your conversations superpowers: Building intelligen...Build 2017 - B8033 - Give your conversations superpowers: Building intelligen...
Build 2017 - B8033 - Give your conversations superpowers: Building intelligen...
Windows Developer
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
M A Hossain Tonu
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hourConvert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Brian Culver
 
The WordPress Performance Team
The WordPress Performance TeamThe WordPress Performance Team
The WordPress Performance Team
Felix Arntz
 
Salesforce1 dev week UYSDUG 2014 - the force canvas spark
Salesforce1 dev week UYSDUG 2014 - the force canvas sparkSalesforce1 dev week UYSDUG 2014 - the force canvas spark
Salesforce1 dev week UYSDUG 2014 - the force canvas spark
Aldo Fernandez
 
Building Scalable Web Applications Using Microservices Architecture and NodeJ...
Building Scalable Web Applications Using Microservices Architecture and NodeJ...Building Scalable Web Applications Using Microservices Architecture and NodeJ...
Building Scalable Web Applications Using Microservices Architecture and NodeJ...
NodejsFoundation
 

What's hot (20)

Will the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir ZukerWill the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir Zuker
 
Node.js Frameworks to watch for in 2019
Node.js Frameworks to watch for in 2019Node.js Frameworks to watch for in 2019
Node.js Frameworks to watch for in 2019
 
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K..."Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
 
Progressive Web Apps. What, why and how
Progressive Web Apps. What, why and howProgressive Web Apps. What, why and how
Progressive Web Apps. What, why and how
 
Typescript 102 angular and type script
Typescript 102   angular and type scriptTypescript 102   angular and type script
Typescript 102 angular and type script
 
The Future of-the CMS (Twin Cities DrupalCamp 2015)
The Future of-the CMS (Twin Cities DrupalCamp 2015)The Future of-the CMS (Twin Cities DrupalCamp 2015)
The Future of-the CMS (Twin Cities DrupalCamp 2015)
 
Java PaaS Vendor Survey - September 2011
Java PaaS Vendor Survey - September 2011Java PaaS Vendor Survey - September 2011
Java PaaS Vendor Survey - September 2011
 
Writing less code with Serverless on AWS at OOP 2022
Writing less code with Serverless on AWS at OOP 2022Writing less code with Serverless on AWS at OOP 2022
Writing less code with Serverless on AWS at OOP 2022
 
Build 2017 - B8013 - Developing on Windows Server: Innovation for today and t...
Build 2017 - B8013 - Developing on Windows Server: Innovation for today and t...Build 2017 - B8013 - Developing on Windows Server: Innovation for today and t...
Build 2017 - B8013 - Developing on Windows Server: Innovation for today and t...
 
Node.js BFFs: our way to better/micro frontends
Node.js BFFs: our way to better/micro frontendsNode.js BFFs: our way to better/micro frontends
Node.js BFFs: our way to better/micro frontends
 
Breaking Down the Monolith - Peter Marton, RisingStack
Breaking Down the Monolith - Peter Marton, RisingStackBreaking Down the Monolith - Peter Marton, RisingStack
Breaking Down the Monolith - Peter Marton, RisingStack
 
Build Cloud Native Apps With DigitalOcean Kubernetes
Build Cloud Native Apps With DigitalOcean KubernetesBuild Cloud Native Apps With DigitalOcean Kubernetes
Build Cloud Native Apps With DigitalOcean Kubernetes
 
Vue3: nuove funzionalità, differenze e come migrare
Vue3: nuove funzionalità, differenze e come migrareVue3: nuove funzionalità, differenze e come migrare
Vue3: nuove funzionalità, differenze e come migrare
 
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
 
Build 2017 - B8033 - Give your conversations superpowers: Building intelligen...
Build 2017 - B8033 - Give your conversations superpowers: Building intelligen...Build 2017 - B8033 - Give your conversations superpowers: Building intelligen...
Build 2017 - B8033 - Give your conversations superpowers: Building intelligen...
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hourConvert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
 
The WordPress Performance Team
The WordPress Performance TeamThe WordPress Performance Team
The WordPress Performance Team
 
Salesforce1 dev week UYSDUG 2014 - the force canvas spark
Salesforce1 dev week UYSDUG 2014 - the force canvas sparkSalesforce1 dev week UYSDUG 2014 - the force canvas spark
Salesforce1 dev week UYSDUG 2014 - the force canvas spark
 
Building Scalable Web Applications Using Microservices Architecture and NodeJ...
Building Scalable Web Applications Using Microservices Architecture and NodeJ...Building Scalable Web Applications Using Microservices Architecture and NodeJ...
Building Scalable Web Applications Using Microservices Architecture and NodeJ...
 

Similar to Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?

Top 8 react static site generators for 2020
Top 8 react static site generators for 2020Top 8 react static site generators for 2020
Top 8 react static site generators for 2020
Katy Slemon
 
iProspect - Tech SEO - Task - 17/12/2019
iProspect - Tech SEO - Task - 17/12/2019iProspect - Tech SEO - Task - 17/12/2019
iProspect - Tech SEO - Task - 17/12/2019
Nick Samuel
 
How to make React Applications SEO-friendly
How to make React Applications SEO-friendlyHow to make React Applications SEO-friendly
How to make React Applications SEO-friendly
Fibonalabs
 
Headless CMS. Sitecore JSS getting started, tips and tricks
Headless CMS. Sitecore JSS getting started, tips and tricksHeadless CMS. Sitecore JSS getting started, tips and tricks
Headless CMS. Sitecore JSS getting started, tips and tricks
Artsem Prashkovich
 
Word press with react – implementing headless wordpress with reactjs converted
Word press with react – implementing headless wordpress with reactjs convertedWord press with react – implementing headless wordpress with reactjs converted
Word press with react – implementing headless wordpress with reactjs converted
DaljeetSingh210
 
Javascript SEO Devs and SEOs playing nicely
Javascript SEO Devs and SEOs playing nicelyJavascript SEO Devs and SEOs playing nicely
Javascript SEO Devs and SEOs playing nicely
Peter Mead
 
Top React Static Site Generators for 2022.pdf
Top React Static Site Generators for 2022.pdfTop React Static Site Generators for 2022.pdf
Top React Static Site Generators for 2022.pdf
Katy Slemon
 
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan TaylorOptimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Dan Taylor
 
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
 
Sps Boston The Share Point Beast
Sps Boston   The Share Point BeastSps Boston   The Share Point Beast
Sps Boston The Share Point Beast
gueste918732
 
How to Make React SEO-friendly
How to  Make React SEO-friendlyHow to  Make React SEO-friendly
SMX_DevTools_Monaco_2.pdf
SMX_DevTools_Monaco_2.pdfSMX_DevTools_Monaco_2.pdf
SMX_DevTools_Monaco_2.pdf
Sara Moccand-Sayegh
 
SPA Editor - Adobe Experience Manager Sites
SPA Editor - Adobe Experience Manager SitesSPA Editor - Adobe Experience Manager Sites
SPA Editor - Adobe Experience Manager Sites
Gabriel Walt
 
SUGMEA - Sitecore JSS and Performance Optimization - Alex Shyba - Altudo
SUGMEA - Sitecore JSS and Performance Optimization - Alex Shyba - AltudoSUGMEA - Sitecore JSS and Performance Optimization - Alex Shyba - Altudo
SUGMEA - Sitecore JSS and Performance Optimization - Alex Shyba - Altudo
dharmeshharji
 
SharePoint 2013 Client-Side Rendering (CSR) & JSLink Templates
SharePoint 2013 Client-Side Rendering (CSR) & JSLink TemplatesSharePoint 2013 Client-Side Rendering (CSR) & JSLink Templates
SharePoint 2013 Client-Side Rendering (CSR) & JSLink Templates
Muawiyah Shannak
 
#Webperf Choreography
#Webperf Choreography#Webperf Choreography
#Webperf Choreography
Harald Kirschner
 
Introducción al SharePoint Framework SPFx
Introducción al SharePoint Framework SPFxIntroducción al SharePoint Framework SPFx
Introducción al SharePoint Framework SPFx
SUGES (SharePoint Users Group España)
 
How we built nothingbutsharepoint.com on sharepoint 2010
How we built nothingbutsharepoint.com on sharepoint 2010How we built nothingbutsharepoint.com on sharepoint 2010
How we built nothingbutsharepoint.com on sharepoint 2010Jeremy Thake
 
Why Use Server Side Rendering To Boost Performance and User Experience?
Why Use Server Side Rendering To Boost Performance and User Experience?Why Use Server Side Rendering To Boost Performance and User Experience?
Why Use Server Side Rendering To Boost Performance and User Experience?
TOPS Infosolutions
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
Kushan Lahiru Perera
 

Similar to Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives? (20)

Top 8 react static site generators for 2020
Top 8 react static site generators for 2020Top 8 react static site generators for 2020
Top 8 react static site generators for 2020
 
iProspect - Tech SEO - Task - 17/12/2019
iProspect - Tech SEO - Task - 17/12/2019iProspect - Tech SEO - Task - 17/12/2019
iProspect - Tech SEO - Task - 17/12/2019
 
How to make React Applications SEO-friendly
How to make React Applications SEO-friendlyHow to make React Applications SEO-friendly
How to make React Applications SEO-friendly
 
Headless CMS. Sitecore JSS getting started, tips and tricks
Headless CMS. Sitecore JSS getting started, tips and tricksHeadless CMS. Sitecore JSS getting started, tips and tricks
Headless CMS. Sitecore JSS getting started, tips and tricks
 
Word press with react – implementing headless wordpress with reactjs converted
Word press with react – implementing headless wordpress with reactjs convertedWord press with react – implementing headless wordpress with reactjs converted
Word press with react – implementing headless wordpress with reactjs converted
 
Javascript SEO Devs and SEOs playing nicely
Javascript SEO Devs and SEOs playing nicelyJavascript SEO Devs and SEOs playing nicely
Javascript SEO Devs and SEOs playing nicely
 
Top React Static Site Generators for 2022.pdf
Top React Static Site Generators for 2022.pdfTop React Static Site Generators for 2022.pdf
Top React Static Site Generators for 2022.pdf
 
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan TaylorOptimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
 
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...
 
Sps Boston The Share Point Beast
Sps Boston   The Share Point BeastSps Boston   The Share Point Beast
Sps Boston The Share Point Beast
 
How to Make React SEO-friendly
How to  Make React SEO-friendlyHow to  Make React SEO-friendly
How to Make React SEO-friendly
 
SMX_DevTools_Monaco_2.pdf
SMX_DevTools_Monaco_2.pdfSMX_DevTools_Monaco_2.pdf
SMX_DevTools_Monaco_2.pdf
 
SPA Editor - Adobe Experience Manager Sites
SPA Editor - Adobe Experience Manager SitesSPA Editor - Adobe Experience Manager Sites
SPA Editor - Adobe Experience Manager Sites
 
SUGMEA - Sitecore JSS and Performance Optimization - Alex Shyba - Altudo
SUGMEA - Sitecore JSS and Performance Optimization - Alex Shyba - AltudoSUGMEA - Sitecore JSS and Performance Optimization - Alex Shyba - Altudo
SUGMEA - Sitecore JSS and Performance Optimization - Alex Shyba - Altudo
 
SharePoint 2013 Client-Side Rendering (CSR) & JSLink Templates
SharePoint 2013 Client-Side Rendering (CSR) & JSLink TemplatesSharePoint 2013 Client-Side Rendering (CSR) & JSLink Templates
SharePoint 2013 Client-Side Rendering (CSR) & JSLink Templates
 
#Webperf Choreography
#Webperf Choreography#Webperf Choreography
#Webperf Choreography
 
Introducción al SharePoint Framework SPFx
Introducción al SharePoint Framework SPFxIntroducción al SharePoint Framework SPFx
Introducción al SharePoint Framework SPFx
 
How we built nothingbutsharepoint.com on sharepoint 2010
How we built nothingbutsharepoint.com on sharepoint 2010How we built nothingbutsharepoint.com on sharepoint 2010
How we built nothingbutsharepoint.com on sharepoint 2010
 
Why Use Server Side Rendering To Boost Performance and User Experience?
Why Use Server Side Rendering To Boost Performance and User Experience?Why Use Server Side Rendering To Boost Performance and User Experience?
Why Use Server Side Rendering To Boost Performance and User Experience?
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
 

More from CodeValue

Digital transformation buzzword or reality - Alon Fliess
Digital transformation buzzword or reality - Alon FliessDigital transformation buzzword or reality - Alon Fliess
Digital transformation buzzword or reality - Alon Fliess
CodeValue
 
The IDF's journey to the cloud - Merav
The IDF's journey to the cloud - MeravThe IDF's journey to the cloud - Merav
The IDF's journey to the cloud - Merav
CodeValue
 
When your release plan is concluded at the HR office - Hanan Zakai
When your release plan is concluded at the HR office - Hanan  ZakaiWhen your release plan is concluded at the HR office - Hanan  Zakai
When your release plan is concluded at the HR office - Hanan Zakai
CodeValue
 
The IoT Transformation and What it Means to You - Nir Dobovizky
The IoT Transformation and What it Means to You - Nir DobovizkyThe IoT Transformation and What it Means to You - Nir Dobovizky
The IoT Transformation and What it Means to You - Nir Dobovizky
CodeValue
 
State in stateless serverless functions - Alex Pshul
State in stateless serverless functions - Alex PshulState in stateless serverless functions - Alex Pshul
State in stateless serverless functions - Alex Pshul
CodeValue
 
How I built a ml human hybrid workflow using computer vision - Amir Shitrit
How I built a ml human hybrid workflow using computer vision - Amir ShitritHow I built a ml human hybrid workflow using computer vision - Amir Shitrit
How I built a ml human hybrid workflow using computer vision - Amir Shitrit
CodeValue
 
Designing products in the digital transformation era - Eyal Livne
Designing products in the digital transformation era - Eyal LivneDesigning products in the digital transformation era - Eyal Livne
Designing products in the digital transformation era - Eyal Livne
CodeValue
 
Eerez Pedro: Product thinking 101 - Architecture Next
Eerez Pedro: Product thinking 101 - Architecture NextEerez Pedro: Product thinking 101 - Architecture Next
Eerez Pedro: Product thinking 101 - Architecture Next
CodeValue
 
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
CodeValue
 
Magnus Mårtensson: The Cloud challenge is more than just technical – people a...
Magnus Mårtensson: The Cloud challenge is more than just technical – people a...Magnus Mårtensson: The Cloud challenge is more than just technical – people a...
Magnus Mårtensson: The Cloud challenge is more than just technical – people a...
CodeValue
 
Nir Doboviski: In Space No One Can Hear Microservices Scream – a Microservice...
Nir Doboviski: In Space No One Can Hear Microservices Scream – a Microservice...Nir Doboviski: In Space No One Can Hear Microservices Scream – a Microservice...
Nir Doboviski: In Space No One Can Hear Microservices Scream – a Microservice...
CodeValue
 
Ronen Levinson: Unified policy enforcement with opa - Architecture Next 20
Ronen Levinson: Unified policy enforcement with opa - Architecture Next 20Ronen Levinson: Unified policy enforcement with opa - Architecture Next 20
Ronen Levinson: Unified policy enforcement with opa - Architecture Next 20
CodeValue
 
Moaid Hathot: Dapr the glue to your microservices - Architecture Next 20
Moaid Hathot: Dapr  the glue to your microservices - Architecture Next 20Moaid Hathot: Dapr  the glue to your microservices - Architecture Next 20
Moaid Hathot: Dapr the glue to your microservices - Architecture Next 20
CodeValue
 
Eyal Ellenbogen: Building a UI Foundation for Scalability - Architecture Next 20
Eyal Ellenbogen: Building a UI Foundation for Scalability - Architecture Next 20Eyal Ellenbogen: Building a UI Foundation for Scalability - Architecture Next 20
Eyal Ellenbogen: Building a UI Foundation for Scalability - Architecture Next 20
CodeValue
 
Michael Donkhin: Java Turns 25 - How Is It Faring and What Is Yet to Come Arc...
Michael Donkhin: Java Turns 25 - How Is It Faring and What Is Yet to Come Arc...Michael Donkhin: Java Turns 25 - How Is It Faring and What Is Yet to Come Arc...
Michael Donkhin: Java Turns 25 - How Is It Faring and What Is Yet to Come Arc...
CodeValue
 
Eran Stiller: API design in the modern era - architecture next 2020
Eran Stiller: API design in the modern era - architecture next 2020 Eran Stiller: API design in the modern era - architecture next 2020
Eran Stiller: API design in the modern era - architecture next 2020
CodeValue
 
Web assembly - Future of the Web
Web assembly - Future of the WebWeb assembly - Future of the Web
Web assembly - Future of the Web
CodeValue
 
Unmeshing the service mesh
Unmeshing the service meshUnmeshing the service mesh
Unmeshing the service mesh
CodeValue
 
Data analytics at scale implementing stateful stream processing - publish
Data analytics at scale implementing stateful stream processing - publishData analytics at scale implementing stateful stream processing - publish
Data analytics at scale implementing stateful stream processing - publish
CodeValue
 
A serverless IoT story from design to production and monitoring
A serverless IoT story from design to production and monitoringA serverless IoT story from design to production and monitoring
A serverless IoT story from design to production and monitoring
CodeValue
 

More from CodeValue (20)

Digital transformation buzzword or reality - Alon Fliess
Digital transformation buzzword or reality - Alon FliessDigital transformation buzzword or reality - Alon Fliess
Digital transformation buzzword or reality - Alon Fliess
 
The IDF's journey to the cloud - Merav
The IDF's journey to the cloud - MeravThe IDF's journey to the cloud - Merav
The IDF's journey to the cloud - Merav
 
When your release plan is concluded at the HR office - Hanan Zakai
When your release plan is concluded at the HR office - Hanan  ZakaiWhen your release plan is concluded at the HR office - Hanan  Zakai
When your release plan is concluded at the HR office - Hanan Zakai
 
The IoT Transformation and What it Means to You - Nir Dobovizky
The IoT Transformation and What it Means to You - Nir DobovizkyThe IoT Transformation and What it Means to You - Nir Dobovizky
The IoT Transformation and What it Means to You - Nir Dobovizky
 
State in stateless serverless functions - Alex Pshul
State in stateless serverless functions - Alex PshulState in stateless serverless functions - Alex Pshul
State in stateless serverless functions - Alex Pshul
 
How I built a ml human hybrid workflow using computer vision - Amir Shitrit
How I built a ml human hybrid workflow using computer vision - Amir ShitritHow I built a ml human hybrid workflow using computer vision - Amir Shitrit
How I built a ml human hybrid workflow using computer vision - Amir Shitrit
 
Designing products in the digital transformation era - Eyal Livne
Designing products in the digital transformation era - Eyal LivneDesigning products in the digital transformation era - Eyal Livne
Designing products in the digital transformation era - Eyal Livne
 
Eerez Pedro: Product thinking 101 - Architecture Next
Eerez Pedro: Product thinking 101 - Architecture NextEerez Pedro: Product thinking 101 - Architecture Next
Eerez Pedro: Product thinking 101 - Architecture Next
 
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
 
Magnus Mårtensson: The Cloud challenge is more than just technical – people a...
Magnus Mårtensson: The Cloud challenge is more than just technical – people a...Magnus Mårtensson: The Cloud challenge is more than just technical – people a...
Magnus Mårtensson: The Cloud challenge is more than just technical – people a...
 
Nir Doboviski: In Space No One Can Hear Microservices Scream – a Microservice...
Nir Doboviski: In Space No One Can Hear Microservices Scream – a Microservice...Nir Doboviski: In Space No One Can Hear Microservices Scream – a Microservice...
Nir Doboviski: In Space No One Can Hear Microservices Scream – a Microservice...
 
Ronen Levinson: Unified policy enforcement with opa - Architecture Next 20
Ronen Levinson: Unified policy enforcement with opa - Architecture Next 20Ronen Levinson: Unified policy enforcement with opa - Architecture Next 20
Ronen Levinson: Unified policy enforcement with opa - Architecture Next 20
 
Moaid Hathot: Dapr the glue to your microservices - Architecture Next 20
Moaid Hathot: Dapr  the glue to your microservices - Architecture Next 20Moaid Hathot: Dapr  the glue to your microservices - Architecture Next 20
Moaid Hathot: Dapr the glue to your microservices - Architecture Next 20
 
Eyal Ellenbogen: Building a UI Foundation for Scalability - Architecture Next 20
Eyal Ellenbogen: Building a UI Foundation for Scalability - Architecture Next 20Eyal Ellenbogen: Building a UI Foundation for Scalability - Architecture Next 20
Eyal Ellenbogen: Building a UI Foundation for Scalability - Architecture Next 20
 
Michael Donkhin: Java Turns 25 - How Is It Faring and What Is Yet to Come Arc...
Michael Donkhin: Java Turns 25 - How Is It Faring and What Is Yet to Come Arc...Michael Donkhin: Java Turns 25 - How Is It Faring and What Is Yet to Come Arc...
Michael Donkhin: Java Turns 25 - How Is It Faring and What Is Yet to Come Arc...
 
Eran Stiller: API design in the modern era - architecture next 2020
Eran Stiller: API design in the modern era - architecture next 2020 Eran Stiller: API design in the modern era - architecture next 2020
Eran Stiller: API design in the modern era - architecture next 2020
 
Web assembly - Future of the Web
Web assembly - Future of the WebWeb assembly - Future of the Web
Web assembly - Future of the Web
 
Unmeshing the service mesh
Unmeshing the service meshUnmeshing the service mesh
Unmeshing the service mesh
 
Data analytics at scale implementing stateful stream processing - publish
Data analytics at scale implementing stateful stream processing - publishData analytics at scale implementing stateful stream processing - publish
Data analytics at scale implementing stateful stream processing - publish
 
A serverless IoT story from design to production and monitoring
A serverless IoT story from design to production and monitoringA serverless IoT story from design to production and monitoring
A serverless IoT story from design to production and monitoring
 

Recently uploaded

Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
KrzysztofKkol1
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
NaapbooksPrivateLimi
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 

Recently uploaded (20)

Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 

Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?

  • 1. Do You Need Server Side Rendering? What Are The Alternatives? Vitali Zaidman Web Architect and Blogger https://vzaidman.com https://codevalue.net
  • 2. About Vitali Zaidman 2  8 years of experience in web programming  Leading teams- currently in 10bis  Used SSR, SSG, and Dynamic Rendering on several projects  Web Architect and Blogger  https://vzaidman.com  https://medium.com/@vzaidman – writing about web programming
  • 3. Agenda  Client Side Rendering (CSR)  Why Sometimes CSR Is Not Enough  Static Site Generation (SSG)  Server Side Rendering (SSR)  SSG and SSR challenges  Dynamic Rendering For Bots 3
  • 4. What Is “Rendering” In “Server / Client Side Rendering”? The generation of the initial meaningful content of a webpage (HTML?) Includes:  Templating / Calculations  API Calls Not to be confused with:  Browser rendering (or painting)  React.js Render functions  Other renders 4 Meaningful content that user sees
  • 5. CSR Before we speak about SSR…. Client Side Rendering 5
  • 6. Client Side Rendering (CSR) The user receives only a shallow HTML The website is then generated on the client using JS Usually using a library like:  React  Angular  Vue 6 No meaningful content – only loading
  • 7. angular.io Is CSR 7 Let’s take https://angular.io/guide/glossary
  • 8. 8 angular.io Is CSR If we look at the HTML that returns from the server for https://angular.io/guide/glossary  The title is just a generic title  The body element is empty
  • 9. angular.io Is CSR 9 https://angular.io/guide/glossary  This is how the initial HTML looks like without JavaScript  Later, it is expanded with Angular
  • 10. 10 angular.io Is CSR If we inspect the DOM after loading https://angular.io/guide/glossary  The title is a specific title  The body is expanded to be a beautiful website
  • 11. Why Sometimes CSR Is Not Enough  Link Previews  SEO  Performance 11
  • 13. Link Previews  Link previews in websites and apps like Facebook, WhatsApp, Medium  Might be surprising but this trivial feature doesn’t work with full CSR 13
  • 14. 14 angular.io Is CSR  Because the bots receive the shallow HTML
  • 15. When Do You Care About Link Previews?  We do care about link previews on  Public pages like homepage, products  Content based websites like blogs, news, videos  We do not care about link previews on  Private pages like pages behind a login  Dynamic pages like dashboards, studios 15
  • 17. Search Engine Optimization (SEO) 17 The process of increasing the visibility of a website or a web page to users of a web search engine.
  • 18. Search Engines And CSR It seems like search engines handle can handle CSRs so why CSR is considered not compatible with SEO? 18
  • 19. SEO – CSR Handling Is Not Perfect Crawl Parse / Index / Rank Render Index the HTML received Queue Wait for rendering resources (weeks?) Load the website on a machine Index using the rendered DOM Crawl all links Google receives an empty HTML and skips the first index / indexes a bad version of the page You need to wait in queue in order to get indexed Your page might not render as you expect it 19
  • 21. 21 Read about Lighthouse Performance Scoring: https://web.dev/performance-scoring/ The topic will be expanded at 14:00 by Vered Flis Segal in the talk “Because Performance Matters!” Google Lighthouse Performance Scoring
  • 22. First / Largest Contentful Paint (FCP / LCP) Image from: https://web.dev/lcp/
  • 23. CSR Page Load Performance  Content Visible –  It takes time to show us content on CSR  Download JavaScripts  Run JavaScripts  Make Ajax calls Image from: https://web.dev/lcp/
  • 24. So If Not CSR…. 24 We saw that CSR has some problems with: • Link Previews • SEO • Performance
  • 26. Static Site Generation (SSG) Build SPA generate route HTMLs 26 Generate route HTMLs in build time  ReactDOM.renderToString  Next.js static export, Gatsby, custom implementation  Headless, JSDom – Prerender a CSR app  Scully.io for Angular  Puppeteer for anything  Easier Solution  SSG Frameworks  Hexo (Node.js)  Jekyll (Ruby)  Hugo (Go)  Pelican (Python) Meaningful content on build …article-1 .html article-2 .html article-100 .html homepage .html dist/homepage.html of an SSG build:
  • 27. Static Site Generation Example In Takeaway Pay, we generate full HTMLS for the homepage in advance for different countries and languages dist / landing-page
  • 28. Static Site Generation Example In Takeaway Pay, we generate full HTMLS for the homepage in advance for different countries and languages
  • 29. Static Site Generation Example In Takeaway Pay, we generate full HTMLS for the homepage in advance for different countries and languages
  • 30. Time To Interactive (TTI) Image from: https://web.dev/lcp/
  • 31. Hydration 31 JavaScript attaching to the initially returned HTML  After the hydration the website becomes fully interactive.  Before the hydration the website is visible but not interactive. Meaningful content from the server
  • 32. SSG Page Load Performance  Content Visible – Very fast  The HTML is generated in advance and can be returned from a CDN  Time To Interactive – Depends  Need to wait for the hydration Image from: https://web.dev/lcp/
  • 33. So CSR or SSG?  SEO  In CSR you will have your website queued to be crawled. In SSG you will not.  Link Previews  In CSR your pages will not have link previews. In SSG they will.  Performance  Content Visible - Faster in SSG  Time To Interactive - Faster in CSR  Maintenance  Less in CSR
  • 34. No JavaScript – No Problem 34  Very Fast Content Visible  You get all the content immediately  Immediate Time To Interactive  No JavaScript is running so the website is “interactive” immediately
  • 35. Why Not SSG 35 … Build SSG: Article 1 Article 2 Article 100000 But imagine a news website with thousand of articles. Most of them are rarely visited. Say you updated the footer.  Would you want to regenerate all the articles from scratch?  Would you want to re-upload them all to some database?
  • 37. Server Side Rendering (SSR) 37 … Build SSG: Article 1 Article 2 Article 100000 Imagine a news website with thousand of articles. Most of them are rarely visited. Say you updated the footer.  Would you want to regenerate all the articles from scratch?  SSR: … Build Article 1 Article 2 Article 100000 Server Generate (and cache) upon navigation: App
  • 38. Server Side Rendering (SSR) Server 38 How HTMLs are rendered on the server?  PHP  ASP.net  Angular Universal  React Build /blog-post?page=2 Meaningful content from the server Hydration App App
  • 39. SSR Benefits 39 Content visible speed:  Rendered on fast CPU on the server  Fast Ajax  Because the server is close to the API server  Caching  HTML responses can be compressed  gzip  br Cached page (Can work like SSG) Or: Data calculations Ajax requests JS Render of HTML Server With an HTML rendering app Build /blog-post?page=2 Meaningful content from the serverhydration
  • 40. SSR Benefits Dynamic content:  Can generate dynamic content on server  It’s possible to implement smart caching for this • Login per user based on cookies • Generate dynamic content Server With an HTML rendering app Build /blog-post?page=2 Meaningful content from the serverhydration
  • 41. SSR Page Load Performance  Content visible  Fast for cached pages  Average for non cached pages, depends, faster than CSR  All scripts are ready  Fast CPU  Fast connection, closer to the API server  Time To Interactive - Depends  Need to wait for the hydration 41 Image from: https://web.dev/lcp/
  • 43. Dynamic Content 43 What if we want a dynamic content to be returned from the server? For example:  The username  Items order for the user  Recent items
  • 44. Dynamic Content 44 We have several solutions:  In SSG / SSR  Some things can be populated on the client- like the username section  This complicates the initialization  In SSR  Login on server and serve the website with the dynamic content  This complicates the serving
  • 45. SSR / SSG Challenges Before we get to dynamic rendering for bots….
  • 46. SSR / SSG Challenges  Universal / Isomorphic code  Same application should run on client and server / build time  Might lead to bad hydrations / broken app For Example, the following code will cause a flickering because the server and client results are not exactly the same 46 Always new number
  • 47. SSR / SSG Challenges  Caching 47
  • 48. SSR / SSG Challenges  Dynamic Content  Lack of local storage  only cookies are shared between server and client  Complex initialization  Load things on the client after hydration 48
  • 49. SSR / SSG Challenges  Bigger infrastructure  Logging, debugging  Managing frontend server scaling  Prices 49
  • 50. SSR / SSG Challenges  Documentation, training, and bugs 50
  • 51. Dynamic Rendering For Bots But the previous solutions are complex… This is why-
  • 52. Dynamic Rendering For Bots Build SPA  Advantages- Link previews work, no queue in SEO  Prominent tools- Google’s Rendertron Server Serve Shallow HTML 52 Users Render on headless browser or serve from cache Bots Meaningful content No meaningful content
  • 53. Dynamic Rendering For Bots Example 10bis.co.il CSR for users 53
  • 54. Dynamic Rendering For Bots Example 54 10bis.co.il CSR for users
  • 55. Dynamic Rendering For Bots Example 55 10bis.co.il CSR for users, but dynamically rendered for bots
  • 56. Dynamic Rendering For Bots Example 56 10bis.co.il CSR for users, but dynamically rendered for bots
  • 58. Hybrid Example – CSR With SSG For Headers Build SPA generate route HTMLs 58 Only generate the header section of each page  Handles link previews  Relies on google for indexing  Otherwise – CSR  Slower content visible  Fast time to interactive  Easier than SSG because we don’t generate pages’ body sections in build time dist/home/index.html dist/about/index.html dist/blogposts/blog_post1.html dist/blogposts/blog_post2.html No meaningful body Meaningful headers
  • 60. CSR SSG SSR Dynamic Rendering For Bots Content Visible (LCP) ≈Average, Depends on JS size + network requests speed Very Fast ≈Above Average Very fast for cached pages ≈Average, Depends on JS size + network requests speed Time To Interactive (TTI) Fast ≈Average, Depends on JS size and speed ≈Average, Depends on JS size and speed Fast SEO Rely on search engine rendering resource queue Control over the HTML for crawlers no queues Control over the HTML for crawlers no queues Control over the HTML for crawlers no queues Link Previews Doesn’t work Works Works Works Infrastructure Size / Maintenance Small Relatively Complex Complex Just a little more than CSR Summary 60
  • 62. Vitali Zaidman Web Architect and Blogger vzaidman@gmail.com medium.com/@vzaidman twitter.com/vzaidman https://vzaidman.com https://codevalue.net