7 minutes reading time (1487 words)

Stop Coding Alone: Start your Open Source Adventure at Joomla!

January-Young-Developers

An open source CMS that’s vibrant, community-driven, super flexible and powering millions of websites: that’s how Mahmoud Magdy experienced Joomla. It was the first ever open source project he worked on: "It was challenging at first, but I loved how it pushed me to write better code and learn from others."

Mahmoud had been experimenting with Joomla for small personal projects, so he had some basic knowledge of Joomla. Although he did see its power, he also saw it as a somewhat complex platform for building websites, mainly for people who needed flexible content management without heavy coding. "Honestly, I thought it was a bit old-school compared to newer frameworks," he admits.

That view changed when he started working on the Enhanced Weblinks project, as part of Google’s Summer of Code. "I now see Joomla as a vibrant, community-driven platform with a strong foundation that supports both simple sites and advanced extensions," he says. "Its flexibility, like the MVC framework and plugin system, amazed me, and I’m excited about how it empowers developers to create impactful tools like Weblinks."

Helping both users and developers

Transforming Weblinks into a modern, more user-friendly extension that sets an example for other Joomla developers. That’s what Mahmoud is most proud of: "Adding features like the frontend dashboard, nested category support, and comprehensive APIs documentation makes it easier for users to manage links, while the Cypress testing suite and Github Codespaces setup help developers build reliable extensions. Knowing that my work will help both users and developers feels amazing."

He continues: "The Weblinks project caught my eye because it was a chance to modernize a practical tool that helps users organize external links, which I thought was super useful for different websites. I was excited to work on something that could directly help users while learning Joomla’s codebase. Open source, as a concept, drew me in because it’s about sharing knowledge and building tools together. I loved the idea that my code could be used by people worldwide and that I could learn from experienced developers. The collaborative vibe and the chance to make a real impact were what made me hooked."

Challenges pushing creativity

When Mahmoud came in, Joomla’s Weblinks component had been decoupled from Joomla’s core since version 3.4.0. It was a standalone extension needing updates to match Joomla 5’s modern standards. "It was functional but had issues like outdated code, limited frontend features, and a lack of robust testing," Mahmoud explains."My role in the Weblinks project was like being a mix of a developer and a tester. I worked on upgrading the component by adding features like multiple category selection, nested category support, and a frontend dashboard for easier link management. I also built a Cypress testing suite to catch bugs early, set up Github Codespaces for cloud-based development, and wrote clear API documentation." And then there was the bit beyond coding: "I engaged with the Joomla community, discussing issues on Mattermost, responding to Github feedback, and ensuring my work met high standards. It was about making Weblinks better for users and developers."

The biggest challenges were navigating Joomla’s large codebase and ensuring new features didn’t break existing functionality. "Adding features like public endpoints and rate limiting for the Weblinks API or rendering nested categories correctly was tricky because I had to understand how Joomla’s MVC framework and plugins interacted," Mahmoud says. "Another challenge was balancing performance, like when adding content plugin support, which could slow things down if not optimized. Writing comprehensive Cypress tests for complex scenarios, like API requests or frontend forms, was also tough, as I was a bit new to end-to-end testing. These challenges pushed me to think creatively and dig deeper into the system."

Mahmoud tackled these challenges with a mix of research, community support, and trial-and-error: "For the codebase, I spent time studying Joomla’s MVC structure and asked my mentor for guidance. I researched optimization techniques and tested changes thoroughly with Cypress to ensure stability. The mentor’s and community’s feedback on pull requests was invaluable. Also breaking tasks into smaller steps, like testing one feature at a time, made the challenges feel more manageable."

Open source: rewarding

