Django Third-party App Ecosystem
Have you ever spent hours building a feature, only to later discover a well-maintained package that does exactly what you need?
Third-party applications are the unsung heroes of the Django ecosystem. Core Django covers a wide range of common application needs, the batteries in “batteries included”, but it cannot be everything to everyone.
If you are very plugged into the Django community you know this, where to find them, and likely have opinions on which apps are best for a given scenario.
But HOW plugged in are you?
We’re failing both new and experienced users. Newer users don’t necessarily know where or how to find good third-party apps. Experienced users aren’t immune. A couple of Steering Council members remarked that they often learn about a useful new app only by chance in a random conversation at a DjangoCon!
Indulge me for a moment with a couple of tangents…
Tangent #1 - DSF Example
It’s common at DjangoCon for someone from the DSF to talk about sponsorship and how to become a member. During this they ask the audience to raise a hand if they know about the Foundation. Typically over half of the room is not aware of the DSF, yet use Django enough to attend a conference dedicated to it!
I believe the same effect is at play with knowing about the wider Django ecosystem.
Tangent #2 - Personal Example
I remember when I was new to the Python ecosystem I felt I was always the last person to learn about a useful standard library module or pip package. I felt the same when I started using Javascript and again with Rust.
Learning a new programming language isn’t the easiest thing, but learning deeply about the wider ecosystem around that language is often the more time consuming part!
The Problem
If all you have is a hammer, everything looks like a nail
Most developers are focused, rightfully so, on solving their day-to-day work problems. They have Python, the standard library, and Django with its batteries.
So they use them.
It’s not always obvious when a problem warrants research time.
The solution is to invest a bit of time, on a regular basis, to look around in your ecosystem (as this is true for any programming language).
The long term benefits include:
- remembering there exists an app for that, often saving you a tremendous amount of time re-solving a solved problem
- watching a particular app evolve over time, its adoption by the community, and its release cadence
- learning how one third-party app approached a problem can teach you effective patterns to use elsewhere
A small step in the right direction
In an effort to fix this, one of the main goals of the current Django Steering Council is to dramatically elevate the profile of third-party apps starting with the new Ecosystem Page.
This includes links to:
- Specific, commonly used apps
- Podcasts, Newsletters, and Social Media links
- Groups like DjangoGirls, Django Commons, and Jazzband
- Useful websites like Awesome Django and Django Packages
This is the first step we’re taking to raise the profile of these useful resources. We could never list everything but here are some packages and resources that the Steering Council all agree are solid and well supported.
We also hope by doing this it will reduce some pressure for features to exist in core Django. It’s very often preferable for an app to stay OUTSIDE of Django than to be brought into it. Another of our aims is to make it easier to create, use, and experiment with new ideas. Keeping Django nimble into the future.
The Steering Council plans to review and re-evaluating the specific items on this new Ecosystem page once a year to help ensure it is kept up to date and includes the current best packages and resources.
Conclusion - Call to Action
There are three main takeaways here:
- Check out the new Django Ecosystem Page
- Subscribe to a newsletter and/or podcast to help dribble in new useful info to you periodically
- Block out some time weekly, monthly, or quarterly to spend a couple of hours wandering around the ecosystem without a specific agenda
These small actions, over time, will do far more for your career than you might expect. It may not be possible to become the smartest person on your team, but it is possible to become the most knowledgeable one.
Do you have a fun story about being the last one to know about an app, library or tool? Ping me on social media I’d love to swap some stories around this subject!
Frank Wiles
Founder of REVSYS, Django Steering Council, PSF Fellow, and former President of the Django Software Foundation .
Expert in building, scaling and maintaining complex web applications. Want to reach out? Contact me here or use the social links below.