Skip to content

Latest commit

 

History

History
341 lines (248 loc) · 8.98 KB

File metadata and controls

341 lines (248 loc) · 8.98 KB
title theme
JAMStack presentation for @codernauts_es
league

#JAMStack

@aruizca - aruizca.com

Sponsored by


at @codernatus_es 01/02/2020

Notes:

  • Thanks
  • About Comalatech
  • Pledge 1%
  • what is the preso about:
    • message 1: overview
    • message 2: practicallity of what we are going to see
    • message 2: money wasted on hosting
  • No need for taking notes or photos
  • Ask question about pronuntiation

ham stack


ham stack english


JAMstack Core Technologies

jamstack core technologies


Dynamic Vs Static websites

dynamic site

dynamic site


Static can be GOOD!!

  • It means it can be served straight from a CDN
  • It means best load times and scalability
  • It means reduced complexity
  • It means simple, reliable and reproducible deployments
  • And way CHEAPER!!!

Notes:

  • Mention FTP releases

A bit about STACKS?

Notes:

  • let's see how architecutures and stacks have evolved over time
  • they are all still relevant as of today

LAMP Stack

LAMP Stack Diagram

Notes:

  • Ask how many have tried this stack
  • Talk about server side rendering, AJAX, web 2.0, ...
  • Talk about experience and PHP

MEAN Stack

MEAN Stack Diagram

Notes:

  • Ask how many know about SPIs. EG: GMail, Google Maps
  • Talk about Angular and client side rendering

JAM Stack #1

  • Pre-rendered
  • Statically Served
  • Progressively Enhanced

JAM Stack Diagram 1

Notes:

  • What does prerendered mean?
  • Talk about progressive enhancement
  • This presentation follows this architecture
  • Use cases
  • Free $$

JAM Stack #2

  • Client side rendering
  • Headless services
  • Progressive apps

JAM Stack Diagram 2

Notes:

  • What does client side rendering mean?
  • More complex
  • Talk about pprogressive apps
  • Use cases: eCommerce
  • Not free but cheap

JAMStack is just a NEW APROACH!!

It is a new "philosophy" which defines a high level architecture for static web development:

  • Non-prescriptive
  • High performant
  • Cheap and easy to scale
  • Secure
  • Developer friendly

Gaining Traction quickly

Paradigma Tweet


JAMStack Core Technologies

jamstack core technologies


JavaScript === ECMAScript

ECMAScript 6

Edition Date published Name
ES6 June 2015 ECMAScript 2015 (ES2015)
ES7 June 2016 ECMAScript 2016 (ES2016)
ES8 June 2017 ECMAScript 2017 (ES2017)
ES9 June 2018 ECMAScript 2018 (ES2018)
ES10 June 2019 ECMAScript 2019 (ES2019)

Notes:

  • ECMA = European Computer Manufatures Association for standards
  • ES5 is from 2009
  • javascripts versions < ES6 are not equal
  • incremental minor updates after ES6
  • standards are not adopted straight away by browsers

ES6 main relevant features

  • Modules
  • Classes
  • Promises
  • Block-Scoped Constructs "let" and "const"
  • Arrow Functions
  • Destructuring
  • Default parameters
  • String interpolation and multi-line literals.
  • ...

JS Tools and Libraries - ECOSYSTEM

JS Tools and Libs

npm 👉 biggest library repository in the world with ~500K packages


JS Joke 1


JS Joke 2


JS Joke 3


JS Joke 4


APIs

  • Microservices

Monolith vs Microservices

Notes:

  • Dog shit analogy

APIs

  • REST / {json:api} / GraphQL
  • API Economy

Headless allthethings

Notes:

  • Representational State Transfer

Services

  • Content APIs => Headless CMS
  • Digital Assests
  • Authentication
  • Files
  • eCommerce
  • Banking
  • ...

Markup

Markup generation


Template Engines

StaticGen Site


Data Sources

Data Sources


Other Essential technologies


Git based deployments

Git deployments


Continuous Integration

Continuous Integration


Demo Time

Demo with Netlify


Cloud runtime platforms

Cloud providers

Shift the Burden

  • Hardware maintenance overhead
  • Software management overhead
  • Networking and Security
  • Horizontal and vertical scaling

Serverless computing

Serverless options

Azure Functions AWS Lambdas GCP Cloud Functions
Runtimes Available Node.js
Java
.NET (C#,F#)
Python
Node
Java
.NET (C#)
Python
Go
Ruby
Node.js
Python
Go
Execution Timeout 5 min / 10 min 5min / 15min 1min / 9min

Other Examples

Notes:

  • Ajaxanywhere with JBake + Asciidoctir
  • Oskar resume
  • Documentation
  • Book authoring
  • Gastby

Questions?


Thank you!!!

Presentation can be found at: