SlideShare a Scribd company logo
1 of 16
Download to read offline
A perspective on tiles to empower your Plone editors.
Saucelabs
Abstract and Zentraal for PLOG2014S. Orsi - D. Siedband /
Who we are
Simone Orsi
Web developer
at Abstract
Plone contributor
@simahawk
David Siedband
Software developer
at Zeentral
Plone contributor
@siebo
What’s Saucelabs?
● San Francisco based start-up
● Automated and manual testing
● Uses open source tools
○ Selenium
○ Windmill
● Plone community uses it
The project
Migrate their custom Pylons-based CMS
to Plone
Migrate their Wordpress blog to Plone
Separate CMS functionality from custom
testing app
Challenges
● Empower marketing team to make direct updates
● Support complex layouts for product pages
● High-traffic
○ 5k uniques/day
○ 30k pageviews/day
● Incremental deployment
Why they choose plone
● Open Source
● Ease of Use
● Strength of Community
● Strong Security Record
HOW TO SOLVE THIS?
Our solution: composite pages
A page built on using tiles.
The UX empowers the editors to select a
tile, customize the content of the tile and
select some predefined styles for each
of them.
Custom tiles
We identified the blocks that compose their
current site layout and we replicated
it on top of tiles.
Every row / block is a tile and the editor
can sort the order of the blocks
thanks to the custom UX.
NOTE: to avoid unnecessary transactions to ZODB you need
to save the layout when done.
Custom editing UX
With a “good amount” of Javascript we
render the add and edit forms of the tiles and
we render them on the fly
without page reload.
That allows editors to create
landing pages in a couple of minutes
without having
Predefined styles
All the tiles have a predefined layout but
the editor can apply some predefined
styles on each tile via checkboxes.
We can configure those styles via plone
registry.
Incremental Deployment
Go live with just a bunch of pages.
1) CSS is ok (pattern-matchable)
++theme++saucelabs
++resource++
2) JS is ok (pattern-matchable)
/portal_javascripts
++theme++saucelabs
3) Images are a bit more involved
CompositePage - tile images live downstream of the tile
LIVE DEMO!
Improvements (??)
A lot…
● better UX
● allow to handle columns (not our use case though)
● manage predefined layouts
QUESTIONS?
Plog2014 - Saucelabs - a perspective on tiles to empower your plone editors

More Related Content

What's hot

Twitter Bootstrap for web UI development
Twitter Bootstrap for web UI development Twitter Bootstrap for web UI development
Twitter Bootstrap for web UI development Infinity Levels Studio
 
Introduction to React
Introduction to ReactIntroduction to React
Introduction to ReactYos Riady
 
Speed up your zombies! - Bootstrap dev environment in 5 minutes!
Speed up your zombies! - Bootstrap dev environment in 5 minutes!Speed up your zombies! - Bootstrap dev environment in 5 minutes!
Speed up your zombies! - Bootstrap dev environment in 5 minutes!Krzysztof (Chris) Ozog
 
JavaScript Tools and Implementation
JavaScript Tools and ImplementationJavaScript Tools and Implementation
JavaScript Tools and ImplementationCharles Russell
 
ARTDM 170, Week 3: Rollovers
ARTDM 170, Week 3: RolloversARTDM 170, Week 3: Rollovers
ARTDM 170, Week 3: RolloversGilbert Guerrero
 
Intro to AngularJS
Intro to AngularJSIntro to AngularJS
Intro to AngularJSPOSSCON
 
Олег Слободской "UVP of CSSinJS and the future"
Олег Слободской "UVP of CSSinJS and the future"Олег Слободской "UVP of CSSinJS and the future"
Олег Слободской "UVP of CSSinJS and the future"Fwdays
 
GWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO ToolsGWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO Toolsbarciszewski
 
Drupal 8 Vocab Lesson
Drupal 8 Vocab LessonDrupal 8 Vocab Lesson
Drupal 8 Vocab LessonMediacurrent
 
