SlideShare a Scribd company logo
Gatsby
generates super fast static PWAs
pump up the JAM with
Stefan Adolf, Turbine Kreuzberg
Hello, I am
Stefan Adolf

Developer Ambassador
Turbine Kreuzberg
@stadolf

#javascript #mongodb #serverless #blockchain 

#codingberlin #elastic #aws #php #symfony2

#turbinejetzt
CMS
a brief history of “CMS”
“Look Ma, I got my
own LAMP server”
Great! Oh look,
someone broke into
it because you forgot
to update it
CMS
a brief history of “CMS”
“Look Ma, I got my
own LAMP server”
Great! Oh look,
someone broke into
it because you forgot
to update it
“Do it yourself
desaster”
CMS
a brief history of “CMS”
“Look Ma, I got my
own LAMP server”
Great! Oh look,
someone broke into
it because you forgot
to update it
Website as a Service
“Look Ma, I got my
own blog”
Great! Oh, can you just
add Plugin XYZ
and change the reading
direction to RTL?
“Do it yourself
desaster”
CMS
a brief history of “CMS”
“Look Ma, I got my
own LAMP server”
Great! Oh look,
someone broke into
it because you forgot
to update it
Website as a Service
“Look Ma, I got my
own blog”
Great! Oh, can you just
add Plugin XYZ
and change the reading
direction to RTL?
“Do it yourself
desaster”
“let a 3rd party
shoot in your foot”
CMS
a brief history of “CMS”
“Look Ma, I got my
own LAMP server”
Great! Oh look,
someone broke into
it because you forgot
to update it
Website as a Service
“Look Ma, I got my
own blog”
Great! Oh, can you just
add Plugin XYZ
and change the reading
direction to RTL?
Static Site Generators
“Look Ma, I did not
even install PHP on the
server!”
Great! Can you please
add this dynamic
calendar widget on
every page?
“Do it yourself
desaster”
“let a 3rd party
shoot in your foot”
CMS
a brief history of “CMS”
“Look Ma, I got my
own LAMP server”
Great! Oh look,
someone broke into
it because you forgot
to update it
Website as a Service
“Look Ma, I got my
own blog”
Great! Oh, can you just
add Plugin XYZ
and change the reading
direction to RTL?
Static Site Generators
“Look Ma, I did not
even install PHP on the
server!”
Great! Can you please
add this dynamic
calendar widget on
every page?
“Do it yourself
desaster”
“let a 3rd party
shoot in your foot”
“Prebuild all the
html and forget.”
static site generators
๏create layout using
๏create content in
๏create assets with
๏push to repo
๏ $
๏= static html / css / js goes to
๏upload to
how they all work.
erb
json
gulp
bundle exec middleman build
./build
cloudfront
static site generators
๏create layout using
๏create content in
๏create assets with
๏push to repo
๏ $
๏= static html / css / js goes to
๏upload to
how they all work.
liquid
markdown
ruby-sass
jekyll b
./_site
Aerobatic
static site generators
๏create layout using
๏create content in
๏create assets with
๏push to repo
๏ $
๏= static html / css / js goes to
๏upload to
how they all work.
go
yaml
pipes
hugo
./public
netlify
Pump up the JAM with Gatsby
“Gatsby.js is a static Progressive Web App generator.” 
“Don't build a website with last decade's tech.”
“Liberate your sites from legacy CMSs and fly into the future.”
๏PWA support out of the box
๏offline support, link prefetching, service workers
๏React application with initial SSR support
๏initial content loading & progressive enhancement (e.g. fetch data on the client)
๏source agnostic, auto type-inferring GraphQL interface
๏outstanding developer experience
๏opinionated tool choices: CSS modules, GraphiQL, webpack dev server / HMR
๏support for modern JS / Flow / Typescript
๏Gatsby fundamentals
๏Setup, queries, pages
๏Assets & Client side usage
๏Deployment
๏Content management
๏Scale
What to expect
Content → GraphQL
๏Gatsby infers a GraphQL schema from your data automatically
๏all pieces of content are considered a node
๏use the createNodeApi to create GraphQL nodes on your own
๏stored in a large Redux store internally
๏use the createPageApi to create pages out of code / out of nodes
๏source plugins out of the box:
๏markdown, json, yaml, filesystem, mongodb, graphql, …
Assets
๏everything in /static will be served as is.
๏trust Webpack transforms when importing assets from sources
๏b64 encodes smaller images
๏if you explicitly query for a file’s “publicURL” it’s published
๏Gatsby Image & Transformer-Sharp:
๏Do explicit image conversions on build time
๏support fixed / fluid images sizes, srcsets (Retina!) & transforms (crops)
๏can render a super lores version on page load
Demo 1: Development
๏DX / GraphiQL
๏createPagesAPI
๏live editing
๏client side React usage
๏CSS Modules
๏Asset rendering
Deployment Options
1.build locally / on CI and upload artifacts to S3
2.Github Pages / Gitlab Pages (+ Gitlab CI support)
3.use now.sh (no repo needed ;) )
4.create deployment from repo on Netlify
Content Management
๏host local Markdown files & assets in Github
๏Contentful, GraphCMS, Prismic as headless CMS
๏reuse your good old Wordpress backend (!)
๏install Netlify CMS to manage content in your own repository
๏Github/lab bridge & authentication
๏many widgets available
๏publishing workflow included
the “heroku” of the JAMstack era 

