YAWJ – Yet Another WordPress vs. Joomla Post

I can hear the moans, groans, and clacking of pitch forks as people find out there’s Yet Another WordPress vs Joomla blog post. Who dares write on the subject, that has been beat to death over the last several years, and assume he can write yet another WordPress vs Joomla comparison? Me (I have a battle axe).

Before continuing, let me qualify this blog post: It is not about nit-picky, un-educated statements like “WordPress is better for SEO” or “Your business will be more successful if you use Joomla”. I will not even go as far as to say which is more ‘user friendly’ as I feel it’s not a fair comparison. Instead, this blog post is a comparison through my personal experiences in finding the right solution for the job.

So there’s no mistake of my background: the large majority of solutions we provide customers revolve around Joomla. I’ve done Joomla! training since it was Mambo. If I sit down to write a custom framework, I think in the Joomla-esque MVC approach with all it’s factory methods, etc. I can create 10 Joomla templates faster than any one WordPress theme I’ve ever worked on. So as you, mister WordPress fanatic, start sharpening your pitch fork and prepare to cry “See! Bias Opinion! Let slip the dogs of war…” – Put down your weapon and hear me out for just a few minutes (remember, I have a battle axe). And you, Joomla ninja, stay your shuriken throwing stars from WordPress for just a minute…this is a blog built on WordPress after all.

MY JOURNEY

It all started earlier this year when we needed a multi-site solution for a SaaS platform we setup (Yes Mr. Samurai, SaaS means Software as a Service). By nature, we instantly started looking in to Joomla solutions and even what it would take to do it custom. We looked at JMS. It works, though a little confusing at times. It duplicates sites off of a mother-site (if you so choose), creating symbolic links back to the core files. It also modifies core files in order for it to work – bad, bad, bad. I did some testing and realized it would not fit within our requirements. There were too many things that could and did go wrong throughout the discovery phase.

Joomla Multi Site

JoomlaPlace has a sort-of-like-a-multi-site group of extensions. They work and from what I’ve seen, have some of the coolest ideas so far. But too many things could go wrong (like totally overwriting 100 customers’ content table by pushing the wrong button).

Then there’s Jentla. An awesome system which beats any open-source multi-site solution hands down…if you needed enterprise-level features that is. Jentla is perfect for big corps / enterprises, hospitals, etc. For what we needed it was too complicated, too expensive, and not enough control could be handed off to an individual site.

The Right One

After a month of the discovery phase, I did a quick install of WordPress MU to see what it was all about. I heard of MU in the past but never looked at it. It was amazing to me. Easily create and duplicate sites as fast as typing in the domain name and pressing SUBMIT. Jump to other sites all from within the admin area; site users can see all “Their sites” and do the same. Easily manage site updates since it’s all one code base. Push out a new plugin to all the sites with a touch of a button. Let certain users have access to specific themes…the list goes on. I literally slapped my forehead and said “You’ve got to be kidding me!”. I almost had tears in my eyes it was so beautiful, so flawless, and so effortless.

Tons of Awesome Stuff

I immediately dug deeper, seeing what’s possible, how it could scale, etc: Need database sharding? I mean like….4000 databases? Yeh they got that. Need to separate a site from the rest of the group because it just gets more traffic (VIP sites)? Yeh, they got that too. What if you need to run each site on remote databases? Uh huh, sure can. Want to run a social network on top of your multi-site instance? Yup, covered. What if we want to automatically create a site when a user signs up and then charge them for it too? And then, charge them for upgraded features? Yes we can!

There are some great CDN plugins too. When a user uploads an image, video, or file, it will automatically get placed in an Amazon s3 bucket (without them even knowing). Even as the user is going back to his media manager to place something in a page, it’s so transparent it looks like it’s just stuff on his site but it’s really on a CDN. You can even put your themes and plugins on the CDN if you want! Obviously this saves your server from a lot of headache.

Domain mapping is effortless. Upgrading the system is easy-peasy. Pushing out new plugins to your users is a matter of uploading the plugin and pushing “Network Activate” or if you want that cool “events” plugin to be available for just a handful of sites, you can do that too.

Is it apparent yet what we chose for the multi-site platform? There were a few caveats due to the NOOB factor. Migrating sites / databases to/from domains is more of a headache than an instance of Joomla. This is because of how WordPress stores the site configurations. In setting up an MU instance it’s important to know where it’s going to reside from here to eternity and fairly important that the instance is in a root directory. If you wanted to have fine-grain control to push out data to multiple sites WordPress MU isn’t for you. That’s more of an enterprise level feature. Jentla is more suitable for that. (BTW, I using the term MU even though it’s the older term. I know multi-site capability now comes with every version of WordPress and just has to be enabled; it’s easier to refer to the difference as MU though)

Now for the juicy stuff. I’m going to start with Joomla! first.

JOOMLA!

Joomla! is in need of something like WordPress Multi-Site. I’ve looked at the solutions out there and nothing comes close. Joomla, to me, has a lot more over WordPress but when it comes to managing multiple sites WordPress wins.