jQuery Mobile Overview - Boston
jQuery Mobile  Overview -  BostonjQuery Mobile  Overview -  Boston
jQuery Mobile Overview - BostonTodd Parker
 
Pokelabo flash 2013/4
Pokelabo flash 2013/4Pokelabo flash 2013/4
Pokelabo flash 2013/4Shota Suzuki
 
Angular2.0@Shanghai0319
Angular2.0@Shanghai0319Angular2.0@Shanghai0319
Angular2.0@Shanghai0319Bibby Chung
 
Between a Block & a Hard Place
Between a Block & a Hard PlaceBetween a Block & a Hard Place
Between a Block & a Hard PlaceWP Engine
 
Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDamir Beylkhanov
 
Rock Your Blocks! Web Design Acceleration with Genesis Pro
Rock Your Blocks! Web Design Acceleration with Genesis ProRock Your Blocks! Web Design Acceleration with Genesis Pro
Rock Your Blocks! Web Design Acceleration with Genesis ProWP Engine
 
Introduction of CMS Technology to the People of Tanay, Rizal Philippines
Introduction of CMS Technology to the People of Tanay, Rizal PhilippinesIntroduction of CMS Technology to the People of Tanay, Rizal Philippines
Introduction of CMS Technology to the People of Tanay, Rizal PhilippinesEleison Cruz
 

What's hot (19)

Twitter Bootstrap for web UI development
Twitter Bootstrap for web UI development Twitter Bootstrap for web UI development
Twitter Bootstrap for web UI development
 
Introduction to React
Introduction to ReactIntroduction to React
Introduction to React
 
Speed up your zombies! - Bootstrap dev environment in 5 minutes!
Speed up your zombies! - Bootstrap dev environment in 5 minutes!Speed up your zombies! - Bootstrap dev environment in 5 minutes!
Speed up your zombies! - Bootstrap dev environment in 5 minutes!
 
JavaScript Tools and Implementation
JavaScript Tools and ImplementationJavaScript Tools and Implementation
JavaScript Tools and Implementation
 
The shift to the edge
The shift to the edgeThe shift to the edge
The shift to the edge
 
ARTDM 170, Week 3: Rollovers
ARTDM 170, Week 3: RolloversARTDM 170, Week 3: Rollovers
ARTDM 170, Week 3: Rollovers
 
Intro to AngularJS
Intro to AngularJSIntro to AngularJS
Intro to AngularJS
 
Олег Слободской "UVP of CSSinJS and the future"
Олег Слободской "UVP of CSSinJS and the future"Олег Слободской "UVP of CSSinJS and the future"
Олег Слободской "UVP of CSSinJS and the future"
 
Intro to nodejs
Intro to nodejsIntro to nodejs
Intro to nodejs
 
GWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO ToolsGWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO Tools
 
Drupal 8 Vocab Lesson
Drupal 8 Vocab LessonDrupal 8 Vocab Lesson
Drupal 8 Vocab Lesson
 
jQuery Mobile Overview - Boston
jQuery Mobile  Overview -  BostonjQuery Mobile  Overview -  Boston
jQuery Mobile Overview - Boston
 
Pokelabo flash 2013/4
Pokelabo flash 2013/4Pokelabo flash 2013/4
Pokelabo flash 2013/4
 
Angular2.0@Shanghai0319
Angular2.0@Shanghai0319Angular2.0@Shanghai0319
Angular2.0@Shanghai0319
 
Between a Block & a Hard Place
Between a Block & a Hard PlaceBetween a Block & a Hard Place
Between a Block & a Hard Place
 
Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&Cordova
 
Rock Your Blocks! Web Design Acceleration with Genesis Pro
Rock Your Blocks! Web Design Acceleration with Genesis ProRock Your Blocks! Web Design Acceleration with Genesis Pro
Rock Your Blocks! Web Design Acceleration with Genesis Pro
 
