Essentially, these systems all manage a database containing your content, providing a method of input (usually Web-based), and outputting Web pages from the database according to the specifications in templates and configuration files. The fancier systems feature support multiple output formats, access and version control, and are built around the concept of publication "workflow," as you'd see in the busy production area of an old-fashioned print publication.
You can always build your own CMS, or resist having one altogether -- a few people still publish personal blogs in static pages of hand-coded HTML, while others rely on tiny homemade hacks with command-line tools such as m4 and procmail -- but chances are you're better off using one of the dozens of open source CMS solutions available.
What to look for
When you're considering a CMS, some of the first questions to ask include:
You want a system that is open source licensed and whose requirements are compatible with your environment. Most open source CMS packages are GPLed, and run on LAMP (Linux, Apache, MySQL, and PHP).
Almost every CMS home page promises you that it's the answer to everything, but the quickest way to get an idea of what it can really do is by looking at how other people are using it. When evaluating a CMS, follow the links to sites that actually use it -- you'll see that Mambo, for instance, has a lot of good-looking small business sites. Most CMS home pages will provide a list of sites, but not every CMS has its own design magazine, as is the case with Textpattern.
Make sure the software is still being developed. It's also good to know if it has been around for a while, or if it's a brand-new project that just made its 1.0 release last week. And if yours is a commercial venture, make sure that some kind of support is available. Bricolage, for example, has a commercial support venture by its principal author, while the TYPO3 Association maintains a list of consultancies that provide support for their software.
Choosing a CMS is like shopping for a car, or picking out a text editor -- you can get a good idea of what you might like by reading about it and taking a look at feature lists, but that gets overwhelming fast. You won't really know what's right until you actually try a few of them.
Fortunately, there's an easy way to do that. The Open Source CMS site lets you demo a working default installation of just about every open source CMS system in existence, giving you two-hour access to a complete demo of more than 100 systems.
Which is the right one for me?
Here are some of the best Linux-friendly open source options, sorted for a number of purposes:
One of the first ways to narrow down your choices is to list out your necessary feature requests, such as SSL, FTP access, or load balancing. CMS Matrix not only has a thorough list of such features tallied for every major CMS, but it lets you compare up to 10 of them side-by-side.
Of course, if the system you're considering is lacking in a certain functionality, you can see about letting other software handle it. For instance, you can add forums with phpBB or SMF.
If Python's your thing, you'll feel comfortable with Zope. Wiki lovers gravitate to the wiki style of systems like Tikiwiki, while OpenCms, on the other hand, is Java- and XML-backed.
To find what's out there in your own favorite language, check the Open Source Content Management System List. Here you'll also find interesting systems such as the fabulous Daily Chump Bot, which lets you publish a collaborative weblog via an IRC channel.
If you already have a favorite site in mind that has a structure or a feel you're going after, that makes it easy. Find out what they're using.
Bricolage was originally built for Salon.com. If The Onion is more to your taste, and you need forums, check into Drupal.
One of the oldest (and most copied) CMS packages around is Slash, the system that was written for our sister site, Slashdot.
You're not going to build a huge portal site in a day. Such systems generally have a huge install factor, and take time to get you configured and moving. There's a few exceptions, such as Blosxom, which can get you started in less than 15 minutes. Plone is noted for its ease of installation and quick use out of the box (it has good documentation, too).
But if you just want a simple blog, then you can cross a lot of these systems off your list, since you won't be needing the collaborative features that many of them have. Scheduling can still come in handy -- if you're planning a weekend away from the net, it's nice to be able to write up several entries in advance and have them go live automatically at preconfigured times.
That's what templates and themes are for.
All of these systems require you to make design choices, but they each provide a default, out-of-the-box look. You want a system that gives you a good choice of themes or templates.
Joomla comes with a lot of open source templates. WordPress, which is very easy to use, has many themes. Textgarden is a whole site devoted to templates for Textpattern.
Then you're in luck, because with many of these systems, you don't need to know tags (at least when you're entering content). In particular, OpenCms is good at converting text to HTML, WebGUI lets you edit it visually, and Textpattern's editor, Textile, beautifully converts text to HTML with an emphasis on good typography.
Too many CMS environments aren't customizable enough. Some say that every site made by such-and-such a system looks identical -- the same page layout, site structure, URL encoding schemes, and all the same features and components.
Customization is more than picking themes. Good open source CMS packages will have a user-contributed library of routines and customizations. TYPO3, one of the most sprawling CMS packages (it famously takes months to get it going) has hundreds of extensions, while Drupal has similar modules.
Some of these systems are more suited to a particular type of site. XOOPS, for example, is great for portals, while Cofax excels at online newspapers (all of the Knight-Ridder publications are published with it). And it has an invaluable feature for newspaper-style Web publishing: articles may be mapped to any number of sections, avoiding the hierarchy trap that happens when you have an article that fits equally well in multiple categories but must be filed in only one.
Another good one in this category is Apache's Lenya, which supports WYSIWYG editing, multiple authors, multiple servers, and scheduling.
While Geeklog is good for newsblogs with community forums, Mambo excels at smaller sites. If you publish both print and online editions, look at Bricolage -- it can output in different formats, including PDF for print (which the project reports is used by many pro publications, including Macworld).
Summary
There are a lot of good open source options available for implementing a CMS. While all of the systems operate on essentially the same principles, they vary greatly in the details. Selecting the right one for your project is a matter of knowing what to look for, matching your needs and priorities, and then trying several.
Note: Comments are owned by the poster. We are not responsible for their content.
How about a smaller CMS with no database? And I don't mean using a flat file (which for some reason seems to be what lots of people think of when I suggest not using a DB). Obviously some features would not work so well without the DB, but for smaller sites (just a few blogs or a mini-portal on one server) there is a definite plus to keeping things simple. Just make good well-thought-out (or is that a skill that's been lost these days) use of filesystem hierarchy and a few templates to convert simple posted text into usable HTML, RSS, etc.
I have been using CMS for a bit more than 4 years now, both personnally and for clients.
I have tested and used a lot of them. They sure have changed the way we build and manage websites, but for a long time we have been suffering from a lack of flexiblity due to insufficient content/presentation separation. Elements of presentation and style were (and still are for a lot of systems) hardcoded into the core application and/or extensions. A lot of us webdesigners have painfully experienced this, having to hack core code to build a custom layout with decent code structure ! I am not event talking about those table layout and hardcoded styles we had to endure !
I think webstandards and the standards compliancy "wave" has been a ground to build standard compliants, accessible CMS. CMS in which content and presentation are really well separated. I am talking Drupal, Textpattern, WordPress, CMS Made Simple...etc, and last but not least MODx. Older CMS are trying to catch up, but the weight of an old codebase make the struggle really hard (take Typo3 for example...)
I'd like to elaborate about MODx (<a href="http://modxcms.com/" title="modxcms.com">http://modxcms.com/</a modxcms.com>), since it represents (IMHO) what a modern CMS should be.
Just like Textpattern, MODx gives you a lot of freedom as far as templating is concerned. You won't find presentation elements inside the core code, requiring you to hack your way into templating. Even more powerful, MODx uses "micro-templates" for granular control over content which allow you to control precisely how and where you want to place the output of a Snippet.
No-one would challenge the fact that dynamic web pages have brought a revolution to the web. To this date, dynamic stylesheets (a.k.a server side css) are still rare. With its flexible document types, MODx is able to parse stylesheets and allow you to add dynamic elements to your css, via tags and snippets : pretty handy to have a dynamic path for images when moving from test to production server, or randomize a background : whatever you can imagine is possible !
MODx is not a CMS, but a real content management framework. Most systems have a rigid way to structure content. Usually, content has a limited structure: Title, Summary, Body. Extensions (plugins, modules or the likes) sometimes offer to manage different types of content (images, products, job offers…): but again, they force you to use a predefined content structure which does not necessarily fit your particular needs. When they do offer a way to create custom content fields, they are either limited in number or in types. MODx has no such limitations.
You can create any type of custom content fields: text, rich text, number, date, images, checkbox, dropdown, email, url… with no limitations whatsoever. The best part: you can do so directly from the backend, without ever having to alter the database structure manually.
Each custom field is linked to a given template: that’s why the custom fields are called Template Variables in MODx. It allows you to define which templates can use the custom variables, and possibly define several content structure if needed (need a product catalog ?
You can use, style and place those content field easily: a simple tag, [*my_template_variable*], and you can display the content wherever you like, the way you want it displayed. Better yet, if you need to make it available for frontend editing, just add a # before the variable name [*#my_template_variable*]. Pretty easy, uh?
The selling pitch is nice, but what’s the catch here, looks too good to be true!
Well of course no system can be everything to everyone. Flexiblity and power has a price. Unlike most CMS, you won’t find a template installer, nor will you find a module/plugin installer. Though it’s quite fast to learn if you have a decent knowledge of website design, MODx is not a “one-click” foolproof system. Why is that?
Because being built by professionnals out of frustration with existing solutions, it naturally aims primarily professionnal webdesigners (also pro-ams – geeks – power users) who are looking for a tool to build highly customized, accessible and standard compliant dynamic websites.
Now does that mean MODx doesn’t care about the end-user? Sure not! It aims the end-user but as content managers or editors, not websites builders. Many opensource content management project have chosen to try to satisfy the end user first, focusing on the range of built-in features and one-click-install systems which in the end makes the application less flexible.
The MODx team has made a different choice, that I think is worth testing.
Looks like a really great CMS for larger sites. And I'm glad it's not Perl based. But it's not for my smaller sites because it does use a DB. That's what I want to avoid.
I have been using CMS for a bit more than 4 years now, both personnally and for clients.
I have tested and used a lot of them. They sure have changed the way we build and manage websites, but for a long time we have been suffering from a lack of flexiblity due to insufficient content/presentation separation. Elements of presentation and style were (and still are for a lot of systems) hardcoded into the core application and/or extensions. A lot of us webdesigners have painfully experienced this, having to hack core code to build a custom layout with decent code structure ! I am not event talking about those table layout and hardcoded styles we had to endure !
I think webstandards and the standards compliancy "wave" has been a ground to build standard compliants, accessible CMS. CMS in which content and presentation are really well separated. I am talking Drupal, Textpattern, WordPress, CMS Made Simple...etc, and last but not least MODx. Older CMS are trying to catch up, but the weight of an old codebase make the struggle really hard (take Typo3 for example...)
I'd like to elaborate about MODx (<a href="http://modxcms.com/" title="modxcms.com">http://modxcms.com/</a modxcms.com>), since it represents (IMHO) what a modern CMS should be.
Just like Textpattern, MODx gives you a lot of freedom as far as templating is concerned. You won't find presentation elements inside the core code, requiring you to hack your way into templating. Even more powerful, MODx uses "micro-templates" for granular control over content which allow you to control precisely how and where you want to place the output of a Snippet.
No-one would challenge the fact that dynamic web pages have brought a revolution to the web. To this date, dynamic stylesheets (a.k.a server side css) are still rare. With its flexible document types, MODx is able to parse stylesheets and allow you to add dynamic elements to your css, via tags and snippets : pretty handy to have a dynamic path for images when moving from test to production server, or randomize a background : whatever you can imagine is possible !
MODx is not a CMS, but a real content management framework. Most systems have a rigid way to structure content. Usually, content has a limited structure: Title, Summary, Body. Extensions (plugins, modules or the likes) sometimes offer to manage different types of content (images, products, job offers…): but again, they force you to use a predefined content structure which does not necessarily fit your particular needs. When they do offer a way to create custom content fields, they are either limited in number or in types. MODx has no such limitations.
You can create any type of custom content fields: text, rich text, number, date, images, checkbox, dropdown, email, url… with no limitations whatsoever. The best part: you can do so directly from the backend, without ever having to alter the database structure manually.
Each custom field is linked to a given template: that’s why the custom fields are called Template Variables in MODx. It allows you to define which templates can use the custom variables, and possibly define several content structure if needed (need a product catalog ?
You can use, style and place those content field easily: a simple tag, [*my_template_variable*], and you can display the content wherever you like, the way you want it displayed. Better yet, if you need to make it available for frontend editing, just add a # before the variable name [*#my_template_variable*]. Pretty easy, uh?
The selling pitch is nice, but what’s the catch here, looks too good to be true!
Well of course no system can be everything to everyone. Flexiblity and power has a price. Unlike most CMS, you won’t find a template installer, nor will you find a module/plugin installer. Though it’s quite fast to learn if you have a decent knowledge of website design, MODx is not a “one-click” foolproof system. Why is that?
Because being built by professionnals out of frustration with existing solutions, it naturally aims primarily professionnal webdesigners (also pro-ams – geeks – power users) who are looking for a tool to build highly customized, accessible and standard compliant dynamic websites.
Now does that mean MODx doesn’t care about the end-user? Sure not! It aims the end-user but as content managers or editors, not websites builders. Many opensource content management project have chosen to try to satisfy the end user first, focusing on the range of built-in features and one-click-install systems which in the end makes the application less flexible.
The MODx team has made a different choice, that I think is worth testing.
The Open Source CMS site lets you demo a working default installation of just about every open source CMS system in existence
hypertext management sytems
Posted by: Anonymous Coward on June 24, 2006 08:24 AM#