JAMstack: Silly name. Serious stuff.

A presentation at Pixel Pioneers in June 2019 in Bristol, UK by Phil Hawksworth

Slide 1

Slide 1

JAMSTACK SILLY NAME SERIOUS BUSINESS PHIL HAWKSWORTH

Slide 2

Slide 2

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth I CARE ABOUT NOT HAVING TO MAINTAIN CRANKY AOLSERVER, POSTGRES AND ORACLE INSTALLS AARON SWARTZ, 2002 http://www.aaronsw.com/weblog/000404

Slide 3

Slide 3

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth BAKE, DON’T FRY – Aaron Swartz http://www.aaronsw.com/weblog/000404

Slide 4

Slide 4

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth PRE-RENDERING an h t r e h t ra RENDERING ON DEMAND

Slide 5

Slide 5

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth by RENDERING n a e m we GENERATING MARKUP

Slide 6

Slide 6

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth SIMPLIFYING e h t STACK

Slide 7

Slide 7

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth DEVELOPMENT PROJECTS e r a COMPLEX ENOUGH

Slide 8

Slide 8

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth THE PERFECT PROJECT TIMELINE FIXES ! BRIEF START SCOPE RE-SCOPE CLIENT REVIEW LAUNCH “ FINAL” SIGN OFF AWARDS

Slide 9

Slide 9

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth LAUNCH DAY

Slide 10

Slide 10

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth LAUNCH DAY

Slide 11

Slide 11

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth THE PERFECT PROJECT TIMELINE FIXES ” BRIEF START SCOPE RE-SCOPE CLIENT REVIEW LAUNCH “ FINAL” SIGN OFF AWARDS

Slide 12

Slide 12

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth SIMPLIFYING e h t STACK

Slide 13

Slide 13

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth k c a t s m ja JAVASCRIPT / API / MARKUP

Slide 14

Slide 14

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth WHAT DOES THAT EVEN MEAN?

Slide 15

Slide 15

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth @ PHIL HAWKSWORTH DEVELOPER EXPERIENCE, NETLIFY

Slide 16

Slide 16

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth DEFINITION / DESCRIPTION IMPACT / IMPLICATIONS TOOLS / SERVICES RESOURCES / FIRST STEPS

Slide 17

Slide 17

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth SIMPLIFYING e h t STACK

Slide 18

Slide 18

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth STACKS FOR DAYZ AN / LAMP / MAMP / XAMP / ROR / WISA / MEA WISA / MEAN / LAMP / MAMP / XAMP / ROR /

Slide 19

Slide 19

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth STACKS FOR DAYZ / MEAN / LAMP / MAMP / XAMP / ROR / WISA MEAN / LAMP / MAMP / XAMP / ROR / WISA / M

Slide 20

Slide 20

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth k c a t s m ja JAVASCRIPT / API / MARKUP

Slide 21

Slide 21

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth k c a t s m a j A modern architecture — Create fast and secure sites and dynamic apps with JavaScript, APIs, and pre-rendered Markup, served without web servers

Slide 22

Slide 22

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth TRADITIONAL vs JAMSTACK

Slide 23

Slide 23

netlify JAMstack - Serious Business l a n o i it d a r t Pixel Pioneers, June 2019 CDN @philhawksworth LOAD BALANCER WEB SERVERS DB SERVERS

Slide 24

Slide 24

netlify JAMstack - Serious Business l a n o i it d a r t k c a t s m ja Pixel Pioneers, June 2019 CDN @philhawksworth LOAD BALANCER WEB SERVERS DB SERVERS

Slide 25

Slide 25

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth JAMSTACK s n a e m CAPABLE OF BEING SERVED DIRECTLY FROM A CDN

Slide 26

Slide 26

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth JAMSTACK s r e f f o AN OPPORTUNITY TO REDUCE COMPLEXITY

Slide 27

Slide 27

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth ENJOYS THE BENEFITS of SERVING STATIC ASSETS

Slide 28

Slide 28

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth ISN’T THIS JUST A FANCY NEW NAME FOR STATIC SITES? REASONABLE VOICES

