{"id":445,"url":"https://github.com/collective/awesome-plone","last_synced_at":"2025-08-13T19:33:32.543Z","repository":{"id":30070703,"uuid":"123825556","full_name":"collective/awesome-plone","owner":"collective","description":"Add-ons and resources for the CMS Plone","archived":false,"fork":false,"pushed_at":"2024-04-29T18:10:58.000Z","size":133,"stargazers_count":47,"open_issues_count":0,"forks_count":10,"subscribers_count":21,"default_branch":"main","last_synced_at":"2024-05-22T13:17:47.855Z","etag":null,"topics":["awesome","awesome-list","cms","plone","python","zope"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/collective.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-04T20:22:49.000Z","updated_at":"2024-05-02T16:10:26.000Z","dependencies_parsed_at":"2024-01-12T17:35:25.115Z","dependency_job_id":"db808453-8b64-4c1f-a1d8-0c1bc1a82050","html_url":"https://github.com/collective/awesome-plone","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/collective%2Fawesome-plone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/collective%2Fawesome-plone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/collective%2Fawesome-plone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/collective%2Fawesome-plone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/collective","download_url":"https://codeload.github.com/collective/awesome-plone/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229780026,"owners_count":18122914,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["awesome","awesome-list","cms","plone","python","zope"],"created_at":"2024-01-05T20:12:55.105Z","updated_at":"2025-08-13T19:33:32.520Z","avatar_url":"https://github.com/collective.png","language":null,"funding_links":[],"categories":["Content Management Systems","Uncategorized","Programming Language Lists","[CMS](https://es.wikipedia.org/wiki/Sistema_de_gestión_de_contenidos) basados en Python","Others","Themed Directories"],"sub_categories":["Uncategorized","Python Lists","Frameworks para desarrollo de CMS","Updated this week"],"readme":"# Awesome Plone [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)\n\n\u003c!--lint ignore double-link--\u003e\n[\u003cimg align=\"right\" src=\"logo.png\" height=\"64\"\u003e](https://plone.org)\n\n\u003e A community-curated list of _awesome_ Plone add-ons.\n\n\u003c!--lint ignore double-link--\u003e\n[Plone](https://plone.org) is a open source CMS written in Python with a focus on functionality, customizability and security out of the box.\n\nThere are over [3000 add-ons for Plone on pypi](https://pypi.org/search/?q=\u0026o=\u0026c=Framework+%3A%3A+Plone) and over 1500 repositories in the [collective](https://github.com/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.\n\nThis list is intended to fill that gap, and create a shared knowledge about common products and techniques.\n\nFor a filterable list of addons aggreating all Plone related packages from PyPi see https://pag.derico.tech.\n\nThis 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.\n\nPlone 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](https://github.com/collective/awesome-volto) for add-ons to Volto.\n\n\n## Contents\n\n* [Content and utilities for content](#content-and-utilities-for-content)\n* [Searching and Categorizing](#searching-and-categorizing)\n* [Layout](#layout)\n* [Tiles](#tiles)\n* [Events](#events)\n* [Forms](#forms)\n* [Multilingual](#multilingual)\n* [Media](#media)\n* [Security](#security)\n* [SEO](#seo)\n* [Authentication](#authentication)\n* [Shop](#shop)\n* [Export, Import and Migrations](#export-import-and-migrations)\n* [Themes](#themes)\n* [Develop](#develop)\n* [Sysadmin](#sysadmin)\n* [Finding more add-ons](#finding-more-add-ons)\n* [Official resources](#official-resources)\n\n---\n\n## Content and utilities for content\n\n_Add-ons that provide content-types or additional functionality for content_\n\n* [collective.a11ycheck](https://github.com/collective/collective.a11ycheck) - Reports accessibility issues to your site editors when a page is saved.\n* [collective.bbcodesnippets](https://github.com/collective/collective.bbcodesnippets) - Provides generic and extensible BBCode markup integration for Plone.\n* [collective.consent](https://github.com/collective/collective.consent) - Ask users for consent to different topics, before they can continue.\n* [collective.dexteritytextindexer](https://github.com/collective/collective.dexteritytextindexer) - Dynamic SearchableText index for dexterity content types. For Plone 6 this was merged into Plone core.\n* [collective.documentgenerator](https://github.com/collective/collective.documentgenerator) - Generate Documents (.odt, .pdf, .doc) from content based on appy framework (https://appyframe.work/) and OpenOffice/LibreOffice.\n* [collective.documentviewer](https://github.com/collective/collective.documentviewer) - Very nice document viewer that integrates DocumentCloud viewer and PDF processing into Plone.\n* [collective.easyformplugin.createdx](https://github.com/collective/collective.easyformplugin.createdx) - Creates Plone content objects from EasyForm submissions.\n* [collective.embeddedpage](https://github.com/collective/collective.embeddedpage) - A content type to embed remote HTML pages in Plone Classic and Volto.\n* [collective.folderishtraverse](https://github.com/collective/collective.folderishtraverse) - Traverse to first item in folder.\n* [collective.folderishtypes](https://github.com/collective/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.\n* [collective.geolocationbehavior](https://github.com/collective/collective.geolocationbehavior) - Geotagging for Plone content using LeafletJS.\n* [collective.glossary](https://github.com/collective/collective.glossary) - Content type to define a glossary and its terms.\n* [collective.immediatecreate](https://github.com/collective/collective.immediatecreate) - Create content immediatly and skip the add form.\n* [collective.lineage](https://github.com/collective/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.\n* [collective.mailchimp](https://github.com/collective/collective.mailchimp) - MailChimp newsletter integration for Plone.\n* [collective.mirror](https://github.com/collective/collective.mirror) - A content type that mirrors the content of any other container.\n* [collective.mustread](https://github.com/collective/collective.mustread) - Tracking user views on content that are marked as must-read.\n* [collective.remoteproxy](https://github.com/collective/collective.remoteproxy) - Proxy for remote content. All remote URLs for which a local proxy was created are replaced in the resulting content.\n* [collective.restrictportlets](https://github.com/collective/collective.restrictportlets) - Allows you to restrict the available portlets that non-Managers can add.\n* [collective.richdescription](https://github.com/collective/collective.richdescription) - Formatable description field for Plone.\n* [collective.workspace](https://github.com/collective/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.\n* [dexterity.membrane](https://github.com/collective/dexterity.membrane) - Enables content to be used as users and groups in Plone sites.\n* [plone.pdfexport](https://github.com/plone/plone.pdfexport) - Generic PDF export functionality for Plone content.\n* [Products.EasyNewsletter](https://github.com/collective/Products.EasyNewsletter) - Powerful newsletter/mailing product for Plone.\n* [zopyx.ipsumplone](https://github.com/zopyx/zopyx.ipsumplone) - Creates demo content and demo images for Plone.\n\n\n## Searching and Categorizing\n\n* [cioppino.twothumbs](https://github.com/collective/cioppino.twothumbs) - Rate content using up- and down-thumbs.\n* [collective.bookmarks](https://github.com/collective/collective.bookmarks) - Bookmarks/ favorites/ wish-list for Plone.\n* [collective.collectionfilter](https://github.com/collective/collective.collectionfilter) - Faceted navigation filter for collection or contentlisting tiles.\n* [collective.elasticsearch](https://github.com/collective/collective.elasticsearch) - Use ElasticSearch as the search backend for Plone.\n* [collective.elastic.plone](https://github.com/collective/collective.elastic.plone) - ElasticSearch Integration for Plone content.\n* [collective.searchandreplace](https://github.com/collective/collective.searchandreplace) - Find and replace text in Plone content objects.\n* [collective.solr](https://github.com/collective/collective.solr) - Solr search engine integration for Plone.\n* [collective.taxonomy](https://github.com/collective/collective.taxonomy) - Create, edit and use hierarchical taxonomies to categorize content.\n* [eea.facetednavigation](https://github.com/collective/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.\n* [Products.PloneKeywordManager](https://github.com/collective/Products.PloneKeywordManager) - Change, merge and delete keywords/tags/subjects).\n* [zopyx.typesense](https://github.com/zopyx/zopyx.typesense) - Plone integration with the external Typesense search server (open-source). This is an alternative to collective.solr or Elasticsearch.\n\n\n## Layout\n\n_Products and resources that help developers and users to create and manage site layouts._\n\n* [plone.app.mosaic](https://github.com/plone/plone.app.mosaic) - Powerful and extendable editor that allows users to compose the content of a page with different tiles.\n* [collective.cover](https://github.com/collective/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.\n* [collective.contentsections](https://github.com/collective/collective.contentsections) - Offers a block approach for Plone 6 Classic based entirely on Dexterity content types.\n\n\n## Tiles\n\n_Add-ons that extend the layout editor plone.app.mosaic._\n\n* [plone.app.standardtiles](https://github.com/plone/plone.app.standardtiles) - A set of standard tiles used by Mosaic, but can be used from any other tile manager.\n* [collective.tiles.carousel](https://github.com/collective/collective.tiles.carousel) - A slider tile for plone.app.mosaic based on the carousel component of Bootstrap 5.\n* [collective.tiles.advancedstatic](https://github.com/collective/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.\n* [collective.tiles.collection](https://github.com/collective/collective.tiles.collection) - A tile that shows a set of collection results with possibility to choose (and develop) custom layouts.\n\n\n## Events\n\n_Add-ons that handle events and calendars._\n\n* [collective.easyformplugin.registration](https://github.com/collective/collective.easyformplugin.registration) - Add a behavior to collective.easyform to manage registration forms for events.\n* [collective.fullcalendar](https://github.com/collective/collective.fullcalendar) - Display events in a nice calendar UI using https://fullcalendar.io.\n* [collective.venue](https://github.com/collective/collective.venue) - Venue type with geolocation support for use with events or any other location specific content.\n\n\n## Forms\n\n_Add-ons that allow generating and using forms._\n\n* [collective.easyform](https://github.com/collective/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.\n* [collective.fieldedit](https://github.com/collective/collective.fieldedit) - A flexible form to edit selected fields of a content type.\n* [collective.honeypot](https://github.com/collective/collective.honeypot) - Honeypot protection for forms.\n* [collective.z3cform.datagridfield](https://github.com/collective/collective.z3cform.datagridfield) - A field with a datagrid (table), where each row is a sub form.\n* [collective.z3cform.norobots](https://github.com/collective/collective.z3cform.norobots) - A \"human\" captcha widget based on a list of questions/answers.\n* [plone.formwidgets.hcaptcha](https://github.com/plone/plone.formwidget.hcaptcha) - HCaptcha widget to protect Plone from bots, spam, and other forms of automated abuse.\n* [yafowil.plone](https://github.com/bluedynamics/yafowil.plone) - Yafowil is a form library for Python. This is its Plone Integration package.\n\n\n## Multilingual\n\n_Add-ons to help manage multilingual sites._\n\n* [collective.linguatags](https://github.com/collective/collective.linguatags) - Multilingual Tags for Plone.\n* [plone.app.multilingualindexes](https://github.com/plone/plone.app.multilingualindexes) - Indexes optimized to query multilingual content made with plone.app.multilingual.\n\n\n## Media\n\n_Add-ons that handle image, video and audio content._\n\n* [collective.autoscaling](https://github.com/collective/collective.autoscaling) - Automatic scaling of large images. Useful to reduce your database size when editors upload too large images.\n* [collective.behavior.banner](https://github.com/collective/collective.behavior.banner) - A behavior to create banners and sliders from banners.\n* [collective.behavior.relatedmedia](https://github.com/collective/collective.behavior.relatedmedia) - A behavior to create/upload/manage media relations (Image, File) for content types.\n* [collective.lazysizes](https://github.com/collective/collective.lazysizes) - Integration of lazysizes, a lightweight lazy loader, into Plone.\n* [collective.wavesurfer](https://github.com/collective/collective.wavesurfer) - Implementation of https://wavesurfer-js.org audio player for Plone.\n* [plone.app.imagecropping](https://github.com/collective/plone.app.imagecropping) - Crops Images in Plone manually using cropper JS library.\n* [plone.gallery](https://github.com/plone/plone.gallery) - Photo gallery view for Plone.\n* [redturtle.gallery](https://github.com/RedTurtle/redturtle.gallery) - Adds a gallery view with a carousel made with slick.\n* [wildcard.media](https://github.com/collective/wildcard.media) - Provides audio and video content types and behaviors.\n\n\n## Security\n\n* [collective.explicitacquisition](https://github.com/collective/collective.explicitacquisition) - Disallow access to acquired content outside the current path.\n* [collective.geotransform](https://github.com/collective/collective.geotransform) - Graceful E-mail Obfuscation for Plone.\n* [collective.contactformprotection](https://github.com/collective/collective.contactformprotection) - Disables the default `contact-info` form or protect it with `plone.formwidget.[h|re]captcha`.\n\n## SEO\n\n_Add-ons for search engine optimization._\n\n* [bda.plone.gtm](https://github.com/bluedynamics/bda.plone.gtm) - Google Tag Manager Integration.\n* [collective.behavior.seo](https://github.com/collective/collective.behavior.seo) - Adds extra fields used for SEO optimisation.\n* [collective.splitsitemap](https://github.com/collective/collective.splitsitemap) - Provides a cached split sitemap on big public sites.\n\n## Authentication\n\n_A list of authentication plugins, to integrate Plone with external user , Importsources and Migrations.import_\n\n* [pas.plugins.ldap](https://github.com/collective/pas.plugins.ldap) - Provides users and groups from a LDAP directory.\n* [pas.plugins.authomatic](https://github.com/collective/pas.plugins.authomatic) - Authomatic OAuth1/OAuth2/OpenID Login Integration with Plone.\n* [iw.rejectanonymous](https://github.com/collective/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.\n* [pas.plugins.headers](https://github.com/collective/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.\n* [dm.zope.saml2](https://pypi.org/project/dm.zope.saml2/) - Supports SAML2 based Single Sign-On.\n* [collective.impersonate](https://github.com/collective/collective.impersonate) - Allow administrators to impersonate another user. Useful for verifying workflow/permission set up on real content.\n* [collective.pwexpiry](https://github.com/collective/collective.pwexpiry) - Provideds methods for stronger user passwords in Plone and password attack protection.\n\n\n## Shop\n\n* [bda.plone.productshop](https://github.com/bluedynamics/bda.plone.productshop) - Flexible and modular e-commerce solution for Plone.\n\n\n## Export, Import and Migrations\n\n* [collective.exportimport](https://github.com/collective/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.\n* [collective.migrationhelpers](https://github.com/collective/collective.migrationhelpers/) - Helpers and examples to use during migrations.\n* [collective.jsonify](https://github.com/collective/collective.jsonify) - Export Plone content to JSON.\n* [collective.transmogrifier](https://github.com/collective/collective.transmogrifier) - A configurable pipeline, aimed at transforming content for import and export.\n\n\n## Themes\n\n* [plonetheme.tokyo](https://github.com/collective/plonetheme.tokyo) - Tokyo Theme for Plone implements Bootstrap 4 into Plone, with an emphasis on keeping things as close to \"default\" as possible.\n* [plonetheme.grueezibuesi](https://github.com/collective/plonetheme.grueezibuesi) - A kitten inspired theme for Plone 6.\n* [collective.sidebar](https://github.com/collective/collective.sidebar) - A sidebar that consolidates toolbar and navigation.\n* [collective.editablemenu](https://github.com/RedTurtle/collective.editablemenu) - A customizable navigation menu for Plone.\n\n\n## Develop\n\n_Add-ons that help developing Plone_\n\n* [Products.PDBDebugMode](https://github.com/collective/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.\n* [plone.app.debugtoolbar](https://github.com/plone/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.\n* [plone.reload](https://github.com/plone/plone.reload) - Code and configuration reload without server restarts.\n* [Products.PrintingMailHost](https://github.com/collective/Products.PrintingMailHost) - Log mail messages instead of sending mail.\n* [experimental.gracefulblobmissing](https://github.com/collective/experimental.gracefulblobmissing/) - Gracefully handle missing binary files in Plone.\n* [collective.patchwatcher](https://github.com/collective/collective.patchwatcher) - A great companion for keeping track of patched or overridden files.\n* [collective.relationhelpers](https://github.com/collective/collective.relationhelpers) - Helpers to manage, create, export and rebuild relations in Plone 5.x. For Plone 6 this was merged into Plone core.\n\n\n## Sysadmin\n\n_Add-ons that help admins deploying and maintaining Plone_\n\n* [collective.catalogcleanup](https://github.com/collective/collective.catalogcleanup) - Removes data from the catalog that no longer belong to an actual object.\n* [collective.fingerpointing](https://github.com/collective/collective.fingerpointing) - Keeps track of different events and write them down to an audit log.\n* [collective.ifttt](https://github.com/collective/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.\n* [collective.purgebyid](https://github.com/collective/collective.purgebyid) - Use tag-based cache invalidation in Plone (e.g. with Varnish's xkey module).\n* [collective.recipe.backup](https://github.com/collective/collective.recipe.backup) - Powerful and flexible backup/restore solution for Plone.\n* [collective.regenv](https://github.com/collective/collective.regenv) - Override registry settings using environment variables.\n* [collective.revisionmanager](https://github.com/collective/collective.revisionmanager) - Manage Products.CMFEditions histories that can bloat your database.\n* [collective.sentry](https://github.com/collective/collective.sentry) - Sentry integration to aggregate errors and help finding their causes.\n* [dm.historical](https://pypi.org/project/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.\n* [haufe.requestmonitoring](https://github.com/collective/haufe.requestmonitoring) - Detailed request logging functionality on top of the publication events. Useful to find out what takes longer than it should.\n\n\n## Finding more add-ons\n\nIt can be hard to find the right add-on for your requirements.\nHere are some tips:\n\n* Make a list of required features.\n* Look in this list first.\n* Search pypi: https://pypi.org/search/?c=Framework+%3A%3A+Plone\n* Search the collective organization on github: https://github.com/collective\n* Search the plone organization on github: https://github.com/plone\n* Google for your requirements\n\nOnce 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:\n\n* Test all required features. Read but do not trust the documentation\n* Check if the add-on runs on your required version\n* Check if it is maintained\n* Does it have i18n-support, i.e. is the user-interface translated to your language?\n* Does it uninstall cleanly?\n* Check for unwanted dependencies\n\nOnce you found an add-on you like, you can ask the community if you made a good choice or if you missed something:\n\n* Message Board: https://community.plone.org\n\nIf you can't find something that fits your requirements 100% you can:\n\n* Adapt your requirements to what is available.\n* Invest the time \u0026 money to customize an existing add-ons to better fit your needs.\n* Create a new add-on that does exactly what you need.\n\n## Official resources\n\n_Because Plone also has a lot of good official info resources_\n\n\u003c!--lint ignore double-link--\u003e\n* [plone.org](https://plone.org/) - Official website for developers and community.\n* [community.plone.org](https://community.plone.org/) - Official community forum, the best place to get help.\n* [Discord chat](https://discord.gg/zFY3EBbjaj) - Discord is the best way to chat with members of the Plone community.\n* [Plone support](https://plone.org/support) - Where to find help.\n* [docs.plone.org](https://docs.plone.org/) - Official documentation for developers/integrators.\n* [Plone 6 Documentation](https://6.dev-docs.plone.org/) - Official documentation for the upcoming Plone 6 (work on progress).\n* [training.plone.org](https://training.plone.org/) - Training classes for developers/integrators/users/designers.\n* [plone.api](https://6.dev-docs.plone.org/plone.api/index.html) - Documentation for plone.api.\n\n\n## Contributing\n\nContributions are welcome! Read the [contribution guidelines](contributing.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcollective%2Fawesome-plone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcollective%2Fawesome-plone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcollective%2Fawesome-plone/lists"}