Introduction of CMS Technology to the People of Tanay, Rizal Philippines
Introduction of CMS Technology to the People of Tanay, Rizal PhilippinesIntroduction of CMS Technology to the People of Tanay, Rizal Philippines
Introduction of CMS Technology to the People of Tanay, Rizal Philippines
 
Angular | Dev Love Components
Angular | Dev Love ComponentsAngular | Dev Love Components
Angular | Dev Love Components
 

Viewers also liked

Costruisci la tua piattaforma open-source di video-sharing in Python
Costruisci la tua piattaforma open-source di video-sharing in Python Costruisci la tua piattaforma open-source di video-sharing in Python
Costruisci la tua piattaforma open-source di video-sharing in Python simahawk
 
PLOG2013 - Plone Analytics
PLOG2013 - Plone AnalyticsPLOG2013 - Plone Analytics
PLOG2013 - Plone Analyticssimahawk
 
Doxia Web Samples
Doxia Web SamplesDoxia Web Samples
Doxia Web SamplesSteve Etner
 
Cassandra Client Tutorial
Cassandra Client TutorialCassandra Client Tutorial
Cassandra Client TutorialJoe McTee
 
Anexa 4 final - FORMULAR DE CERERE DE FINANŢARE CCINT
Anexa 4 final - FORMULAR DE CERERE DE FINANŢARE CCINTAnexa 4 final - FORMULAR DE CERERE DE FINANŢARE CCINT
Anexa 4 final - FORMULAR DE CERERE DE FINANŢARE CCINTWalthamstow Times
 
симфонический джаз
симфонический джазсимфонический джаз
симфонический джазNaskaValerjevna
 
скульптура эпохи возрождения
скульптура эпохи возрожденияскульптура эпохи возрождения
скульптура эпохи возрожденияNaskaValerjevna
 

Viewers also liked (9)

Costruisci la tua piattaforma open-source di video-sharing in Python
Costruisci la tua piattaforma open-source di video-sharing in Python Costruisci la tua piattaforma open-source di video-sharing in Python
Costruisci la tua piattaforma open-source di video-sharing in Python
 
PLOG2013 - Plone Analytics
PLOG2013 - Plone AnalyticsPLOG2013 - Plone Analytics
PLOG2013 - Plone Analytics
 
Doxia Web Samples
Doxia Web SamplesDoxia Web Samples
Doxia Web Samples
 
WPD plumi
WPD   plumiWPD   plumi
WPD plumi
 
Cassandra Client Tutorial
Cassandra Client TutorialCassandra Client Tutorial
Cassandra Client Tutorial
 
Anexa 4 final - FORMULAR DE CERERE DE FINANŢARE CCINT
Anexa 4 final - FORMULAR DE CERERE DE FINANŢARE CCINTAnexa 4 final - FORMULAR DE CERERE DE FINANŢARE CCINT
Anexa 4 final - FORMULAR DE CERERE DE FINANŢARE CCINT
 
симфонический джаз
симфонический джазсимфонический джаз
симфонический джаз
 
сахароза
сахарозасахароза
сахароза
 
скульптура эпохи возрождения
скульптура эпохи возрожденияскульптура эпохи возрождения
скульптура эпохи возрождения
 

Similar to Plog2014 - Saucelabs - a perspective on tiles to empower your plone editors

The new way of managing layouts and blocks
The new way of managing layouts and blocksThe new way of managing layouts and blocks
The new way of managing layouts and blocksIvo Lukac
 
KharkivJS: Flaws of the Web Components in 2019 and how to address them
KharkivJS: Flaws of the Web Components in 2019 and how to address themKharkivJS: Flaws of the Web Components in 2019 and how to address them
KharkivJS: Flaws of the Web Components in 2019 and how to address themVlad Fedosov
 
Station Four: Web Redesign Presentation
Station Four: Web Redesign PresentationStation Four: Web Redesign Presentation
Station Four: Web Redesign Presentationcolberding
 