Slide 29

Slide 29

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth STATIC

Slide 30

Slide 30

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth STATIC

Slide 31

Slide 31

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth STATIC

Slide 32

Slide 32

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth STATIC /ˈstatɪk/ lacking in movement, action, or change, especially in an undesirable or uninteresting way.

Slide 33

Slide 33

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth STATIC EXPERIENCE ? or ARCHITECTURE ?

Slide 34

Slide 34

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth STATIC VIRTUE a as

Slide 35

Slide 35

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth LET’S TALK STACKS

Slide 36

Slide 36

netlify JAMstack - Serious Business k c sta Pixel Pioneers, June 2019 @philhawksworth the layers of technology which deliver your web site or application

Slide 37

Slide 37

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth LAMP STACK

Slide 38

Slide 38

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth APACHE PHP HTTP ROUTING AND SERVING PREPROCESSING MYSQL DATA ACCESS LINUX OPERATING SYSTEM WEB SERVER

Slide 39

Slide 39

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth JAM STACK

Slide 40

Slide 40

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth APIs JAVASCRIPT MARKUP DATA ACCESS RUNTIME BROWSER CDN HTTP ROUTING AND SERVING

Slide 41

Slide 41

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth k c a t s m ja PRE-RENDERED SERVED STATICALLY PROGRESSIVELY ENHANCED

Slide 42

Slide 42

netlify JAMstack - Serious Business APACHE PHP MYSQL LINUX WEB SERVER Pixel Pioneers, June 2019 @philhawksworth WITH JAMSTACK THE STACK HAS MOVED UP A LEVEL TO THE BROWSER APIs JAVASCRIPT MARKUP BROWSER

Slide 43

Slide 43

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth n a c s i h t SIMPLIFY DEPLOYMENTS

Slide 44

Slide 44

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth THE PERFECT PROJECT TIMELINE FIXES

BRIEF

START SCOPE RE-SCOPE CLIENT REVIEW LAUNCH “ FINAL” SIGN OFF AWARDS

Slide 45

Slide 45

netlify JAMstack - Serious Business l a n o i it d a r t k c a t s m ja Pixel Pioneers, June 2019 CDN @philhawksworth LOAD BALANCER WEB SERVERS DB SERVERS

Slide 46

Slide 46

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth k c a t s m ja REQUEST TIME BULD TIME DEPLOYMENT BUILD

Slide 47

Slide 47

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth WE’VE BECOME VERY GOOD AT SERVING STATIC FILES

Slide 48

Slide 48

netlify JAMstack - Serious Business GET TO THE CHOPPER CDN Pixel Pioneers, June 2019 @philhawksworth

Slide 49

Slide 49

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth

Slide 50

Slide 50

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 HOSTING LOCAL STATIC SERVER BUILD CONTENT TEMPLATES DATA @philhawksworth CDN

Slide 51

Slide 51

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth LET’S ADDRESS A COMMON MISCONCEPTION

Slide 52

Slide 52

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth k c a t s m ja JAVASCRIPT / API / MARKUP

Slide 53

Slide 53

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth k c a t s m ja JAVASCRIPT API MARKUP & &

Slide 54

Slide 54

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth k c a t s m ja JAVASCRIPT API MARKUP & & E E R H T L L A e s u o t e v a h ‘t n o d u yo

Slide 55

Slide 55

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth ? k c a t s m a j is it JEKYLL YAML NO JS NO APIs GITHUB PAGES yes GATSBY MARKDOWN GRAPHQL APIs JS HYDRATION AMAZON S3 yes HUGO MARKDOWN JS INTERACTIONS NO APIs GOOGLE CLOUD yes ORIGIN SERVER NUXT JSON JS INTERACTIONS COMMERCE APIs NETLIFY yes HAND-MADE PWA WEBPACK JWT BROWSER APIs AZURE yes

Slide 56

Slide 56

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth JAMSTACK s n a e m CAPABLE OF BEING SERVED DIRECTLY FROM A CDN