Speaking strictly from a single-site instance: The learning curve in a Joomla! implementation is a little more complex; that’s simply because Joomla is a more in-depth platform than WordPress. I venture to say you can do anything you want with both platforms (I’m allowed to venture, I have a battle axe). However it doesn’t mean you should. Using WordPress to create a site that has a document repository of 50,000 files, e-commerce and POS integration, and integration in to a CRM  would quickly become a ginormous monstrosity. Joomla does a good job at separating those features out and makes it much easier to manage as a developer; I don’t know why you would use WP over J! in that case.

Separation of Stuff from Stuff

Joomla’s strong point is in how it’s built. Separation of the template area from the actually functionality of the system is a much better idea than WordPress’s implementation. It still baffles me that you can build an entire application inside a WordPress theme – yes, a theme. This might be easier for the user in the on-set but it’s not a good long-term idea for any business. I equate WordPress’s idea of a theme like inline styles in HTML. Yes you can do it. Yes it might be easier if you’re in the HTML and you want to put some styling in there real quick but in the long run it’s a horrible idea. A theme/template is the design shell of the site. It should not include things like galleries, slideshows, contact forms, job boards, or the ability to create CCK-ish functionality. Those things should be completely separated from a theme/template (Yes that’s my opinion. Remember, I have a battle axe).

More Stuff Separation Please

Though Joomla’s separation is much better than WordPress I still think some more needs to be done. I lost a bid on a large job recently because you can’t put the core files somewhere other than the root of the site (like you can with Drupal, WordPress, or frameworks such as Kohana). Losing the bid was my fault for recommending a Joomla solution but that’s another topic. The fancy-pants J! devs will disagree and say “Yes you can do that if…”. Face it, Joomla is not built to do that. The CMS application needs to be separated more from the framework.

I would like to see Joomla! implement some things WordPress does. I really like how you activate / disable plugins (the equivalent to either Joomla components, modules, or plugins). We lock down a lot of our files in a Joomla instance so when we need to install a new group of extensions we have to do a few minor things in order for the install manager to work. What’s cool with how WordPress does it is you upload the plugins to the plugins directory and it shows in a list of available plugins in the admin. From there you choose whether to enable it and install the new database tables or not. Currently, you can do that with templates in Joomla! but I’m not aware of a way to do that with any other extensions. Am I wrong? You can upload a zip and enter the URL in to the install manager but that is not nearly as friendly as WP’s implementation.

WORDPRESS

WordPress is an interesting case. I love working with it. Building plugins are a piece of cake. Their api is easy to use. They have hooks for practically everything. I needed to write several plugins for the SaaS setup we did and it was easy, quick, and gobs of documentation were available if I ran in to a question.

Oddities

I did, however, feel dirty at times. No matter how hard I tried to separate things in classes or use an MVC-esque architecture I was always confronted with the fact that WordPress is not MVC-based. I’m sure WordPress fans will say it doesn’t need to be MVC. Whether that’s right or wrong more separation or flexibility would be nice.

Little things like the hooks/ actions drive me nuts. Consider the following:

add_action( 'admin_head', 'myFunction' );

The second argument is a call to a function. Did you notice it’s a string? Yeh. Me too. There’s no way of doing something like:

add_action( 'admin_head', $someObj->myFunction(someArg) );

This is really frustrating to me as there’s no way of programmatically creating these actions within something, like a class. It ends up leading to just a plain ole’ long list of functions. I don’t know a way around this currently. You have to pass a string in to that argument.

In Defense

I mentioned earlier that WordPress is not MVC-based and you can build practically a full application within a theme. In it’s defense it was built originally as a blogging platform. It grew to things like custom-post types and building full-scale applications. I’m sure if they had things to do over again they would’ve planned some things differently but as a platform grows in to new features it has to carry the existing code base with it. I really do like WordPress’s hook system and it’s API. It can be better but I do understand probably why things are the way they are.

Joomla could learn a few things from WordPress 3.0′s new custom post types. I know it’s a moot point whether Joomla! should have a CCK or custom fields built in but the way a WordPress dev can create custom post types is just totally cool. Picture something like the JHTML class but for adding new fields to the article manager.

THE DIFFERENCE

So what’s the difference between the two? The difference is the need.

We chose WordPress’s multi-site capabilities over Joomla’s superior architecture because it would save time, money, and we probably couldn’t have built a better implementation in to Joomla. WordPress’s multi-site platform is proven to scale too so to us it was a no-brainer.

Though I’m a Joomla guy this blog is built in WordPress. There are other Joomla-ers that do the same. I would never use WordPress as an E-Commerce platform or for an application where multi-tiered user level access is required.

Despite the great experience we’re having with WordPress right now we’ll continue to use Joomla! for the custom sites we build. If a client has a reason to manage multiple sites or if the client’s site is a few pages and a blog, we’d use WordPress. Why? Because I have a battle axe.

