Skip to content

Sc ecosystem page #2060

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 24 commits into from
Jun 9, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
f2ff5e3
Bootstrap ecosystem page.
carltongibson Feb 21, 2025
28d8a5a
Block out page HTML.
carltongibson Mar 22, 2025
350f904
Added (plain-text) resource links/descriptions
carltongibson Mar 27, 2025
354b9d6
Style the links a little bit without getting too fancy
frankwiles Apr 14, 2025
285c412
Add community ecosystem page to index
frankwiles Apr 28, 2025
17336dc
Add packages the Steering Council package list
frankwiles Apr 28, 2025
8d4fd43
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Apr 28, 2025
18dc620
Update djangoproject/templates/aggregator/ecosystem.html
frankwiles May 26, 2025
e26ec68
Update djangoproject/templates/aggregator/ecosystem.html
frankwiles May 26, 2025
9faf630
Update djangoproject/templates/aggregator/ecosystem.html
frankwiles May 26, 2025
b90c58e
Update djangoproject/templates/aggregator/ecosystem.html
frankwiles May 26, 2025
62eeab8
Update djangoproject/templates/aggregator/ecosystem.html
frankwiles May 26, 2025
06243de
Update djangoproject/templates/aggregator/ecosystem.html
frankwiles May 26, 2025
3aa3af7
Update djangoproject/templates/aggregator/ecosystem.html
frankwiles May 26, 2025
cdc3d03
Update djangoproject/templates/aggregator/ecosystem.html
frankwiles May 26, 2025
2a91087
Include additional information section with first example
frankwiles May 26, 2025
0e52a72
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 26, 2025
939378b
Include Tim's suggestion to adjust the Package header
frankwiles May 26, 2025
0f8d0b7
Add more resources
frankwiles May 26, 2025
b5fe666
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 26, 2025
3c878b5
Finish Tim suggestions
frankwiles May 26, 2025
9b0db5b
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 26, 2025
4033679
Misc additions/changes to ecosystem page
frankwiles Jun 9, 2025
d056ddd
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions aggregator/urls.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
from django.urls import path
from django.views.generic.base import TemplateView

from . import views

