CMS Roundup: The search for the perfect Content Management System
What is a CMS?
CMS stands for Content Management System. In the old days, all content was stored in static, HTML pages. Adding a page meant creating a new file, copying the layout from another page, and then adding the content. If you wanted to add a new item to the menu, or add a banner to every page, you would have to manually change this in every page. Extended search and replace made this easier, but wouldn't work perfectly every time. This is how I did it on my very first sites, and needless to say, none of them were very large, and they weren't changed a lot.
The next step in my progression as a designer was shtml. Now I could place the code for my menu in a separate file, and include it server-side every time a page was loaded. In fact, my entire layout could be stored in one file, and I could change the look of my site instantly. This helped, but still lacked the power that I needed.
Next came PHP and MySQL. When I learned them, they opened up a whole new world to me. Now I could not only store the layout in a separate file, I could easily change the format of the content as well. I could store my content in a MySQL database table, then insert into the page however I wanted. Then I created my own custom CMS for my site, but it isn't very powerful and only works for my site.
My latest step? Open Source Content Management Systems. The idea is that hundreds of experienced coders working together can create something better than I can. Now a CMS won't work for every site that I develop, but I want something that will work for the average site.
A word of warning. Your choice of a CMS is VERY important. This is how the site will be changed and content stored. Once you deploy a CMS, it is very hard to switch to another, and it only gets worse as the site gets larger. Plan to stick to one CMS unless you are prepared to undergo a major redesign.
Is a CMS for me?
It depends on your project. If you would people to edit your site without using HTML, then a CMS of some kind would be a good idea. If the page is going to remain the same, and not be changed a lot, probably don't bother with a CMS. But if you want to easily add on to your site without ever messing with code, CMS's will help. If you plan on having a lot of content, CMS's will help.
Advantages
- Custom Addons: Many CMS's are open source, which means that people create lots of "modules" or addons that add functionality. A CMS can add buttons for a PDF version of the page, print the page, email the page, highlight search terms in a document, and provide tool tips for abbreviations - all at once, without you having to write these scripts.
- WYSIWYG: You or your client can edit the content without having to touch the files at all, and even use a WYSIWYG editor.
- Templates: CMS's help to separate content from layout, which means that if you want to change your site layout, you do not have to redo every page.
- Time: If you are going to make your site CMS driven anyway, taking code that has already been written will save time.
Disadvantages
- Flexibility: This is the greatest downside. It can be very hard to change little things in most CMS systems. And the more complex they become, the harder it gets. You have to fit your site to the CMS, not the other way around. But you don't have to code your own CMS.
- Learning Curve: Every CMS is different, and take time to learn how to use. Some are easier to learn than others, but all of them take some getting used to. I have tutorials on my site to help you learn these systems, but it can be aggravating sometimes trying to figure something out. So if you're a PHP expert already, you still have to learn a few things before you can start hacking code.
Custom CMS?
Depends on your requirements. Right now, I used my own CMS on my site because all I needed was to change the layout and organize my tutorials. It is simple, so it is very easy to change. But this simplicity also means that it doesn't have a WYSIWYG editor to create or edit content, but I prefer typing XHTML anyway.
Now the big question. What is the purpose of this article?
I wrote this article to make the search for your perfect CMS easier. To show you why a made the decisions that I did, and where my opinions come from, here are some of the requirements that I had:
- Page-Based: I want a CMS based on pages, not posts (like blogs).
- Runs on LAMP: In case you don't know, LAMP stands for Linux/Apache/MySQL/PHP. My favorite hosts all use this setup.
- Runs on shared hosting: Same reason as above, I want to be able to host it without an expensive dedicated server.
- WYSIWYG editing: clients need to be able to add content without getting their hands dirty.
- Friendly URLS: Not a must, but a preference. Makes your site much more search engine friendly.(i.e., /tutorials/index instead of page.php?id=112§ion=10&category=2)
- Open-Source: Free as in speech and free as in beer. I believe in Open-Source (I run linux on my PC) and with all the choices out there this was a no-brainier.
- Easy template engine: Easily change the layout of the entire site.
- Flexibility: Integrate my own PHP scripts easily to the site.
- Modules and Built in Applications: Are there a lot of modules and hacks? The bigger the community, the better the product, usually (especially with open source). I would like to be able to easily add search, polls, chat, etc.
- User Management: Is the system easy to integrate into custom scripts? Can you put permissions on directories?
- E-commerce: Is it possible to integrate a e-commerce solution into the site? Does the CMS come with e-commerce capabilities.
- XHTML / Standards Compliant: I used XHTML and CSS to design pages, so I would prefer if the CMS outputs valid markup.
- Auto-Generation of Bread Crumb Navigation: This would be nice
- Usable UI: I want the admin UI to be simple and easy to use. I don't want my clients to have to read 300 pages of documentation in order to add a page to their site.
- Easy Installation: The less time I spend to make everything work, the better for me and my clients.
- Documentation: This isn't a must, but it would save a lot of time while I learn the program.
For days I scoured the web comparing tons of CMS systems, and in the end, narrowed it down to three CMS's. There were a lot of smaller CMS's out there that looked good, but I didn't have time to look at every one, and felt that the larger the community, the more likely it was that they would have the features that I needed. Here are the contenders:
- Mambo
- Exponent
- Sitellite
I couldn't find out everything I needed to know just by reading through forums and looking at pretty screenshots. My first step was to demo all of these to make sure they met my requirements. Playing with their demo was not enough though, and I needed to know exactly how they work. So to test these I installed them on my server, I tried creating a site with each. In the following sections, I will document on each step of the way, as well as rate each of these products.
Note about Browsers: I use Firefox (100 times better than Internet Explorer, try it and you'll see), but unfortunately, most of the WYSIWYG editors in these programs are for Internet Explorer only, with the exception of Sitellite, which works fine in Firefox. This isn't a problem for me, because I know HTML, and most clients use IE anyway, so as of now this shouldn't be much of a problem. Mambo, for example, includes another WYSIWYG program that works in Firefox too.
"You only review three!!??"
Yes. There are literally thousands of CMS's out there. I narrowed it down to three because I couldn't test all of them. I wanted this CMS guide to be different. I wanted to actually use these CMS's, in real world development, for real clients, instead of installing them and just poking around, and guessing about how good they were. I wanted this guide to have quality. I hope that this is what separates this guide from the others.
This is about the process, not a particular CMS
I hope this is what will help every reader. My goal was not to just recommend a few CMS's, and list their upsides and downsides, but to lead them through the process of thinking about what you need out of a CMS. Many people never think about having to add their own custom script, or tweaking the code. I hope that this forces this to think about what they need out of a CMS, and hopefully let them make a better informed decision.
The Reviews
Here are the reviews of the three content management systems. They will open in a new window, but they will also have a link back to this page.
Exponent Review
Mambo Review
Sitellite Review
Current Comments
8 comments so far (post your own)I needed a CMS platform for customer sites and two sites of my own, and I finally *finally* stumbled onto Exponent CMS. It rocks. Now if some folks will just make some good themes for it so I don't have to cobble and tweak all night! I do think I would include a couple other CMS packages in the roundup, though. The latest Postnuke is nice software for a community site and seems to be well-finished. Something WiKi oriented belongs in the list, too. Tikiwiki is a pain in the backside to manage, but it does have a lot of desirable features. I'm fond of the Wikka Wakka Wiki.
Thanks for your informative site! It's taken me months to learn most of what you have here already parsed and ready to read.
s
Posted by Steve Milstead (http://blog.nbex.net)on Wednesday, 05.4.05 @ 03:47am | #526
Looking for a CMS for a number of sites of my own- and it absolutely has to be valid XHTML out of the box:
* Xaraya is but its CMS model is way too complicated and doesn't fit my requirements (I need to do something like have a page layout/structure based on site section or category - that's not possible with Xaraya/; otherwise it's very powerful and has clean code)
* Mambo isn't and besides their code is a mess (I looked), I don't even want to begin to hack that
* Drupal's own site isn't valid XHTML (though the DOCTYPE declaration states it is) - and a quick chat on #drupal on irc.freenode.net soon revealed they're not really interested in standards-compliance, what matters is "looks" and they "already have enough users" (I can do my own "looks" but I want to start with valid XHTML)
Now Sitellite sounds fairly interesting from your review but you say you prefer Exponent. However, trying a link from two different pages, there is no actual Exponent review that I can find - just an empty "Tutorial" page. (Is this a problem with a CMS maybe??)
Anyway, it would be nice if the (an) Exponent review were actually available ...
Marjolein
Posted by Marjolein Katsma (http://iamback.com/blog/)on Saturday, 06.11.05 @ 10:42pm | #565
I'm sorry. I changed the page name, and forgot to update my internal links. Thanks!
Posted by Brian Zimmer on Saturday, 06.11.05 @ 10:42pm | #566
Excellent real-world article on CMS's, Brian! Thanks for sharing! We have been building custom sites for clients the old-fashioned way -- hand-coding. I keep tossing around the idea of utilizing a full-CMS system for those that require frequent updates or for those that demand self-administered maintenance. Your efforts have gone far to help me balance requirements and get some insight into a few CMS systems I've been delving into myself.
I noticed that some CMS packages like Mambo, due to their steep administration learning curve, are not exactly what I'd call general client-friendly. I guess it's a balancing act between features, flexibility, and ease-of-use.
Anyways, thanks again!
-Harris
Posted by Harris Ueng (http://blog.elevenfeetmedia.com)on Tuesday, 06.21.05 @ 08:32pm | #578
Great Article..Keep up the good work!
Posted by wow on Wednesday, 07.19.06 @ 02:39am | #2312
My collegues and I have been working with several Open Source CMS/Cart solutions over the past 2 years, and have not been completly satisfied with anyone in particular!
We have decided to start to develop our own CMS/Cart solution, and are interested in getting some feedback about what people want.
Of course, we know what we would to see in it, but what about other people?
We would like to try to write the fabled "perfect CMS". We know the dificulty that will be involved, but we are ready to undertake the challenge!
We have already developed a core for the project, which is a completly extensible framework to build on, now we want to know what the public want!
Our aim is to create a system that ANYONE can use staight from the box, but still give developers and web designers alike the ability to be creative.
We have been researching the subject, and came up with our first rule - We want the user (if they need it) to have COMPLETE control over the layout and appearance of their site. We are achieving this with a combination of scalable site elements controller and CSS, but we need more to make sure people can use it without having a degree in HTML, CSS and PHP.
Any input would be greatly appreciated, and if anyone else would like to get involved then we would love to hear from you!
All we ask is that you bring a skill to us that we need.
Regards
Ben Duffin, MD unisupUK (Universal Support UK)
Posted by Ben Duffin (www.unisupuk.com)on Monday, 11.20.06 @ 05:09am | #2667
So, when will you update some of the CMS's? All these articles seemed very interesting, until I saw that the posts are from somewhere in 2005, there is another web now, now with higher needs
Can you make a review of the new ones?
Posted by Shutzu (http://blog.protempus.ro)on Monday, 01.21.08 @ 03:47am | #3161
So, when will you update some of the CMS's? All these articles seemed very interesting, until I saw that the posts are from somewhere in 2005, there is another web now, now with higher needs
Can you make a review of the new ones?
Posted by Shutzu (http://blog.protempus.ro)on Monday, 01.21.08 @ 03:49am | #3162
Rate this Tutorial
Current Rating: