Update: Since writing this article I’ve managed to setup a typo3 template with the TemplaVoila wizard, I still feel that the process is somewhat complicated, but with proper documentation it’s a lot easier and that’s what I’m trying to accomplish with that tutorial.
Update: There’s a whole new series on customizing Joomla that might shed some light on whether Joomla! might be the right choice or not for you.
My current CMS experience spans TYPO3, Joomla, Drupal, XOOPS and MODx and I’ve started to feel qualified enough to offer some advice regarding these solutions. There are many CMSs out there, both free and commercial and doing research with the intention of making an informed decision can be very, very time consuming. I hope this contribution will make that process somewhat easier.
Let’s begin with my experiences of each so you know what my advice is worth. First of all, these solutions are all based on PHP, if that is not OK with you then you’re in luck, you can dismiss them all without wasting more time here.
TYPO3: I’ve installed it and played around with the basic functions in order to get stuff up and running, I’ve got a little bit of TemplaVoila action under my belt too. I have hardly looked at the source.
Joomla: I’ve worked with the admin stuff to create content in both 1.0.x and 1.5 and I’ve created an extended registration component that is based on the normal registration in 1.5 so I’ve got some experience with the code base there. I’ve also worked a little with some big components. VirtueMart for 1.0.x for instance. Both with using the interface and some small modifications to the source.
Drupal: Here too I’ve ended up creating a custom registration module but that’s basically it. I’ve got virtually no experience at all with the content creation interface.
XOOPS: Getting it up and running and trying to install some components.
Let’s throw XOOPS in the trash before we continue. To my knowledge there is absolutely no reason at all to choose XOOPS before one of the others in any situation whatsoever. Of the 5 blog modules or so that I tried to install only one worked properly. Besides, the admin interface feels unintuitive, crude and strange. Maybe I’m not being fair to the framework itself but in my book the extensions are as important as the platform. Having to worry about when and how any installed extension will break apart is something that I can live without.
First I want you to reflect on these questions:
Where are you on a technical scale, do you have access to some serious webdev skills? What are your requirements, are they fairly standard or is there a lot of custom stuff that needs to be done?
Those two “quantities” – for want of a better word – will form a 2D space and it’s time to discuss each scenario:
1.) You’re at the bottom of each, you don’t have access to any webdev power but your needs are simple too. My advice in this case is to go with Joomla or Drupal, both are a breeze to install and there are a lot of companies out there that are creating templates that you can choose from and install with a click of a button. Sure MODx is also a really easy install but to really get the most out of MODx you should at least have access to some HTML editing skills.
2.) Same as 1. but your requirements are more complex. As in the above case, Joomla or Drupal is my recommendation only even more so. The massive repositories that these two sport is the only thing that can save your ass. You have to browse them carefully for extensions that will cover your requirements. In addition to that you also have to make sure that your basket of extensions are compatible with the same version of the CMS and with each other.
I can not warn you enough about the Joomla 1.5 legacy plugin. Do NOT trust it, it doesn’t work properly and you can not let your project rely on it. If you can’t fill your basket with 1.5 compatible stuff only then you have to try and fill it with 1.0.x stuff and use that version instead. Since you’re not gonna edit the sources anyway it matters less which version of Joomla you are using.
The same goes for Drupal, the other day I installed version 6.1 only to discover that the tinyMCE module wasn’t compatible with it. Therefore; make sure your whole basket is compatible with the same version here too before you find out the hard way.
3.) You only need the basics and in addition your nephew which is a designwiz has promised to help you, there is basically nothing that he doesn’t know about HTML and CSS that is worth knowing, however he has no experience with any CMS so it’s a fresh start. Now it’s starting to get interesting, if you choose MODx your nephew will be able to accomplish some advanced stuff with it’s custom tags. Frankly, I don’t see any reason why any of the others should be chosen instead of MODx in this situation. Any other choice would probably be less flexible when it comes to formatting basic content in various ways.
4.) Same as 3. but with more advanced requirements. We’re back to Drupal or Joomla again if the stuff you need couldn’t be found in the MODx repository. Read point 2, the same advice applies without any additions. The available extensions will have to make the choice for you.
5.) Same as 3. but in addition to design skills you also have access to programming skills. In this case the extra programming skills don’t really make much of a difference since your requirements are so basic and therefore the advice will be the same as in 3.
6.) 5 + advanced requirements. Since you have the power of modifying or even building new stuff you are not slave to what’s already there anymore, you don’t have to go shopping for a basket if you don’t want to, neither are you screwed if you can’t find what you are looking for. The whole problem of choosing becomes much more complex all of a sudden.
Let’s look at some scenarios:
6.1) Nothing of the stuff you need can be found already made in any repository. This is highly unlikely, but if this is the case then by all means go for MODx and create what you need from scratch.
6.2) You come to the conclusion that both Drupal and Joomla have extensions that will do what you want but these extensions have to be modified somewhat. In this case it all depends on the source code that has to be modified. I have no experience with any Drupal modules but I’ve seen some pretty smelly stuff for Joomla 1.0.x. A totally unqualified guess here would be to go for Drupal if it’s between Joomla and Drupal. Spending a couple of days evaluating code could prove to be a very good investment in this situation. Do I even have to say what I think you should do if MODx has snippets that kinda does what you want but need to be modified somewhat?
If the choice stands between Drupal and Joomla for some reason, and it all depends on how easy it is to create something from scratch then my advice is to go for Drupal. IMHO it is much easier and more straightforward to create modules for Drupal than components for Joomla 1.5. However, Joomla 1.5 is far from a disaster, it’s got a solid framework and when you get into it more than I have it might offer a more solid support than Drupal, but that is just a guess.
I have no experience with the Joomla 1.0.x source but I can imagine that there must be a reason the core developers chose to create a shiny new version that breaks a bazillion extensions and stop any further development on it, and I’m sure that that reason isn’t because the old source is a marvel to behold.
7.) What happened to TYPO3 then? The reason it’s not mentioned above is because it’s usefulness is limited to special cases. TYPO3 is a behemoth of complexity that can solve very complex scenarios. I’m not saying that it can’t be used for simpler sites too but c’mon why? When you can choose something that takes 5 minutes to install instead of a day and 2 days to deploy instead of 2 months? OK, maybe that was a little bit harsh but you get the picture.
Some examples of TYPO3 features:
– Advanced image manipulation through ImageMagick if you have everything setup correctly.
– TemplaVoila will let any moron design fairly complex web pages with some dynamic bindings. It’s one of the most advanced internet applications I’ve seen so far, it’s like Ditto on steroids and a science in itself. But as with all things TYPO3 it will take some time to learn.
– Very cool multiple language handling.
– It’s very own packaging system that handles dependencies automatically a la apt-get with it’s own file format for the extensions.
I think the Dassault case study covers a lot of ground when it comes to what TYPO3 is capable of.
And the list goes on and on, these are all pros. The major con I’ve been able to see so far is that it requires a major investment in time to learn and get into in order to do serious business with it. Take the special TypoScript as an example, probably a very good thing to handle complexity with, maybe, but how exciting is it to have to learn yet another obscure scripting language?
Actually MODx reminds me a lot of TYPO3, only it seems more geared towards simplicity and ease of use, I believe it might be possible to build all the advanced stuff TYPO3 is capable of with MODx and I think the result would be less complex and more accessible than TYPO3. I’m not surprised that for instance the WEC has developed a set of plugins to make it much easier to get started with TYPO3.
However if you’re a big shot reading this and you’re considering implementing some system that a hundred people are supposed to have access to and creating content with, that must be available in 10 languages and so on and so forth then yeah your only open source PHP option might be TYPO3. Just don’t expect things to be up and running any time soon if you don’t want to hire a TYPO3 consultant.
To cap things, of the above solutions the one that has impressed me most is clearly MODx, a lot of the stuff in MODx is pure genius and I wish I had thought of some of these things myself. During the past days I’ve setup a site in no time doing things with ease that would be awkard to do in for instance Joomla. Everyone with some interest in the CMS area should definitely check it out for inspiration. I can’t wait for this thing to grow and get more great extensions. The CMS discussion over at 456 Berea street made me take note of this awesome application, check it out and you will see that there are more fanboys than me out there!