SlideShare a Scribd company logo
1 of 91
Download to read offline
SOLVING COMMON
WEB COMPONENT
PROBLEMS
with Server Side Rendering
SOLVING COMMON
WEB COMPONENT
PROBLEMS
with Server Side Rendering
using Enhance!
SIMON MACDONALD
@MACDONST@MASTODON.ONLINE
INDEX
What are Web Components?
Why are they useful?
What are their problems?
How do we solve them?
WHAT ARE WEB COMPONENTS?
WHAT ARE WEB COMPONENTS?
Web Components is a suite of different
technologies allowing you to create
reusable custom elements — with their
functionality encapsulated away from
the rest of your code — and utilize them
in your web apps.
– MDN
〞
“ OH, YOU MEAN REACT
Let's address the
elephant in the
room right away
REACT WC'S
Reusable Components
REACT WC'S
Reusable Components
DOM Syncing
REACT WC'S
Reusable Components
DOM Syncing
Stateful
REACT WC'S
Reusable Components
DOM Syncing
Stateful
Not the platform
REACT WC'S
Reusable Components
DOM Syncing
Stateful
Not the platform
REACT
Reusable Components
WC'S
Reusable Components
DOM Syncing
Stateful
Not the platform
REACT
Reusable Components
Interoperable
WC'S
Reusable Components
DOM Syncing
Stateful
Not the platform
REACT
Reusable Components
Interoperable
Accessible
WC'S
Reusable Components
DOM Syncing
Stateful
Not the platform
REACT
Reusable Components
Interoperable
Accessible
Part of the platform
WC'S
WHAT ARE WEB COMPONENTS (PART DEUX)?
WHAT ARE WEB COMPONENTS (PART DEUX)?
Custom Elements
WHAT ARE WEB COMPONENTS (PART DEUX)?
Custom Elements
Shadow DOM
WHAT ARE WEB COMPONENTS (PART DEUX)?
Custom Elements
Shadow DOM
HTML Templates
CUSTOM ELEMENTS
https://codepen.io/macdonst/embed/ZErMzrr?default-
tab=html%2Cresult&editable=true
CUSTOM ELEMENTS
<hello-world name="Simon">
<h1>Hello Simon</h1>
</hello-world>
1
2
3
SHADOW DOM
https://codepen.io/macdonst/embed/oNdpNKQ?default-
tab=html%2Cresult&editable=true
SHADOW DOM
<hello-world name="Simon">
#shadow-root
<h1>Hello <span>Simon</span></h1>
</hello-world>
1
2
3
4
HTML TEMPLATES
https://codepen.io/macdonst/embed/vYjpYpV?default-
tab=html%2Cresult&editable=true
HTML TEMPLATES
<hello-world>
#shadow-root
<h1>
Hello <slot name="name"></slot>
</h1>
<span slot="name">Simon</span>
</hello-world>
1
2
3
4
5
6
7
INDEX
What are Web Components?
Why are they useful?
What are their problems?
How do we solve them?
WHY ARE WEB COMPONENTS USEFUL?
WHY ARE WEB COMPONENTS USEFUL?
Component reuse and interoperability
WHY ARE WEB COMPONENTS USEFUL?
Uses less JavaScript
Component reuse and interoperability
WHY ARE WEB COMPONENTS USEFUL?
Uses less JavaScript
Accessible
Component reuse and interoperability
WHY ARE WEB COMPONENTS USEFUL?
Uses less JavaScript
Accessible
Shorter learning path
Component reuse and interoperability
WHY ARE WEB COMPONENTS USEFUL?
Uses less JavaScript
Accessible
Shorter learning path
Encapsulation
Component reuse and interoperability
ASIDE IS ANYONE
ACTUALLY USING WEB
COMPONENTS?
SURE SEEMS LIKE IT
https://chromestatus.com/metrics/feature/timeline/popularity/1689
APPS MADE WITH WEB COMPONENTS
INDEX
What are Web Components?
Why are they useful?
What are their problems?
How do we solve them?
PROBLEM: FLASH OF UNSTYLED CONTENT (FOUC)
PROBLEM: FLASH OF UNSTYLED CONTENT (FOUC)
A flash of unstyled content is an
instance where a web page appears
briefly with the browser's default styles
prior to loading an external CSS
stylesheet, due to the web browser
engine rendering the page before all
information is retrieved
– Wikipedia
〞
PROBLEM: FLASH OF UNDEFINED CUSTOM
ELEMENTS (FOUCE)
PROBLEM: FLASH OF UNDEFINED CUSTOM
ELEMENTS (FOUCE)
You may see a brief flash of unstyled
HTML where your custom elements
should be when the page loads. This is
not dissimilar to FOUC, which occurs
when HTML is displayed before the
stylesheet has loaded.
– Cory LaViska
〞
FOUCE EXAMPLE
https://codepen.io/macdonst/embed/poVaVeN?default-
tab=html%2Cresult&editable=true
WHY DOES FOUCE HAPPEN?
WHY DOES FOUCE HAPPEN?
Browser requests HTML
WHY DOES FOUCE HAPPEN?
Browser requests HTML
It encounters an unknown element, "hello-world"
WHY DOES FOUCE HAPPEN?
Browser requests HTML
It encounters an unknown element, "hello-world"
The browser treats the unknown element as an inline element
No styles are applied due to the Shadow DOM boundary
WHY DOES FOUCE HAPPEN?
Browser requests HTML
It encounters an unknown element, "hello-world"
The browser treats the unknown element as an inline element
No styles are applied due to the Shadow DOM boundary
Browser loads the web components JavaScript
WHY DOES FOUCE HAPPEN?
Browser requests HTML
It encounters an unknown element, "hello-world"
The browser treats the unknown element as an inline element
No styles are applied due to the Shadow DOM boundary
Browser loads the web components JavaScript
The web component is instantiated, and the encapsulated
CSS & JavaScript is applied
FOUCE HAPPENS!!!
PROBLEM: SHADOW DOM DOESN'T PLAY WELL WITH
NATIVE FORMS
PROBLEM: SHADOW DOM DOESN'T PLAY WELL WITH
NATIVE FORMS
Custom elements cannot extend elements other than
HTMLElement*
PROBLEM: SHADOW DOM DOESN'T PLAY WELL WITH
NATIVE FORMS
Custom elements cannot extend elements other than
HTMLElement*
Form elements inside the Shadow DOM are not
considered as such by the component's parent form.
SHADOW DOM VS FORMS EXAMPLE
https://codepen.io/macdonst/embed/bGMLKBR?default-
tab=html%2Cresult&editable=true
INDEX
What are Web Components?
Why are they useful?
What are their problems?
How do we solve them?
SOLUTIONS
FOUCE SOLUTION
https://codepen.io/macdonst/embed/bGMLKmL?default-
tab=html%2Cresult&editable=true
DECLARATIVE SHADOW DOM
DECLARATIVE SHADOW DOM
Proposal to allow rendering elements
with shadow DOM (aka web
components) using server-side
rendering.
〞
DECLARATIVE SHADOW DOM
https://codepen.io/macdonst/embed/gOQwyJO?default-
tab=html%2Cresult&editable=true
DECLARATIVE SHADOW DOM
<hello-world>
#shadow-root
<style>
h1 { color: red }
</style>
<h1>
Hello <slot name="name"></slot>
</h1>
<span slot="name">Simon
</span></hello-world>
1
2
3
4
5
6
7
8
9
10
SHADOW DOM DOESN'T PLAY WELL WITH NATIVE
FORMS SOLUTION
SHADOW DOM DOESN'T PLAY WELL WITH NATIVE
FORMS SOLUTION
SHADOW DOM DOESN'T PLAY WELL WITH NATIVE
FORMS SOLUTION
SHADOW DOM DOESN'T PLAY WELL WITH NATIVE
FORMS SOLUTION
SHADOW DOM DOESN'T PLAY WELL WITH NATIVE
FORMS SOLUTION
FACE* AND ELEMENT INTERNALS
https://codepen.io/rbethel/embed/zYMeZEd
*Form Associated Custom Elements
IS THERE A SOLUTION WE CAN USE TODAY?
〞
We can't solve problems by using the
same kind of thinking we used when we
created them.
– Albert Einstein
WHAT IS ENHANCE?
AUTHOR
Enhance allows developers to
write components as pure
functions that return HTML.
Then render them on the server
to deliver complete HTML
immediately available to the
end user.
Enhance takes care of the
tedious parts, allowing you to
use today’s Web Platform
standards more efficiently. As
new standards and platform
features become generally
available, Enhance will make
way for them.
STANDARDS
Enhance allows for easy
progressive enhancement so
that working HTML can be
further developed to add
additional functionality with
JavaScript.
PROGRESSIVE
Enhance is a web standards-based HTML framework. It’s
designed to provide a dependable foundation for building
lightweight, flexible, and future-proof web applications.
ENHANCE FOUCE SOLUTION
export default function HelloWorld({ html }) {
return html`
<style>
h1 { color: red }
</style>
<h1>
Hello <slot name="name"></slot>
</h1>`
}
1
2
3
4
5
6
7
8
9
<hello-world>
<span slot="name">Simon</slot>
</hello-world>
1
2
3
HTML
Javascript
https://bird-3st.begin.app/fouce
https://bird-3st.begin.app/fouce
ENHANCE FOUCE SOLUTION
https://codepen.io/macdonst/embed/wvNPLep?default-
tab=html%2Cresult&editable=true
STOPPING FOUCE
STOPPING FOUCE
Browser requests HTML
STOPPING FOUCE
Browser requests HTML
Enhance expands your custom elements on the server as well
as hoisting your encapsulated styles to the page's head tag
STOPPING FOUCE
Browser requests HTML
Enhance expands your custom elements on the server as well
as hoisting your encapsulated styles to the page's head tag
It encounters an unknown element, "hello-world"
STOPPING FOUCE
Browser requests HTML
Enhance expands your custom elements on the server as well
as hoisting your encapsulated styles to the page's head tag
It encounters an unknown element, "hello-world"
The browser treats the unknown element as an inline
element, but your CSS is already loaded, so it is styled
properly
STOPPING FOUCE
Browser requests HTML
Enhance expands your custom elements on the server as well
as hoisting your encapsulated styles to the page's head tag
It encounters an unknown element, "hello-world"
The browser treats the unknown element as an inline
element, but your CSS is already loaded, so it is styled
properly
Browser loads the web components JavaScript
STOPPING FOUCE
Browser requests HTML
Enhance expands your custom elements on the server as well
as hoisting your encapsulated styles to the page's head tag
It encounters an unknown element, "hello-world"
The browser treats the unknown element as an inline
element, but your CSS is already loaded, so it is styled
properly
Browser loads the web components JavaScript
The web component is instantiated, and your custom element
is "enhanced"
ENHANCE SHADOW DOM VS FORMS SOLUTION
export default function MyButton({ html }) {
return html`
<style>
button {
color: white;
background-color: black;
border-radius: 3px;
}
</style>
<button>
<slot></slot>
</button>`
}
1
2
3
4
5
6
7
8
9
10
11
12
13
<form action="javascript:alert('hello')">
<input type="text" name="name">
<input type="password" name="password">
<my-button>
Login
</my-button>
</form>
1
2
3
4
5
6
7
HTML
Javascript https://bird-3st.begin.app/forms
https://bird-
3st.begin.app/forms
ENHANCE SHADOW DOM VS FORMS SOLUTION
https://codepen.io/macdonst/embed/RwvjzQV?default-
tab=html%2Cresult&editable=true
BENEFITS OF ENHANCE
BENEFITS OF ENHANCE
All components are server side renderable
with no changes.
BENEFITS OF ENHANCE
All components are server side renderable
with no changes.
Leverage your CSS skills and style
encapsulation in the light DOM.
BENEFITS OF ENHANCE
All components are server side renderable
with no changes.
Leverage your CSS skills and style
encapsulation in the light DOM.
Use slots without the shadow DOM
BENEFITS OF ENHANCE
All components are server side renderable
with no changes.
Leverage your CSS skills and style
encapsulation in the light DOM.
Use slots without the shadow DOM
Avoid excessive JavaScript code by
leveraging the platform and web standards
THANKS!

