Stop met alleen programmeren: begin je open-sourceavontuur bij Joomla!
Een open-source CMS dat levendig is, door de community wordt gedragen, super flexibel is en miljoenen websites aandrijft: zo ervoer Mahmoud Magdy Joomla. Het was het allereerste open-sourceproject waaraan hij werkte: “In het begin was het uitdagend, maar ik vond het geweldig hoe het me stimuleerde om betere code te schrijven en van anderen te leren.”
Mahmoud experimenteerde al met Joomla voor kleine persoonlijke projecten, waardoor hij een basiskennis van het platform had. Hoewel hij de kracht ervan inzag, vond hij het ook een enigszins complex platform om websites mee te bouwen, vooral bedoeld voor mensen die flexibel contentbeheer nodig hadden zonder veel te hoeven coderen. “Eerlijk gezegd vond ik het een beetje ouderwets in vergelijking met nieuwere frameworks,” geeft hij toe.
Die kijk veranderde toen hij begon te werken aan het Enhanced Weblinks-project, als onderdeel van Google Summer of Code. “Nu zie ik Joomla als een levendig, door de community gedreven platform met een sterke basis dat zowel eenvoudige sites als geavanceerde extensies ondersteunt,” zegt hij. “De flexibiliteit — zoals het MVC-framework en het pluginsysteem — heeft me echt verbaasd. Ik vind het geweldig hoe het ontwikkelaars in staat stelt om impactvolle tools zoals Weblinks te bouwen.”
Helpen van zowel gebruikers als ontwikkelaars
Het moderniseren van Weblinks tot een eigentijdse, gebruiksvriendelijkere extensie die als voorbeeld dient voor andere Joomla-ontwikkelaars: daar is Mahmoud het meest trots op.
“Het toevoegen van functies zoals een frontend-dashboard, ondersteuning voor geneste categorieën en uitgebreide API-documentatie maakt het voor gebruikers eenvoudiger om links te beheren, terwijl de Cypress-testsuite en de GitHub Codespaces-setup ontwikkelaars helpen om betrouwbare extensies te bouwen. Weten dat mijn werk zowel gebruikers als ontwikkelaars helpt, voelt geweldig.”
Hij vervolgt: “Het Weblinks-project trok mijn aandacht omdat het een kans was om een praktisch hulpmiddel te moderniseren waarmee gebruikers externe links kunnen organiseren — iets wat ik superhandig vond voor verschillende soorten websites. Ik was enthousiast om aan iets te werken dat gebruikers direct helpt, terwijl ik tegelijkertijd Joomla’s codebase leerde kennen. Open source trok me aan omdat het draait om kennis delen en samen tools bouwen. Het idee dat mijn code door mensen over de hele wereld gebruikt kan worden en dat ik kan leren van ervaren ontwikkelaars, sprak me enorm aan. De samenwerkingsmentaliteit en de kans om echt impact te maken, maakten me meteen enthousiast.”
Uitdagingen die creativiteit stimuleren
Toen Mahmoud begon, was de Weblinks-component van Joomla sinds versie 3.4.0 losgekoppeld van de core. Het was een zelfstandige extensie die moest worden bijgewerkt om te voldoen aan de moderne standaarden van Joomla 5.
“Het werkte, maar had problemen zoals verouderde code, beperkte frontend-functionaliteit en een gebrek aan robuuste tests,” legt Mahmoud uit. “Mijn rol in het Weblinks-project was een mix van ontwikkelaar en tester. Ik werkte aan het upgraden van de component door functies toe te voegen zoals meervoudige categoriekeuze, ondersteuning voor geneste categorieën en een frontend-dashboard voor eenvoudiger linkbeheer. Daarnaast bouwde ik een Cypress-testsuite om bugs vroegtijdig te detecteren, zette ik GitHub Codespaces op voor cloudgebaseerde ontwikkeling en schreef ik duidelijke API-documentatie.”
En er was meer dan alleen code: “Ik was actief betrokken bij de Joomla-community, besprak issues op Mattermost, reageerde op feedback op GitHub en zorgde ervoor dat mijn werk aan hoge standaarden voldeed. Het ging erom Weblinks beter te maken voor zowel gebruikers als ontwikkelaars.”
De grootste uitdagingen waren het navigeren door Joomla’s grote codebase en ervoor zorgen dat nieuwe functies bestaande functionaliteit niet kapotmaakten. “Het toevoegen van functies zoals publieke endpoints en rate-limiting voor de Weblinks-API, of het correct renderen van geneste categorieën, was lastig omdat ik moest begrijpen hoe Joomla’s MVC-framework en plugins samenwerken,” zegt Mahmoud. “Een andere uitdaging was het balanceren van performance, bijvoorbeeld bij het toevoegen van content-pluginondersteuning, wat traag kan worden als het niet goed geoptimaliseerd is. Het schrijven van uitgebreide Cypress-tests voor complexe scenario’s, zoals API-verzoeken of frontend-formulieren, was ook pittig, omdat ik nog vrij nieuw was met end-to-endtesten. Deze uitdagingen dwongen me om creatief te denken en dieper in het systeem te duiken.”
Mahmoud pakte deze uitdagingen aan met een mix van onderzoek, ondersteuning vanuit de community en trial-and-error: “Voor de codebase bestudeerde ik Joomla’s MVC-structuur en vroeg ik mijn mentor om begeleiding. Ik onderzocht optimalisatietechnieken en testte wijzigingen grondig met Cypress om stabiliteit te garanderen. De feedback van mijn mentor en de community op pull requests was van onschatbare waarde. Door taken op te splitsen in kleinere stappen — bijvoorbeeld één feature tegelijk testen — werden de uitdagingen beter behapbaar.”
Open source: enorm belonend
Mahmoud had nog nooit eerder aan open-sourceprojecten gewerkt. “Open source was een nieuw avontuur voor mij; ik was gewend aan solo-projecten waarin ik alleen codeerde en alle beslissingen zelf nam. Werken aan Joomla’s Weblinks-project betekende samenwerken met een wereldwijde community, ideeën delen en feedback krijgen op elke pull request. In tegenstelling tot mijn eerdere projecten, die ik privé kon houden, moest ik bij open source mijn code openbaar maken, duidelijke documentatie schrijven en me houden aan Joomla’s standaarden. Dat was in het begin uitdagend, maar ik vond het geweldig hoe het me dwong om betere code te schrijven en van anderen te leren. De steun van de community — vooral via Mattermost — maakte het tot een echte teaminspanning, wat veel bevredigender was dan alleen werken.”
Flexibel en vriendelijk
Toen hij Joomla verder verkende, was Mahmoud aangenaam verrast: “Ik ontdekte een geweldig platform met een enorm ecosysteem van extensies, templates en een vriendelijke community. Het MVC-framework sprong eruit als een nette manier om code te structureren, en ik was onder de indruk van hoe flexibel het systeem is voor contentbeheer, van artikelen tot links. Ook ontdekte ik Joomla’s sterke focus op modulariteit, waardoor ontwikkelaars extensies zoals Weblinks kunnen bouwen om specifieke functionaliteit toe te voegen. De openheid van de community — met bronnen zoals de Joomla-handleiding en Mattermost-kanalen — maakte het heel makkelijk om vragen te stellen en te leren.”
Hij vervolgt: “Wat ik het meest waardeer aan Joomla is de flexibiliteit en de geweldige community. Het platform laat je alles bouwen, van eenvoudige blogs tot complexe websites. De community is een groot deel van wat Joomla zo bijzonder maakt.” Iedereen is behulpzaam: “Of het nu mentoren en maintainers zijn die feedback geven op pull requests, of andere ontwikkelaars die vragen beantwoorden op Mattermost. Het voelt als één groot team waarin je nooit alleen bent, en dat maakt coderen voor Joomla leuk en inspirerend. Vanaf dag één begeleidde mijn mentor, Nicola Galgano, mij bij uitdagingen, met duidelijke feedback op mijn pull requests en hulp bij het begrijpen van Joomla’s standaarden. Op Mattermost stonden andere ontwikkelaars altijd klaar om mijn vragen te beantwoorden, ideeën te delen en me aan te moedigen. De open houding tegenover nieuwe bijdragers, gecombineerd met de passie om Joomla steeds beter te maken, creëerde een positieve omgeving waarin ik kon groeien.”
Groeien als ontwikkelaar
En dat deed Mahmoud. Technisch gezien werd hij beter in programmeren met PHP en JavaScript, het gebruik van Joomla’s MVC-framework, het schrijven van Cypress-tests voor end-to-enddekking en het configureren van cloudomgevingen zoals GitHub Codespaces. Ook leerde hij duidelijke API-documentatie te schrijven.
“Naast technische vaardigheden leerde ik hoe je samenwerkt in een open-sourcecommunity: omgaan met feedback, mijn code verbeteren en ideeën helder communiceren,” vertelt hij. Maar het belangrijkste? “Ik besefte wat de impact is van bijdragen aan een project dat wereldwijd door mensen wordt gebruikt. Het liet me zien hoe code echte problemen kan oplossen en daadwerkelijk verschil kan maken.”
Kansen voor jonge ontwikkelaars
Mahmoud raadt jonge mensen absoluut aan om bij te dragen aan Joomla, of dat nu via GSoC is, Joomla Academy of door gewoon actief te worden in de community:
“Joomla biedt een geweldige manier om praktijkervaring op te doen, zoals werken met een grote codebase of het schrijven van tests, terwijl je tools bouwt die mensen echt gebruiken. GSoC was perfect voor mij vanwege het gestructureerde project en de begeleiding, maar Joomla Academy of bijdragen aan Joomla in het algemeen zijn net zo waardevol. De community is enorm ondersteunend, je staat er nooit alleen voor en je kunt echt impact maken. Als je van coderen houdt en wilt groeien, is Joomla een fantastische plek om te beginnen.”
Joomla biedt jonge ontwikkelaars veel mogelijkheden. Je hebt de vrijheid om initiatief te nemen en autonomie om problemen op jouw manier op te lossen — of dat nu het fixen van bugs is of het toevoegen van tests, zolang je binnen de community-standaarden blijft.
“Bijdragen aan Joomla laat je echt het verschil maken,” zegt Mahmoud. “Mijn werk aan Weblinks helpt gebruikers om links beter te beheren en laat andere ontwikkelaars zien hoe je goede extensies bouwt. Je kunt kleine taken oppakken of grote projecten, leren van mentoren en je code wereldwijd terugzien. Het is een plek waar jonge ontwikkelaars kunnen leren en groeien.”
Doe mee!
Ben jij een jonge ontwikkelaar die wil bijdragen aan open-sourcesoftware die door miljoenen mensen over de hele wereld wordt gebruikt? Dan maken we graag kennis met je!
Dit zijn de stappen om lid te worden van onze community:
-
Ga naar ons Mattermost-kanaal: joom.la/chat
-
Je wordt doorgestuurd naar het Joomla Identity Portal; maak een account aan en je wordt toegevoegd aan het Town Square-kanaal op Mattermost
-
Zoek het kanaal “New to Joomla? Start here” en sluit je daar ook bij aan (kun je het niet vinden, vraag het in Town Square)
-
Stel jezelf voor
-
Sluit aan bij een New to the Joomla Community Session (elke maand op de 15e)
Wij helpen je op weg en zorgen dat je een team of project vindt waaraan je kunt bijdragen!
Dit artikel werd oorspronkelijk gepubliceerd in het Joomla Community Magazine.
Lees alle artikelen in het magazine via deze link
Joomla! bestaat al 20 jaar als Open Source project. Dat is een lange tijd in technologiejaren! 19 jaar geleden kon je niet eens een iPhone bezitten, of X gebruiken en waarschijnlijk had je geen Facebook-account maar een Hyves-account 😊.
Er is veel gebeurd, maar Joomla! is al die tijd een duurzame keuze gebleken als CMS voor miljoenen websites wereldwijd, ondersteund door een betrokken community.