SlideShare a Scribd company logo
1 of 26
An Exploration of Frameworks
and Why We Built Our Own
Who Are We
Andrew Rota
@andrewrota  
Matt DeGennaro
@thedeeg
Wayfair
Wayfair.com is an online destination for all things
home
Selection of more than seven million home items from
7,000 suppliers
Ecommerce company since 2002
Several large websites running a shared
codebase
PHP backend for customer­facing pages
2,000,000+ lines of code for custom e­commerce
platform
2,000+ JavaScript modules
Why were we looking for a new solution?
Large legacy codebase of mostly jQuery
Debugging code was hard, if not impossible in
some sections
Unnecessary DOM selection / manipulation on
page load
Interactive pages could become janky without
careful coding
How to get performance to next level?
Sharing mustache templates between client and
server
Server uses a C++ extension in PHP for massive
throughput
Moving to Backbone gave us better architecture,
but not better performance
Wanted to evaluate industry performance
advancements
Our key metrics
Performance
The driving force
Ease of use
Stability
Modularity
Stack Cohesion
Where did we begin?
       
       
       
       
Where did we begin?
       
       
       
       
Ember
Performance X
Ease of Use X
Stability ✓
Modularity ?
Stack Cohesion ?
Backbone
Performance X
Ease of Use ?
Stability ✓
Modularity ✓
Stack Cohesion ✓
React
Performance ✓
Ease of Use ✓
Stability ?
Modularity ✓
Stack Cohesion X
React
Performance ✓
Ease of Use ✓
Stability ?
Modularity ✓
Stack Cohesion X
?
Not fast?!
Not fast?!
­  , 
Funny  story  about  server  rendering:  it
wasn't actually designed that way
“
Sebastian Markbåge React.js Conf
Not fast?!
@swannodette server side rendering w react is pretty slow. Makes it
a tough sell when server rendering a primary concern
Nick Dreckshage @nickdreckshage
@nickdreckshage sure but people have lived w/
mediocre server side rendering in many scenarios
because caching often works OK
3:27 PM ‐ 13 Feb 2015
David Nolen
@swannodette
Follow
13 Feb
What we liked about React
Declarative vs Imperative
Fast by default
Virtual DOM enables this functionality
Why is Virtual DOM better than DOM?
document.createElement('div'new VirtualNode('div');
onautocomplete: null
onautocompleteerror: null
onbeforecopy: null
onbeforecut: null
onbeforepaste: null
onblur: null
oncancel: null
oncanplay: null
oncanplaythrough: null
onchange: null
onclick: null
onclose: null
oncontextmenu: null
oncopy: null
oncuechange: null
oncut: null
ondblclick: null
ondrag: null
ondragend: null
ondragenter: null
ondragleave: null
ondragover: null
ondragstart: null
ondrop: null
ondurationchange: null
onemptied: null
onended: null
onerror: null
onfocus: null
oninput: null
oninvalid: null
onkeydown: null
onkeypress: null
onkeyup: null
onload: null
onloadeddata: null
tagName: "DIV"
properties: {}
children: []
count: 0
Diffing
{
  "tagName": "INPUT",
  "properties": {
    "id": "toggle‐all",
    "className": "js‐toggle‐all"
    "type": "checkbox"
  },
  "children": [],
  "count": 0
}
{
  "tagName": "INPUT",
  "properties": {
    "id": "toggle‐all",
    "className": "js‐toggle‐al
    "type": "checkbox",
    "checked": true
  },
  "children": [],
  "count": 0
}
Patching
{
  "0": { // Index of the element to patch
    "type": 4,  // type of patch operation, in this case 
    "patch": {  // Properties to update, in this case, up
      "checked": true
    }
  }
}
What do we do now?
Good artists copy, great
artists steal.
­Steve Jobs
­Pablo Picasso
­William Faulkner
­Igor Stravinsky
­Lionel Trilling
­T.S. Eliot
­W. H. Davenport
Adams
“
What we liked
Mustache ­ Stack Cohesion and server­side
performance
Backbone ­ Stack Cohesion, Modularity, Stability
Virtual DOM ­ Client­side performance and Ease
of Use
What we did
Took a look at single­use libraries
Used   to compile Mustache templates
into Virtual DOM
Used the   library from 
Used   to bind events and handle data
layer
Wrote an integration library to pull it all together
Ractive
Virtual DOM Mercury
Backbone
Takeaways
Be honest with yourself
Real world is messy
Leave preconceived notions at the door
Use what's out there
Successful conversions use existing
infrastructure
Thanks!

More Related Content

What's hot

«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​
«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​
«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​FDConf
 
Maurice de Beijer
Maurice de BeijerMaurice de Beijer
Maurice de BeijerCodeFest
 
Google Polymer Introduction
Google Polymer IntroductionGoogle Polymer Introduction
Google Polymer IntroductionDavid Price
 
«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​FDConf
 
Event sourcing your React-Flux applications
Event sourcing your React-Flux applicationsEvent sourcing your React-Flux applications
Event sourcing your React-Flux applicationsMaurice De Beijer [MVP]
 
How to build a web application with Polymer
How to build a web application with PolymerHow to build a web application with Polymer
How to build a web application with PolymerSami Suo-Heikki
 
You know what iMEAN? Using MEAN stack for application dev on Informix
You know what iMEAN? Using MEAN stack for application dev on InformixYou know what iMEAN? Using MEAN stack for application dev on Informix
You know what iMEAN? Using MEAN stack for application dev on InformixKeshav Murthy
 
Microservicios net arquitectura para aplicaciones net contenerizadas - net ...
Microservicios net   arquitectura para aplicaciones net contenerizadas - net ...Microservicios net   arquitectura para aplicaciones net contenerizadas - net ...
Microservicios net arquitectura para aplicaciones net contenerizadas - net ...Germán Küber
 
Architecting Applications Using Apache Wicket Java2 Days 2009
Architecting Applications Using Apache Wicket   Java2 Days 2009Architecting Applications Using Apache Wicket   Java2 Days 2009
Architecting Applications Using Apache Wicket Java2 Days 2009Mystic Coders, LLC
 
Building a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / SpringBuilding a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / Springsdeeg
 
Building web applications using kendo ui and the mvvm pattern
Building web applications using kendo ui and the mvvm patternBuilding web applications using kendo ui and the mvvm pattern
Building web applications using kendo ui and the mvvm patternAspenware
 
Ruby on Rails: The good parts - Boris Dinkevich, 500Tech
Ruby on Rails: The good parts - Boris Dinkevich, 500TechRuby on Rails: The good parts - Boris Dinkevich, 500Tech
Ruby on Rails: The good parts - Boris Dinkevich, 500TechCodemotion Tel Aviv
 
Modern web application devlopment workflow
Modern web application devlopment workflowModern web application devlopment workflow
Modern web application devlopment workflowHamdi Hmidi
 
Choosing the-right-components
Choosing the-right-componentsChoosing the-right-components
Choosing the-right-componentsDmitriy Kubyshkin
 
Introduction to Web Components
Introduction to Web ComponentsIntroduction to Web Components
Introduction to Web ComponentsFu Cheng
 
Client Side rendering Not so Easy
Client Side rendering Not so EasyClient Side rendering Not so Easy
Client Side rendering Not so Easynuria_ruiz
 
Java script202
Java script202Java script202
Java script202Wasiq Zia
 
Unobtrusive js
Unobtrusive jsUnobtrusive js
Unobtrusive jsbretticus
 

What's hot (20)

«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​
«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​
«Разрушаем Вавилонскую Башню WWW с помощью веб-компонент»​
 
Maurice de Beijer
Maurice de BeijerMaurice de Beijer
Maurice de Beijer
 
Google Polymer Introduction
Google Polymer IntroductionGoogle Polymer Introduction
Google Polymer Introduction
 
Bff and GraphQL
Bff and GraphQLBff and GraphQL
Bff and GraphQL
 
«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​
 
Event sourcing your React-Flux applications
Event sourcing your React-Flux applicationsEvent sourcing your React-Flux applications
Event sourcing your React-Flux applications
 
How to build a web application with Polymer
How to build a web application with PolymerHow to build a web application with Polymer
How to build a web application with Polymer
 
You know what iMEAN? Using MEAN stack for application dev on Informix
You know what iMEAN? Using MEAN stack for application dev on InformixYou know what iMEAN? Using MEAN stack for application dev on Informix
You know what iMEAN? Using MEAN stack for application dev on Informix
 
Microservicios net arquitectura para aplicaciones net contenerizadas - net ...
Microservicios net   arquitectura para aplicaciones net contenerizadas - net ...Microservicios net   arquitectura para aplicaciones net contenerizadas - net ...
Microservicios net arquitectura para aplicaciones net contenerizadas - net ...
 
Architecting Applications Using Apache Wicket Java2 Days 2009
Architecting Applications Using Apache Wicket   Java2 Days 2009Architecting Applications Using Apache Wicket   Java2 Days 2009
Architecting Applications Using Apache Wicket Java2 Days 2009
 
Building a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / SpringBuilding a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / Spring
 
Building web applications using kendo ui and the mvvm pattern
Building web applications using kendo ui and the mvvm patternBuilding web applications using kendo ui and the mvvm pattern
Building web applications using kendo ui and the mvvm pattern
 
Ruby on Rails: The good parts - Boris Dinkevich, 500Tech
Ruby on Rails: The good parts - Boris Dinkevich, 500TechRuby on Rails: The good parts - Boris Dinkevich, 500Tech
Ruby on Rails: The good parts - Boris Dinkevich, 500Tech
 
Modern web application devlopment workflow
Modern web application devlopment workflowModern web application devlopment workflow
Modern web application devlopment workflow
 
Intel AppUp Day Bologna
Intel AppUp Day BolognaIntel AppUp Day Bologna
Intel AppUp Day Bologna
 
Choosing the-right-components
Choosing the-right-componentsChoosing the-right-components
Choosing the-right-components
 
Introduction to Web Components
Introduction to Web ComponentsIntroduction to Web Components
Introduction to Web Components
 
Client Side rendering Not so Easy
Client Side rendering Not so EasyClient Side rendering Not so Easy
Client Side rendering Not so Easy
 
Java script202
Java script202Java script202
Java script202
 
Unobtrusive js
Unobtrusive jsUnobtrusive js
Unobtrusive js
 

Viewers also liked

Καβάφης Κωνσταντίνος
Καβάφης ΚωνσταντίνοςΚαβάφης Κωνσταντίνος
Καβάφης Κωνσταντίνοςnicolaidoumarina
 
οικια στελιου ευγγελιδη
οικια στελιου ευγγελιδηοικια στελιου ευγγελιδη
οικια στελιου ευγγελιδηnicolaidoumarina
 
Κωνσταντίνος Καβάφης
Κωνσταντίνος Καβάφης Κωνσταντίνος Καβάφης
Κωνσταντίνος Καβάφης nicolaidoumarina
 
Μασάι Ελευθέριος
Μασάι   ΕλευθέριοςΜασάι   Ελευθέριος
Μασάι Ελευθέριοςnicolaidoumarina
 
οι Mοϊκανοί (ισαβέλλα&χριστιάνα)
οι Mοϊκανοί (ισαβέλλα&χριστιάνα)οι Mοϊκανοί (ισαβέλλα&χριστιάνα)
οι Mοϊκανοί (ισαβέλλα&χριστιάνα)nicolaidoumarina
 
Sample ppt new niche interior by mulavira interior systems
Sample ppt new niche interior   by mulavira interior systemsSample ppt new niche interior   by mulavira interior systems
Sample ppt new niche interior by mulavira interior systemsMulavira Interior Systems
 
Κωνσταντίνος Καβάφης
Κωνσταντίνος ΚαβάφηςΚωνσταντίνος Καβάφης
Κωνσταντίνος Καβάφηςnicolaidoumarina
 
ΟΔΟΣ ΔΗΜΟΣΘΕΝΗ ΜΙΤΣΗ ΛΕΜΕΣΟΣ
ΟΔΟΣ ΔΗΜΟΣΘΕΝΗ ΜΙΤΣΗ ΛΕΜΕΣΟΣΟΔΟΣ ΔΗΜΟΣΘΕΝΗ ΜΙΤΣΗ ΛΕΜΕΣΟΣ
ΟΔΟΣ ΔΗΜΟΣΘΕΝΗ ΜΙΤΣΗ ΛΕΜΕΣΟΣnicolaidoumarina
 
Conventions of short films
Conventions of short filmsConventions of short films
Conventions of short filmspelboy123
 
Conventions of short films
Conventions of short filmsConventions of short films
Conventions of short filmspelboy123
 
ΟΔΟΣ Δ. ΜΙΤΣΗ ΛΕΜΕΣΟΣ
ΟΔΟΣ Δ. ΜΙΤΣΗ ΛΕΜΕΣΟΣΟΔΟΣ Δ. ΜΙΤΣΗ ΛΕΜΕΣΟΣ
ΟΔΟΣ Δ. ΜΙΤΣΗ ΛΕΜΕΣΟΣnicolaidoumarina
 

Viewers also liked (20)

Καβάφης Κωνσταντίνος
Καβάφης ΚωνσταντίνοςΚαβάφης Κωνσταντίνος
Καβάφης Κωνσταντίνος
 
بحث د عهد حوري
بحث د عهد حوريبحث د عهد حوري
بحث د عهد حوري
 
οικια στελιου ευγγελιδη
οικια στελιου ευγγελιδηοικια στελιου ευγγελιδη
οικια στελιου ευγγελιδη
 
Κωνσταντίνος Καβάφης
Κωνσταντίνος Καβάφης Κωνσταντίνος Καβάφης
Κωνσταντίνος Καβάφης
 
RENNIE COWAN - FILMS
RENNIE COWAN - FILMSRENNIE COWAN - FILMS
RENNIE COWAN - FILMS
 
RENNIE COWAN - GRAPHIC DESIGN
RENNIE COWAN - GRAPHIC DESIGN RENNIE COWAN - GRAPHIC DESIGN
RENNIE COWAN - GRAPHIC DESIGN
 
Article
ArticleArticle
Article
 
Alejandra la paradoja de james hunter
Alejandra la paradoja de james hunterAlejandra la paradoja de james hunter
Alejandra la paradoja de james hunter
 
Μαορι Αιμιλια
Μαορι ΑιμιλιαΜαορι Αιμιλια
Μαορι Αιμιλια
 
Μασάι Ελευθέριος
Μασάι   ΕλευθέριοςΜασάι   Ελευθέριος
Μασάι Ελευθέριος
 
οι Mοϊκανοί (ισαβέλλα&χριστιάνα)
οι Mοϊκανοί (ισαβέλλα&χριστιάνα)οι Mοϊκανοί (ισαβέλλα&χριστιάνα)
οι Mοϊκανοί (ισαβέλλα&χριστιάνα)
 
RENNIE COWAN - COMMERCIAL REEL
RENNIE COWAN - COMMERCIAL REEL RENNIE COWAN - COMMERCIAL REEL
RENNIE COWAN - COMMERCIAL REEL
 
Sample ppt new niche interior by mulavira interior systems
Sample ppt new niche interior   by mulavira interior systemsSample ppt new niche interior   by mulavira interior systems
Sample ppt new niche interior by mulavira interior systems
 
Κωνσταντίνος Καβάφης
Κωνσταντίνος ΚαβάφηςΚωνσταντίνος Καβάφης
Κωνσταντίνος Καβάφης
 
Passive voive
Passive voivePassive voive
Passive voive
 
ΟΔΟΣ ΔΗΜΟΣΘΕΝΗ ΜΙΤΣΗ ΛΕΜΕΣΟΣ
ΟΔΟΣ ΔΗΜΟΣΘΕΝΗ ΜΙΤΣΗ ΛΕΜΕΣΟΣΟΔΟΣ ΔΗΜΟΣΘΕΝΗ ΜΙΤΣΗ ΛΕΜΕΣΟΣ
ΟΔΟΣ ΔΗΜΟΣΘΕΝΗ ΜΙΤΣΗ ΛΕΜΕΣΟΣ
 
Conventions of short films
Conventions of short filmsConventions of short films
Conventions of short films
 
What is a startup
What is a startupWhat is a startup
What is a startup
 
Conventions of short films
Conventions of short filmsConventions of short films
Conventions of short films
 
ΟΔΟΣ Δ. ΜΙΤΣΗ ΛΕΜΕΣΟΣ
ΟΔΟΣ Δ. ΜΙΤΣΗ ΛΕΜΕΣΟΣΟΔΟΣ Δ. ΜΙΤΣΗ ΛΕΜΕΣΟΣ
ΟΔΟΣ Δ. ΜΙΤΣΗ ΛΕΜΕΣΟΣ
 

Similar to An Exploration of Frameworks – and Why We Built Our Own

Word press with react – implementing headless wordpress with reactjs converted
Word press with react – implementing headless wordpress with reactjs convertedWord press with react – implementing headless wordpress with reactjs converted
Word press with react – implementing headless wordpress with reactjs convertedDaljeetSingh210
 
DevBatch Software Services Profile
DevBatch Software Services ProfileDevBatch Software Services Profile
DevBatch Software Services ProfileUzair Imtiaz
 
Developing the unknown
Developing the unknownDeveloping the unknown
Developing the unknownpaul22blue
 
Why choose Yii framework?
Why choose Yii framework?Why choose Yii framework?
Why choose Yii framework?goodcore
 
How to Make Money Solving 5 Major Problems of Cloud Hosting Customers
How to Make Money Solving 5 Major Problems of Cloud Hosting CustomersHow to Make Money Solving 5 Major Problems of Cloud Hosting Customers
How to Make Money Solving 5 Major Problems of Cloud Hosting CustomersJelastic Multi-Cloud PaaS
 
Digital Experience is a teamsport - Sitecore User Group Conference keynote
Digital Experience is a teamsport - Sitecore User Group Conference keynoteDigital Experience is a teamsport - Sitecore User Group Conference keynote
Digital Experience is a teamsport - Sitecore User Group Conference keynotePieter Brinkman
 
R-Style Lab Web Development Portfolio
R-Style Lab Web Development PortfolioR-Style Lab Web Development Portfolio
R-Style Lab Web Development PortfolioR-Style Lab
 
Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021
Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021
Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021Katy Slemon
 
Enterprise Serverless Adoption. An Experience Report
Enterprise Serverless Adoption. An Experience ReportEnterprise Serverless Adoption. An Experience Report
Enterprise Serverless Adoption. An Experience ReportSheenBrisals
 
Web Development Presentation
Web Development PresentationWeb Development Presentation
Web Development PresentationTurnToTech
 
DevOps Loop - Jeffrey Hammond.pptx.pdf
DevOps Loop - Jeffrey Hammond.pptx.pdfDevOps Loop - Jeffrey Hammond.pptx.pdf
DevOps Loop - Jeffrey Hammond.pptx.pdfVMware Tanzu
 
!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx
!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx
!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptxGangTingFan
 
Offshore Software Development Company
Offshore Software Development CompanyOffshore Software Development Company
Offshore Software Development CompanyIweballey
 

Similar to An Exploration of Frameworks – and Why We Built Our Own (20)

Word press with react – implementing headless wordpress with reactjs converted
Word press with react – implementing headless wordpress with reactjs convertedWord press with react – implementing headless wordpress with reactjs converted
Word press with react – implementing headless wordpress with reactjs converted
 
DevOps Case Studies
DevOps Case StudiesDevOps Case Studies
DevOps Case Studies
 
DevBatch Software Services Profile
DevBatch Software Services ProfileDevBatch Software Services Profile
DevBatch Software Services Profile
 
Janesh_Vasudeva-_2nd
Janesh_Vasudeva-_2ndJanesh_Vasudeva-_2nd
Janesh_Vasudeva-_2nd
 
Developing the unknown
Developing the unknownDeveloping the unknown
Developing the unknown
 
Why choose Yii framework?
Why choose Yii framework?Why choose Yii framework?
Why choose Yii framework?
 
How to Make Money Solving 5 Major Problems of Cloud Hosting Customers
How to Make Money Solving 5 Major Problems of Cloud Hosting CustomersHow to Make Money Solving 5 Major Problems of Cloud Hosting Customers
How to Make Money Solving 5 Major Problems of Cloud Hosting Customers
 
Web summit.pptx
Web summit.pptxWeb summit.pptx
Web summit.pptx
 
Benefits and Features of CodeIgniter.pdf
Benefits and Features of CodeIgniter.pdfBenefits and Features of CodeIgniter.pdf
Benefits and Features of CodeIgniter.pdf
 
Digital Experience is a teamsport - Sitecore User Group Conference keynote
Digital Experience is a teamsport - Sitecore User Group Conference keynoteDigital Experience is a teamsport - Sitecore User Group Conference keynote
Digital Experience is a teamsport - Sitecore User Group Conference keynote
 
Basics of Backbone.js
Basics of Backbone.jsBasics of Backbone.js
Basics of Backbone.js
 
R-Style Lab Web Development Portfolio
R-Style Lab Web Development PortfolioR-Style Lab Web Development Portfolio
R-Style Lab Web Development Portfolio
 
Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021
Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021
Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021
 
Enterprise Serverless Adoption. An Experience Report
Enterprise Serverless Adoption. An Experience ReportEnterprise Serverless Adoption. An Experience Report
Enterprise Serverless Adoption. An Experience Report
 
Web Development Presentation
Web Development PresentationWeb Development Presentation
Web Development Presentation
 
Cloud migration basics 2018
Cloud migration basics  2018Cloud migration basics  2018
Cloud migration basics 2018
 
DevOps Loop - Jeffrey Hammond.pptx.pdf
DevOps Loop - Jeffrey Hammond.pptx.pdfDevOps Loop - Jeffrey Hammond.pptx.pdf
DevOps Loop - Jeffrey Hammond.pptx.pdf
 
How backbone.js is different from ember.js?
How backbone.js is different from ember.js?How backbone.js is different from ember.js?
How backbone.js is different from ember.js?
 
!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx
!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx
!GDSC NYUST Infrastructure and Application Modernization with Google Cloud .pptx
 
Offshore Software Development Company
Offshore Software Development CompanyOffshore Software Development Company
Offshore Software Development Company
 

More from Andrew Rota

Integrating React.js Into a PHP Application: Dutch PHP 2019
Integrating React.js Into a PHP Application: Dutch PHP 2019Integrating React.js Into a PHP Application: Dutch PHP 2019
Integrating React.js Into a PHP Application: Dutch PHP 2019Andrew Rota
 
Performant APIs with GraphQL and PHP (Dutch PHP 2019)
Performant APIs with GraphQL and PHP (Dutch PHP 2019)Performant APIs with GraphQL and PHP (Dutch PHP 2019)
Performant APIs with GraphQL and PHP (Dutch PHP 2019)Andrew Rota
 
Getting Started with GraphQL && PHP
Getting Started with GraphQL && PHPGetting Started with GraphQL && PHP
Getting Started with GraphQL && PHPAndrew Rota
 
Tutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHPTutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHPAndrew Rota
 
Building a GraphQL API in PHP
Building a GraphQL API in PHPBuilding a GraphQL API in PHP
Building a GraphQL API in PHPAndrew Rota
 
Ten practical ways to improve front-end performance
Ten practical ways to improve front-end performanceTen practical ways to improve front-end performance
Ten practical ways to improve front-end performanceAndrew Rota
 
Component Based UI Architectures for the Web
Component Based UI Architectures for the WebComponent Based UI Architectures for the Web
Component Based UI Architectures for the WebAndrew Rota
 
Client-Side Performance Monitoring (MobileTea, Rome)
Client-Side Performance Monitoring (MobileTea, Rome)Client-Side Performance Monitoring (MobileTea, Rome)
Client-Side Performance Monitoring (MobileTea, Rome)Andrew Rota
 
Integrating React.js Into a PHP Application
Integrating React.js Into a PHP ApplicationIntegrating React.js Into a PHP Application
Integrating React.js Into a PHP ApplicationAndrew Rota
 
Effectively Monitoring Client-Side Performance
Effectively Monitoring Client-Side PerformanceEffectively Monitoring Client-Side Performance
Effectively Monitoring Client-Side PerformanceAndrew Rota
 
Why Static Type Checking is Better
Why Static Type Checking is BetterWhy Static Type Checking is Better
Why Static Type Checking is BetterAndrew Rota
 
The Complementarity of React and Web Components
The Complementarity of React and Web ComponentsThe Complementarity of React and Web Components
The Complementarity of React and Web ComponentsAndrew Rota
 
Web Components + Backbone: a Game-Changing Combination
Web Components + Backbone: a Game-Changing CombinationWeb Components + Backbone: a Game-Changing Combination
Web Components + Backbone: a Game-Changing CombinationAndrew Rota
 
Web Components and Modular CSS
Web Components and Modular CSSWeb Components and Modular CSS
Web Components and Modular CSSAndrew Rota
 

More from Andrew Rota (15)

Integrating React.js Into a PHP Application: Dutch PHP 2019
Integrating React.js Into a PHP Application: Dutch PHP 2019Integrating React.js Into a PHP Application: Dutch PHP 2019
Integrating React.js Into a PHP Application: Dutch PHP 2019
 
Performant APIs with GraphQL and PHP (Dutch PHP 2019)
Performant APIs with GraphQL and PHP (Dutch PHP 2019)Performant APIs with GraphQL and PHP (Dutch PHP 2019)
Performant APIs with GraphQL and PHP (Dutch PHP 2019)
 
Getting Started with GraphQL && PHP
Getting Started with GraphQL && PHPGetting Started with GraphQL && PHP
Getting Started with GraphQL && PHP
 
Tutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHPTutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHP
 
Building a GraphQL API in PHP
Building a GraphQL API in PHPBuilding a GraphQL API in PHP
Building a GraphQL API in PHP
 
Ten practical ways to improve front-end performance
Ten practical ways to improve front-end performanceTen practical ways to improve front-end performance
Ten practical ways to improve front-end performance
 
Component Based UI Architectures for the Web
Component Based UI Architectures for the WebComponent Based UI Architectures for the Web
Component Based UI Architectures for the Web
 
Client-Side Performance Monitoring (MobileTea, Rome)
Client-Side Performance Monitoring (MobileTea, Rome)Client-Side Performance Monitoring (MobileTea, Rome)
Client-Side Performance Monitoring (MobileTea, Rome)
 
Integrating React.js Into a PHP Application
Integrating React.js Into a PHP ApplicationIntegrating React.js Into a PHP Application
Integrating React.js Into a PHP Application
 
Effectively Monitoring Client-Side Performance
Effectively Monitoring Client-Side PerformanceEffectively Monitoring Client-Side Performance
Effectively Monitoring Client-Side Performance
 
Why Static Type Checking is Better
Why Static Type Checking is BetterWhy Static Type Checking is Better
Why Static Type Checking is Better
 
The Complementarity of React and Web Components
The Complementarity of React and Web ComponentsThe Complementarity of React and Web Components
The Complementarity of React and Web Components
 
Web Components + Backbone: a Game-Changing Combination
Web Components + Backbone: a Game-Changing CombinationWeb Components + Backbone: a Game-Changing Combination
Web Components + Backbone: a Game-Changing Combination
 
Bem methodology
Bem methodologyBem methodology
Bem methodology
 
Web Components and Modular CSS
Web Components and Modular CSSWeb Components and Modular CSS
Web Components and Modular CSS
 

Recently uploaded

Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 

Recently uploaded (20)

Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 

An Exploration of Frameworks – and Why We Built Our Own