JAMStack - The Total Victory of JavaScript

A presentation at JSCamp in July 2019 in Barcelona, Spain by swyx

Slide 1

Slide 1

JAMSTACK THE TOTAL VICTORY OF JAVASCRIPT @swyx // @jscamp

Slide 2

Slide 2

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx DISTRIBUTION

Slide 3

Slide 3

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

Slide 4

Slide 4

#LearnInPublic @swyx

Slide 5

Slide 5

k c a t s m ja JAVASCRIPT / API’S / MARKUP

Slide 6

Slide 6

Slide 7

Slide 7

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019

  1. IN THE BEGINNING @swyx

Slide 8

Slide 8

netlify JAMstack: The Total Victory of JavaScript SERVER JSCamp, July 2019 @philhawksworth

Slide 9

Slide 9

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

Slide 10

Slide 10

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx DYNAMIC PROGRAM SERVER

Slide 11

Slide 11

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx GENERATED FROM DATA DATABASE PROGRAM SERVER

Slide 12

Slide 12

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx SERVERSIDE ONLY 1990’S - 2000’S

Slide 13

Slide 13

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

Slide 14

Slide 14

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

Slide 15

Slide 15

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

  1. IN THE BEGINNING: LAMP STACK 2. LAMP PROBLEMS

Slide 16

Slide 16

netlify DATABASE JAMstack: The Total Victory of JavaScript JSCamp, July 2019 PROGRAM @swyx SERVER

Slide 17

Slide 17

netlify JSCamp, July 2019 PROGRAM @swyx balancer cache DATABASE JAMstack: The Total Victory of JavaScript SERVER

Slide 18

Slide 18

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx balancer cache DATABASE SERVER PROGRAM CDN

Slide 19

Slide 19

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx PROBLEMS 1. MONITORING 2. VERSIONING 3. REPLICATION / MIGRATION 4. CONSISTENT HASHING 5. FINGERPRINTING 6. SECURITY UPDATES 7. AUTOSCALING 8. RELEASE ENGINEERING 9. CACHE INVALIDATION 10.CLOUD PROVISIONING

Slide 20

Slide 20

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

Slide 21

Slide 21

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx NOT JAMstack

Slide 22

Slide 22

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx LAMP PROBLEMS SECURITY RELIABILITY COMPLEXITY/COST

Slide 23

Slide 23

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

Slide 24

Slide 24

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx STATIC SITE GENERATORS (V1) GENERATED FROM DATA STATIC ASSETS

Slide 25

Slide 25

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx SSG’s are (JA)M-stack And HUNDREDS more…

Slide 26

Slide 26

Slide 27

Slide 27

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

Slide 28

Slide 28

Slide 29

Slide 29

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

  1. IN THE BEGINNING: LAMP STACK 2. LAMP PROBLEMS 3. MEAN STACK

Slide 30

Slide 30

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx JAVASCRIPT GOT SERIOUS

Slide 31

Slide 31

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx SERVERSIDE ONLY 1990’S - 2000’S

Slide 32

Slide 32

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx SERVER-AND-CLIENTSIDE LATE - 2000’S

Slide 33

Slide 33

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

Slide 34

Slide 34

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx ATWOOD’S LAW Any application that can be written in JavaScript, will eventually be written in JavaScript. https://blog.codinghorror.com/the-principle-of-least-power/

Slide 35

Slide 35

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx EARLY 2010’S

Slide 36

Slide 36

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

Slide 37

Slide 37

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx JAVASCRIPT WON! (YAY?) THE PYRRHIC VICTORY OF JAVASCRIPT MID 2010’S

Slide 38

Slide 38

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

Slide 39

Slide 39

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

  1. IN THE BEGINNING: LAMP STACK 2. LAMP PROBLEMS 3. MEAN STACK 4. MEAN PROBLEMS

Slide 40

Slide 40

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx balancer cache CDN

Slide 41

Slide 41

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx PERFORMANCE!!!!! JS SIZE VERSION

Slide 42

Slide 42

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

Slide 43

Slide 43

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

Slide 44

Slide 44

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

Slide 45

Slide 45

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

Slide 46

Slide 46

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx CHEAT: CLIENTSIDE ROUTING

Slide 47

Slide 47

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

