The Djangonaut Space Program: My Experience So Far

March 20, 2025 • 4 min read


I’ve always been curious about open source software. Seeing people contribute, collaborate, and improve projects that power the web always felt appealing but I always struggled to get started with contributions on projects. I remember reading multiple contribution guides and still asking myself "ok, but how do I even pick an issue and start?". I knew from my numerous readings that I needed to go through the issues and pick one labelled good first issue but I still struggled with them because on most occassions, reading the issues did not sound like they were "easy for beginners"😆. The moment I saw the announcement for the Djangonaut Space Program, I knew it was my chance to finally get the guidance I needed to dive in and work on Django, a framework I enjoy using. Now here I am, halfway through the program, feeling like I’ve found my place in the open-source galaxy.

Header Image - Djangonaut Space Logo

I immediately applied and in two weeks time, I got a response from Rachell that I have been accepted into the program. She is one of the co-founders of the program, the communications coordinator, and the organizer for the session I am participating in (session 4). I was onboarded into the Discord server, and given a wookbook full of incredible resources to aid my learning and be a means of tracking my progress. I was also briefly introduced to my team.

We are Team Saturn, and we are focused on Django’s accessibility. The aim was to get us into Django code contributions by making Django more inclusive, one fix at a time. You can learn more about the Session 4 teams here. I am so glad I was placed in the Accessibility team because it has fueled a desire in me to build more accessible software and strive to improve Open Source Accessibility.

Getting Started: Easing into Open Source

The first few days were all about getting to know our teammates, the community and getting familiar with Django’s contribution process. We were given space to observe, explore, and ask questions before jumping in. There is also a weekly check-in call by every team at a time well-suited to everyone. In my opinion, this has made all the difference.

The crew guiding me through this process has been nothing short of incredible. Shout out to::

🛰️ Captain Keanya Phelps – Keeping us on track, making sure we break things down into achievable steps.
🛰️ Navigator Eliana Rosselli – Helping us find focus, making complex ideas feel approachable.
🛰️ DSF Fellow and Co-Organizer Sarah Boyce – Reviewing contributions, offering feedback, and showing us how to navigate the open-source world.
🛰️ My fellow Team Saturn djangonauts Jeannette O'brien and Koffi Gilchrist Tossou – Asking great questions and engaing in discussions that benefit the whole team.
🛰️ All other Djangonauts and everyone who has contributed in anyway to this amazing program.

I started slowly by reading issues, looking at past PRs, and familiarizing myself with Django’s code structure. It felt overwhelming at first, but my navigator Eliana was always available to get me the help I needed to remove any blockers. She did the hard work of finding us appropriate tickets to work on. This was incredibly helpful because historically, choosing an issue/ticket had been my biggest open source hurdle. Over time, as I explored more, things started clicking. I was ready to start contributing. I picked up this ticket. It was a cleanup/optimization task to replace some buttons in the Django Admin interface with more accessible code by leveraging semantic HTML.

Diving Deeper: What I’ve Learned So Far

🪐 Accessibility Matters More Than We Think

Before this, I had never actively worked on web accessibility. But the more I learned, the clearer it became. I realized how small changes can make a huge difference for users who rely on screen readers, keyboard navigation, and other assistive technologies to navigate the web.

🛠️ The Importance of Tests And The Approachable Nature of Django's Codebase

Django is massive. At first, I felt like I was trying to navigate deep space without a map🫢. But with time (and guidance), I started recognizing patterns, understanding how different components fit together, and figuring out where I should find the files I needed to contribute. Initially, when I picked the ticket, I thought I would only need to edit HTML and CSS files but it turned out that those buttons I was seeing on the admin interface were actually getting dynamically injected into the DOM with JavaScript. I had to learn how to navigate the JavaScript files and make the necessary changes. I found the files and made the changes. I was so excited to see the changes reflected in the admin just like I expected. I run the recommended Django test suite and all tests passed. I proceeded to submit my PR hoping to get it merged but guess what happened.

My code editor applied some formatting changes to the files I was working on which I didn't notice. The CI checks failed and I had to make the necessary changes to fix the formatting issues. We are done now right? No! The CI checks failed again. This time it was with some JS tests which I didn't realise were not part of Django's test suite. Rookie mistake, haha. Currently, I am working on getting these JS tests to pass. I have managed to get majority of them to pass but one keeps failing. Hopefully, I can get it fixed soon and get my PR merged😊.

🔭 Open Source is More Than Just Writing Code

One of my biggest realizations is that you don’t have to start by writing code. Open source is just as much about reviewing issues, improving documentation, testing fixes, writing newsletters, and having discussions. Contributing isn’t just about pushing commits—it’s about making sure those commits serve the community well. I'm thankful to the program for always emphasizing this.

What’s Next?

With half the program still ahead, I’m looking forward to:

🔹 Making my first PR to Django.
🔹 Getting more involved in accessibility discussions within the community.
🔹 Continuing to improve Django’s accessibility and documentation.

I’ll be sharing another update at the end of the program, but for now, I’m just enjoying the process—learning, contributing, and slowly finding my place in the open-source world. Let's explore the Open Source galaxy. Onward! 🚀