More Related Content

Similar to Solving Common Web Component Problems - Simon MacDonald

Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Estelle Weyl
 
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?CodeValue
 
Step into the SharePoint branding world, tools and techniques
Step into the SharePoint branding world, tools and techniquesStep into the SharePoint branding world, tools and techniques
Step into the SharePoint branding world, tools and techniquesBenjamin Niaulin
 
Implementing Vanilla Web Components
Implementing Vanilla Web ComponentsImplementing Vanilla Web Components
Implementing Vanilla Web Componentssonumanoj
 
Web Components: back to the future
Web Components: back to the futureWeb Components: back to the future
Web Components: back to the futureDA-14
 
Headless - the future of e-commerce
Headless - the future of e-commerceHeadless - the future of e-commerce
Headless - the future of e-commerceJamie Maria Schouren
 
Web components - An Introduction
Web components - An IntroductionWeb components - An Introduction
Web components - An Introductioncherukumilli2
 
Web components, so close!
Web components, so close!Web components, so close!
Web components, so close!Aleks Zinevych
 
Introduction to Web Components
Introduction to Web ComponentsIntroduction to Web Components
Introduction to Web ComponentsRich Bradshaw
 
Pre rendering media sites with nuxt.js & netlify
Pre rendering media sites with nuxt.js & netlifyPre rendering media sites with nuxt.js & netlify
Pre rendering media sites with nuxt.js & netlifynuppla
 
