Slide 1

Slide 1 text

What the JAMstack? Jamie Bradley @jamiebradley234 @hello_endeavour

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

Founded in 2017 Javascript Contractor/ Freelancer Sky, DWP, ZeroLight, Increment By One, PrimitiveSense, Layers & More! React, WordPress, Shopify, UI Frameworks, JAMstack(2019) Moved into Boho5 February 2018 https://endeavour-digital.com

Slide 4

Slide 4 text

What is JAMstack?

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Static Website Architecture

Slide 7

Slide 7 text

I PROMISE I’M NOT SPONSORED I JUST ❤ NETLIFY

Slide 8

Slide 8 text

– jamstack.org “Modern web development architecture based on client-side JavaScript, reusable APIs, and prebuilt Markup”

Slide 9

Slide 9 text

Any dynamic programming during the request/ response cycle should be handled by JavaScript, which only runs on the client. This includes the use of a JavaScript framework/ library or vanilla JS. JavaScript

Slide 10

Slide 10 text

Server-side processes or database actions should be abstracted into reusable APIs. APIs are accessed over HTTPS with JavaScript. This includes third party APIs such as Stripe or Contentful and custom-built APIs. APIs

Slide 11

Slide 11 text

Markup should be templated and pre-built at deploy time. We can achieve this with Static Site Generators (such as Jekyll, Hugo, Gatsby etc) or a Build Tool such as Webpack or Gulp. Markup

Slide 12

Slide 12 text

https://www.staticgen.com/

Slide 13

Slide 13 text

When is my site NOT built with JAMStack?

Slide 14

Slide 14 text

DB Server Web Server API " # Data fetched with Client Side JavaScript e.g. Instagram Posts HTML, CSS, JS Query DB for Content Return Content to Web Server GET https://my-site.com High Level Example: Website Built with Server Side CMS (LAMP)

Slide 15

Slide 15 text

When is my site NOT built with JAMstack? • A site purely built with a server-side CMS e.g. Craft CMS etc • A single page app that uses isomorphic rendering to build views on the server at runtime. • A monolithic server-run web app that relies on Ruby, Node, or another backend language.

Slide 16

Slide 16 text

Content API API " # Change to website pushed to GIT by developers or content change made by content team Instruction sent to Netlify (via a web hook) to trigger a build/deploy Data requested from Content API Data returned to Netlify CDN CI GET https://my-site.com HTML, CSS, JS Data fetched with Client Side JavaScript e.g. Instagram Posts JAMstack Site Built with Headless CMS

Slide 17

Slide 17 text

WHY?

Slide 18

Slide 18 text

Security %&

Slide 19

Slide 19 text

• No direct interaction with Database, your website is just static HTML. Reduced Attack Vectors. • Think of a Bridge [Reminder for Jamie ] • Leverage domain expertise of specialist third-party services. %&

Slide 20

Slide 20 text

JAMstack does indeed move complexity elsewhere. It moves it out of the critical path at request time. It moves it out of your area of responsibility. And it moves it over to domain experts who offer specialised services as commodities. It is perfectly possible that complexity still exists. but we don’t need to shoulder that burden. In the same way as wireless routers depend on wires. And serverless functions run on servers. Somewhere. But not in my house :) Phil Hawksworth https://medium.com/@philhawksworth/jamstack-does-indeed-move-complexity- elsewhere-e34b62bd66df %&

Slide 21

Slide 21 text

Cheaper Hosting!

Slide 22

Slide 22 text

• Affordable services. • Cheaper to scale. • Simpler site, more secure, easier to maintain. • Less unpredictable expenses.

Slide 23

Slide 23 text

Better Performance ⚡

Slide 24

Slide 24 text

• Serve pre-built Markup. • Atomic Deployments - reduced downtime • Instant Cache Invalidation • Hosted on a CDN • Smashing Magazine noted a 10x boost in Performance ⚡

Slide 25

Slide 25 text

Your Sanity

Slide 26

Slide 26 text

• Everything lives in Git. • More flexibility with Technical Decisions • Build with whatever you like

Slide 27

Slide 27 text

TRADE OFFS?

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

Global ADN Automated Deployments Works with GIT GitLab/Github/Bitbucket HTTPS is Automatic Lambda Functions Identity API Forms API

Slide 30

Slide 30 text

No content