Transitioning Groupon to Node.js - EmpireJS 2014
Transitioning Groupon to Node.js - EmpireJS 2014Transitioning Groupon to Node.js - EmpireJS 2014
Transitioning Groupon to Node.js - EmpireJS 2014Sean McCullough
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesTeamstudio
 
State of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront ConferenceState of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront Conferencedmethvin
 
Broaden your dev skillset with SharePoint branding options
Broaden your dev skillset with SharePoint branding optionsBroaden your dev skillset with SharePoint branding options
Broaden your dev skillset with SharePoint branding optionsEric Overfield
 
Mvvm knockout vs angular
Mvvm knockout vs angularMvvm knockout vs angular
Mvvm knockout vs angularBasarat Syed
 
The future of BYU web design
The future of BYU web designThe future of BYU web design
The future of BYU web designNate Walton
 
Developing JavaScript Widgets
Developing JavaScript WidgetsDeveloping JavaScript Widgets
Developing JavaScript WidgetsBob German
 
Boilerplates: Step up your Web Development Process
Boilerplates: Step up your Web Development ProcessBoilerplates: Step up your Web Development Process
Boilerplates: Step up your Web Development ProcessFibonalabs
 
Tip from ConnectED 2015: How to Use Those Cool New Frameworks in Mobile Domin...
Tip from ConnectED 2015: How to Use Those Cool New Frameworks in Mobile Domin...Tip from ConnectED 2015: How to Use Those Cool New Frameworks in Mobile Domin...
Tip from ConnectED 2015: How to Use Those Cool New Frameworks in Mobile Domin...SocialBiz UserGroup
 
You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)Igalia
 
Motion design in FIori
Motion design in FIoriMotion design in FIori
Motion design in FIoriRoman Rommel
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkitPaul Jensen
 
Style Guides Are The New Photoshop (Fronteers 2012)
Style Guides Are The New Photoshop (Fronteers 2012)Style Guides Are The New Photoshop (Fronteers 2012)
Style Guides Are The New Photoshop (Fronteers 2012)Stephen Hay
 
Responsive Design: Building for a Modern Web
Responsive Design: Building for a Modern WebResponsive Design: Building for a Modern Web
Responsive Design: Building for a Modern WebHarvard Web Working Group
 
Plone at the University of Washington
Plone at the University of WashingtonPlone at the University of Washington
Plone at the University of Washingtonmwinkle1
 

Similar to Plog2014 - Saucelabs - a perspective on tiles to empower your plone editors (20)

The new way of managing layouts and blocks
The new way of managing layouts and blocksThe new way of managing layouts and blocks
The new way of managing layouts and blocks
 
KharkivJS: Flaws of the Web Components in 2019 and how to address them
KharkivJS: Flaws of the Web Components in 2019 and how to address themKharkivJS: Flaws of the Web Components in 2019 and how to address them
KharkivJS: Flaws of the Web Components in 2019 and how to address them
 
Station Four: Web Redesign Presentation
Station Four: Web Redesign PresentationStation Four: Web Redesign Presentation
Station Four: Web Redesign Presentation
 
Transitioning Groupon to Node.js - EmpireJS 2014
Transitioning Groupon to Node.js - EmpireJS 2014Transitioning Groupon to Node.js - EmpireJS 2014
Transitioning Groupon to Node.js - EmpireJS 2014
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPages
 
State of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront ConferenceState of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront Conference
 
Broaden your dev skillset with SharePoint branding options
Broaden your dev skillset with SharePoint branding optionsBroaden your dev skillset with SharePoint branding options
Broaden your dev skillset with SharePoint branding options
 
Mvvm knockout vs angular
Mvvm knockout vs angularMvvm knockout vs angular
Mvvm knockout vs angular
 
The future of BYU web design
The future of BYU web designThe future of BYU web design
The future of BYU web design
 
