SlideShare a Scribd company logo
A Simpler
Web Architecture.
Gustaf Nilsson Kotte @gustaf_nk
“server-side vs client-side”
static web pages vs dynamic web app?
no!
either/or → both/and
Elevator pitch
Demonstrate client-side techniques
that makes server-side rendering a
feasible choice for your web
applications.
General sanity checks
Does the tool add value?
What are the requirements?
what is your foundation?
client-side web benefits
independent deploys
partial updates
caching
cross-team widgets
enables rich interactions
client-side web challenges
technological progress → device diversity
time-to-first-render (✓ isomorphic javascript)
“EnhanceConf - Forbes Lindesay - Server Side Rendering”, https://m.youtube.com/watch?v=CBnd3EzIZCo
interoperability/evolvability
rate of change
techniques
techniques
web server enables server-side web (architectural foundation)
pjax → partial updates (HTML views over ajax)
client-side includes (caching and reusable content)
server-side driven client refreshes
custom elements → shared widgets
web server
“a web server that uses an API”
a.k.a...
gateway web server
web frontend server
HTML serving API gateway
web backend for frontend (BFF)
A Simpler Web App Architecture (jDays 2016)
server-side web
✓ independent deploys (gateway web server)
pjax
pjax
jquery-pjax (GitHub 2011)
https://github.com/defunkt/jquery-pjax
pushState ajax
~500 LOC (not counting comments)
jQuery dependency
jquery-pjax
jquery-pjax
multiple containers (be careful)
don’t overlap event handlers
rewrite in progress (very exciting)
https://github.com/defunkt/jquery-pjax/issues/498
demo:
enterprise
todos
server-side web
✓ independent deploys (gateway web server)
✓ partials updates (pjax)
client-side
includes
client-side includes
hinclude.js
https://github.com/mnot/hinclude/
2005 by Mark Nottingham (@mnot)
https://en.wikipedia.org/wiki/Mark_Nottingham
~150 LOC (not counting comments)
hinclude.js
h-include.js
custom element version of hinclude.js
https://github.com/mnot/hinclude/pull/46
custom element polyfill: 3KB
https://github.com/WebReflection/document-register-element
includes in includes, etc etc
server-side driven client-side refreshes
shared list of known domain events
server:
client:
demo
server-side web
✓ independent deploys (gateway web server)
✓ partials updates (pjax + client-side includes)
✓ better caching (client-side includes)
widgets
widgets
internal/external
dependencies?
either need to agree (now and later) or
bring their own (page weight)
what to do?
→ widgets
separate content from execution
code repository for custom elements
no dependencies
custom element enhances content
think about compatibility
demo
server-side web
✓ independent deploys (gateway web server)
✓ partials updates (pjax + client-side includes)
✓ better caching (client-side includes)
✓ cross-team widgets (client-side includes + custom elements)
summary
techniques
web server enables server-side web (architectural foundation)
pjax → partial updates (HTML views over ajax)
client-side includes (caching and reusable content)
server-side driven client refreshes
custom elements → shared widgets (free from dependencies)
example scenario: static e-commerce site
example scenario: dynamic web app
client-side web benefits
independent deploys
partials updates
better caching
cross-team widgets
enables rich interactions
server-side web
✓ independent deploys (gateway web server)
✓ partials updates (pjax + client-side includes)
✓ better caching (client-side includes)
✓ cross-team widgets (client-side includes + custom elements)
~ enables rich interactions (do you really need it?)
General sanity checks
Does the tool add value?
What are the requirements?
why is server-side web simpler?
(technological progress → device diversity)
less moving parts
working with the browser
better evolvability
lower rate of change
thank you! thank you! thank you! thank you!
thank you! thank you! thank you! thank you!
thank you! thank you! thank you! thank you!
thank you! thank you! thank you! thank you!
thank you! thank you! thank you! thank you!
thank you! thank you! thank you! thank you!
thank you! thank you! thank you! thank you!
thank you! thank you! thank you! (@gustaf_nk)
https://github.com/gustafnk/simple-web-architecture-example
https://simple-web-enterprise-todos.herokuapp.com/

