Django on the Med - Paolo Melchiorre
Published October 20, 2025
This video features Carlton Gibson at DjangoCon US 2018 in San Diego, California, USA.
Django looks like it’s doing just fine: it’s a popular framework in a popular language. We have major releases every six months. We have Django Girls, a Foundation (and Fellows), super conferences in glamorous locations, and more.
But the code is old, there are 1300+ accepted open issues. There’s only the smallest number of people that regularly contribute code.
It’s fine now. But it won’t be. Your web framework needs you!
Contributing to open source is great, and it’s great for you. Historically we’ve not been that good at encouraging new and diverse contributors. We’re trying to change that, and we want to invite you to come and join-in.
I’m going to tell you quickly how to get involved, how to get support in that, and how to let us know if that’s failing.
You are qualified to contribute. More than that, your contribution is the future of Django. Come code.
This talk was presented at: https://2018.djangocon.us/talk/your-web-framework-needs-you/
LINKS:
Follow Carlton Gibson 👇
On Twitter: https://twitter.com/carltongibson
Official homepage: https://noumenal.es
Github:
Follow DjangCon US 👇
https://twitter.com/djangocon
Follow DEFNA 👇
https://twitter.com/defnado
https://www.defna.org/
Django appears healthy, with regular releases, conferences, a foundation, and paid Fellows, but its core maintenance depends on a very small group of contributors. Carlton Gibson argues that this limits the project’s capacity to address its roughly 1,300 accepted tickets and leaves its contributor base poorly representative of the wider community. He asks more people to contribute—not only code, but also documentation, translations, operations, and security work—and to help make the contribution process more welcoming. New contributors should read the contributing guide, join Django Developers with notifications muted, use Django Core Mentorship for support, set up the repository and tests, and choose a ticket connected to a problem they understand. Reviews may involve many small corrections, but they are intended to preserve Django’s quality rather than criticize contributors personally. Gibson stresses that practical experience with an issue is enough to begin, and that Django Fellows and experienced contributors are available to help.
Summarised automatically from the transcript.
Automatically transcribed, so expect mistakes in names and technical terms.
Wait. No. Which way? Hang on, which way? This this way. This way. Hello. Right, you've seen all the slides already, so I'm gonna sit down again. Um hello, I'm Carlton Gibson. Um who am I? I'm a long-term Django user, I'm a maintainer on Django Rest framework. and crisp um Django filter, Django Crispy forms, and since January of this year, along with Tim Gray, who's been doing it for a long time, I'm the new Django Fellow. What's the Django Fellow mean? We are contracted by the Django Software Foundation, the DSF, and we basically do the day-to-day running of the project to keep it going. We handle the ticket triage. We do patch review, we do security work, we do the releases. It's the sort of stuff that on a project of Django
size, it just wouldn't happen. without the fellowship program. Um and the hope of the fellowship program is we let c contributors, that's you, focus on the fun stuff which is writing code. Um so it's in this capacity that I'm here to say to you that your web framework needs you. I sorry about this slide. What I wanted to do was get Kitchener and the Django Pony and do some sort of thing, but it My skills and time. They just went up to it. Django looks healthy, right? We have major releases every six months or so. We have conferences all over the world in glamorous locations. We have a foundation, we have fellows. Right, but the core framework is maintained by a really, really small number of people. Um we need more. We need we need you. Um
oh dear. That's the wrong button. There you are. So I put together this little graph. Um I ran this little git command and what that gives you is a list of contributors with the number of commits they have. And I plotted it like this so you could see the power law. Since Django 2. 1, there have been about 481 commits to the repo from 121 individual committers. And that sounds amazing. But outside the cr of the group of fellows, the people who are d doing the commits is is is like half a dozen people. Right? And then there's a really long tail there's a few well, another half a dozen who Do some commits and then maybe a half a dozen that are doing like one or two, and then there's lots of individual um commits from people. It's okay. We keep it going, but the first problem is it's just not simply enough
There are 1,300 accepted tickets on the Django repo. Now maybe that's okay. Django is a mature framework. It bumbles along. That green line is the change over time. You see, it's basically It stays the same forever. Um we close an awful lot of tickets, but more ones come along. But for me, I think we need to be more dynamic than this. If Django's going to stay relevant for another ten years, we need to be addressing this. If we aren't going to close these issues at some point, we should just declare the scope of the project smaller and close them as out of scope, right? For me It's okay, we keep it going. We keep up with the database changes, we keep up with the version changes, we get the new releases out, but there's not much capacity to do more than that.
Okay? But the second problem is it's just not representative. If you look at all the contributors there, it's quite white. It's not all white, but it's quite white. And it's very male. Okay, and that's not what I see in the room in front of me. Not at all. If you look down just to the few core contributors, then it's very, very white and it's all male. Okay. Um and I took this that th those numbers from so since 2. 1 but I could have picked any time in the repos here. There's this thing. It's called Django Core, the Django Core team. And it's it's the the great and the good of the Django project is everybody who's Done all the good stuff over time. And there's two problems with the Django core in
the core team. It makes it look like the core team is 50 strong. Well it's not, it's half a dozen people. But it's still not representative. It's still So this is recognized. There's a Django enhancement proposal to dissolve the Django core, to get rid of it. You can Check it out. Um and that will go through I think. Sorry, I need to have a sip of water. But it's only half the story, right? We remove one power structure, we get rid of this Django core, which is the governing it's it runs it runs the framework, it's the technical team that run the framework and make the decisions. But how do we make sure that we don't replace it with something which is exactly the same?
How do we get new contribute contributions from across the community? That's you. I don't know the answers to that. I really don't. I've got some ideas, but they're probably naive and they don't touch on the real issues. So we need help. So what I'm gonna do. is I'm going to tell you how to get involved and how to tell us when that's not working and then I'm going to ask you to help us go further than that. Simple as that. So how do you get involved? Well the contributing guide. You'd like to contribute to Django but you don't know how, this document will explain our process and how to get involved. Well that sounds promising. Right? But it it's not the solution because we've had that for years and we're in the situation that we're in. We're not getting contributions from across the community. But it is a good starting point. So the first it's it's the it's the basis of what we've got and it's where we need to build on
to change to go forward. So the first thing I do is say do read it and have a look around and the the the related documents do tell you some good stuff. The first thing is join Django developers. This is a mailing list. I know, I know, you've got no time for Django developers. You're busy, you've got no time for another mailing list and frankly it's quite dull. But join it anyway, then go to the notifications and turn them off. Right? And then check in every so often just to sort of have a look around. As you get more involved it becomes more relevant. But just sign up for it and then turn off the notification. There's another mailing list though, and it's almost a secret. It's called Django Core Mentorship. No, we don't do a good avo job of advertising this.
It gets approximately zero traffic. But it is a place where experienced contributors are signed up to help you to get started contributing. So join Django developers and turn off notifications, but then join Django Core Mentorship. And send an email to it saying, hey, I I want to get involved. Can you help me? Now this isn't an official mentoring program, right? Maybe we need one. Maybe we need some input on what that mentorship program would look like. But Django Core mentorship is already there. It already exists and it already has paid people experienced people waiting to help. So let's use that in the interim while we're coming up with something better. Okay. When you get stuck you send an email to Django Core Menship. I'm stuck.
I'm trying to do this. I can't I can't turn off the notifications for Django developers that way. Right, the next step then is get set up with the code. Right? Now you've d you've done this a million times. You clone the repo. So get clone Django Django. It comes down, takes a while. Create a virtual end, Python-M VM, Django, right? Um, install the requirements. Pip install. something something something something right run the test run test right and that's it just run the test suite see it see the Django test suite in action if you can't do it send an email to Django call mention I can't I'm trying to get set up with the code right that's it Right? If you get stuck, emails. Then the next bit, this is the best bit, find a ticket.
And this can be hard. There are thirteen hundred and twenty Well, where do I begin? Well the the um contributing guy says look for tickets that are easy pickings. This isn't gonna cut it. There are thirteen hundred and twenty-eight accepted tickets, of which exactly thirteen are marked as easy pickings. Right. So we're not using this flag correctly. Right? But it's not binary. It's not like there are 13 easy tickets and 1300 phenomenally hard ones. Alright? Yes, there are some phenomenally hard tickets. And there's a whole load of ones which, yes, they're pretty tricky. But the vast majority of the tickets are no harder than the problems you solve every single day using Django, I promise you
Right? Yes, they need time. Yes, they need thought. Yes, they need a little bit of your love, but they're not hard. No, they're not harder than the problems you already solve as a matter of course. The reason they're not solved already is because there's too many of them. There's 1300 of the things. And the contributors are too few. So there's a massive opportunity for you to get involved. You can make a massive difference. And here's the little trick. If you start, if you start looking at a ticket and you get stuck, you can either open a pe pull request and say this is is what I've got, or you can email Django Court Mention saying I'm trying to solve this issue. And the people who haven't got the time to solve it by themselves, they'll jump in and help you. They'll give you the advice. It all it needs is that little bit of input from you saying I'm actually looking at this.
Right? So please do. Um yeah. So is there a bit of Django that you're using that isn't right? Do you hit a bug at work? Do you you're googling around it do you that is there a ticket there do that what was my first ticket on Django the 1. 8 the uh the templates you couldn't instantiate a template without specifying A template backend. But I've only got one backend, it's the default one. Can't we just use that? Yes, we can. Okay, so we that was my first patch on Django. Why was I qualified to do that? Well, because it's the bug I was having. Right? Fine. Then submit a take a PR. Okay? That looks easy when written like that. It takes time. Right? It takes time.
You've got to do docs. You've got to do tests. You open the PR, you get feedback. You make changes, you do you get more feedback. Can you adjust the line wrapping? Yes, okay. Can you revert this irrelevant change? Yes, okay You've you've added some white space. Yeah, it's okay, right? It can feel hard. It's about quality here, right? Django's good. Why do you use it? Why has it lasted so long? Because it's good. It's but The the the review process is about keeping it good. Um don't take it personally. It's not personal. Everybody gets the same review. Everybody. You can be superstar coder A. You uh you can you you messed up the white space here. Can you t change the line wrapping?
If you feel difficult, if it feels difficult, reach out to Django Core Mentorship. Send an email. Also, I'm here to help at Carlton Gibson. I'm on GitHub. If you put that in a commit message or on a message on GitHub, GitHub will send me an email and I will respond. That's my what I'm employed by the Django's. Software Foundation to do. Part of my remit is specifically to help new contributors. So please at mention me and I will help you. Okay? You can do it. You are qualified. If you've been working on an issue, Googling it, looking for a solution, then you know as much as anybody right now about that issue. You really do. Right? You think you don't know enough, but no one knows enough.
I'm not qualified for most of the issues that come up. Someone open I don't know the answer. I have to look at the code. I have to study it. I have to spend the time going through it. Is this the right solution? I have to look at the history. I'm not qualified. Or I am qualified, so are you. That's the point, right? What if you don't feel ready to contribute to Django? Well, what about other repos? Right, Django secret sources third-party apps. I learned I got off contributing to Django Rest framework. That's how I learnt to do it. There are lots of projects, all under Mentane, that would love your help. They would love your help. Because it's hard. If you want to help me on Django Filter, on Django Crispy Forms, I would love your help, because I don't have the time there. So there is any number of opportunities for you to get involved.
There are other tasks. You can work, you don't have to work on the code, you can work on the documentation. That's, you know, work on tickets there. You can work on translations. There's an operations team. Do you know about Ansible and all that? those Jenkins and things like that, you could help there. There's a security team. Do you know about web security? Okay, there's a trust issue, you have to get yourself known because it's a position of trust. But you could work on the security team if you're qualified. There 's any number of options, right? But the big one that we really, as well as all of these things, we really need your help on is to help smooth the on-ramp. Right? The existing how-to guide, the how contribut contribution guide doesn't cut it. We we don't have contributions from across the Django community. We have a bunch of White men mainly.
So how can we smooth the omramp? How can we make it better so that whatever isn't inviting becomes inviting? Email Django Corpsmenship. I'm finding that this is a barrier to people getting involved. Reach out again. The answer is basically yes. We just don't know what the questions are yet. Right. So we have an opportunity to build the future of Django here. We're getting rid of this the core team and it's a it's a point where we need to well we have an opportunity Let's use it. They can help, but the change can't come from the same small group of people that are doing the contribution. The change needs to come from new contributors, fresh input from across the community. We need
you. Your web framework needs you. Right? Come and join us. Come code. That's it.
Django Fellows are contracted by the Django Software Foundation to handle the project’s day-to-day work, including ticket triage, patch review, security work, and releases.
Discussed at 0:16Start with Django’s contributing guide, join the django-developers mailing list with notifications turned off, and use the related documentation to learn the process.
Discussed at 4:55Join Django Core Mentorship and email the list when you need help. Experienced contributors, including paid project contributors, can help you get started or work through a problem.
Discussed at 6:29Clone the Django repository, create a virtual environment, install the requirements, and run the test suite. If you get stuck, ask Django Core Mentorship for help.
Discussed at 7:14Although only a small number of tickets are marked “easy pickings,” most accepted tickets are no harder than the Django problems developers solve in their daily work. Choose an issue related to a bug or limitation you have encountered, and ask for help if needed.
Discussed at 7:59Open a pull request with what you have, or email Django Core Mentorship to explain the issue and ask for guidance. Experienced contributors can help you move forward even if you cannot solve it alone.
Discussed at 8:48A contribution usually needs documentation and tests, followed by review and revisions. Requests about formatting, whitespace, or unrelated changes are part of maintaining Django’s quality and should not be taken personally.
Discussed at 10:21Yes. If you have been investigating an issue and looking for a solution, you may know as much as anyone about that particular problem; even experienced contributors often need to study the code and history before answering an issue.
Discussed at 11:10You can help with documentation, translations, operations and infrastructure, or security. You can also contribute to Django-related third-party projects such as Django REST framework, django-filter, and django-crispy-forms.
Discussed at 12:42Note: We understand that names change, people change, and bodies change. We respect each individual's journey and privacy. If you have any concerns about a video or need us to remove content, please don't hesitate to contact us. We will handle your request with care and promptly address any issues.
Published July 15, 2026
Published July 15, 2026
Published July 15, 2026
Published July 15, 2026
Published July 15, 2026
Published July 14, 2026