← Back to Awesome

Sections

Plone

GitHub repository ↗ synced 2026/8/9

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 organization on GitHub. 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.

Content and utilities for content

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

  • collective.consent - Ask users for consent to different topics, before they can continue.
  • collective.dexteritytextindexer - Dynamic SearchableText index for dexterity content types. For Plone 6 this was merged into Plone core.
  • collective.documentgenerator - Generate Documents (.odt, .pdf, .doc) from content based on appy framework (https://appyframe.work/) and OpenOffice/LibreOffice.
  • collective.documentviewer - Very nice document viewer that integrates DocumentCloud viewer and PDF processing into Plone.
  • collective.easyformplugin.createdx - Creates Plone content objects from EasyForm submissions.
  • collective.embeddedpage - A content type to embed remote HTML pages in Plone Classic and Volto.
  • collective.folderishtraverse - Traverse to first item in folder.
  • collective.folderishtypes - Provides the types "Folderish Event", "Folderish News Item" and "Folderish Document" as replacements for default types. Those types are able to hold any other content, like a Folder.
  • collective.geolocationbehavior - Geotagging for Plone content using LeafletJS.
  • collective.glossary - Content type to define a glossary and its terms.
  • collective.immediatecreate - Create content immediatly and skip the add form.
  • collective.lineage - Subsites: Turns subfolders of a Plone site to appear as autonomous Plone sites. There is also a whole ecosystem off addons specific to subsites.
  • collective.mailchimp - MailChimp newsletter integration for Plone.
  • collective.mirror - A content type that mirrors the content of any other container.
  • collective.mustread - Tracking user views on content that are marked as must-read.
  • collective.person - A content type to represent a person, with an optional behavior to connect it to a Plone user.
  • collective.pdfjs - Plone integration for Mozilla's JavaScript PDF reader.
  • collective.remoteproxy - Proxy for remote content. All remote URLs for which a local proxy was created are replaced in the resulting content.
  • collective.restrictportlets - Allows you to restrict the available portlets that non-Managers can add.
  • collective.workspace - Easily manage 'membership' in specific areas of a Plone Site. It allows to grant people access to areas of content using a membership group rather than local roles for each user, and to delegate control over that group to people who don't have access to the site-wide user/group control panel.
  • dexterity.membrane - Enables content to be used as users and groups in Plone sites.
  • plone.pdfexport - Generic PDF export functionality for Plone content.
  • Products.EasyNewsletter - Powerful newsletter/mailing product for Plone.
  • zopyx.ipsumplone - Creates demo content and demo images for Plone.
  • collective.folderorder - Allows alternative ordering on plone folders.

Editing

  • collective.a11ycheck - Reports accessibility issues to your site editors when a page is saved.
  • collective.collabora - Collabora Online integration for Plone to provide collaborative document editing.
  • collective.bbcodesnippets - Provides generic and extensible BBCode markup integration for Plone.
  • collective.richdescription - Formatable description field for Plone.

Searching and Categorizing

  • cioppino.twothumbs - Rate content using up- and down-thumbs.
  • collective.bookmarks - Bookmarks/ favorites/ wish-list for Plone.
  • collective.collectionfilter - Faceted navigation filter for collection or contentlisting tiles.
  • collective.elasticsearch - Use Elasticsearch as the search backend for Plone.
  • collective.elastic.plone - Elasticsearch Integration for Plone content.
  • collective.searchandreplace - Find and replace text in Plone content objects.
  • collective.solr - Solr search engine integration for Plone.
  • collective.taxonomy - Create, edit and use hierarchical taxonomies to categorize content.
  • eea.facetednavigation - Very powerful interface to improve search without programming skills. Configuration is done through-the-web and lets you gradually select and explore different facets (metadata/properties) of the content and narrow down you search quickly and dynamically.
  • Products.PloneKeywordManager - Change, merge and delete keywords/tags/subjects).
  • zopyx.typesense - Plone integration with the external Typesense search server (open-source). This is an alternative to collective.solr or Elasticsearch.

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.
  • collective.gridlisting - Adds a dexterity behavior and a browser template to manipulate folder and collection listings by adding Bootstrap 5 CSS classes and pat-masonry from patternslib.

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.

  • collective.easyformplugin.registration - Add a behavior to collective.easyform to manage registration forms for events.
  • collective.fullcalendar - Display events in a nice calendar UI using https://fullcalendar.io.
  • collective.venue - Venue type with geolocation support for use with events or any other location specific content.

Forms

Add-ons that allow generating and using forms.

  • collective.easyform - EasyForm provides a Plone form builder through-the-web using fields, widgets, actions and validators. Form input can be saved or emailed. A simple and user-friendly interface allows non-programmers to create custom forms.
  • collective.fieldedit - A flexible form to edit selected fields of a content type.
  • collective.honeypot - Honeypot protection for forms.
  • collective.z3cform.datagridfield - A field with a datagrid (table), where each row is a sub form.
  • collective.z3cform.norobots - A "human" captcha widget based on a list of questions/answers.
  • plone.formwidgets.hcaptcha - HCaptcha widget to protect Plone from bots, spam, and other forms of automated abuse.
  • yafowil.plone - Yafowil is a form library for Python. This is its Plone Integration package.