Front-end tower of Babylon
Front-end tower of BabylonFront-end tower of Babylon
Front-end tower of BabylonDenis Radin
 
«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​
«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​
«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​FDConf
 

Similar to Solving Common Web Component Problems - Simon MacDonald (20)

Wa html5-pdf
Wa html5-pdfWa html5-pdf
Wa html5-pdf
 
Wa html5-pdf
Wa html5-pdfWa html5-pdf
Wa html5-pdf
 
Html5 basics
Html5 basicsHtml5 basics
Html5 basics
 
Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0
 
Please dont touch-3.5
Please dont touch-3.5Please dont touch-3.5
Please dont touch-3.5
 
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
 
Please dont touch-3.6-jsday
Please dont touch-3.6-jsdayPlease dont touch-3.6-jsday
Please dont touch-3.6-jsday
 
Step into the SharePoint branding world, tools and techniques
Step into the SharePoint branding world, tools and techniquesStep into the SharePoint branding world, tools and techniques
Step into the SharePoint branding world, tools and techniques
 
Implementing Vanilla Web Components
Implementing Vanilla Web ComponentsImplementing Vanilla Web Components
Implementing Vanilla Web Components
 
Web Components: back to the future
Web Components: back to the futureWeb Components: back to the future
Web Components: back to the future
 