you push the code to your repo, they take care of the rest

Repo / CI integration in Gitlab, Github, Bitbucket

Plus: 

AWS Lambda Functions without “AWS”. Just use, no setup.

Identity: Signups, user management, 3rd party logins

Forms: add 1 attribute, get all the responses & a captcha
Demo 2: Deployment & Content Management
๏Gitlab > Netlify
๏Netlify CMS
๏Contentful
Why is it so fast?
๏“performance isn’t optional, it’s built in”
๏inlines critical CSS
๏code/data splitting per route
๏Prefetching resources
๏offline support: service workers cache content locally
V2 got even faster
๏React 16, webpack 4, Babel 7, @reach/router
๏up to 75% faster site builds
๏3x faster SSR performance
๏30% less core client JS (ca. 56kB)
๏GraphQL stitching (beta): directly use remote GQL APIs
Demo 3: performance & many pages
Does it scale?
๏Gatsby gets many things very right
๏much more than yet another “static site generator”
๏ultrafast rebuilds, ultramodern stack
๏incredibly simple to deploy
๏it consolidates all your data
๏- you have to wrap your head around the node APIs
๏it is production ready
Wrapup
Reserving judgements is 

a matter of infinite hope. F. Scott Fitzgerald
in 2018 if you’d gather all best practices and tools to build a fast, modern
and maintainable website and put them together…
… you’d end up building Gatsby.
Thank you, this was
Stefan Adolf

Developer Ambassador

Turbine Kreuzberg

@stadolf


https://gitlab.com/elmariachi111/gatsby-planets


#javascript #mongodb #serverless #blockchain 

#codingberlin #elastic #aws #php #symfony2

#turbinejetzt

More Related Content

PDF
React server side rendering performance
PPTX
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
PDF
WebAssembly vs JavaScript: What is faster?
PPTX
PDF
Why NodeJS
PDF
Stripe con 2021 UI stack
PDF
Isomorphic web application
PDF
WebAssembly in Houdini CSS, is it possible?
React server side rendering performance
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
WebAssembly vs JavaScript: What is faster?
Why NodeJS
Stripe con 2021 UI stack
Isomorphic web application
WebAssembly in Houdini CSS, is it possible?

What's hot (20)

PDF
JavaScript Engine and WebAssembly
PDF
MEAN Stack - Google Developers Live 10/03/2013
PPTX
PPTX
Lagom framework
PDF
Isomorphic React Applications: Performance And Scalability
PDF
Firebase and AngularJS
PDF
Blazor introduction
PDF
The MEAN Stack
PDF
First Step Into NodeJS World
PDF
NodeSummit - MEAN Stack
PPTX
PDF
MidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
PDF
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
KEY
Using Backbone with CakePHP
PPTX
Javascript Myths and its Evolution
PDF
Node.js with Express
PPTX
Blazor - An Introduction
PDF
Serverless NodeJS With AWS Lambda
PDF
React Webinar With CodePolitan
PDF
Brief Intro to Phoenix - Elixir Meetup at BukaLapak
JavaScript Engine and WebAssembly
MEAN Stack - Google Developers Live 10/03/2013
Lagom framework
Isomorphic React Applications: Performance And Scalability
Firebase and AngularJS
Blazor introduction
The MEAN Stack
First Step Into NodeJS World
NodeSummit - MEAN Stack
MidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
Using Backbone with CakePHP
Javascript Myths and its Evolution
Node.js with Express
Blazor - An Introduction
Serverless NodeJS With AWS Lambda
React Webinar With CodePolitan
Brief Intro to Phoenix - Elixir Meetup at BukaLapak
Ad

