docs/packages/index.md
(packages_guide)=
Wagtail benefits from a rich ecosystem of packages. Many Python and Django packages work with Wagtail out of the box, and there is a growing collection of Wagtail-specific packages for extending the CMS.
The official Wagtail third-party packages directory lists packages organized by category. Forms, migrations, media, integrations, SEO, and more. Awesome Wagtail offers a curated list of packages, articles, and resources.
Many general-purpose Django or Python packages also work directly, or can be integrated directly inside the CMS. Check out the Django Packages directory, or search directly on the Python Package Index (PyPI). You can use the classifier Framework :: Wagtail to find packages that explicitly target Wagtail compatibility.
See How to pick a good Wagtail package for more guidance on how to find and select packages.
We recommend the cookiecutter-wagtail-package template to scaffold a new package with a suitable structure, quality assurance tooling, and other important aspects of package authoring. We also provide guidelines for maintainers, to complement the official Python Packaging User Guide.
To tag your package as compatible with Wagtail, use our official classifier: Framework :: Wagtail. You can also add version-specific classifiers for all major versions, for example: Framework :: Wagtail :: 6.
We recommend these guidelines for all packages in our ecosystem. They are particularly important for packages that are part of the first-party Wagtail packages and the Wagtail Nest organization for community-maintained packages.
To meet those guidelines, start your package with our official template: cookiecutter-wagtail-package.
wagtail- or django- prefix for ease of identification.LICENSE file and with publication metadata. We recommend the 3-Clause BSD License.This is crucial to the success of your package.
CONTRIBUTING.md guide for contributors.Use the pyproject.toml format and standardized fields for as many aspects of the package as possible.
We recommend broad support targets matching those of Wagtail.
requires-python to declare the lowest version of Python supported by the package, and dependencies for the minimum-supported versions of Django and Wagtail.CHANGELOG.md following the Keep a Changelog format.va.b.c git tag and repository releases.stable/a.b.x branch when working on patch releases to previous versions.