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

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
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
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 

Recently uploaded (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
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
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 

Solving Common Web Component Problems - Simon MacDonald