Slide 57

Slide 57

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth IMPACTS AND IMPLICATIONS

Slide 58

Slide 58

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth SECURITY

Slide 59

Slide 59

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth A GREATLY REDUCED SURFACE AREA

Slide 60

Slide 60

netlify JAMstack - Serious Business l a n o i it d a r t k c a t s m ja Pixel Pioneers, June 2019 CDN @philhawksworth LOAD BALANCER WEB SERVERS DB SERVERS

Slide 61

Slide 61

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth FAR FEWER MOVING PARTS TO ATTACK

Slide 62

Slide 62

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth YOUR-DOMAIN.COM/WP-ADMIN

Slide 63

Slide 63

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth k c a t s m ja REQUEST TIME BULD TIME NO MOVING PARTS DEPLOYMENT BUILD MOVING PARTS

Slide 64

Slide 64

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth PERFORMANCE

Slide 65

Slide 65

netlify JAMstack - Serious Business l a n o i it d a r t k c a t s m ja Pixel Pioneers, June 2019 CDN @philhawksworth LOAD BALANCER WEB SERVERS DB SERVERS

Slide 66

Slide 66

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth TRADITIONAL STACKS ADD STATIC LAYERS IN ORDER TO IMPROVE PERFORMANCE

Slide 67

Slide 67

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth CACHING GALORE

Slide 68

Slide 68

netlify JAMstack - Serious Business l a n o i it d a r t k c a t s m ja Pixel Pioneers, June 2019 CDN @philhawksworth LOAD BALANCER WEB SERVERS DB SERVERS

Slide 69

Slide 69

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth SCALE

Slide 70

Slide 70

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth TRADITIONAL STACKS ADD INFRASTRUCTURE IN ORDER TO SCALE

Slide 71

Slide 71

netlify JAMstack - Serious Business l a n o i it d a r t k c a t s m ja Pixel Pioneers, June 2019 CDN @philhawksworth LOAD BALANCER WEB SERVERS DB SERVERS

Slide 72

Slide 72

netlify JAMstack - Serious Business l a n o i it d a r t k c a t s m ja Pixel Pioneers, June 2019 CDN @philhawksworth LOAD BALANCER WEB SERVERS DB SERVERS

Slide 73

Slide 73

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth DEVELOPER EXPERIENCE

Slide 74

Slide 74

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth k c a t s m ja REQUEST TIME BULD TIME DEPLOYMENT BUILD

Slide 75

Slide 75

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth k c a t s m ja REQUEST TIME BULD TIME DEPLOYMENT BUILD d e in f e d l l e w A e c a p s m e l b o pr o t m o d e e r f h wit make choices

Slide 76

Slide 76

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth FREEDOM d an CHOICE

Slide 77

Slide 77

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth FREEDOM FROM THE TECHNICAL CONSTRAINTS OF EXOTIC PLATFORMS d n a CHOICE OF TOOLS AND APPROACHES WHICH BEST FIT THE TEAM AND THE PROJECT

Slide 78

Slide 78

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth CONFIDENCE s t n e m y o l p e d r u o in y

Slide 79

Slide 79

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth A JAMSTACK SITE CAN MORE EASILY HAVE IMMUTABLE, ATOMIC DEPLOYS

Slide 80

Slide 80

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth

Slide 81

Slide 81

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth AN EXAMPLE OF A DYNAMIC WEB APP?

Slide 82

Slide 82

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 WHAT JUST HAPPENED?! @philhawksworth

Slide 83

Slide 83

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth APIS AND SERVICES

Slide 84

Slide 84

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth BOUGHT SERVICES

Slide 85

Slide 85

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth CMS ASSETS COMMERCE IDENTITY CONTENTFUL SANITY GRAPHCMS CLOUDINARY STRIPE SNIPCART AUTH0 OAUTH

Slide 86

Slide 86

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth CMS ASSETS COMMERCE IDENTITY CONTENTFUL SANITY GRAPHCMS CLOUDINARY STRIPE SNIPCART AUTH0 OAUTH