Mahmoud had never worked on open source projects before. "Open source was a new adventure for me, as I was used to solo projects where I coded alone and made all the decisions. In contrast, working on Joomla’s Weblinks project meant collaborating with a global community, sharing ideas, and getting feedback on every pull request. Unlike my previous projects, where I could keep things private, open source required me to make my code public, write clear documentation, and align with Joomla’s standards. It was challenging at first, but I loved how it pushed me to write better code and learn from others. The community’s support, especially through Mattermost discussions, made it feel like a team effort, which was way more rewarding than working alone."

Flexible and friendly

When he started exploring Joomla, Mahmoud was pleasantly surprised: "I found a great platform with a huge ecosystem of extensions, templates, and a friendly community. The MVC framework stood out as a clean way to structure code, and I was impressed by how flexible the system was for managing content, from articles to links. I also discovered Joomla’s strong focus on modularity, which lets developers build extensions like Weblinks to add specific features. The community’s openness, with resources like the Joomla Manual and Mattermost channels made it very easy to ask questions and learn."

He continues: "I love Joomla’s flexibility and its amazing community the most. The platform lets you build anything from simple blogs to complex sites. The community is a huge part of what makes Joomla special." Everyone is supportive: "Whether it’s mentors and maintainers giving feedback on pull requests or other developers answering questions on Mattermost. It feels like a big team where you’re never alone, and that makes coding for Joomla both fun and inspiring. From day one, my mentor, Nicola Galgano, guided me through challenges, giving clear feedback on my pull requests and helping me understand Joomla’s standards. On Mattermost, other developers were quick to answer my questions, share ideas, and encourage me, which made me feel like part of a team. The community’s openness to new contributors, combined with their passion for making Joomla better, created a positive environment where I could grow." 

Which is what Mahmoud did. Technically, he got better at programming with PHP, Javascript, using Joomla’s MVC framework, writing Cypress tests for end-to-end coverage, and configuring cloud environments like Github Codespaces. He also learned to write clear documentation for APIs. "Beyond skills, I learned how to collaborate in an open-source community like how to handle feedback, improve my code, and communicate ideas clearly," he tells us. But the most important part? "I realized the impact of contributing to a project used by people worldwide. It showed me how coding can solve real problems and make a difference." 

Opportunities for young developers

Mahmoud would absolutely recommend young people to contribute to Joomla, whether through GSoC, Joomla Academy, or just jumping into the community: "Joomla offers a great way to learn real-world coding skills, like working with a big codebase or writing tests, while making tools that people actually use. GSoC was perfect for me because it gave me a structured project and mentorship, but Joomla Academy or contributing to Joomla in general are just as awesome too. The community is super supportive, so you’re never alone, and you get to make a real impact. If you love coding and want to grow, Joomla’s a fantastic place to start." 

Joomla offers young developers a lot of possibilities. You have the freedom to take initiative. There’s autonomy to solve problems your way. whether it’s fixing bugs or adding tests, as long as you align with community standards. "Contributing to Joomla lets you make a real difference,"  Mahmoud says. "My work on Weblinks helps users manage links better and shows other developers how to build great extensions. You can take on small tasks or big projects, learn from mentors, and see your code used worldwide. It’s a place where young developers can learn and grow."

Come and join us!

Are you a young developer interested in contributing to open source software that's used by millions of people all over the world? Then we'd love to meet you!

These are the steps you should take to join our community: 

  • Head over to our Mattermost channel: joom.la/chat
  • You'll be redirected to the Joomla Identity Portal, create an account and you'll get added to the Town Square channel on Mattermost
  • Search for the channel called New to Joomla? Start here and join that as well (if you can't find it, ask in Town Square)
  • Introduce yourself
  • Join a New to the Joomla Community Session, they're on the 15th of each month
  • We'll help you get settled in and find you a team / project to contribute to!

Some articles published on the Joomla Community Magazine represent the personal opinion or experience of the Author on the specific topic and might not be aligned to the official position of the Joomla Project

2
The January Issue
 

Comments

Already Registered? Login Here
No comments made yet. Be the first to submit a comment

By accepting you will be accessing a service provided by a third-party external to https://magazine.joomla.org/