This article is about Wagtail packages and how you can find them.
What is a package?
A package is an installable piece of software that adds functionality to Python.
Most packages are created because the functionality is needed in a project. The author might open-source the package so that others can benefit. But sharing and contributing to free software isn't philanthropy. Packages that are used by others receive feedback and contributions. Open-source is a recipe for healthy and successful software.
Django and Wagtail are packages. Django is developed at the Lawrence Journal-World newspaper for their newspaper websites. Wagtail is a content management system (CMS) on top of Django and developed for the Royal College of Art in London. The Royal College needed an easy to use CMS with complete freedom when it comes to the frontend.
This article is about packages designed to add functionality to Wagtail.
Wagtail add-ons, Wagtail plugins, or Wagtail packages?
What is in a name? The concept of add-ons, plugins, or packages is used in all kinds of software. To me, these terms are interchangeable. In Python, it is called a package or third-party package. Indicating it is not created by you (first), Python (second) but created by someone else (third).
Packages are uploaded to the Python Package Index (PyPi) and installable via Package Installer for Python (pip). For example
pip install wagtail, will download the Wagtail package from PyPi and install it to your Python.
Python, Django or Wagtail Packages?
Wagtail stands on the shoulders of giants. Python and Django are a solid basis:
- Python has "batteries included". It comes with a rich and versatile standard library. Python also has 260,000+ third-party packages.
- Django adds web framework functionality to Python. There are 10,000+ third-party packages designed to extend Django.
- Wagtail adds content management system functionality to Django. There are 250+ third-party packages that extend Wagtail.
You don't always need a Wagtail package. Functionality might be provided via Python, Python package, Django, or a Django package.
Some examples: - Requests is a Python package to handle requests and responses. Useful to connect your Wagtail site to any backend system. - Django comes with django.contrib.auth it provides authentication logic like login and logout views. - Django Rest Framework is a Django package to create an API.
All these packages are not Wagtail packages. They are not visible in the Wagtail admin interface. However, they can be used in your Wagtail project.
Awesome lists are lists of awesome things curated by the community.
There is no rating system. A package is listed or not.
Python Package Index
PyPi does not have a rating system and does not measure popularity. However, PyPi does measure download count and teams up with Google BigQuery to track that data. Unfortunately, download count isn't visible on PyPi.
PyPi contains all serious Python packages. But also less serious packages with doubtful quality. PyPi is the right place if you know what you look for. Browsing for inspiration is hard.
Djangopackages.org allows anyone to add a package.
Packages are grouped per topic on comparison grids. A grid displays various features: usage, last edit, contributors, etc. Custom comparison lines can be added.
The Wagtail core team decided to embrace djangopackages.org as the Wagtail package directory. We will promote it in support channels and documentation.
Some advantages: - Djangopackages.org is maintained and hosted. - Content is crowd-sourced. - Pure Django packages are listed too. - Djangopackages.org has an API. We can create a dedicated landing page and pull in the content.
I added all packages that I know of to Djangopackages.org. I also categorised those packages and created the grids. See Wagtail grids below.
Now you know what Wagtail packages are and where to find them. Wagtail is built on top of Django and Python. Use those powers!
If you find or created a nice Wagtail package, please add it to Djangopackages.org ;)
The new Wagtail grids on Djangopackages.org are:
- Wagtail a-b-testing
- Wagtail accessibility
- Wagtail api
- Wagtail authentication
- Wagtail blog
- Wagtail calendar
- Wagtail captcha
- Wagtail chooser
- Wagtail comments
- Wagtail conditional-content
- Wagtail content-type
- Wagtail distro
- Wagtail documentation
- Wagtail e-commerce
- Wagtail error
- Wagtail feed
- Wagtail forms
- Wagtail forum
- Wagtail frontend
- Wagtail hosting-and-deployment
- Wagtail import-export
- Wagtail in-the-wild
- Wagtail internationalization-localization-translation
- Wagtail links
- Wagtail newsletter
- Wagtail media
- Wagtail menu
- Wagtail metadata
- Wagtail multi-site
- Wagtail notification
- Wagtail pagination
- Wagtail preview
- Wagtail rich-text
- Wagtail search
- Wagtail seo-marketing
- Wagtail settings
- Wagtail streamfield
- Wagtail template
- Wagtail testing
- Wagtail tooling
- Wagtail utility
- Wagtail widget
- Wagtail workflow
- Wagtail icon
- Wagtail analytics
- Wagtail security
- Wagtail migration
- Wagtail embed