Slide 87

Slide 87

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth BUILT SERVICES

Slide 88

Slide 88

netlify JAMstack - Serious Business CMS Pixel Pioneers, June 2019 DAMS @philhawksworth COMMERCE IDENTITY

Slide 89

Slide 89

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 CMS @philhawksworth DAMS COMMERCE

Slide 90

Slide 90

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth I ABSOLUTELY POSITIVELY NEED A LITTLE LOGIC ON A SERVER MANY OF US, SOMETIMES

Slide 91

Slide 91

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth SERVERLESS TO THE RESCUE

Slide 92

Slide 92

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth FUNCTIONS AS A SERVICE

Slide 93

Slide 93

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth EXAMPLES AND RESULTS

Slide 94

Slide 94

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth REACTJS.ORG REACTJS.ORG STATIC

Slide 95

Slide 95

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth YARNPKG.COM REACTJS.ORG STATIC

Slide 96

Slide 96

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 VUEJS.ORG REACTJS.ORG @philhawksworth

Slide 97

Slide 97

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 DOCS.CITRIX.COM SMASHINGMAGAZINE.COM @philhawksworth

Slide 98

Slide 98

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth TURNAROUND TIME FOR UPDATES WENT FROM WEEKS TO MINUTES BETH POLLOCK, CITRIX youtube.com/watch?v=kvS5h5domf0

Slide 99

Slide 99

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth WE ESTIMATE OUR ANNUAL COST SAVINGS TO RUN THE SITE PROPERLY IS 65% BETH POLLOCK, CITRIX youtube.com/watch?v=kvS5h5domf0

Slide 100

Slide 100

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 SMASHINGMAGAZINE.COM SMASHINGMAGAZINE.COM @philhawksworth

Slide 101

Slide 101

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth PLATFORMS from 5 to 1 https://www.netlify.com/case-studies/smashing/

Slide 102

Slide 102

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth WE HAD SOME CACHING ISSUES… WITH PROBABLY EVERY SINGLE WORDPRESS CACHING PLUGIN OUT THERE VITALY FRIEDMAN

Slide 103

Slide 103

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth SMASHINGMAGAZINE.COM TIME TO FIRST LOAD m o r f to 800MS 80MS https://www.netlify.com/case-studies/smashing/

Slide 104

Slide 104

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth proxx

Slide 105

Slide 105

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth PROXX.APP PAYLOAD TO INTERACTIVE 25KB https://web.dev/proxx-announce/

Slide 106

Slide 106

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth PROXX.APP TIME TO INTERACTIVE r e d un 5 SECONDS https://web.dev/proxx-announce/

Slide 107

Slide 107

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth VARIETY

Slide 108

Slide 108

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth WHAT IS THE JAMSTACK? THE QUESTION WE STARTED WITH

Slide 109

Slide 109

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth k RENDERED IN ADVANCE c a t s jam e r a s e it s NOT DEPENDENT ON AN ORIGIN PROGRESSIVELY ENHANCED IN THE BROWSER WITH JAVASCRIPT

Slide 110

Slide 110

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth k c a t s m a j A modern architecture — Create fast and secure sites and dynamic apps with JavaScript, APIs, and pre-rendered Markup, served without web servers

Slide 111

Slide 111

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth STATIC SITE GENERATORS staticgen.com NETLIFY STATIC VARIOUS RELATED RESOURCES FROM CHRIS COYIER www.netlify.com https://serverless.css-tricks.com/ CITRIX PRESENTATION FROM JAMSTACKCONF NYC youtube.com/watch?v=kvS5h5domf0

Slide 112

Slide 112

netlify JAMstack - Serious Business Pixel Pioneers, June 2019 @philhawksworth JAMSTACK CONFERENCE jamstackconf.com HEADLESS / DECOUPLED CMS STATIC ABOUT THE JAMSTACK / COMMUNITY headlesscms.org jamstack.org THE NEW DYNAMIC www.thenewdynamic.org/

Slide 113

Slide 113

THANKS @PHILHAWKSWORTH