Slide 1

Slide 1 text

Érico Andrei | https://ericof.com | @[email protected] | @ericof | Unlocking the Power of plone.distribution A Hands-On Guide (Not really)

Slide 2

Slide 2 text

Érico Andrei | https://ericof.com | @[email protected] | @ericof | Your own Plone CMS Or how integrators use 20 years of collective work as the secret weapon to control a market / segment / vertical / geographical area

Slide 3

Slide 3 text

Welcome to 2014

Slide 4

Slide 4 text

The Case for Plone Distributions Érico Andrei https://maurits.vanrees.org/weblog/archive/2014/10/plone-distributions

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Portal Modelo / Portal Padrão Thousands of Plone(?) sites Patching the s*t out of Plone, since 200x

Slide 7

Slide 7 text

Welcome to 2023

Slide 8

Slide 8 text

Major open source CMS support this case • Drupal distributions • Joomla Templates • TYPO3 Distributions Not invented here

Slide 9

Slide 9 text

Easy, but not that easy > 20 years of smart people creating their own solutions • The logic to create a new Plone site is distributed • Browser view on Products.CMFPlone • Content in plone.volto, plone.app.contenttypes (Good luck updating that) • Translations in plone.app.locales • No clear contract • New site from Python Code? • No RESTAPI service

Slide 10

Slide 10 text

Many examples in our family The old case of “replicating the site we developed for…” • SENAITE • Quaive • Portal Modelo • Portal Padrão • Portal Brasil • Vindula • Volto • Castle CMS • io-Comune • PretaGov: UK GDS • PretaGov: Digital.NSW • IA Solutions (IMIO) • Classic UI

Slide 11

Slide 11 text

Reality Check? Maybe we are not really selling Plone CMS

Slide 12

Slide 12 text

define: "Plone Distribution” Making sure we are on the same page • “A contract to create a new instance of a PloneSite” • Conventions about how create initial content • Provides a Python API and a RESTAPI • Use Cases: • Starting point for a new CMS project (website, intranet, headless backend…) • Automate creation of a new “instance" of an opinionated Plone “packaging" • Basis for a SaaS o ff ering of a “Plone-Powered” backend

Slide 13

Slide 13 text

plone.distribution

Slide 14

Slide 14 text

Making Plone Integrator-Friendly Or, at least, a fi rst step in the right direction • Distributions should be fi rst-class citizens in the Plone World • Converting plone.volto and plone.app.contenttypes “initial content” • Cleaning up existing codebase — “There should be only one way” • Plone 6.0.x: Add-on • Plone 6.1: Core package • Documentation should help integrators bring ideas to life

Slide 15

Slide 15 text

Someone, ~2007 "Plone is a CMS, not a web-framework!” https://jazkarta.com/news/when-not-to-use-plone-and-why-you-might-consider-django-or-pyramid

Slide 16

Slide 16 text

Érico Andrei, ~2023 "Plone is a platform, not a CMS”

Slide 17

Slide 17 text

Marketing Plone, a sane approach Focus on market and segment, not on the common denominator • Plone Marketing is vector addition • Many directions • Agreement on the common denominator • Plone Marketing initiatives should target integrators • Each distribution will “talk" to their own target audience • Distributions should collaborate when possible • But client is king

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

Examples

Slide 20

Slide 20 text

POC of a new distribution • "See how easy it is to create a ‘restricted access site with Plone’" • Beethoven Sprint • New Content Types: None • Example Content: Few collective.ploneintranet

Slide 21

Slide 21 text

Base for public websites in Brazil • Target: > 1500 websites currently running Portal Modelo and Portal Padrão • Kick-o ff during Cerrado Sprint • New Content Types: Few • Example Content: Lots • Blocker: Theming with DSGov (Brazilian Government Design System) portalbrasil.(edu|leg|gov|jus)

Slide 22

Slide 22 text

Demo for Volto Light Theme • "We need a showcase for Volto Light Theme” • New Content Types: None • Example Content: Many • Allow developers to showcase new blocks by updating the content, exporting it and committing. kitconcept.voltolighttheme https://github.com/kitconcept/kitconcept.voltolighttheme/

Slide 23

Slide 23 text

Personal Site / Blog • From idea to site: 6 hours • Scratching my own itch: ericof.com • Additional Target: Maurits • Features: • "About me” area • Blog • SEO-Friendly • Social Networking To-be-named

Slide 24

Slide 24 text

How to

Slide 25

Slide 25 text

pipx cookiecutter gh:collective/cookiecutter-plone-distribution

Slide 26

Slide 26 text

Environment Variables All you need to know • ALLOWED_DISTRIBUTIONS • Limit which distributions will be listed during site creation • DEVELOP_DISTRIBUTIONS • Limit which distributions you could export content to

Slide 27

Slide 27 text

FAQ

Slide 28

Slide 28 text

Things that should be added to the docs But no one did that (yet) • A distribution is not a “policy package” • You do not need to have a GenericSetup pro fi le. • You can have complex forms for site creation • JSONSchema de fi nition • Best example is collective.plone.intranet • Entry points allow you complete control of site creation • pre_handler, handler, post_handler

Slide 29

Slide 29 text

Next Steps & Challenges

Slide 30

Slide 30 text

Content & Translations How to create a front-page in 45 languages?

Slide 31

Slide 31 text

Types or not to Types Should we add features in a Distribution package?

Slide 32

Slide 32 text

Improve content export/import It works, but I have questions

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

“I have a dream” Érico Andrei, 2023

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

Summary

Slide 37

Slide 37 text

/ericof @ericof @[email protected] @ericof.com