Comments: 13

  1. Ajmal says:

    Nice write up!

    You covered the whole Joomla WordPress comparison very well.

    It’s good to see a real-life comparison post from a guy who actually use both for his works, rather than fanboi’s posts (mind you some are without battle axes!)

    Good read – very informative and at the same time, gotta love the humor!

    ps: btw im too fast to be axed *dodge* :P

  2. Wow nicely written!

    Been a long time since I read something this well written when the subject is CMS comparison.

    Thanks for sharing!

  3. Ryan Johnson says:

    Hey James, I just came across this article and it is great… very informative! I like the ease of use that wordpress gives me for a beginner, have never used Joomla for a site, but have played with it. It does seem more for the enterprise level sites with custom apps and coding required. I also see you put up a bunch of joomla video tutorials on here – I will check them out!

  4. Quote: If a client has a reason to manage multiple sites or if the client’s site is a few pages and a blog, we’d use WordPress. Why?
    That is still not a good reason since Joomla has and extension to even handle this.
    Also Jcomment works just like wordpress blog and can be added to regular joomla articles of any type.
    Hence, WordPress quicker to develop, but not a serious corporate platform, secure as Joomla and it leaves a lot of open ends for sql injections and xploits because the coder may not write secure code on their widgets. Yes I know both Joomla and WordPress as well but don’t take WordPress serious, especially for a ecommerce solution.
    For a social network site it is seriously lacking for a acl (multi level user accounts) and doesn’t really have a rating system! Major drawbacks.
    The only thing I can say is a WordPress is easier to code for a theme especially when you have to use workarounds to get the modules (widgets) to look like you want without a multi-chrome module situation like Joomla uses.
    Great Article though. I agree with about 99% of it.

    • Rick says:

      I actually think coding Joomla templates can be done much faster than WordPress themes.

      Regarding this: “Hence, WordPress quicker to develop, but not a serious corporate platform, secure as Joomla and it leaves a lot of open ends for sql injections and xploits because the coder may not write secure code on their widgets.”

      Lots of corporations / enterprises use WordPress. Security: I’m sure you can find just as many Joomla sites hacked as WordPress sites, per-capita. A Joomla coder can leave the same security vulnerabilities as a WordPress coder can – I don’t think that’s the reason to choose one platform over the other (notice I didin’t mention anything about security, SEO, UI, UX).

      Also, I think developing a major site in WordPress is not quicker to develop. If someone is trying to mold WordPress to a specific task that it was not intended, though it’s possible to do just about anything, it will take longer than using something like Drupal or Joomla (A good example is the SXSW CMS competition – the WordPress development took the longest).

      Regarding your question to my comment about using WP for multi-site and small client sites: The reason why is the learning curve for a simple site built in WP is much less than the learning curve for a simple site built in Joomla. In a simple WP site: You don’t need to know about module positions and menu items. Those two things make clients’ heads spin. Obviously Joomla is much more powerful for having those two things but it’s not easy for clients to grasp.

  5. This post is really great! The point is whether you use wordpress or Joomla it doesn’t matter as long as the website turned out good and very pleasing in the eyes of many potential costumes. The reason why we get to hang on this tools is to be on the top rank of Google. With regards to Joomla, I used it in my daily business and it works for me. I could say that I was able to launch my website and earned more money. My secret? I purchased a Joomla video tutorial at amazingly low price and boom!!! Success followed so fast.

  6. Ivan Bayross says:

    I really enjoyed your laid back writing style. The humor injected made the reading easy.

    I have always longed for a Joomla based E-Commerce website which ran a WordPress based Blog. Which would be especially good for SEO.

    I would then enjoy the best of both worlds.

    Today bridges between Joomla and WordPress are clumsy and definately not spot on.

    Hopefully one day my dream of accessing the best of both worlds will come true.

  7. Chisomo K. says:

    the battle axe is amazing, i want one for christmas please.
    but nice write up, im still stuck between the 2 but im sure il figure it out.
    cheers.

  8. Nice write up!You covered the whole Joomla WordPress comparison very well.It’s good to see a real-life comparison post from a guy who actually use both for his works, rather than fanboi’s posts (mind you some are without battle axes!)Good read – very informative and at the same time, gotta love the humor!ps: btw im too fast to be axed *dodge* :P

  9. ABTOP says:

    There is one crucially important thing missing in this article to keep it more relevant – version numbers. Thankfully, from the publication date we can be somewhat reasonably certain the author is talking about the state of art as of Joomla 1.5 and WordPress 3.0

  10. Ricky White says:

    Awesome info! I have been searching for something such as this for quite a while now. Bless you!

  11. David Allen says:

    First Of all Great Post: I really enjoy the idea of being able to read good information about topics that are interesting to my readers, because the more information I can get from other site or blogs the more infromation I can pass on to my readers. Understanding wordpress blogs is a big deal when learning to really take care of my wordpress blog and giving my readers the things they need to keep their new wordpress sites up and running well! Anyway thanks again!

  12. One is mainly a CMS the other I would just use for blogging. Care to make a guess as to which is which?

    For more complex work I would just use Drupal

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>