SlideShare une entreprise Scribd logo
1  sur  43
Télécharger pour lire hors ligne
How Plone Excels in GatsbyJS Content Mesh
Plone Conference 2019
Asko Soukka
23.10.2019
+
datakurre
Asko Soukka
Background
• Python developer since 2002
• Plone developer since 2004
• Full-time professional since 2008
• GSOC mentor since 2013
• GatsbyJS user since 2018
1
University of Jyväskylä, Central Finland
2
Demo
GatsbyJS
datakurre
Open Source
GatsbyJS – the framework
• React based website and app generator
• GraphQL based CMS agnostic mashup framework
• Server-side rendered static deployment
• MIT-licensed open source plugin ecosystem
3
datakurre
Business
GatsbyJS – the company
• Open source hobby turned into VC backed startup
• Copyrights owner, maintainer and evangelist
• Free tooling, documentation and webinars
• Paid cloud services with premium features
4
datakurre
Advantages
Good
• ”Blazingly-fast websites”
• Beginner friendly documentation
• Seamless developer experience
• Commitment on accessibility
• React ecosystem compatible
5
datakurre
Shortcomings
Bad
• No incremental builds
• Varying plugin quality
• GatbyJS GitHub monorepo
Ugly
• ”Overly-complicated framework and pipeline”
• ”Vendor lock-in for just updating static HTML”
6
datakurre
Not for Everyone
React is
okay
○
Content is
public
○
Use case is
read-only
○
7
Content Mesh
CMS in Disruption
8
CMS in Disruption
CMS
CMS
CMS
9
CMS in Disruption
CMS
CMS
9
CMS in Disruption
CMS
10
Content Mesh
CMS
CMS
CMS
11
Ecosystem
datakurre
Plugin Categories
SOURCE TRANSFORMER THEME
images scales gallery
12
datakurre
Plugin Categories
SOURCE TRANSFORMER THEME
images scales gallery
12
datakurre
Plugin Categories
SOURCE TRANSFORMER THEME
images scales gallery
12
datakurre
Plugin Categories
SOURCE TRANSFORMER THEME
images scales gallery
12
datakurre
Plugin Categories
SOURCE TRANSFORMER THEME
images scales gallery
12
datakurre
Plugin Categories
SOURCE TRANSFORMER THEME
images scales gallery
12
All plugins are equal
categories are not enforced
12
Themes
datakurre
Gatsby Themes
Experiment on maintainable boilerplate
• Packages with pre-configured components
• Configuration possible with plugin options
• Overridable or extendable by shadowing
JBOA ??? PROFIT
13
datakurre
Gatsby Themes
Experiment on maintainable boilerplate
• Packages with pre-configured components
• Configuration possible with plugin options
• Overridable or extendable by shadowing
JBOA ??? PROFIT
13
datakurre
Gatsby Themes
Experiment on maintainable boilerplate
• Packages with pre-configured components
• Configuration possible with plugin options
• Overridable or extendable by shadowing
JBOA ??? PROFIT
13
datakurre
Gatsby Themes
Experiment on maintainable boilerplate
• Packages with pre-configured components
• Configuration possible with plugin options
• Overridable or extendable by shadowing
JBOA ??? PROFIT
13
datakurre
Example ”theme” gatsby-theme-coverflow
datakurre.github.io/gatsby-theme-coverflow
14
datakurre
Example ”theme” configuration
{
resolve: "gatsby-theme-coverflow",
options: {
path: "gatsby-blog",
query: `{ allCoverPages: allFeedGatsbyBlog {
edges {
node {
title
link
}
}
} }`
}
}
15
Plone
datakurre
Out of the Box
Enablers
• Hierarcical content management
• Customizable content types
• Flexible publication workflows
• Effective and expiration dates
• High quality extensible REST API
16
datakurre
Excellences
Curated use-cases
• Standalone spin-off web sites
• CMS part of GatsbyJS web apps
• Content configuration management
17
datakurre
Excellences
Curated use-cases
• Standalone spin-off web sites
• CMS part of GatsbyJS web apps
• Content configuration management
Seen challenges
• WYSIWYG → WYSIWYM
• Release management
17
datakurre
Status of gatsby-source-plone
Done
• Incremental Plone content sourcing
• Selectable site root with baseURL option
• Support for rich text, images and files
• Rich text to React w/ Gatsby links and images
• GraphQL queries by _path or by hierarchy
• Websocket-ready for instant develop updates
18
datakurre
Future of gatsby-source-plone
To do
• Support custom rich text, image and file fields
Issue: Only fields text, image and file are supported
• Path prefixing or namespacing support
for multiple plugin instances
Issue: Instances may override each others’ nodes
19
Get Started
datakurre
Get Started with gatsby-source-plone 1/3
Create a new project
$ npx gatsby new my-gatsby-project
$ cd my-gatsby-project
$ yarn add git+https://github.com/collective/gatsby-source-plone
Add a Plone source in ./gatsby-config.js with
plugins: [
{ resolve: 'gatsby-source-plone',
options: {
baseUrl: 'https://plonedemo.kitconcept.com/en',
},
},
20
datakurre
Get Started with gatsby-source-plone 2/3
Start GatsbyJS development server
$ yarn gatsby develop
Open browser at http://localhost:8000/___graphql
21
datakurre
Get Started with gatsby-source-plone 3/3
Learn GatsbyJS
• gatsbyjs.org/tutorial
• collective.github.io/gatsby-source-plone
Ask for help
• github.com/collective/gatsby-source-plone/issues
22
datakurre
More of gatsby-source-plone
Web site examples
• github.com/collective/gatsby-source-plone
• github.com/collective/gatsby-starter-plone
Landing page example
• github.com/datakurre/gatsby-starter-plone-brochure
Content configuration example
• github.com/datakurre/gatsby-theme-ds-player
23
datakurre.github.io/ploneconf2019
23

Contenu connexe

Tendances

Browserscope oscon 2011
Browserscope oscon 2011Browserscope oscon 2011
Browserscope oscon 2011
lsimon
 
ASP.NET Scalability - DDD7
ASP.NET Scalability - DDD7ASP.NET Scalability - DDD7
ASP.NET Scalability - DDD7
Phil Pursglove
 
ASP.NET Scalability - NxtGen Oxford
ASP.NET Scalability - NxtGen OxfordASP.NET Scalability - NxtGen Oxford
ASP.NET Scalability - NxtGen Oxford
Phil Pursglove
 

Tendances (9)

Browserscope oscon 2011
Browserscope oscon 2011Browserscope oscon 2011
Browserscope oscon 2011
 
ASP.NET Scalability - DDD7
ASP.NET Scalability - DDD7ASP.NET Scalability - DDD7
ASP.NET Scalability - DDD7
 
What's New in Rails 5
What's New in Rails 5What's New in Rails 5
What's New in Rails 5
 
ASP.NET Scalability - NxtGen Oxford
ASP.NET Scalability - NxtGen OxfordASP.NET Scalability - NxtGen Oxford
ASP.NET Scalability - NxtGen Oxford
 
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
 
Introducing Workflow Architectures Using Grails - Greach 2015
Introducing Workflow Architectures Using Grails - Greach 2015Introducing Workflow Architectures Using Grails - Greach 2015
Introducing Workflow Architectures Using Grails - Greach 2015
 
Moka .Net Study Week 04
Moka .Net Study Week 04Moka .Net Study Week 04
Moka .Net Study Week 04
 
SOA Tooling Using NetBeans
SOA Tooling Using NetBeansSOA Tooling Using NetBeans
SOA Tooling Using NetBeans
 
Resources plugin
Resources pluginResources plugin
Resources plugin
 

Similaire à How Plone Excels in GatsbyJS Content Mesh

10 Things Learned Releasing Databricks Enterprise Wide
10 Things Learned Releasing Databricks Enterprise Wide10 Things Learned Releasing Databricks Enterprise Wide
10 Things Learned Releasing Databricks Enterprise Wide
Databricks
 
Operating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesOperating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with Kubernetes
Jonathan Katz
 
GR8CONF Contributing Back To Grails
GR8CONF Contributing Back To GrailsGR8CONF Contributing Back To Grails
GR8CONF Contributing Back To Grails
bobbywarner
 

Similaire à How Plone Excels in GatsbyJS Content Mesh (20)

Plone and Volto in a Jamstack project
Plone and Volto in a Jamstack projectPlone and Volto in a Jamstack project
Plone and Volto in a Jamstack project
 
Writing an extensible web testing framework ready for the cloud slide share
Writing an extensible web testing framework ready for the cloud   slide shareWriting an extensible web testing framework ready for the cloud   slide share
Writing an extensible web testing framework ready for the cloud slide share
 
10 Things Learned Releasing Databricks Enterprise Wide
10 Things Learned Releasing Databricks Enterprise Wide10 Things Learned Releasing Databricks Enterprise Wide
10 Things Learned Releasing Databricks Enterprise Wide
 
Webpack and Web Performance Optimization
Webpack and Web Performance OptimizationWebpack and Web Performance Optimization
Webpack and Web Performance Optimization
 
Building the Web with Gradle
Building the Web with GradleBuilding the Web with Gradle
Building the Web with Gradle
 
Operating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesOperating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with Kubernetes
 
GraalVM and Oracle's Documentation Trends.pdf
GraalVM and Oracle's Documentation Trends.pdfGraalVM and Oracle's Documentation Trends.pdf
GraalVM and Oracle's Documentation Trends.pdf
 
Veda online for ETSAP contracting parties
Veda online for ETSAP contracting partiesVeda online for ETSAP contracting parties
Veda online for ETSAP contracting parties
 
uPortal 3.2 And Beyond
uPortal 3.2 And BeyonduPortal 3.2 And Beyond
uPortal 3.2 And Beyond
 
Shaun-Ellis-feb25
Shaun-Ellis-feb25Shaun-Ellis-feb25
Shaun-Ellis-feb25
 
Drupal 7 - The Top 40 Core Modules and What They Mean for You
Drupal 7 - The Top 40 Core Modules and What They Mean for YouDrupal 7 - The Top 40 Core Modules and What They Mean for You
Drupal 7 - The Top 40 Core Modules and What They Mean for You
 
Lessons Learned Migrating from Jekyll to Next.pptx
Lessons Learned Migrating from Jekyll to Next.pptxLessons Learned Migrating from Jekyll to Next.pptx
Lessons Learned Migrating from Jekyll to Next.pptx
 
PostgreSQL as a Strategic Tool
PostgreSQL as a Strategic ToolPostgreSQL as a Strategic Tool
PostgreSQL as a Strategic Tool
 
In-browser storage and me
In-browser storage and meIn-browser storage and me
In-browser storage and me
 
Using PostgreSQL With Docker & Kubernetes - July 2018
Using PostgreSQL With Docker & Kubernetes - July 2018Using PostgreSQL With Docker & Kubernetes - July 2018
Using PostgreSQL With Docker & Kubernetes - July 2018
 
Developing XWiki
Developing XWikiDeveloping XWiki
Developing XWiki
 
DrupalSouth 2015 - Performance: Not an Afterthought
DrupalSouth 2015 - Performance: Not an AfterthoughtDrupalSouth 2015 - Performance: Not an Afterthought
DrupalSouth 2015 - Performance: Not an Afterthought
 
Grails in the Cloud (2013)
Grails in the Cloud (2013)Grails in the Cloud (2013)
Grails in the Cloud (2013)
 
Build Fast WordPress Site With Gatsby
Build Fast WordPress Site With GatsbyBuild Fast WordPress Site With Gatsby
Build Fast WordPress Site With Gatsby
 
GR8CONF Contributing Back To Grails
GR8CONF Contributing Back To GrailsGR8CONF Contributing Back To Grails
GR8CONF Contributing Back To Grails
 

Plus de Asko Soukka

Plone, rabbit mq and messaging that just works
Plone, rabbit mq and messaging that just worksPlone, rabbit mq and messaging that just works
Plone, rabbit mq and messaging that just works
Asko Soukka
 

Plus de Asko Soukka (8)

Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Embedding BPMN-driven business processes into Plone
Embedding BPMN-driven business processes into PloneEmbedding BPMN-driven business processes into Plone
Embedding BPMN-driven business processes into Plone
 
Deploying Plone and Volto, the Hard Way
Deploying Plone and Volto, the Hard WayDeploying Plone and Volto, the Hard Way
Deploying Plone and Volto, the Hard Way
 
ZServer Reloaded with HTTP/2 and WebSocket Support
ZServer Reloaded with HTTP/2 and WebSocket SupportZServer Reloaded with HTTP/2 and WebSocket Support
ZServer Reloaded with HTTP/2 and WebSocket Support
 
Building instant features with advanced Plone themes
Building instant features with advanced Plone themesBuilding instant features with advanced Plone themes
Building instant features with advanced Plone themes
 
Nix for Python developers
Nix for Python developersNix for Python developers
Nix for Python developers
 
Acceptance testing plone sites and add ons with robot framework and selenium
Acceptance testing plone sites and add ons with robot framework and seleniumAcceptance testing plone sites and add ons with robot framework and selenium
Acceptance testing plone sites and add ons with robot framework and selenium
 
Plone, rabbit mq and messaging that just works
Plone, rabbit mq and messaging that just worksPlone, rabbit mq and messaging that just works
Plone, rabbit mq and messaging that just works
 

Dernier

Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
UK Journal
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 

Dernier (20)

Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 

How Plone Excels in GatsbyJS Content Mesh