Skip to content

Latest commit

 

History

History
279 lines (195 loc) · 21.6 KB

README.md

File metadata and controls

279 lines (195 loc) · 21.6 KB

Awesome Plone Awesome

A community-curated list of awesome Plone add-ons.

Plone is a open source CMS written in Python with a focus on functionality, customizability and security out of the box.

There are over 3000 add-ons for Plone on pypi and over 1500 repositories in the collective. If you want to know if there is already a add-on for Plone that fits your needs, searching for it on GitHub or pypi can be hard. It's hard to understand which one could be a good solution or not.

This list is intended to fill that gap, and create a shared knowledge about common products and techniques.

For a filterable list of addons aggreating all Plone related packages from PyPi see https://pag.derico.tech.

This list only covers add-ons that work with the latest major versions of Plone (currently 5.2 and 6) and only those that support Python 3.

Plone 6 comes with a new default frontend called Volto, which is written in React and uses plone.restapi to communicate with Plone. Volto is very extendable in itself. Checkout the awesome-volto list for add-ons to Volto.

Contents


Content and utilities for content

Add-ons that provide content-types or additional functionality for content

Searching and Categorizing

Layout

Products and resources that help developers and users to create and manage site layouts.

  • plone.app.mosaic - Powerful and extendable editor that allows users to compose the content of a page with different tiles.
  • collective.cover - Cover allows the creation of elaborate covers built around a drag-and-drop interface. Uses the same blocks/tiles ecosystem as plone.app.mosaic but a different approach to editing.
  • collective.contentsections - Offers a block approach for Plone 6 Classic based entirely on Dexterity content types.

Tiles

Add-ons that extend the layout editor plone.app.mosaic.

  • plone.app.standardtiles - A set of standard tiles used by Mosaic, but can be used from any other tile manager.
  • collective.tiles.carousel - A slider tile for plone.app.mosaic based on the carousel component of Bootstrap 5.
  • collective.tiles.advancedstatic - A tile that shows html text (similar to the static text portlet), with some additional configuration like the possibility to add custom css classes.
  • collective.tiles.collection - A tile that shows a set of collection results with possibility to choose (and develop) custom layouts.

Events

Add-ons that handle events and calendars.

Forms

Add-ons that allow generating and using forms.

Multilingual

Add-ons to help manage multilingual sites.

Media

Add-ons that handle image, video and audio content.

Security

SEO

Add-ons for search engine optimization.

Authentication

A list of authentication plugins, to integrate Plone with external user , Importsources and Migrations.import

  • pas.plugins.ldap - Provides users and groups from a LDAP directory.
  • pas.plugins.authomatic - Authomatic OAuth1/OAuth2/OpenID Login Integration with Plone.
  • iw.rejectanonymous - Reject unconditionnally anonymous users from a Plone site, without any change in your security policy matrix or workflows. The basic use case is an extranet, where all visitors must be authenticated.
  • pas.plugins.headers - Reads request headers and uses them for authentication. Think SAML headers that are set by a front web server like Apache or nginx.
  • dm.zope.saml2 - Supports SAML2 based Single Sign-On.
  • collective.impersonate - Allow administrators to impersonate another user. Useful for verifying workflow/permission set up on real content.
  • collective.pwexpiry - Provideds methods for stronger user passwords in Plone and password attack protection.

Shop

Export, Import and Migrations

Themes

Develop

Add-ons that help developing Plone

  • Products.PDBDebugMode - Post-mortem debugging: open a pdb session whenever an exception occurs so you you can find out what is going wrong. Plus: By adding /pdb to a url you end up you in a pdb session on the current context. A killer tool for developers.
  • plone.app.debugtoolbar - A toolbar that shows a wealth of debug information about a running Plone site and the content you are inspecting. Also includes a interactive python-shell, a TALES-expression evaluator and and code-reload.
  • plone.reload - Code and configuration reload without server restarts.
  • Products.PrintingMailHost - Log mail messages instead of sending mail.
  • experimental.gracefulblobmissing - Gracefully handle missing binary files in Plone.
  • collective.patchwatcher - A great companion for keeping track of patched or overridden files.
  • collective.relationhelpers - Helpers to manage, create, export and rebuild relations in Plone 5.x. For Plone 6 this was merged into Plone core.

Sysadmin

Add-ons that help admins deploying and maintaining Plone

  • collective.catalogcleanup - Removes data from the catalog that no longer belong to an actual object.
  • collective.fingerpointing - Keeps track of different events and write them down to an audit log.
  • collective.ifttt - Enables any Plone site to play in the IFTTT ecosystem. For example when a news item is published, then tweet about it or post it on Facebook.
  • collective.purgebyid - Use tag-based cache invalidation in Plone (e.g. with Varnish's xkey module).
  • collective.recipe.backup - Powerful and flexible backup/restore solution for Plone.
  • collective.regenv - Override registry settings using environment variables.
  • collective.revisionmanager - Manage Products.CMFEditions histories that can bloat your database.
  • collective.sentry - Sentry integration to aggregate errors and help finding their causes.
  • dm.historical - Access any historical state of your database. Can be useful to find out what happened to objects in the past and to restore accidentally deleted or modified objects.
  • haufe.requestmonitoring - Detailed request logging functionality on top of the publication events. Useful to find out what takes longer than it should.

Finding more add-ons

It can be hard to find the right add-on for your requirements. Here are some tips:

Once you have a shortlist, test these add-ons. Here are the main issues you need to test before you install an add-on on a production site:

  • Test all required features. Read but do not trust the documentation
  • Check if the add-on runs on your required version
  • Check if it is maintained
  • Does it have i18n-support, i.e. is the user-interface translated to your language?
  • Does it uninstall cleanly?
  • Check for unwanted dependencies

Once you found an add-on you like, you can ask the community if you made a good choice or if you missed something:

If you can't find something that fits your requirements 100% you can:

  • Adapt your requirements to what is available.
  • Invest the time & money to customize an existing add-ons to better fit your needs.
  • Create a new add-on that does exactly what you need.

Official resources

Because Plone also has a lot of good official info resources

Contributing

Contributions are welcome! Read the contribution guidelines.