More Related Content

What's hot (20)

PPTX
Front-End Development
Hein Htet Aung
 
PPTX
Building solutions with the SharePoint Framework - deep-dive
Waldek Mastykarz
 
PPTX
Making Single Page Applications (SPA) faster
Boris Livshutz
 
PPTX
Modern SharePoint Development using Visual Studio Code
Jared Matfess
 
PPTX
Pros and Cons of developing a Thick Clientside App
Ravi Teja
 
PPTX
Single page application and Framework
Chandrasekar G
 
PPTX
Single Page Application (SPA) using AngularJS
M R Rony
 
PPT
Java script202
Wasiq Zia
 
PPTX
Unobtrusive js
bretticus
 
PDF
Refactoring to a Single Page Application
Codemotion
 
PPTX
How to automate your BizTalk Installations and Deployments with Chef
BizTalk360
 
PDF
Visual resume
Milan Skorić
 
PPTX
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Waldek Mastykarz
 
PPTX
Deep-dive building solutions on the SharePoint Framework
Waldek Mastykarz
 
PDF
Server rendering-talk
Daiwei Lu
 
PPTX
SharePoint 2010 Web Content Management - The Developer Story
Waldek Mastykarz
 
PPTX
Rise of the responsive single page application
Oren Shatken
 
PDF
JAMstack with gatsby, contentful and netlify aka the dream stack
zonathen
 
PPTX
Asp.net introduction
Kshitij Wagle
 
PDF
Introduction To Single Page Application
KMS Technology
 
Front-End Development
Hein Htet Aung
 
Building solutions with the SharePoint Framework - deep-dive
Waldek Mastykarz
 
Making Single Page Applications (SPA) faster
Boris Livshutz
 
Modern SharePoint Development using Visual Studio Code
Jared Matfess
 
Pros and Cons of developing a Thick Clientside App
Ravi Teja
 
Single page application and Framework
Chandrasekar G
 
Single Page Application (SPA) using AngularJS
M R Rony
 
Java script202
Wasiq Zia
 
Unobtrusive js
bretticus
 
Refactoring to a Single Page Application
Codemotion
 
How to automate your BizTalk Installations and Deployments with Chef
BizTalk360
 
Visual resume
Milan Skorić
 
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Waldek Mastykarz
 
Deep-dive building solutions on the SharePoint Framework
Waldek Mastykarz
 
Server rendering-talk
Daiwei Lu
 
SharePoint 2010 Web Content Management - The Developer Story
Waldek Mastykarz
 
Rise of the responsive single page application
Oren Shatken
 
JAMstack with gatsby, contentful and netlify aka the dream stack
zonathen
 
Asp.net introduction
Kshitij Wagle
 
Introduction To Single Page Application
KMS Technology
 

Viewers also liked (20)

PDF
Web app architecture
Jordan Open Source Association
 
PDF
e-Commerce web app Architecture and Scalability
Aryashree Pritikrishna
 
PDF
Architecture of a Modern Web App
scothis
 
PPTX
Client Web
Markiyan Matsekh
 
PPTX
SharePoint 2010 farm architecture design infrastructure
Kjell-Sverre Jerijærvi
 
PDF
Frontend 'vs' Backend Getting the Right Mix
Bob Paulin
 
PDF
Architecture of a Modern Web App - SpringOne India
Jeremy Grelle
 
PPTX
Top 5 Javascript Frameworks for Web and Mobile App Development
Algoworks Inc
 
PPT
Top 10 HTML5 frameworks for effective development in 2016
iMOBDEV Technologies Pvt. Ltd.
 
PPTX
Delivering HTML5 and Modern Apps
Joshua Drew
 
PDF
Building modern web apps with html5, javascript, and java
Alexander Gyoshev
 
PDF
Frontend Resource Intergration and Sharing - Modern Web 2016 review
Laura Lee
 
PPTX
Web Development Technologies
Vignesh Prajapati
 