urlpatterns = [
path("", views.index, name="community-index"),
path(
"ecosystem/",
TemplateView.as_view(template_name="aggregator/ecosystem.html"),
name="community-ecosystem",
),
path(
"local/",
views.LocalDjangoCommunitiesListView.as_view(),
Expand Down
203 changes: 203 additions & 0 deletions djangoproject/templates/aggregator/ecosystem.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
{% extends "base_community.html" %}
{% load i18n %}

{% block content %}


<h1>Django's Ecosystem</h1>

<p>Django's <em>Secret Sauce</em> is its ecosystem of third-party apps and add-ons.</p>
<p>No matter your need, there'll be a package you can use or take ideas from.</p>

<h2>Resources</h2>

<!-- Name, Short Description, Link — Roughly this order -->
<ul>
<li>
<a href="https://awesomedjango.org">Awesome Django</a>
&mdash; A curated list of awesome things related to Django.
</li>
<li>
<a href="https://djangopackages.org">Django Packages</a>
&mdash; A directory of reusable apps, sites, tools, and more for your Django projects.
</li>

<li>
<a href="https://jazzband.co/projects">Jazzband</a>
&mdash; A collaborative community to share the responsibility of maintaining Python-based (but mainly Django) projects.
</li>
<li>
<a href="https://github.com/django-commons">Django Commons</a>
&mdash; an organization dedicated to supporting the community's efforts to maintain packages.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
&mdash; an organization dedicated to supporting the community's efforts to maintain packages.
&mdash; An organization dedicated to supporting the community's efforts to maintain packages.

</li>
<li>
<a href="https://djangogirls.org/">DjangoGirls</a>
&mdash; Django Girls is a non-profit organization and a community that empowers and helps women to organize free, one-day programming workshops by providing tools, resources and support.
</li>
<li>
<a href="https://django-news.com">Django News</a>
&mdash; Weekly Django news, articles, projects, and more.
</li>
<li>
<a href="https://djangochat.com">DjangoChat Podcast</a>
&mdash; A podcast on the Django Web Framework.
</li>
<li>
<a href="https://djangobrew.com">DjangoBrew Podcast</a>
&mdash; A fun, caffeine-powered podcast about the Django web.
</li>
<li>
<a href="https://creators.spotify.com/pod/show/djangogirls">DjangoGirls Podcast</a>
&mdash; A podcast sharing the stories of attendees, coaches and organisers of DjangoGirls workshops around the world.
</li>
<li>
<a href="https://djangobook.com">DjangoBook.com</a>
&mdash; An aggregator for in-print books and courses on Django.
</li>
<li>
<a href="https://www.youtube.com/@DjangoConUS">DCUS YouTube</a>
&mdash; Django Conference US YouTube channel.
</li>
<li>
<a href="https://www.youtube.com/@DjangoConEurope">DCEU YouTube</a>
&mdash; Django Conference Europe YouTube channel.
</li>
<li>
<a href="https://djangotv.com">Django.tv</a>
&mdash; Django video content platform.
</li>
<li>
<a href="https://ccbv.co.uk">Classy Class-Based Views Documentation</a>
&mdash; Alternative docs with detailed descriptions, with full methods and attributes, for each of Django's class-based generic views.
</li>
<li>
<a href="https://www.cdrf.co">Classy Django REST Framework</a>
&mdash; Alternative docs with detailed descriptions, with full methods and attributes, for each of Django REST Framework's class-based views and serializers.
</li>
<li>
<a href="https://tutorial.djangogirls.org/">DjangoGirls Tutorial</a>
&mdash; A great tutorial you can do in addition to the <a href="/en/dev/intro/tutorial/01/">official tutorial</a>.
</li>

<li>Follow Django on Social Media &mdash; <a href="https://bsky.app/profile/djangoproject.com">Bluesky</a>, <a href="https://www.linkedin.com/company/django-software-foundation/">LinkedIn</a>, <a href="https://x.com/djangoproject">Twitter</a></li>
</ul>


<p>Explore! A whole world awaits you.</p>


<h2>Packages - use community solutions</h2>

<p>We could never list everything but here are some packages that the Steering Council all agree are
incredibly useful and well supported. We use many of these in all of our projects.</p>

<p>We will refresh this list at least yearly to keep up to date.</p>

<h3>Debugging & Development Tools</h3>
<ul>
<li><a href="https://github.com/jazzband/django-debug-toolbar">Django Debug Toolbar</a> &mdash; A configurable set of panels that display various debug information about the current request/response.</li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<li><a href="https://github.com/jazzband/django-debug-toolbar">Django Debug Toolbar</a> &mdash; A configurable set of panels that display various debug information about the current request/response.</li>
<li><a href="https://github.com/django-commons/django-debug-toolbar">Django Debug Toolbar</a> &mdash; A configurable set of panels that display various debug information about the current request/response.</li>

<li><a href="https://github.com/django-browser-reload/django-browser-reload">django-browser-reload</a> &mdash; Enables automatic browser reloading during development when code changes are detected.</li>
<li><a href="https://github.com/django-extensions/django-extensions">Django Extensions</a> &mdash; A collection of custom extensions for Django, including management commands, model field types, and more.</li>
</ul>

<h3>Storage & Static Files</h3>
<ul>
<li><a href="https://github.com/jschneier/django-storages">django-storages</a> &mdash; Provides a variety of storage backends for Django, including S3, Azure, and more. <a href="#django-storages">Learn More...</a></li>
<li><a href="https://github.com/evansd/whitenoise">Whitenoise</a> &mdash; Serves static files directly from Django without the need for a separate web server.</li>
</ul>

<h3>API Development</h3>
<ul>
<li><a href="https://github.com/encode/django-rest-framework">Django REST Framework (DRF)</a> &mdash; A powerful and flexible toolkit for building Web APIs in Django.</li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<li><a href="https://github.com/encode/django-rest-framework">Django REST Framework (DRF)</a> &mdash; A powerful and flexible toolkit for building Web APIs in Django.</li>
<li><a href="https://www.django-rest-framework.org">Django REST Framework (DRF)</a> &mdash; A powerful and flexible toolkit for building Web APIs in Django.</li>

<li><a href="https://github.com/vitalik/django-ninja">Django Ninja</a> &mdash; A fast, asynchronous-ready web framework for building APIs with Django and Python type hints.</li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<li><a href="https://github.com/vitalik/django-ninja">Django Ninja</a> &mdash; A fast, asynchronous-ready web framework for building APIs with Django and Python type hints.</li>
<li><a href="https://django-ninja.dev">Django Ninja</a> &mdash; A fast, asynchronous-ready web framework for building APIs with Django and Python type hints.</li>

</ul>

<h3>Content Management Systems (CMS)</h3>
<ul>
<li><a href="https://github.com/wagtail/wagtail">Wagtail</a> &mdash; An open-source Django CMS focused on flexibility and user experience.</li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<li><a href="https://github.com/wagtail/wagtail">Wagtail</a> &mdash; An open-source Django CMS focused on flexibility and user experience.</li>
<li><a href="https://wagtail.org">Wagtail</a> &mdash; An open-source Django CMS focused on flexibility and user experience.</li>

<li><a href="https://github.com/django-cms/django-cms">Django CMS</a> &mdash; A user-friendly and developer-friendly CMS for Django, offering multilingual support and a plugin architecture.</li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<li><a href="https://github.com/django-cms/django-cms">Django CMS</a> &mdash; A user-friendly and developer-friendly CMS for Django, offering multilingual support and a plugin architecture.</li>
<li><a href="https://www.django-cms.org">django CMS</a> &mdash; A user-friendly and developer-friendly CMS for Django, offering multilingual support and a plugin architecture.</li>

The official name is lowercase d.

<li><a href="https://github.com/feincms/feincms">FeinCMS</a> &mdash; A Django-based CMS with a focus on extensibility and minimalism.</li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure about including this one. In 2018, @matthiask created a post saying development was stopping on it. Though it appears to still have updates. But again, this github page has a warning to use https://github.com/feincms/feincms3 instead.

</ul>

<h3>Authentication & Authorization</h3>
<ul>
<li><a href="https://github.com/pennersr/django-allauth">Django Allauth</a> &mdash; Integrated set of Django applications addressing authentication, registration, account management, and third-party (social) account authentication.</li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<li><a href="https://github.com/pennersr/django-allauth">Django Allauth</a> &mdash; Integrated set of Django applications addressing authentication, registration, account management, and third-party (social) account authentication.</li>
<li><a href="https://allauth.org/">Django Allauth</a> &mdash; Integrated set of Django applications addressing authentication, registration, account management, and third-party (social) account authentication.</li>

We should consider using the custom domains when possible, especially on individual's repos in case they want to move off GitHub. Feel free to dismiss these comments.

<li><a href="https://github.com/python-social-auth/social-app-django">Python Social Auth - Django</a> &mdash; Easy-to-setup social authentication/registration mechanism with support for several frameworks and auth providers.</li>
<li><a href="https://github.com/django-guardian/django-guardian">Django Guardian</a> &mdash; Implementation of per-object permissions for Django, allowing fine-grained access control.</li>
<li><a href="https://github.com/BetterWorks/django-impersonate">django-impersonate</a> &mdash; Allows superusers to impersonate other users for debugging or support purposes.</li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll push back on this one. It hasn't been updated for Django 5.x yet and the readme doesn't instill a lot of confidence.

<li><a href="https://github.com/django-hijack/django-hijack">Django Hijack</a> &mdash; Enables admins to log in and work on behalf of other users without needing their credentials.</li>
<li><a href="https://github.com/skorokithakis/django-loginas">django-loginas</a> &mdash; Adds a "Log in as user" button in the Django admin interface for easy user impersonation.</li>
</ul>
Comment on lines +129 to +130
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As a heads up, this hasn't been updated for Django 5.x yet. I'm not sure about including it here.


<h3>Forms &amp; Views</h3>
<ul>
<li><a href="https://github.com/django-crispy-forms/django-crispy-forms">django-crispy-forms</a> &mdash; Helps to manage Django forms in a DRY way, allowing control over form rendering behavior.</li>
<li><a href="https://github.com/AndrewIngram/django-extra-views">django-extra-views</a> &mdash; Provides additional class-based views to complement Django's built-in generic views.</li>
</ul>

<h3>Templates</h3>
<ul>
<li><a href="https://github.com/carltongibson/django-template-partials">django-template-partials</a> &mdash; Reusable named inline partials for Django Templates.</li>
</ul>

<h3>Environment Configuration</h3>
<ul>
<li><a href="https://github.com/theskumar/python-dotenv">python-dotenv</a> &mdash; Reads key-value pairs from a .env file and can set them as environment variables, aiding in development and deployment.</li>
<li><a href="https://github.com/joke2k/django-environ">django-environ</a> &mdash; Allows you to utilize 12-factor methodology to configure your Django application with environment variables.</li>
</ul>

<h3>Security & Middleware</h3>
<ul>
<li><a href="https://github.com/adamchainz/django-cors-headers">Django CORS Headers</a> &mdash; Adds Cross-Origin Resource Sharing (CORS) headers to Django responses, allowing or blocking cross-origin requests.</li>
<li><a href="https://github.com/mozilla/django-csp">Django CSP</a> &mdash; Implements Content Security Policy for Django applications to prevent XSS and other code injection attacks.</li>
</ul>

<h3>Testing & Fixtures</h3>
<ul>
<li><a href="https://github.com/model-bakers/model_bakery">Model Bakery</a> &mdash; A tool for creating model instances for testing purposes, focusing on simplicity and speed.</li>
<li><a href="https://github.com/FactoryBoy/factory_boy">Factory Boy</a> &mdash; A test fixtures replacement that provides a powerful way to create test data.</li>
<li><a href="https://github.com/adamchainz/time-machine">time-machine</a> &mdash; A tool for mocking time in tests.</li>
</ul>

<h3>Admin Interface Enhancements</h3>
<ul>
<li><a href="https://github.com/jrief/django-admin-sortable2">django-admin-sortable2</a> &mdash; Adds drag-and-drop sorting functionality to the Django admin interface.</li>
<li><a href="https://github.com/django-import-export/django-import-export">Django Import Export</a> &mdash; Allows importing and exporting of data through the Django admin interface using various formats.</li>
</ul>

<h3>Internationalization & Localization</h3>
<ul>
<li><a href="https://github.com/deschler/django-modeltranslation">django-modeltranslation</a> &mdash; Translates dynamic content of existing models to different languages without having to change the original model structure.</li>
<li><a href="https://github.com/zostera/django-modeltrans/">django-modeltrans</a> &mdash; Provides a simple way to translate Django models using a JSONField.</li>
<li><a href="https://github.com/mbi/django-rosetta">django-rosetta</a> &mdash; Simplifies the translation process of Django projects by providing a web-based interface to edit .po files.</li>
</ul>

<h3>Email & Notifications</h3>
<ul>
<li><a href="https://anymail.dev">django-anymail</a> &mdash; Integrates various transactional email services (like Mailgun, SendGrid) with Django's email backend.</li>
<li><a href="https://github.com/ambient-innovation/django-pony-express/">Django Pony Express</a> &mdash; A simple email queuing and sending system for Django applications.</li>
</ul>

<h3>Utilities & Miscellaneous</h3>
<ul>
<li><a href="https://github.com/RealOrangeOne/django-tasks">Django Tasks</a> &mdash; A lightweight task queue for Django applications, suitable for simple background task processing.</li>
<li><a href="https://github.com/django-waffle/django-waffle">django-waffle</a> &mdash; Feature flipper for Django, allowing for easy rollout and testing of new features.</li>
<li><a href="https://github.com/carltongibson/django-filter">django-filter</a> &mdash; Provides a simple way to filter down querysets based on user selections.</li>
</ul>

<h2>More Information</h2>

<p>Some things require more information than others. To keep the above more scanable we will include any in-depth information here.</p>

<h3 id="django-storages">django-storages</h3>

<p>
This package is perfect when deploying Django in situations that do include a shared filesystem. For either uploaded files from
users and/or you static media if is often necessary to store files using "object storage" such as Amazon S3.
</p>

<p>
Keep in mind there are many S3 compatible object storage systems. Most cloud providers you may have an option and if not you can run your own MinIO instance.
Get more information which options are supported <a href="https://django-storages.readthedocs.io/en/latest/">in the django-storages docs</a>.
</p>
{% endblock %}
12 changes: 12 additions & 0 deletions djangoproject/templates/aggregator/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,18 @@ <h3>{% translate "Discord - Chat with us" %}</h3>
</a>
</div>

<h2 class="community-title">{% translate "Third Party Packages" %}</h2>
<div class="community-cta-wrapper">
<a href="{% url "community-ecosystem" %}" class="community-cta-a">
<div class="community-cta">
<div>
{% include "svg_logos/package.html" %}
</div>
<h3>{% translate "Package Ecosystem" %}</h3>
</div>
</a>
</div>

<h2 class="community-title">{% translate "Get Involved" %}</h2>
<div class="community-cta-wrapper">
<a href="https://docs.djangoproject.com/en/dev/internals/contributing/bugs-and-features/#reporting-bugs" class="community-cta-a">
Expand Down
2 changes: 2 additions & 0 deletions djangoproject/templates/svg_logos/package.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{# Material Symbols - Copyright 2022 Google LLC - Used under terms of Apache 2.0 license #}
<svg xmlns="http://www.w3.org/2000/svg" height="150px" viewBox="0 -960 960 960" width="150px" fill="#e3e3e3"><path d="M440-183v-274L200-596v274l240 139Zm80 0 240-139v-274L520-457v274Zm-80 92L160-252q-19-11-29.5-29T120-321v-318q0-22 10.5-40t29.5-29l280-161q19-11 40-11t40 11l280 161q19 11 29.5 29t10.5 40v318q0 22-10.5 40T800-252L520-91q-19 11-40 11t-40-11Zm200-528 77-44-237-137-78 45 238 136Zm-160 93 78-45-237-137-78 45 237 137Z"/></svg>