Headless - the future of e-commerce
Headless - the future of e-commerceHeadless - the future of e-commerce
Headless - the future of e-commerce
 
Web components - An Introduction
Web components - An IntroductionWeb components - An Introduction
Web components - An Introduction
 
Web components, so close!
Web components, so close!Web components, so close!
Web components, so close!
 
Html5
Html5Html5
Html5
 
Introduction to Web Components
Introduction to Web ComponentsIntroduction to Web Components
Introduction to Web Components
 
Pre rendering media sites with nuxt.js & netlify
Pre rendering media sites with nuxt.js & netlifyPre rendering media sites with nuxt.js & netlify
Pre rendering media sites with nuxt.js & netlify
 
Front-end tower of Babylon
Front-end tower of BabylonFront-end tower of Babylon
Front-end tower of Babylon
 
«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​
«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​
«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​
 
What is HTML 5?
What is HTML 5?What is HTML 5?
What is HTML 5?
 
WebMatrix2
WebMatrix2WebMatrix2
WebMatrix2
 

More from Wey Wey Web

Portable, secure, and lightweight: Wasm runtimes and their use-cases - Natali...
Portable, secure, and lightweight: Wasm runtimes and their use-cases - Natali...Portable, secure, and lightweight: Wasm runtimes and their use-cases - Natali...
Portable, secure, and lightweight: Wasm runtimes and their use-cases - Natali...Wey Wey Web
 
Auditing Design Systems for Accessibility - Anna E. Cook
Auditing Design Systems for Accessibility - Anna E. CookAuditing Design Systems for Accessibility - Anna E. Cook
Auditing Design Systems for Accessibility - Anna E. CookWey Wey Web
 
Adaptive Designs, Beyond Pixel Perfection - Stephanie Walter
Adaptive Designs, Beyond Pixel Perfection - Stephanie WalterAdaptive Designs, Beyond Pixel Perfection - Stephanie Walter
Adaptive Designs, Beyond Pixel Perfection - Stephanie WalterWey Wey Web
 
Sharing is caring: what to know before you build a Research Repository - Juli...
Sharing is caring: what to know before you build a Research Repository - Juli...Sharing is caring: what to know before you build a Research Repository - Juli...
Sharing is caring: what to know before you build a Research Repository - Juli...Wey Wey Web
 
Unlocking collaboration: A framework for developers and designers - Alicia Ca...
Unlocking collaboration: A framework for developers and designers - Alicia Ca...Unlocking collaboration: A framework for developers and designers - Alicia Ca...
Unlocking collaboration: A framework for developers and designers - Alicia Ca...Wey Wey Web
 
