Awesome Plone 

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.
Add-ons that allow generating and using forms.
Multilingual
Add-ons to help manage multilingual sites.
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:
- Make a list of required features.
- Look in this list first.
- Search pypi: https://pypi.org/search/?c=Framework+%3A%3A+Plone
- Search the collective organization on github:
https://github.com/collective
- Search the plone organization on github:
https://github.com/plone
- Google for your requirements
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:
- Message Board: https://community.plone.org
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.