PDF
Structuring web applications with Backbone.js
Diego Cardozo
 
PPTX
Writing HTML5 Web Apps using Backbone.js and GAE
Ron Reiter
 
PDF
How to-choose-the-right-technology-architecture-for-your-mobile-application
lverb
 
KEY
Ning presentation
Stratepedia Presentations
 
PDF
Quick Application Development with Web Frameworks
Stratepedia Presentations
 
PPTX
Introduction To Building Enterprise Web Application With Spring Mvc
Abdelmonaim Remani
 
PPT
Top 10 web application development frameworks 2016
iMOBDEV Technologies Pvt. Ltd.
 
Web app architecture
Jordan Open Source Association
 
e-Commerce web app Architecture and Scalability
Aryashree Pritikrishna
 
Architecture of a Modern Web App
scothis
 
Client Web
Markiyan Matsekh
 
SharePoint 2010 farm architecture design infrastructure
Kjell-Sverre Jerijærvi
 
Frontend 'vs' Backend Getting the Right Mix
Bob Paulin
 
Architecture of a Modern Web App - SpringOne India
Jeremy Grelle
 
Top 5 Javascript Frameworks for Web and Mobile App Development
Algoworks Inc
 
Top 10 HTML5 frameworks for effective development in 2016
iMOBDEV Technologies Pvt. Ltd.
 
Delivering HTML5 and Modern Apps
Joshua Drew
 
Building modern web apps with html5, javascript, and java
Alexander Gyoshev
 
Frontend Resource Intergration and Sharing - Modern Web 2016 review
Laura Lee
 
Web Development Technologies
Vignesh Prajapati
 
Structuring web applications with Backbone.js
Diego Cardozo
 
Writing HTML5 Web Apps using Backbone.js and GAE
Ron Reiter
 
How to-choose-the-right-technology-architecture-for-your-mobile-application
lverb
 
Ning presentation
Stratepedia Presentations
 
Quick Application Development with Web Frameworks
Stratepedia Presentations
 
Introduction To Building Enterprise Web Application With Spring Mvc
Abdelmonaim Remani
 
Top 10 web application development frameworks 2016
iMOBDEV Technologies Pvt. Ltd.
 
Ad

Similar to A Simpler Web App Architecture (jDays 2016) (20)

PPT
SynapseIndia asp.net2.0 ajax Development
Synapseindiappsdevelopment
 
PPTX
Building SPA’s (Single Page App) with Backbone.js
Microsoft Developer Network (MSDN) - Belgium and Luxembourg
 
PDF
Microservice Websites (microXchg 2017)
Gustaf Nilsson Kotte
 
PDF
Microservice Websites – Micro CPH
Gustaf Nilsson Kotte
 
PDF
Anvita Gita Supersite Case Study Nov2000
guest6e7a1b1
 
PPTX
New microsoft office power point presentation
teach4uin
 
PDF
Summit Australia 2019 - PowerApp Portals - Andrew Ly & Lachlan Wright
Andrew Ly
 
PPT
Lessons
guest1019f4
 
PPT
Lessons from the Trenches: Engineering Great AJAX Experiences
goodfriday
 
PDF
Building a dynamic application with GatsbyJS-Tec-Mexicali
Jesus Manuel Olivas
 
PPT
ASP.NET AJAX with Visual Studio 2008
Caleb Jenkins
 
PPTX
Intro to Azure Static Web Apps
Moaid Hathot
 
PPTX
Advanced JavaScript
Mahmoud Tolba
 
PPSX
Web development concepts using microsoft technologies
Hosam Kamel
 
DOCX
JOB PORTALProject SummaryTitle JOB-PORT.docx
christiandean12115
 
PPT
Asp.net architecture
Iblesoft
 
PPTX
Angular jS Introduction by Google
ASG
 
PDF
Pagespeed what, why, and how it works
Ilya Grigorik
 
PDF
ASP.NET Interview Questions PDF By ScholarHat
Scholarhat
 