Similar to Pump up the JAM with Gatsby (20)

PDF
Pump up the JAM with Gatsby (2019)
PDF
Gatsby (Code.Talks) 2019
PDF
Modern Static Site with GatsbyJS
PDF
JAMstack with gatsby, contentful and netlify aka the dream stack
PDF
Rise of the Content Mesh: Webcast with Contentful and Gatsby
PPTX
Build Fast WordPress Site With Gatsby
PDF
Bringing JAMStack to the Enterprise
PPTX
Gatsby intro
PPTX
The Future Is The Cloud
PDF
GraphQL Bangkok Meetup 6.0
PDF
Going back to static html sites / Artem Daniliants / LumoSpark
PPTX
Static Site Generators - Developing Websites in Low-resource Condition
PDF
Going Back to Static HTML Sites - SEMPRO 2017
PDF
High Voltage - Building Static Sites With Wordpress-Managed Content
PPTX
Using the WordPress REST API and Gatsby.js
PDF
Wordpress vs JamStack
KEY
Notes (2012-06-08)
PDF
A Comprehensive Guide on Building Lightning-Fast Websites with React Static S...
PDF
Bringing the JAMstack to the Enterprise
PPTX
ReactJS with WordPress Headless Approach
Pump up the JAM with Gatsby (2019)
Gatsby (Code.Talks) 2019
Modern Static Site with GatsbyJS
JAMstack with gatsby, contentful and netlify aka the dream stack
Rise of the Content Mesh: Webcast with Contentful and Gatsby
Build Fast WordPress Site With Gatsby
Bringing JAMStack to the Enterprise
Gatsby intro
The Future Is The Cloud
GraphQL Bangkok Meetup 6.0
Going back to static html sites / Artem Daniliants / LumoSpark
Static Site Generators - Developing Websites in Low-resource Condition
Going Back to Static HTML Sites - SEMPRO 2017
High Voltage - Building Static Sites With Wordpress-Managed Content
Using the WordPress REST API and Gatsby.js
Wordpress vs JamStack
Notes (2012-06-08)
A Comprehensive Guide on Building Lightning-Fast Websites with React Static S...
Bringing the JAMstack to the Enterprise
ReactJS with WordPress Headless Approach
Ad

More from Stefan Adolf (20)

PDF
Blockchains - Technical foundations
PDF
HOW TO SURVIVE A 2DAY HACKATHON?
PDF
Digitale Selbstbestimmung mit Hilfe dezentraler Technologien
PDF
Digitale Selbstbestimmung | Anwendungsfälle der Dezentralität
PDF
Decentralized technology: a (short) survey
PDF
Productive web applications that run only on the frontend
PDF
DePA - die dezentrale Patientenakte (29.1. FU Berlin)
PDF
DePA - die dezentrale Patientenakte
PDF
Was ist eine Datenbank - und was hat Blockchain damit zu tun?
PDF
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
PDF
Decentralize all the things
PDF
Indexing Decentralized Data with Ethereum, IPFS & The Graph
PDF
A micro service story
PDF
Api Platform: the ultimate API Platform
PDF
Testing API platform with Behat BDD tests
PDF
Hack it like its hot!
PDF
api-platform: the ultimate API platform
PDF
Webpack Encore - Asset Management for the rest of us
PDF
(2018) Webpack Encore - Asset Management for the rest of us
PDF
Using over Owning: Enable renting business models using the tangle and afford...
Blockchains - Technical foundations
HOW TO SURVIVE A 2DAY HACKATHON?
Digitale Selbstbestimmung mit Hilfe dezentraler Technologien
Digitale Selbstbestimmung | Anwendungsfälle der Dezentralität
Decentralized technology: a (short) survey
Productive web applications that run only on the frontend
DePA - die dezentrale Patientenakte (29.1. FU Berlin)
DePA - die dezentrale Patientenakte
Was ist eine Datenbank - und was hat Blockchain damit zu tun?
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
Decentralize all the things
Indexing Decentralized Data with Ethereum, IPFS & The Graph
A micro service story
Api Platform: the ultimate API Platform
Testing API platform with Behat BDD tests
Hack it like its hot!
api-platform: the ultimate API platform
Webpack Encore - Asset Management for the rest of us
(2018) Webpack Encore - Asset Management for the rest of us
Using over Owning: Enable renting business models using the tangle and afford...

