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

PDF
Simpler Web Architectures Now! (At The Frontend 2016)
PDF
Modern Web App Architectures
PPTX
Full stack devlopment using django main ppt
PPTX
What’s right & wrong with WCF-WebHTTP Adapter?
PPT
single page application
PPTX
Host, deploy & scale Blazor Server Apps
PDF
Rise and Fall of the Frontend Developer
PPTX
Single page application
Simpler Web Architectures Now! (At The Frontend 2016)
Modern Web App Architectures
Full stack devlopment using django main ppt
What’s right & wrong with WCF-WebHTTP Adapter?
single page application
Host, deploy & scale Blazor Server Apps
Rise and Fall of the Frontend Developer
Single page application

What's hot (20)

PPTX
Front-End Development
PPTX
Building solutions with the SharePoint Framework - deep-dive
PPTX
Making Single Page Applications (SPA) faster
PPTX
Modern SharePoint Development using Visual Studio Code
PPTX
Pros and Cons of developing a Thick Clientside App
PPTX
Single page application and Framework
PPTX
Single Page Application (SPA) using AngularJS
PPT
Java script202
PPTX
Unobtrusive js
PDF
Refactoring to a Single Page Application
PPTX
How to automate your BizTalk Installations and Deployments with Chef
PDF
Visual resume
PPTX
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
PPTX
Deep-dive building solutions on the SharePoint Framework
PDF
Server rendering-talk
PPTX
SharePoint 2010 Web Content Management - The Developer Story
PPTX
Rise of the responsive single page application
PDF
JAMstack with gatsby, contentful and netlify aka the dream stack
PPTX
Asp.net introduction
PDF
Introduction To Single Page Application
Front-End Development
Building solutions with the SharePoint Framework - deep-dive
Making Single Page Applications (SPA) faster
Modern SharePoint Development using Visual Studio Code
Pros and Cons of developing a Thick Clientside App
Single page application and Framework
Single Page Application (SPA) using AngularJS
Java script202
Unobtrusive js
Refactoring to a Single Page Application
How to automate your BizTalk Installations and Deployments with Chef
Visual resume
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Deep-dive building solutions on the SharePoint Framework
Server rendering-talk
SharePoint 2010 Web Content Management - The Developer Story
Rise of the responsive single page application
JAMstack with gatsby, contentful and netlify aka the dream stack
Asp.net introduction
Introduction To Single Page Application
Ad

Viewers also liked (20)

PDF
Web app architecture
PDF
e-Commerce web app Architecture and Scalability
PDF
Architecture of a Modern Web App
PPTX
Client Web
PPTX
SharePoint 2010 farm architecture design infrastructure
PDF
Frontend 'vs' Backend Getting the Right Mix
PDF
Architecture of a Modern Web App - SpringOne India
PPTX
Top 5 Javascript Frameworks for Web and Mobile App Development
PPT
Top 10 HTML5 frameworks for effective development in 2016
PPTX
Delivering HTML5 and Modern Apps
PDF
Building modern web apps with html5, javascript, and java
PDF
Frontend Resource Intergration and Sharing - Modern Web 2016 review
PPTX
Web Development Technologies
PDF
Structuring web applications with Backbone.js
PPTX
Writing HTML5 Web Apps using Backbone.js and GAE
PDF
How to-choose-the-right-technology-architecture-for-your-mobile-application
KEY
Ning presentation
PDF
Quick Application Development with Web Frameworks
PPTX
Introduction To Building Enterprise Web Application With Spring Mvc
PPT
Top 10 web application development frameworks 2016
Web app architecture
e-Commerce web app Architecture and Scalability
Architecture of a Modern Web App
Client Web
SharePoint 2010 farm architecture design infrastructure
Frontend 'vs' Backend Getting the Right Mix
Architecture of a Modern Web App - SpringOne India
Top 5 Javascript Frameworks for Web and Mobile App Development
Top 10 HTML5 frameworks for effective development in 2016
Delivering HTML5 and Modern Apps
Building modern web apps with html5, javascript, and java
Frontend Resource Intergration and Sharing - Modern Web 2016 review
Web Development Technologies
Structuring web applications with Backbone.js
Writing HTML5 Web Apps using Backbone.js and GAE
How to-choose-the-right-technology-architecture-for-your-mobile-application
Ning presentation
Quick Application Development with Web Frameworks
Introduction To Building Enterprise Web Application With Spring Mvc
Top 10 web application development frameworks 2016
Ad

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

PDF
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
PDF
A Highly Decoupled Front-End Framework for High Trafficked Web Applications
PDF
Practical Thin Server Architecture With Dojo Peter Svensson
PPTX
Introduction to Web Design and Development Lecture 1.pptx
PDF
Progressive Web Apps
PPTX
Web assembly with PWA
PPT
Full Frontal Javascript Conference
PPTX
6.1 GeospatialWeb101.pptx.pptx
PDF
New trends on web platform
PPTX
Building WordPress sites with AngularJS and the RESTful plugin JSON API @ Dev...
PPTX
Progressive Web Apps
PPTX
Centric - PWA WebCast
PDF
Rich Web Applications with Aspenware
PDF
Postmodern Web Apps
PDF
Web Landscape - updated in Jan 2016
PPTX
Gettings started with Web development
PPTX
PWA basics for developers
PPTX
PWA - ADT Magazine Webinar
PDF
Checklist for progressive web app development
PDF
Progressive Web Apps –The Future of Apps
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
A Highly Decoupled Front-End Framework for High Trafficked Web Applications
Practical Thin Server Architecture With Dojo Peter Svensson
Introduction to Web Design and Development Lecture 1.pptx
Progressive Web Apps
Web assembly with PWA
Full Frontal Javascript Conference
6.1 GeospatialWeb101.pptx.pptx
New trends on web platform
Building WordPress sites with AngularJS and the RESTful plugin JSON API @ Dev...
Progressive Web Apps
Centric - PWA WebCast
Rich Web Applications with Aspenware
Postmodern Web Apps
Web Landscape - updated in Jan 2016
Gettings started with Web development
PWA basics for developers
PWA - ADT Magazine Webinar
Checklist for progressive web app development
Progressive Web Apps –The Future of Apps

More from Gustaf Nilsson Kotte (12)

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

Recently uploaded (20)

PPT
Teaching material agriculture food technology
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
August Patch Tuesday
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Tartificialntelligence_presentation.pptx
PDF
Approach and Philosophy of On baking technology
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Teaching material agriculture food technology
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Machine learning based COVID-19 study performance prediction
Programs and apps: productivity, graphics, security and other tools
August Patch Tuesday
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Univ-Connecticut-ChatGPT-Presentaion.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Heart disease approach using modified random forest and particle swarm optimi...
Network Security Unit 5.pdf for BCA BBA.
Digital-Transformation-Roadmap-for-Companies.pptx
Tartificialntelligence_presentation.pptx
Approach and Philosophy of On baking technology
NewMind AI Weekly Chronicles - August'25-Week II
MIND Revenue Release Quarter 2 2025 Press Release
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
A comparative study of natural language inference in Swahili using monolingua...
Building Integrated photovoltaic BIPV_UPV.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...

A Simpler Web App Architecture (jDays 2016)