3 reasons to switch to OKLCH - Anton Lovchikov
3 reasons to switch to OKLCH - Anton Lovchikov3 reasons to switch to OKLCH - Anton Lovchikov
3 reasons to switch to OKLCH - Anton LovchikovWey Wey Web
 
ChatGPT and AI for web developers - Maximiliano Firtman
ChatGPT and AI for web developers - Maximiliano FirtmanChatGPT and AI for web developers - Maximiliano Firtman
ChatGPT and AI for web developers - Maximiliano FirtmanWey Wey Web
 
Declarative Design - Jeremy Keith - Wey Wey Wey 2023
Declarative Design - Jeremy Keith - Wey Wey Wey 2023Declarative Design - Jeremy Keith - Wey Wey Wey 2023
Declarative Design - Jeremy Keith - Wey Wey Wey 2023Wey Wey Web
 
Form follows emotion - Isabella De Cuppis
Form follows emotion - Isabella De CuppisForm follows emotion - Isabella De Cuppis
Form follows emotion - Isabella De CuppisWey Wey Web
 
UX for emerging tech - Josephine Scholtes
UX for emerging tech - Josephine ScholtesUX for emerging tech - Josephine Scholtes
UX for emerging tech - Josephine ScholtesWey Wey Web
 
Collaborative software with State Machines - Laura Kalbag
Collaborative software with State Machines -  Laura KalbagCollaborative software with State Machines -  Laura Kalbag
Collaborative software with State Machines - Laura KalbagWey Wey Web
 
Lessons Learned from building Session Replay - Francesco Novy
Lessons Learned from building Session Replay - Francesco NovyLessons Learned from building Session Replay - Francesco Novy
Lessons Learned from building Session Replay - Francesco NovyWey Wey Web
 
Let's get visual. Visual testing in your project - Ramona Schwering
Let's get visual. Visual testing in your project - Ramona SchweringLet's get visual. Visual testing in your project - Ramona Schwering
Let's get visual. Visual testing in your project - Ramona SchweringWey Wey Web
 
The Future is Malleable - Aleksandra Sikora
The Future is Malleable - Aleksandra SikoraThe Future is Malleable - Aleksandra Sikora
The Future is Malleable - Aleksandra SikoraWey Wey Web
 
Trending tools & methodologies for UX - Josephine Scholtes.pdf
Trending tools & methodologies for UX - Josephine Scholtes.pdfTrending tools & methodologies for UX - Josephine Scholtes.pdf
Trending tools & methodologies for UX - Josephine Scholtes.pdfWey Wey Web
 
Decoding Web Accessibility through Testing - Anuradha Kumari
Decoding Web Accessibility through Testing  - Anuradha KumariDecoding Web Accessibility through Testing  - Anuradha Kumari
Decoding Web Accessibility through Testing - Anuradha KumariWey Wey Web
 
Good Security is one question away - Wiktoria Dalach
Good Security is one  question away - Wiktoria DalachGood Security is one  question away - Wiktoria Dalach
Good Security is one question away - Wiktoria DalachWey Wey Web
 
Dynamic CSS Secrets - Lea Verou
Dynamic CSS Secrets - Lea Verou Dynamic CSS Secrets - Lea Verou
Dynamic CSS Secrets - Lea Verou Wey Wey Web
 
The Misty Report - Douglas Crockford
The Misty Report - Douglas CrockfordThe Misty Report - Douglas Crockford
The Misty Report - Douglas CrockfordWey Wey Web
 
Web performance optimisations for the harsh conditions - Anna Migas
Web performance optimisations for the harsh conditions - Anna MigasWeb performance optimisations for the harsh conditions - Anna Migas
Web performance optimisations for the harsh conditions - Anna MigasWey Wey Web
 

More from Wey Wey Web (20)

Portable, secure, and lightweight: Wasm runtimes and their use-cases - Natali...
Portable, secure, and lightweight: Wasm runtimes and their use-cases - Natali...Portable, secure, and lightweight: Wasm runtimes and their use-cases - Natali...
Portable, secure, and lightweight: Wasm runtimes and their use-cases - Natali...
 
Auditing Design Systems for Accessibility - Anna E. Cook
Auditing Design Systems for Accessibility - Anna E. CookAuditing Design Systems for Accessibility - Anna E. Cook
Auditing Design Systems for Accessibility - Anna E. Cook
 