Multilingual

Add-ons to help manage multilingual sites.

  • collective.linguatags - Multilingual Tags for Plone.
  • plone.app.multilingualindexes - Indexes optimized to query multilingual content made with plone.app.multilingual.
  • cs.adminlanguage - Configure a language to be used when editing your Plone site, independent to the site language.
  • collective.multilingual - This add-on provides support for content in multiple languages (multilingual).

Media

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

  • collective.autoscaling - Automatic scaling of large images. Useful to reduce your database size when editors upload too large images.
  • collective.behavior.banner - A behavior to create banners and sliders from banners.
  • collective.behavior.relatedmedia - A behavior to create/upload/manage media relations (Image, File) for content types.
  • collective.lazysizes - Integration of lazysizes, a lightweight lazy loader, into Plone.
  • collective.wavesurfer - Implementation of https://wavesurfer-js.org audio player for Plone.
  • plone.app.imagecropping - Crops Images in Plone manually using cropper JS library.
  • plone.gallery - Photo gallery view for Plone.
  • redturtle.gallery - Adds a gallery view with a carousel made with slick.
  • wildcard.media - Provides audio and video content types and behaviors.
  • cs_flickrgallery - Flickr photo gallery support for Plone.

Security

  • collective.explicitacquisition - Disallow access to acquired content outside the current path.
  • collective.geotransform - Graceful E-mail Obfuscation for Plone.
  • collective.contactformprotection - Disables the default contact-info form or protect it with plone.formwidget.[h|re]captcha.
  • collective.lockdown - Protect Plone sites against site administrators from reconfiguring the site or making layout changes.

SEO

Add-ons for search engine optimization.

  • bda.plone.gtm - Google Tag Manager Integration.
  • collective.behavior.seo - Adds extra fields used for SEO optimisation.
  • collective.splitsitemap - Provides a cached split sitemap on big public sites.
  • kitconcept.seo - Adds extra fields used for SEO optimisation for sites using Volto.

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.
  • pas.plugins.eea - Provides user and group enumeration on top of pas.plugins.authomatic, with support for Microsoft Entra ID. Includes user and group synchronization.
  • 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.
  • pas.plugins.oidc - Login using OIDC providers.
  • wcs.samlauth - Login using SAML providers.

Shop

  • bda.plone.productshop - Flexible and modular e-commerce solution for Plone.

Export, Import and Migrations

  • collective.exportimport - Export and import content and a lot of other data from and to Plone. The main solution for all kinds of migrations based on plone.restapi.
  • collective.migrationhelpers - Helpers and examples to use during migrations.
  • collective.jsonify - Export Plone content to JSON.
  • collective.transmogrifier - A configurable pipeline, aimed at transforming content for import and export.

Themes

  • plonetheme.tokyo - A alternative theme for Plone using Bootstrap 5.
  • plonetheme.grueezibuesi - A kitten inspired theme for Plone 6.
  • collective.sidebar - A sidebar that consolidates toolbar and navigation.
  • collective.editablemenu - A customizable navigation menu for Plone.
  • collective.localstyles - Add local styles within any subsection of a Plone site by adding a css-file.

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.debugtools - Add remote debugging via debugpy for debugpy-compatible clients like VSCode or PyCharm.
  • collective.icecream - Debug and inspect Plone using the icecream package.
  • collective.patchwatcher - A companion for keeping track of patched or overridden files.
  • collective.pdbpp - Allows you to use the pdbpp package.
  • 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.ftw.upgrade - Simplifies writing and running upgrade steps for Plone add-ons and projects.
  • 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 stored in a file.
  • plone-registryfromenviron - Override plone.registry settings from 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.
  • Cloudbrine - A set of add-ons that replace the ZODB and the catalog with PostgreSQL and stores objects as queryable JSONB and can delegate image scaling to Thumbor.

Finding more add-ons

Finding the right add-on for your needs can sometimes be challenging.
Here are a few tips to help you:

  • Start by making a list of the features you require.
  • Check this list first to see if any existing add-ons meet your needs.
  • Search for Plone add-ons on PyPi.
  • Browse the Collective organization on GitHub.
  • Browse the Plone organization on GitHub.
  • Or simply 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: 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

  • plone.org - Official website for developers and community.
  • community.plone.org - Official community forum, the best place to get help.
  • Discord chat - Discord is the best way to chat with members of the Plone community.
  • Plone support - Where to find help.
  • docs.plone.org - Official documentation for developers/integrators.
  • Plone 6 Documentation - Official documentation for the upcoming Plone 6 (work on progress).
  • training.plone.org - Training classes for developers/integrators/users/designers.
  • plone.api - Documentation for plone.api.