Open Source CMS Evaluation - Part II: Customization
This is the third and final post in my quest to find the best open source CMS for my needs. Previous posts include Building a website with an Open Source CMS and Open Source CMS Evaluation - Part I: Installation. Based on these two posts, reader feedback, and my installation experience, the final round of candidates include Joomla, Drupal, Magnolia, OpenCms and MeshCMS. These are listed in the order that I expected the final rankings to be - just to let you know what my feelings were going into this final process.
The CMS I choose will be used to build Virtuas's website, as well as customers of Virtuas. By using a CMS to produce websites, the design is separated from the content - and the "adding content" process can be much easier for the customer. This greatly simplifies the "creating a website" process for us, and will likely save our customers a fair amount of design costs. In addition, it makes it much easier for site owner's to maintain the site after it's been published.
As for Virtuas's site, it's static right now, and we'd like to change that. We want to ability to show recent blog posts on the front page, as well as make it easy for Practice Leaders to publish articles. In addition, it should be easy for our designers to change the design (1-2 files) and for our marketing team to add press releases and update existing content. Tomorrow, I'll be presenting my choice to the rest of the team, and we hope to design and start publishing content this week. Our goal is to have a new Virtuas site up and running one week from today.
My goal today was to see how easy each CMS was to customize. In addition, I wanted to see how easy it was to publish an article, as well as to aggregate our latest RSS feed titles onto the homepage. To test the design customizability, I tried to reproduce the current Virtuas homepage. Then I published Jeff's Geronimo Article, and attempted to aggregate feeds from Maria's and Bruce's blogs. My main reason for putting the Java CMS'es lower than the PHP ones in my suspected order of finishing is because I don't they don't have the RSS Aggregation feature.
Rather than just jumping in and using each CMS in anger, I tried to start off by reading the documentation for each. My main focus was on how to customize, but I also looked for an RSS Aggregation feature and ease-of-publishing for articles. I read documentation for 15-20 minutes, then dived into creating a custom theme and adding content. I installed each CMS on my PowerBook, and used Safari and Firefox on OS X, as well as Firefox on Windows XP in some cases.
MeshCMS - I spent 40 minutes looking into MeshCMS before I knew it wasn't the one. The main problem I had with it was the upgrade process. To upgrade to a new version, they recommend that you use symlinks to your files and store them in a separate location on the file system. While this may work for some, it seems a little brittle to me. I'd rather use a solution that keeps everything stored outside of the application by default. Creating a new theme was quite easy - but there didn't seem to be any support for multiple menus (i.e. global and local navigation), nor was there any means to customize the menu template.
I did manage to blow up the whole application at one point, simply because I was missing a JSP tag in my template. Since I had this template selected for the administration as well - it hosed the whole application and spit out stack traces for each page. Luckily, renaming the template directory caused MeshCMS change to revert to the default settings and everything was fixed. The interesting thing about MeshCMS is it looks very similar to the SiteMesh+JSPWiki CMS I wrote a few weeks ago. However, mine allowed full menu creation by editing/creating wiki pages.
OpenCms - When I installed OpenCms a couple of days ago, I initially did it on Windows. Everything worked fine and after waiting 18 minutes for everything to import, I was able to browse and edit the default site. However, today was a different story. The version I installed on my Windows XP box no longer works. When I got to http://localhost:8080/opencms/, I get a directory listing with "resources" and "setup" on it. The same day I installed OpenCms on Windows, I installed it on my PowerBook. It took 38 minutes to complete, but nevertheless, it said the process worked. Today I re-ran the setup and now I have the same result as on my Windows XP box. If the setup and installation is this fragile, I'm not interested. Blame me and the fact that I'm a redneck all you like, but the Magnolia installation is still functioning just fine.
Magnolia - I spent about a half hour with Magnolia before I knew it wasn't for me. While the admin UI is impressive with all it's Ajax goodies, creating a new template is cumbersome and not designer-friendly at all. You have to create a "new node" and then a bunch of "data nodes" under that. The documentation (a QuickStart PDF) is 17 pages long and forgets to mention the "title" data node is needed before the template will show up properly as an option. Once you've created a new template in the admin UI, you have to create the template on your file system - inside the web application. This may make it difficult to upgrade if you're deploying Magnolia as a WAR. The worst part is after creating the template, you have to restart the server. WTF? That seems a bit ridiculous to me. Granted you'll likely be designing your master template in a development environment - but good luck installing Magnolia for a client and having them create a new template.
One of the most interesting things about Magnolia is most of the folks who've recommended it have highlighted that it's "built on the revolutionary Java Content Repository Standard JSR-170". While I can admire the technical merits of this effort, it doesn't necessarily make this a good product. A good product, IMHO, is easy and intuitive to use. The admin interface for Magnolia is not intuitive. I like the fact that I can right-click on a page/node/etc., but on my Mac (with Firefox and Safari), the real context menu shows up on top of the application menu after a second or two. I'm going to pass on Magnolia due to the fact that its not designer friendly, as well as the fact that templates can't be edited in the browser. It looks like something that might be very interesting for developers, but it's simply not friendly for HTML developers.
At this point, it's 10:30 p.m. on Sunday night. I need to make a decision before I go to bed tonight and I'm scheduled to meet with our designer at 7:00 a.m. to start implementing his new design. I haven't started the PHP options, and I've had a couple new ones recommended on my blog while doing this evaluation today. Mal recommended Exponent and Jacob recommended MySource Matrix.
Because I'm down to two choices (and I haven't tried to customize either one), I decided it was worth looking at both of these PHP solutions. Exponent installed easy enough, but MySource Matrix failed miserably. Joomla, Drupal and Exponent all had an easy-to-use web installer that *just worked*. MySource spit out a bunch of permissions errors (even after chmod -R 777 *) and told me I had to run .php files from the command line. Since the other options all installed easily, I decided not to continue evaluating MySource Matrix.
Exponent - I didn't spend very long looking at Exponent. At first, I didn't think it had any documentation b/c it was a bit difficult to find on their site. Maybe it's because they don't have a background set on their site and my browser defaults to gray - making the gray text difficult to read. Even w/o documentation, I was able to navigate around the default Exponent site and figure out how to edit content. It's an easy UI to use, but again I was disappointed to find the "corporate" theme doesn't have a white background. Most good web designers know to set a default background color - and it always annoys me when someone misses this step. It's possible they don't set the background on purpose - like Yahoo does.
The deal-breaker with this CMS was that I couldn't edit any files w/in my browser to change anything (all I wanted was a white background). While it's theme management and templating looks powerful - it's another file-based system where you have to configure everything and then upload it. I agree that this is likely the path that web designers will want to use to get started - but I think it's important that files can be tweaked on-the-fly. Using a good FTP tool is certainly an option, but I'd prefer theme-editing to be part of my CMS. The one thing I did like about this CMS was the clean URLs. Granted, they aren't static-looking by any means, but having a simple ?section=# seems cleaner than the multiple parameters that other systems use.
Drupal - This CMS seems to have a lot of things I want/need as first class citizens. A blog, news feed aggregation and the ability to provide pretty URLs (aliases) for more cryptic CMS-type URLs. I couldn't get the URL aliases to work, but I suspect I was doing something wrong and didn't give it enough attention. I didn't spend a whole lot of time with this CMS, but rather just browsed around the admin interface and read a bit about how to create themes. I installed the PHPTemplate engine, but never installed any themes. When I found out I couldn't edit any of the uploaded templates contents, I started to get discouraged by Drupal. One thing I found disappointing, with both Drupal and Joomla, is they seemed to hard-code my server name into many of their URLs. When I installed these applications on my PowerBook, I used "localhost" for the server name. When testing out things from my Windows box, I couldn't even login to Drupal b/c it kept redirecting me to "localhost". Joomla had a similar problem with localhost, except that it only screwed up stylesheet paths. I was still able to administer the application.
Joomla - My time with Drupal was short-lived, mainly because I was itching to start playing with Joomla - which I've heard a lot of good things about in the past week. Furthermore, it's got a really good-looking administration UI. It's the type of UI that a designer would look at and appreciate. When trying to edit pages from my Windows box - everything worked, but I couldn't save the page. No JavaScript errors or anything, there was simply no reaction. Editing pages and content from my PowerBook solved the problem. I was able to easily create a simple theme that looked like virtuas.com and upload it. The theme isn't perfect, but it was easy enough to create using the Velvet theme from Joomlashack.com as a template. The weird thing about Joomla, at least with the default install, is there's no notion of pages. Everything is some sort of news item. In the pages I created, I was also unable to remove all the authoring notation and other junk that I don't want to show. The admin UI had options to remove the stuff, but even after "applying" the changes, they still showed up in the reader view.
It's now 1:30 a.m. on Monday morning and the last three CMS's definitely didn't get the attention they deserved. Nevertheless, I think they're the best of the bunch. Not only were they much easier (and quicker) to install than the Java options, but their UIs are also good-looking and easy to use. Drupal and Joomla both seem like excellent choices. Drupal seems to be more of what I'm looking for since it has all the features I want, and allows aliasing of URLs to make it appear like a static site. However, Joomla is a lot more eye-catching and that alone makes me want to use it. Neither of these CMS'es seem to have a full-featured blogging engine, at least not one that's as good as Roller.
Conclusion: I'm going to recommend we use Joomla,
and look into doing some URL Rewriting to pretty up it's URLs. I doubt
there's a whole lot we can do, but I'd like to figure out a way to make them
a bit more search engine friendly. Drupal seems like an excellent choice
as well, but the fact that I can't edit templates from the UI kinda sucks.
Thanks
for listening y'all - all your comments and feedback during this evaluation have
been great.
There are some short answers to your problems with Drupal:
You can edit your themes using the extra module 'Theme Editor':
"Allows users to edit themes without access to the file system, entirely through a web-based admin interface."
http://drupal.org/project/theme_editor
The localhost problem can be solved by adding an extra 'site' in the 'sites' directory. So Create another directory next to default which has the reference to your windows box. This way you can setup multiple sites for several domains with just 1 installation of drupal. The problem with the url-aliases is probably a wrong setup of apache. Because it works very well on my site.
I hope this helps you and maybe changes your mind....
Posted by Armand Janssen on September 26, 2005 at 07:50 AM MDT #
Posted by -FoX- on September 26, 2005 at 08:46 AM MDT #
Posted by 85.18.136.92 on September 26, 2005 at 09:21 AM MDT #
Hi Matt,
I came to the same conclusion some weeks ago and had to chose between Joomla!/Mambo and Drupal. I chose Drupal, because it is nearly impossible to get pure xhtml without tables for layout with Joomla!/Mambo. I really hope Joomla! 1.2 changes this. Besides that I think it depends on site you build.
@-FoX-: At the moment Joomla! is nearly the same as Mambo, except for the brand. Miro, the company behind Mambo, and the core-dev team split up and they continue under differend brands.
Posted by Hendrik Noot on September 26, 2005 at 09:53 AM MDT #
Posted by Lee on September 26, 2005 at 11:09 AM MDT #
Posted by Pedro Costa on September 26, 2005 at 11:48 AM MDT #
Posted by Maxi on September 26, 2005 at 12:05 PM MDT #
Posted by td on September 26, 2005 at 12:25 PM MDT #
http://drupal.org/node/15365
and some explanations
node alias allow the poster to create an easy to remember url to his post
www.root.org/alias
flexinode allow anyone with proper role to create a new kind of node, associate it a form, st when the user try to access that node, the form will come up first.
And I also forgot to mention taxonomy, the realllll distinguishing feature of Drupal !
Have a nice day Matt
Posted by td on September 26, 2005 at 12:31 PM MDT #
Posted by Luciano Vernaschi on September 26, 2005 at 12:33 PM MDT #
On the PHP side I am evaluating Mambo/Joomla and Drupal. I read that you have already chosen Mambo/Joomla, but maybe you can spend a little time reading these (recent) articles that I found interesting: one, two, and expecially this one: three.
Well, it seems that Mambo/Joomla is not clearly designed both in the front end (templating, HTML, CSS) and in the back end (API for plugins/modules).
On the Java side I think that OpenCMS and Magnolia have no rivals at the moment.
Posted by Marcello Mannino on September 26, 2005 at 01:20 PM MDT #
Lee - I'm very aware of Pebble and know it's author (Simon Brown) quite well. However, we're not looking for a blogging engine - even it it does make a decent CMS. IMHO, Roller or JSPWiki could be considered good CMS'es too. Primarily, I don't want to be the guy recommending a blogging engine to large corporations who are looking to adopt an open source CMS.
Pedro - I appreciate your persistence and agree that it's likely my ignorance that keeps me from liking OpenCms. However, you have to understand my situation. I'm looking for <em>any</em> excuse to trim down the number of viable CMS'es. This is *not* saying that OpenCms is a bad choice for other folks by any means - simply that it's not one for me (b/c it keeps failing the initial installation test). Also, I'm trying to hide the fact that I'm using a CMS - so it's a little annoying that "/opencms/" is going to show up in the URL. And why is it so hard to redirect from the context path's root to /opencms so rookies like me don't have to remember the starting URL?
The problem with this whole evaluation was it was very much rushed. I had to make a decision in 3 days and I didn't have time to thoroughly evaluate each solution out there. I apologize to those of you who are offended that I didn't pick your CMS. However, are the ones I've chosen really that bad? Is your CMS of choice *that* much better than Joomla or Drupal?
Posted by Matt Raible on September 26, 2005 at 02:51 PM MDT #
Your choice is probably the right one. Considering how much you seem to value the visually attractive interface in the Joomla admin, you would not like Drupal as much. I hope you never need a decent categorization system because Joomla has none, whereas Drupal is born with the most powerful of the kind. Most people seem to overlook that feature, and not understand the power of it.
Posted by Gunnar Langemark on September 26, 2005 at 06:03 PM MDT #
Posted by Armand Janssen on September 26, 2005 at 06:31 PM MDT #
Posted by Niall on September 27, 2005 at 12:55 AM MDT #
Posted by Richard Williams on September 27, 2005 at 09:51 AM MDT #
Last comment about Magnolia. Indeed, it is not the JSR170 usage that makes Magnolia a good product. It is something you need or not. I need to be sure that in a couple of months I am not required to write some hundred lines of code just to move my content from a solution to another. This is something that may look small at the beginning. But later, if you performance and scaling doesn't match your needs, you are gonna be doomed.
The problem with Firefox drop-down menu is something that can be configured from inside Firefox (I have faced this problem and somebody pointed me to the correct solution): Tools -> Options -> Web Features -> Advanced -> and check Disable or replace context menus. That's all.
I kindda agree that Magnolia doesn't look very appealling from the point of view of a HTML developer/designer.
Finally, your decission should fit your needs. What I have suggested kept more about what my needs were and the good and bad I have identify. Good luck,
./alex
--
.the_mindstorm.
Posted by Alexandru Popescu on September 27, 2005 at 11:53 AM MDT #
1) No, you do *not* need to restart magnolia after creating new templates. This was the case with 2.0 but since 2.1 all changes to the configuration are picked up while the system is running
2). as pointed out by alex, the context menu issue is not a magnolia problem. We develop and use Magnolia on Mac's and never had the issue you are talking about.
3) templates itself are simple JSP files that can be edited easily with any text editor out there. In fact, feedback from many was that they would not like templating to happen in the browser, as this is limiting. It is on the other hand straight forward to write a "meta template" that lets you configure lots of the look & feel, like uploading CSS or images. So its all a question of what you need / are willing to do yourself.
4) templates need to be configured to be seen by the system. I agree that this is not extremely user friendly but it is well documented and very flexible. A template config panel that makes adding templates easier would definitely be a nice addition though, and is on "wanted" list.
Best of luck
Boris
Posted by Boris Kraft on September 28, 2005 at 07:59 AM MDT #
You can also change the hard coded URL in the /sites/sitename/settings.php file. There is a lot of development power here because you can easily "move" sites from testing.example.com to www.example.com once the site is done and not worry about having to change things in multiple places.
Posted by Joshua Brauer on September 28, 2005 at 01:59 PM MDT #
Posted by Christian Ey on October 14, 2005 at 02:01 AM MDT #
Posted by Karthick on December 21, 2005 at 01:54 PM MST #
Posted by CP on July 05, 2007 at 09:24 PM MDT #
I have recently been evaluating CMS solutions as well and found a interesting one called Silverstripe. It won an open source award in New Zealand recently and I believe it was used for the recent Democratic Party's National Convention website.
So far I have been impressed by it as it seems to have a bit more out of the box than the others.
http://www.silverstripe.com/
Posted by Mark Wolfe on October 07, 2008 at 08:46 PM MDT #
Posted by Anthony Musselwhite on December 03, 2008 at 09:39 PM MST #
Posted by Hein on March 11, 2009 at 09:02 PM MDT #
Posted by Tony Palmer on November 25, 2009 at 04:32 PM MST #
Posted by Matt Raible on November 25, 2009 at 04:34 PM MST #