Recently uploaded (20)

PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
AI in Product Development-omnex systems
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Digital Strategies for Manufacturing Companies
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
top salesforce developer skills in 2025.pdf
PDF
medical staffing services at VALiNTRY
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
history of c programming in notes for students .pptx
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
ai tools demonstartion for schools and inter college
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
System and Network Administraation Chapter 3
VVF-Customer-Presentation2025-Ver1.9.pptx
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
AI in Product Development-omnex systems
How to Migrate SBCGlobal Email to Yahoo Easily
Digital Strategies for Manufacturing Companies
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
top salesforce developer skills in 2025.pdf
medical staffing services at VALiNTRY
Odoo POS Development Services by CandidRoot Solutions
PTS Company Brochure 2025 (1).pdf.......
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
How to Choose the Right IT Partner for Your Business in Malaysia
history of c programming in notes for students .pptx
Understanding Forklifts - TECH EHS Solution
Odoo Companies in India – Driving Business Transformation.pdf
Wondershare Filmora 15 Crack With Activation Key [2025
ai tools demonstartion for schools and inter college
Adobe Illustrator 28.6 Crack My Vision of Vector Design
System and Network Administraation Chapter 3

Pump up the JAM with Gatsby

  • 1. Gatsby generates super fast static PWAs pump up the JAM with Stefan Adolf, Turbine Kreuzberg
  • 2. Hello, I am Stefan Adolf
 Developer Ambassador Turbine Kreuzberg @stadolf
 #javascript #mongodb #serverless #blockchain 
 #codingberlin #elastic #aws #php #symfony2
 #turbinejetzt
  • 3. CMS a brief history of “CMS” “Look Ma, I got my own LAMP server” Great! Oh look, someone broke into it because you forgot to update it
  • 4. CMS a brief history of “CMS” “Look Ma, I got my own LAMP server” Great! Oh look, someone broke into it because you forgot to update it “Do it yourself desaster”
  • 5. CMS a brief history of “CMS” “Look Ma, I got my own LAMP server” Great! Oh look, someone broke into it because you forgot to update it Website as a Service “Look Ma, I got my own blog” Great! Oh, can you just add Plugin XYZ and change the reading direction to RTL? “Do it yourself desaster”
  • 6. CMS a brief history of “CMS” “Look Ma, I got my own LAMP server” Great! Oh look, someone broke into it because you forgot to update it Website as a Service “Look Ma, I got my own blog” Great! Oh, can you just add Plugin XYZ and change the reading direction to RTL? “Do it yourself desaster” “let a 3rd party shoot in your foot”
  • 7. CMS a brief history of “CMS” “Look Ma, I got my own LAMP server” Great! Oh look, someone broke into it because you forgot to update it Website as a Service “Look Ma, I got my own blog” Great! Oh, can you just add Plugin XYZ and change the reading direction to RTL? Static Site Generators “Look Ma, I did not even install PHP on the server!” Great! Can you please add this dynamic calendar widget on every page? “Do it yourself desaster” “let a 3rd party shoot in your foot”
  • 8. CMS a brief history of “CMS” “Look Ma, I got my own LAMP server” Great! Oh look, someone broke into it because you forgot to update it Website as a Service “Look Ma, I got my own blog” Great! Oh, can you just add Plugin XYZ and change the reading direction to RTL? Static Site Generators “Look Ma, I did not even install PHP on the server!” Great! Can you please add this dynamic calendar widget on every page? “Do it yourself desaster” “let a 3rd party shoot in your foot” “Prebuild all the html and forget.”
  • 9. static site generators ๏create layout using ๏create content in ๏create assets with ๏push to repo ๏ $ ๏= static html / css / js goes to ๏upload to how they all work. erb json gulp bundle exec middleman build ./build cloudfront
  • 10. static site generators ๏create layout using ๏create content in ๏create assets with ๏push to repo ๏ $ ๏= static html / css / js goes to ๏upload to how they all work. liquid markdown ruby-sass jekyll b ./_site Aerobatic
  • 11. static site generators ๏create layout using ๏create content in ๏create assets with ๏push to repo ๏ $ ๏= static html / css / js goes to ๏upload to how they all work. go yaml pipes hugo ./public netlify
  • 13. “Gatsby.js is a static Progressive Web App generator.”  “Don't build a website with last decade's tech.” “Liberate your sites from legacy CMSs and fly into the future.”
  • 14. ๏PWA support out of the box ๏offline support, link prefetching, service workers ๏React application with initial SSR support ๏initial content loading & progressive enhancement (e.g. fetch data on the client) ๏source agnostic, auto type-inferring GraphQL interface ๏outstanding developer experience ๏opinionated tool choices: CSS modules, GraphiQL, webpack dev server / HMR ๏support for modern JS / Flow / Typescript
  • 15. ๏Gatsby fundamentals ๏Setup, queries, pages ๏Assets & Client side usage ๏Deployment ๏Content management ๏Scale What to expect
  • 16. Content → GraphQL ๏Gatsby infers a GraphQL schema from your data automatically ๏all pieces of content are considered a node ๏use the createNodeApi to create GraphQL nodes on your own ๏stored in a large Redux store internally ๏use the createPageApi to create pages out of code / out of nodes ๏source plugins out of the box: ๏markdown, json, yaml, filesystem, mongodb, graphql, …
  • 17. Assets ๏everything in /static will be served as is. ๏trust Webpack transforms when importing assets from sources ๏b64 encodes smaller images ๏if you explicitly query for a file’s “publicURL” it’s published ๏Gatsby Image & Transformer-Sharp: ๏Do explicit image conversions on build time ๏support fixed / fluid images sizes, srcsets (Retina!) & transforms (crops) ๏can render a super lores version on page load
  • 18. Demo 1: Development ๏DX / GraphiQL ๏createPagesAPI ๏live editing ๏client side React usage ๏CSS Modules ๏Asset rendering
  • 19. Deployment Options 1.build locally / on CI and upload artifacts to S3 2.Github Pages / Gitlab Pages (+ Gitlab CI support) 3.use now.sh (no repo needed ;) ) 4.create deployment from repo on Netlify
  • 20. Content Management ๏host local Markdown files & assets in Github ๏Contentful, GraphCMS, Prismic as headless CMS ๏reuse your good old Wordpress backend (!) ๏install Netlify CMS to manage content in your own repository ๏Github/lab bridge & authentication ๏many widgets available ๏publishing workflow included
  • 21. the “heroku” of the JAMstack era you push the code to your repo, they take care of the rest Repo / CI integration in Gitlab, Github, Bitbucket Plus: AWS Lambda Functions without “AWS”. Just use, no setup. Identity: Signups, user management, 3rd party logins Forms: add 1 attribute, get all the responses & a captcha
  • 22. Demo 2: Deployment & Content Management ๏Gitlab > Netlify ๏Netlify CMS ๏Contentful
  • 23. Why is it so fast? ๏“performance isn’t optional, it’s built in” ๏inlines critical CSS ๏code/data splitting per route ๏Prefetching resources ๏offline support: service workers cache content locally
  • 24. V2 got even faster ๏React 16, webpack 4, Babel 7, @reach/router ๏up to 75% faster site builds ๏3x faster SSR performance ๏30% less core client JS (ca. 56kB) ๏GraphQL stitching (beta): directly use remote GQL APIs
  • 25. Demo 3: performance & many pages Does it scale?
  • 26. ๏Gatsby gets many things very right ๏much more than yet another “static site generator” ๏ultrafast rebuilds, ultramodern stack ๏incredibly simple to deploy ๏it consolidates all your data ๏- you have to wrap your head around the node APIs ๏it is production ready Wrapup
  • 27. Reserving judgements is 
 a matter of infinite hope. F. Scott Fitzgerald in 2018 if you’d gather all best practices and tools to build a fast, modern and maintainable website and put them together… … you’d end up building Gatsby.
  • 28. Thank you, this was Stefan Adolf
 Developer Ambassador
 Turbine Kreuzberg
 @stadolf 
 https://gitlab.com/elmariachi111/gatsby-planets 
 #javascript #mongodb #serverless #blockchain 
 #codingberlin #elastic #aws #php #symfony2
 #turbinejetzt