Slide 48

Slide 48

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 PERFORMANCE!!!!! TTI VERSION @swyx

Slide 49

Slide 49

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx SINGLE PAGE APPS

Slide 50

Slide 50

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx CLIENT-SIDE RENDERING https://developers.google.com/web/updates/2019/02/rendering-on-the-web

Slide 51

Slide 51

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

Slide 52

Slide 52

netlify JAMstack: The Total Victory of JavaScript ⚒ + Inline Styles + Inline SVGs JSCamp, July 2019 @swyx XX X

Slide 53

Slide 53

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx CLIENT-SIDE RENDERING SERVER-SIDE RENDERING https://developers.google.com/web/updates/2019/02/rendering-on-the-web

Slide 54

Slide 54

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx MEAN PROBLEMS SECURITY RELIABILITY COMPLEXITY/COST + PERFORMANCE?

Slide 55

Slide 55

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx https://developers.google.com/web/updates/2019/02/rendering-on-the-web

Slide 56

Slide 56

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

  1. IN THE BEGINNING: LAMP STACK 2. LAMP PROBLEMS 3. MEAN STACK 4. MEAN PROBLEMS 5. THE CHANGING ENVIRONMENT

Slide 57

Slide 57

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx GIT BASED, CI/CD WORKFLOW

Slide 58

Slide 58

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx THE API ECONOMY

Slide 59

Slide 59

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx JAMSTACK LANDSCAPE

Slide 60

Slide 60

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx SERVERLESS

Slide 61

Slide 61

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx SERVERLESS

Slide 62

Slide 62

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx BUILD TOOLS

Slide 63

Slide 63

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx STATIC SITE GENERATORS

Slide 64

Slide 64

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx STATIC SITE GENERATORS (v2) JS (Templating, Components, Styling) Rehydration (SSR + SPA)

Slide 65

Slide 65

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx STACK SHAMING

Slide 66

Slide 66

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx STACK SHAMING

Slide 67

Slide 67

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx HMM…. 🤔 Git Workflow + Build Tools + Serverless + API Economy + Static Sites

Slide 68

Slide 68

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

  1. IN THE BEGINNING: LAMP STACK 2. LAMP PROBLEMS 3. MEAN STACK 4. MEAN PROBLEMS 5. THE CHANGING ENVIRONMENT 6. JAM STACK

Slide 69

Slide 69

Slide 70

Slide 70

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx CLIENT-SIDE RENDERING SERVER-SIDE RENDERING STATIC RENDERING https://developers.google.com/web/updates/2019/02/rendering-on-the-web

Slide 71

Slide 71

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx https://developers.google.com/web/updates/2019/02/rendering-on-the-web

Slide 72

Slide 72

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx THESE ARE JAMSTACK GitHub Pages S3 Bucket / Azure / GCP Zeit Now v2 Netlify

Slide 73

Slide 73

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx THESE ARE JAMSTACK

Slide 74

Slide 74

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx THESE ARE JAMSTACK

Slide 75

Slide 75

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx DEVELOPER EXPERIENCE BUILD + DEPLOY LOCAL CDN DEV SERVER BUILD GIT BUILD

Slide 76

Slide 76

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx Instant roll backs Deploy previews Branch deploys Functions Forms

Slide 77

Slide 77

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 Instant roll backs Deploy previews Branch deploys Functions Forms @swyx Identity Analytics Redirects A/B Testing Managed DNS

Slide 78

Slide 78

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

  1. IN THE BEGINNING: LAMP STACK 2. LAMP PROBLEMS 3. MEAN STACK 4. MEAN PROBLEMS 5. THE CHANGING ENVIRONMENT 6. JAM STACK 7. RECAP

Slide 79

Slide 79

THE OPEN WEB

Slide 80

Slide 80

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx

Slide 81

Slide 81

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 BUILD @swyx CDN

Slide 82

Slide 82

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx WANT MORE?

Slide 83

Slide 83

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx THE UNBREAKABLE WEB

Slide 84

Slide 84

netlify JAMstack: The Total Victory of JavaScript JSCamp, July 2019 @swyx THANKS JSCAMP! QUESTIONS WELCOME # SWYX.IO/TALKS | SWYX@NETLIFY.COM | @SWYX