Developing JavaScript Widgets
Developing JavaScript WidgetsDeveloping JavaScript Widgets
Developing JavaScript Widgets
 
Boilerplates: Step up your Web Development Process
Boilerplates: Step up your Web Development ProcessBoilerplates: Step up your Web Development Process
Boilerplates: Step up your Web Development Process
 
Tip from ConnectED 2015: How to Use Those Cool New Frameworks in Mobile Domin...
Tip from ConnectED 2015: How to Use Those Cool New Frameworks in Mobile Domin...Tip from ConnectED 2015: How to Use Those Cool New Frameworks in Mobile Domin...
Tip from ConnectED 2015: How to Use Those Cool New Frameworks in Mobile Domin...
 
You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)
 
Motion design in FIori
Motion design in FIoriMotion design in FIori
Motion design in FIori
 
Sketching in code
Sketching in codeSketching in code
Sketching in code
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkit
 
Style Guides Are The New Photoshop (Fronteers 2012)
Style Guides Are The New Photoshop (Fronteers 2012)Style Guides Are The New Photoshop (Fronteers 2012)
Style Guides Are The New Photoshop (Fronteers 2012)
 
Psd to foundation
Psd to foundationPsd to foundation
Psd to foundation
 
Responsive Design: Building for a Modern Web
Responsive Design: Building for a Modern WebResponsive Design: Building for a Modern Web
Responsive Design: Building for a Modern Web
 
Plone at the University of Washington
Plone at the University of WashingtonPlone at the University of Washington
Plone at the University of Washington
 

Recently uploaded

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 

Recently uploaded (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 

Plog2014 - Saucelabs - a perspective on tiles to empower your plone editors

  • 1. A perspective on tiles to empower your Plone editors. Saucelabs Abstract and Zentraal for PLOG2014S. Orsi - D. Siedband /
  • 2. Who we are Simone Orsi Web developer at Abstract Plone contributor @simahawk David Siedband Software developer at Zeentral Plone contributor @siebo
  • 3. What’s Saucelabs? ● San Francisco based start-up ● Automated and manual testing ● Uses open source tools ○ Selenium ○ Windmill ● Plone community uses it
  • 4. The project Migrate their custom Pylons-based CMS to Plone Migrate their Wordpress blog to Plone Separate CMS functionality from custom testing app
  • 5. Challenges ● Empower marketing team to make direct updates ● Support complex layouts for product pages ● High-traffic ○ 5k uniques/day ○ 30k pageviews/day ● Incremental deployment
  • 6. Why they choose plone ● Open Source ● Ease of Use ● Strength of Community ● Strong Security Record
  • 7. HOW TO SOLVE THIS?
  • 8. Our solution: composite pages A page built on using tiles. The UX empowers the editors to select a tile, customize the content of the tile and select some predefined styles for each of them.
  • 9. Custom tiles We identified the blocks that compose their current site layout and we replicated it on top of tiles. Every row / block is a tile and the editor can sort the order of the blocks thanks to the custom UX. NOTE: to avoid unnecessary transactions to ZODB you need to save the layout when done.
  • 10. Custom editing UX With a “good amount” of Javascript we render the add and edit forms of the tiles and we render them on the fly without page reload. That allows editors to create landing pages in a couple of minutes without having
  • 11. Predefined styles All the tiles have a predefined layout but the editor can apply some predefined styles on each tile via checkboxes. We can configure those styles via plone registry.
  • 12. Incremental Deployment Go live with just a bunch of pages. 1) CSS is ok (pattern-matchable) ++theme++saucelabs ++resource++ 2) JS is ok (pattern-matchable) /portal_javascripts ++theme++saucelabs 3) Images are a bit more involved CompositePage - tile images live downstream of the tile
  • 14. Improvements (??) A lot… ● better UX ● allow to handle columns (not our use case though) ● manage predefined layouts