SlideShare a Scribd company logo
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

More Related Content

What's hot (9)

PDF
Browserscope oscon 2011
lsimon
 
PDF
ASP.NET Scalability - DDD7
Phil Pursglove
 
PDF
What's New in Rails 5
Marko Sanković
 
PDF
ASP.NET Scalability - NxtGen Oxford
Phil Pursglove
 
PDF
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
Red Hat Developers
 
PDF
Introducing Workflow Architectures Using Grails - Greach 2015
Rubén Mondéjar Andreu
 
PPTX
Moka .Net Study Week 04
Aliencube Consulting
 
PDF
SOA Tooling Using NetBeans
Thanachart Numnonda
 
PPTX
Resources plugin
Alidad Soleimani
 
Browserscope oscon 2011
lsimon
 
ASP.NET Scalability - DDD7
Phil Pursglove
 
What's New in Rails 5
Marko Sanković
 
ASP.NET Scalability - NxtGen Oxford
Phil Pursglove
 
Building Reactive Applications With Node.Js And Red Hat JBoss Data Grid (Gald...
Red Hat Developers
 
Introducing Workflow Architectures Using Grails - Greach 2015
Rubén Mondéjar Andreu
 
Moka .Net Study Week 04
Aliencube Consulting
 
SOA Tooling Using NetBeans
Thanachart Numnonda
 
Resources plugin
Alidad Soleimani
 

Similar to How Plone Excels in GatsbyJS Content Mesh (20)

PDF
Plone and Volto in a Jamstack project
Asko Soukka
 
PDF
Writing an extensible web testing framework ready for the cloud slide share
Mike Ensor
 
PDF
10 Things Learned Releasing Databricks Enterprise Wide
Databricks
 
PPTX
Webpack and Web Performance Optimization
Chen-Tien Tsai
 
PDF
Building the Web with Gradle
Eric Wendelin
 
PDF
Operating PostgreSQL at Scale with Kubernetes
Jonathan Katz
 
PDF
GraalVM and Oracle's Documentation Trends.pdf
ohupalo
 
PDF
Veda online for ETSAP contracting parties
IEA-ETSAP
 
PDF
uPortal 3.2 And Beyond
Jennifer Bourey
 
PDF
Drupal 7 - The Top 40 Core Modules and What They Mean for You
Acquia
 
PPTX
Lessons Learned Migrating from Jekyll to Next.pptx
M. Scott Ford
 
PPTX
PostgreSQL as a Strategic Tool
EDB
 
PPTX
In-browser storage and me
Jason Casden
 
PDF
Using PostgreSQL With Docker & Kubernetes - July 2018
Jonathan Katz
 
PDF
Developing XWiki
Vincent Massol
 
PDF
DrupalSouth 2015 - Performance: Not an Afterthought
Nick Santamaria
 
PPTX
Grails in the Cloud (2013)
Meni Lubetkin
 
PPTX
Build Fast WordPress Site With Gatsby
Imran Sayed
 
KEY
GR8CONF Contributing Back To Grails
bobbywarner
 
Plone and Volto in a Jamstack project
Asko Soukka
 
Writing an extensible web testing framework ready for the cloud slide share
Mike Ensor
 
10 Things Learned Releasing Databricks Enterprise Wide
Databricks
 
Webpack and Web Performance Optimization
Chen-Tien Tsai
 
Building the Web with Gradle
Eric Wendelin
 
Operating PostgreSQL at Scale with Kubernetes
Jonathan Katz
 
GraalVM and Oracle's Documentation Trends.pdf
ohupalo
 
Veda online for ETSAP contracting parties
IEA-ETSAP
 
uPortal 3.2 And Beyond
Jennifer Bourey
 
Drupal 7 - The Top 40 Core Modules and What They Mean for You
Acquia
 
Lessons Learned Migrating from Jekyll to Next.pptx
M. Scott Ford
 
PostgreSQL as a Strategic Tool
EDB
 
In-browser storage and me
Jason Casden
 
Using PostgreSQL With Docker & Kubernetes - July 2018
Jonathan Katz
 
Developing XWiki
Vincent Massol
 
DrupalSouth 2015 - Performance: Not an Afterthought
Nick Santamaria
 
Grails in the Cloud (2013)
Meni Lubetkin
 
Build Fast WordPress Site With Gatsby
Imran Sayed
 
GR8CONF Contributing Back To Grails
bobbywarner
 
Ad

More from Asko Soukka (8)

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

Recently uploaded (20)

PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
PDF
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PPTX
Top Managed Service Providers in Los Angeles
Captain IT
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PPTX
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
PDF
Rethinking Security Operations - SOC Evolution Journey.pdf
Haris Chughtai
 
PDF
NewMind AI Journal - Weekly Chronicles - July'25 Week II
NewMind AI
 
PDF
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
PDF
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Predicting the unpredictable: re-engineering recommendation algorithms for fr...
Speck&Tech
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Top Managed Service Providers in Los Angeles
Captain IT
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
Rethinking Security Operations - SOC Evolution Journey.pdf
Haris Chughtai
 
NewMind AI Journal - Weekly Chronicles - July'25 Week II
NewMind AI
 
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Predicting the unpredictable: re-engineering recommendation algorithms for fr...
Speck&Tech
 

How Plone Excels in GatsbyJS Content Mesh