Joomla Content Management
With a large user base and an extensive fan base it’s hard to ignore Joomla when looking for open source content management systems. Joomla originally started out as Mambo, it has since taken most of the Mambo user base and has gone through two fairly significant code changes from 1.0.x to 1.5 and now 2.5 each change brings massive amounts of change to the system, moving administration section and making the majority of old extensions unusable until they are redeveloped. This is probably the biggest downfall with Joomla, you can have a site working perfectly, customized extensions and different functionality running for a number of years and then a security vulnerability will crop up which requires an update to the latest version. While update packages exist there is no guarantee they will work correctly nor is there any guarantee that the extensions you once relied upon to run critical sections of your site will be redeveloped for the new version of source code.
As an example I personally ran websites in the past that relied upon a forms component, fantastic component ability to create fully customized forms, automated emails, database submissions captcha images the works. This form component is called Facile Forms, it is supported in Joomla 1.0.x sites but not on 1.5 or 2.5 sites. All work that went into the forms previously created were completely rendered useless once the update to the new version of Joomla (required due to a security flaw in the no longer supported Joomla 1.0.x site) what that same extension was not available. But never fear, someone took over the Forms module, they now charge for a version that doesn’t work as well and is a lot more buggy which will work on the latest versions. Did we have a choice, yes, we could lose all the work that went into our forms and start afresh or we could pay whatever the new developer wanted to charge for the new form. Alternatively weeks of coding could have been spent adapting the old forms extension to work on the new version of Joomla, in the end paying the developer was the most cost effective solution.
Unfortunately support for the newest version of Joomla amongst all extensions is not always a quick process, there are even some extension developers (working for free in their own spare time) who were still developing their 1.0.x projects for 1.5 when 2.5 came out. For these developers the amount of work involved in creating a new version when in reality they themselves might not actually update to the new version instantly can become disheartening, especially when they had just gotten all of their code working perfectly for the previous version. This helps to keep the extensions fresh, new developers come in and add their own code or create new fresh code that works, however there is the downside that you might find a perfect extension for a previous version but be unable to install that extension on your new site.
The fundamental code behind Joomla is quite solid and the number of extensions available for each version is quite a bit higher than the competitors. It is quite possible to build and maintain a website in Joomla to fix nearly any solution however the amount of customisation and new extensions that need to be installed to do so can sometimes be daunting. The cost of upkeep to make sure everything is still working as expected between the different version changes can often lead to people leaving older unsupported and insecure versions of their site up long after the world is aware of the security vulnerabilities. The risk of a security vulnerability causing your older site to become a target for hackers is increased by its popularity and the ability for spiders to recognise the source as Joomla. Once your site is infected once it becomes very difficult to get it cleared from all blacklists which can have a serious negative impact on your business.
Joomla is a cheap solution only if you a personally willing to maintain your site on a regular basis, if you have to employ a developer every time a major security patch is released or to update your modules in order to keep them running securely the costs can quickly exceed what you would have spent on a purchased solution in the first place.