Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Unlocking the Power of plone.distribution: A Hands-On Guide

Unlocking the Power of plone.distribution: A Hands-On Guide

Unveil the magic of launching a feature-rich, visually stunning website with unparalleled ease—welcome to the world of Plone distributions. This isn't just Plone; it's Plone supercharged with all the essential elements tailored for your unique project. From captivating themes and robust modules to pre-configured settings and sample content, a Plone distribution serves as your comprehensive toolkit for a rapid and flawless website deployment. In this talk, we'll guide you through the nuts and bolts of initiating a new Plone distribution.
You'll learn how to seamlessly integrate dependencies, populate your site with example content, and ensure its robustness through effective testing.

Érico Andrei

October 05, 2023
Tweet

More Decks by Érico Andrei

Other Decks in Technology

Transcript

  1. Érico Andrei | https://ericof.com | @[email protected] | @ericof | Unlocking

    the Power of plone.distribution A Hands-On Guide (Not really)
  2. É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
  3. Major open source CMS support this case • Drupal distributions

    • Joomla Templates • TYPO3 Distributions Not invented here
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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)
  11. 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/
  12. 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
  13. 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
  14. FAQ

  15. 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