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.