PPTX
Building a website without a webserver on Azure
Todd Whitehead
 
SynapseIndia asp.net2.0 ajax Development
Synapseindiappsdevelopment
 
Building SPA’s (Single Page App) with Backbone.js
Microsoft Developer Network (MSDN) - Belgium and Luxembourg
 
Microservice Websites (microXchg 2017)
Gustaf Nilsson Kotte
 
Microservice Websites – Micro CPH
Gustaf Nilsson Kotte
 
Anvita Gita Supersite Case Study Nov2000
guest6e7a1b1
 
New microsoft office power point presentation
teach4uin
 
Summit Australia 2019 - PowerApp Portals - Andrew Ly & Lachlan Wright
Andrew Ly
 
Lessons
guest1019f4
 
Lessons from the Trenches: Engineering Great AJAX Experiences
goodfriday
 
Building a dynamic application with GatsbyJS-Tec-Mexicali
Jesus Manuel Olivas
 
ASP.NET AJAX with Visual Studio 2008
Caleb Jenkins
 
Intro to Azure Static Web Apps
Moaid Hathot
 
Advanced JavaScript
Mahmoud Tolba
 
Web development concepts using microsoft technologies
Hosam Kamel
 
JOB PORTALProject SummaryTitle JOB-PORT.docx
christiandean12115
 
Asp.net architecture
Iblesoft
 
Angular jS Introduction by Google
ASG
 
Pagespeed what, why, and how it works
Ilya Grigorik
 
ASP.NET Interview Questions PDF By ScholarHat
Scholarhat
 
Building a website without a webserver on Azure
Todd Whitehead
 
Ad

More from Gustaf Nilsson Kotte (10)

PDF
Microservice Websites – Øredev 2017
Gustaf Nilsson Kotte
 
PDF
Jayway Web Tech Radar 2015
Gustaf Nilsson Kotte
 
PDF
HTML Hypermedia APIs and Adaptive Web Design - jDays 2013
Gustaf Nilsson Kotte
 
PDF
Design Hypermedia APIs
Gustaf Nilsson Kotte
 
PDF
HTML Hypermedia APIs and Adaptive Web Design - RuPy
Gustaf Nilsson Kotte
 
PDF
HTML Hypermedia APIs and Adaptive Web Design - reject.js
Gustaf Nilsson Kotte
 
PDF
HTML Hypermedia APIs and Adaptive Web Design - Nordic APIs
Gustaf Nilsson Kotte
 
PDF
Surviving the Zombie Apocalypse of Connected devices - Jfokus 2013
Gustaf Nilsson Kotte
 
PDF
Surviving the Zombie Apocalpyse of Connected Devices
Gustaf Nilsson Kotte
 
PPTX
Windows 8 for Web Developers
Gustaf Nilsson Kotte
 
Microservice Websites – Øredev 2017
Gustaf Nilsson Kotte
 
Jayway Web Tech Radar 2015
Gustaf Nilsson Kotte
 
HTML Hypermedia APIs and Adaptive Web Design - jDays 2013
Gustaf Nilsson Kotte
 
Design Hypermedia APIs
Gustaf Nilsson Kotte
 
HTML Hypermedia APIs and Adaptive Web Design - RuPy
Gustaf Nilsson Kotte
 
HTML Hypermedia APIs and Adaptive Web Design - reject.js
Gustaf Nilsson Kotte
 
HTML Hypermedia APIs and Adaptive Web Design - Nordic APIs
Gustaf Nilsson Kotte
 
Surviving the Zombie Apocalypse of Connected devices - Jfokus 2013
Gustaf Nilsson Kotte
 
Surviving the Zombie Apocalpyse of Connected Devices
Gustaf Nilsson Kotte
 
Windows 8 for Web Developers
Gustaf Nilsson Kotte
 

Recently uploaded (20)

PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
July Patch Tuesday
Ivanti
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Biography of Daniel Podor.pdf
Daniel Podor
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
July Patch Tuesday
Ivanti
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 

A Simpler Web App Architecture (jDays 2016)