Adaptive Designs, Beyond Pixel Perfection - Stephanie Walter
Adaptive Designs, Beyond Pixel Perfection - Stephanie WalterAdaptive Designs, Beyond Pixel Perfection - Stephanie Walter
Adaptive Designs, Beyond Pixel Perfection - Stephanie Walter
 
Sharing is caring: what to know before you build a Research Repository - Juli...
Sharing is caring: what to know before you build a Research Repository - Juli...Sharing is caring: what to know before you build a Research Repository - Juli...
Sharing is caring: what to know before you build a Research Repository - Juli...
 
Unlocking collaboration: A framework for developers and designers - Alicia Ca...
Unlocking collaboration: A framework for developers and designers - Alicia Ca...Unlocking collaboration: A framework for developers and designers - Alicia Ca...
Unlocking collaboration: A framework for developers and designers - Alicia Ca...
 
3 reasons to switch to OKLCH - Anton Lovchikov
3 reasons to switch to OKLCH - Anton Lovchikov3 reasons to switch to OKLCH - Anton Lovchikov
3 reasons to switch to OKLCH - Anton Lovchikov
 
ChatGPT and AI for web developers - Maximiliano Firtman
ChatGPT and AI for web developers - Maximiliano FirtmanChatGPT and AI for web developers - Maximiliano Firtman
ChatGPT and AI for web developers - Maximiliano Firtman
 
Declarative Design - Jeremy Keith - Wey Wey Wey 2023
Declarative Design - Jeremy Keith - Wey Wey Wey 2023Declarative Design - Jeremy Keith - Wey Wey Wey 2023
Declarative Design - Jeremy Keith - Wey Wey Wey 2023
 
Form follows emotion - Isabella De Cuppis
Form follows emotion - Isabella De CuppisForm follows emotion - Isabella De Cuppis
Form follows emotion - Isabella De Cuppis
 
UX for emerging tech - Josephine Scholtes
UX for emerging tech - Josephine ScholtesUX for emerging tech - Josephine Scholtes
UX for emerging tech - Josephine Scholtes
 
Collaborative software with State Machines - Laura Kalbag
Collaborative software with State Machines -  Laura KalbagCollaborative software with State Machines -  Laura Kalbag
Collaborative software with State Machines - Laura Kalbag
 
Lessons Learned from building Session Replay - Francesco Novy
Lessons Learned from building Session Replay - Francesco NovyLessons Learned from building Session Replay - Francesco Novy
Lessons Learned from building Session Replay - Francesco Novy
 
Let's get visual. Visual testing in your project - Ramona Schwering
Let's get visual. Visual testing in your project - Ramona SchweringLet's get visual. Visual testing in your project - Ramona Schwering
Let's get visual. Visual testing in your project - Ramona Schwering
 
The Future is Malleable - Aleksandra Sikora
The Future is Malleable - Aleksandra SikoraThe Future is Malleable - Aleksandra Sikora
The Future is Malleable - Aleksandra Sikora
 
Trending tools & methodologies for UX - Josephine Scholtes.pdf
Trending tools & methodologies for UX - Josephine Scholtes.pdfTrending tools & methodologies for UX - Josephine Scholtes.pdf
Trending tools & methodologies for UX - Josephine Scholtes.pdf
 
Decoding Web Accessibility through Testing - Anuradha Kumari
Decoding Web Accessibility through Testing  - Anuradha KumariDecoding Web Accessibility through Testing  - Anuradha Kumari
Decoding Web Accessibility through Testing - Anuradha Kumari
 
Good Security is one question away - Wiktoria Dalach
Good Security is one  question away - Wiktoria DalachGood Security is one  question away - Wiktoria Dalach
Good Security is one question away - Wiktoria Dalach
 
Dynamic CSS Secrets - Lea Verou
Dynamic CSS Secrets - Lea Verou Dynamic CSS Secrets - Lea Verou
Dynamic CSS Secrets - Lea Verou
 
The Misty Report - Douglas Crockford
The Misty Report - Douglas CrockfordThe Misty Report - Douglas Crockford
The Misty Report - Douglas Crockford
 
Web performance optimisations for the harsh conditions - Anna Migas
Web performance optimisations for the harsh conditions - Anna MigasWeb performance optimisations for the harsh conditions - Anna Migas
Web performance optimisations for the harsh conditions - Anna Migas
 

Recently uploaded

Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 

Recently uploaded (20)

Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 

Solving Common Web Component Problems - Simon MacDonald