Let's get started.

Do you want a CMS or a portal?

We are evaluating a CMS for our Yoga Site. But you may want to build something else. Take a look again at the requirements. Do you need a lot of dynamic modules such as an event calendar, shopping cart, collaboration module, file downloads, social networking, and so on? Or you need modules for publishing and organizing content such as news, information, articles, and so on?

Today's top-of-the-line Web CMSs can easily work as a portal. They either have a lot of built-in functionality or a wide range of plug-ins that extend their core features. Yet, there are solutions specifically made for web portals. You should evaluate them along with CMS software if your needs are more like a portal.

On the other hand, if you want a simple corporate or personal web site, with some basic needs, you don't require a mammoth CMS. You can use a simple CMS that will not only fulfill your needs, but will also be easier to learn and maintain.

Joomla! is a solid CMS. But it requires some experience to get used to it. For this article, let's first evaluate a simpler CMS. How do we know which CMS is simple? I think we can't go wrong with a CMS that's named "CMS Made Simple".

Evaluating CMS Made Simple

As the name suggests, CMS Made Simple (http://www.cmsmadesimple.org/) is an easy-to-learn and easy-to-maintain CMS. Here's an excerpt from its home page:

If you are an experienced web developer, and know how to do the things you need to do, to get a site up with CMS Made Simple is just that, simple. For those with more advanced ambitions there are plenty of addons to download. And there is an excellent community always at your service.

It's very easy to add content and addons wherever you want them to appear on the site. Design your website in whatever way or style you want and just load it into CMSMS to get it in the air. Easy as that!

That makes things very clear. CMSMS seems to be simple for first-time users, and extensible for developers. Let's take CMSMS to a test drive.

Time for action-managing content with CMS Made Simple

  1. Download and install CMS Made Simple. Alternatively, go to the demo a thttp://www.opensourcecms.com/.
  2. Log in to the administration section.
  3. Click on Content | Image Manager. Using the Upload File option, upload the Yoga Site logo.
  4. Click on Content | Pages option from the menu. You will see a hierarchical listing of current pages on the site.
  5. Choosing an Open Source CMS: Beginner's Guide

  6. The list is easy to understand. Let's add a new page by clicking on the Add NewContent link above the list.
  7. The content addition screen is similar to a lot of other CMSs we have seen so far.There are options to enter page title, category, and so on. You can add page content using a large WYSIWYG editor.
  8. Notice that we can select a template for the page. We can also select a parent page.Since we want this page to appear at the root level, keep the Parent as none.
  9. Add some Yoga background information text. Format it using the editor as you see fit.
  10. Choosing an Open Source CMS: Beginner's Guide

  11. There are two new options on this editor, which are indicated by the orange palmtree icons. These are two special options that CMSMS has added: first, to insert a menu; and second, to add a link to another page on the site. This is excellent. It saves us the hassle of remembering, or copying, links.
  12. Select a portion of text in the editor. Click on the orange palm icon with the link symbol on it. Select any page from the fly out menu. For now, we will link to the Home page.
  13. Choosing an Open Source CMS: Beginner's Guide

  14. Click on the Insert/edit Image icon. Then click on the Browse icon next to the ImageURL field in the new window that appears.
  15. Select the logo we uploaded and insert it into content.
  16. Click on Submit to save the page.
  17. The Current Pages listing now shows our Background page. Let's bring it higher in the menu hierarchy. Click on the up arrow in the Move column on our page to push it higher. Do this until is at the second position—just after Home.
  18. That's all. We can click on the magnifying glass icon at the main menu bar's rightside to preview our site. Here's how it looks.
  19. Choosing an Open Source CMS: Beginner's Guide

What just happened?

We set up the CMSMS and added some content to it. We wanted to use an image in ourcontent page. To make things simpler, we first uploaded an image. Then we went to the current pages listing. CMSMS shows all pages in the site in a hierarchical display. It's a simplefeature that makes a content administrator's life very easy. From there, we went on to createa new page.

CMSMS has a WYSIWYG editor, like so many other CMSs we have seen till now. The content addition process is almost the same in most CMSs. Enter page title and related information,type in content, and you can easily format it using a WYSIWYG editor. We inserted the logo image uploaded earlier using this editor.

CMSMS features extensions to the default WYSIWYG editor. These features demonstrate all of the thinking that's gone into making this software. The orange palm tree icon appearing on the WYSIWYG editor toolbar allowed us to insert a link to another page with a simple click. We could also insert a dynamic menu from within the editor if needed.

Saving and previewing our site was equally easy.

Notice how intuitive it is to add and manage content. CMS Made Simple lives up to its namein this process. It uses simple terms and workflow to accomplish tasks at hand. Check out the content administration process while you evaluate a CMS. After all, it's going to be your most commonly used feature!

Hierarchies: How deep do you need them?
What level of content hierarchies do you need? Are you happy with two levels? Do you like Joomla!'s categories -> sections -> content flow ? Or do you need to go even deeper? Most users will find two levels sufficient. But if you need more, find out if the CMS supports it. (Spoiler: Joomla! is only two-level deepby default.)

Now that we have learned about the content management aspect of CMSMS, let's see how easily we can customize it. It has some interesting features we can use.

Time for action-exploring customization options

  1. Look around the admin section. There are some interesting options.
  2. The third item in the Content menu is Global Content Blocks. Click on it.
  3. The name suggests that we can add content that appears on all pages of the site from there. A footer block is already defined.
  4. Our Yoga Site can get some revenue by selling interesting products. Let's create a block to promote some products on our site. Click on the Add Global Content Block link at the bottom.
  5. Let's use product as the name.
  6. Enter some text using the editor.
  7. Click on Submit to save.
  8. Our new content block will appear in the list. Select and copy Tag to Use this Block.
  9. Choosing an Open Source CMS: Beginner's Guide

  10. Logically, we need to add this tag in a template. Select Layout | Templates from the main menu. If you recall, we are using the Left simple navigation + 1 column template. Click on the template name.
  11. This shows a template editor. Looking at this code we can make out the structure of a content page. Let's add the new content block tag after the main page content.
  12. Paste the tag just after the {* End relational links *} text. The tag is something like this.
  13. Choosing an Open Source CMS: Beginner's Guide

  14. Save the template. Now preview the site. Our content block shows up after mainpage content as we wanted. Job done!
  15. Choosing an Open Source CMS: Beginner's Guide

What just happened?

We used the global content block feature of CMSMS to insert a product promotion throughout our site. In the process, we learned about templates and also how we could modify them.

Creating a global content block was similar to adding a new content page. We used the WYSIWYG editor to enter content block text. This gave us a special tag. If you know about PHP templates, you will have guessed that CMSMS uses Smarty templates and the tag was simply a custom tag in Smarty.

Smarty Template Engine
Smarty (http://www.smarty.net/) is the most popular template engine for the PHP programming language. Smarty allows keeping core PHP code and presentation/HTML code separate. Special tags are inserted in template files as placeholders for dynamic content. Visit http://www.smarty.net/crashcourse.php and http://www.packtpub.com/smarty/book for more.

Next, we found the template our site was using. We could tell it by name, since the template shows up in a drop down in the add new pages screen as well. We opened the template and reviewed it. It was simple to understand—much like HTML. We inserted our product content block tag after the main content display. Then we saved it and previewed our site.

Just as expected, the product promotion content showed up after main content of all pages.

This shows how easy it is to add global content using CMSMS. But we also learned that global content blocks can help us manage promotions or commonly used content. Even if you don't go for CMS Made Simple, you can find a similar feature in the CMS of your choice.

Simple features can make life easier
CMS Made Simple's Global Content Block feature made it easy to run product promotions throughout a site. A simple feature like that can make the content administrator's life easier. Look out for such simple things that could make your job faster and easier in the CMS you evaluate.

It's good time now to dive deeper into CMSMS. Go ahead and see whether it's the right choice for you.

Have a go hero-is it right for you?

CMS Made Simple (CMSMS) looks very promising. If we wanted to build a standard website with a photo gallery, newsletter, and so on, it is a perfect fit. Its code structure is understandable, the extending functionality is not too difficult. The default templates could be more appealing, but you can always create your own.

Choosing an Open Source CMS: Beginner's Guide

The gentle learning curve of CMSMS is very impressive. The hierarchical display of pages,easy reordering, and simplistic content management approach are excellent. It's simple to figure out how things work. Yet CMSMS is a powerful system—remember how easily we could add a global content block? Doing something like that may need writing a plug-in or hacking source code in most other systems.

It's the right time for you to see how it fits your needs. Take a while and evaluate the following:

  • Does it meet your feature requirements?
  • Does it have enough modules and extensions for your future needs?
  • What does its web site say? Does it align with your vision and philosophy?
  • Does it look good enough?
  • Check out the forums and support structure. Do you see an active community?
  • What are its system requirements? Do you have it all taken care of?
  • If you are going to need customizations, do you (or your team) comfortably understand the code?

We are done evaluating a simple CMS. Let us now look at the top two heavyweights in the Web CMS world—Drupal and Joomla!.

Diving into Drupal

Drupal (http://www.drupal.org) is a top open source Web CMS. Drupal has been around for years and has excellent architecture, code quality, and community support. The Drupal terminology can take time to sink in. But it can serve the most complicated content management needs.

FastCompany and AOL's Corporate site work on Drupal: 

Choosing an Open Source CMS: Beginner's Guide

Choosing an Open Source CMS: Beginner's Guide

Here is the About Drupal section on the Drupal web site. As you can see, Drupal can be used for almost all types of content management needs. The goal is to allow easy publishing and management of a wide variety of content.

Choosing an Open Source CMS: Beginner's Guide

Let's try out Drupal. Let's understand how steep the learning curve really is, and why so many people swear by Drupal.

Time for action-putting Drupal to the test

  • Download and install Drupal.
  • Installing Drupal involves downloading the latest stable release, extracting and uploading files to your server, setting up a database, and then following the instructions in a web installer. Refer to http://drupal.org/getting-started/ if you need help.

  • Log in as the administrator. As you log in, you see a link to Create Content. This tells you that you can either create a page (simple content page) or a story (content with comments). We want to create a simple content page without any comments. So click on Page.
  • In Drupal, viewing a page and editing a page are almost the same. You log in to Drupal and see site content in a preview mode. Depending on your rights, you will see links to edit content and manage other options.

  • This shows the Create Page screen. There is a title but no WYSIWYG editor. Yes, Drupal does not come with a WYSIWYG text editor by default. You have to install an extension module for this.
  • Let's go ahead and do that first.
  • Go to the Drupal web site. Search for WYSIWYG in downloads.
  • Choosing an Open Source CMS: Beginner's Guide

  • Find TinyMCE in the list. TinyMCE is the WYSIWYG editor we have seen in most other CMSs.
  • Download the latest TinyMCE module for Drupal—compatible with your version of Drupal.
  • Choosing an Open Source CMS: Beginner's Guide

  • The download does not include the actual TinyMCE editor. It only includes hooks tomake the editor work with Drupal.
  • Go to the TinyMCE web site http://tinymce.moxiecode.com/download.php. Download the latest version.
  • Choosing an Open Source CMS: Beginner's Guide

  • Create a new folder called modules in the sites/all/ folder of Drupal. This is theplace to store all custom modules.
  • Extract the TinyMCE Drupal module here. It should create a folder named tinymcewithin the modules folder.
  • Extract the TinyMCE editor within this folder. This creates a subfolder called tinymce within sites/all/modules/tinymce.
  • Make sure the files are in the correct folders. Here's how your structure will look:
  • Choosing an Open Source CMS: Beginner's Guide

  • Log in to Drupal if you are not already logged in. Go toAdminister | Site building | Modules.
  • If all went well so far, at the end of the list of modules, you will find TinyMCE. Check the box next to it and click on Save Configuration to enable it.
  • Choosing an Open Source CMS: Beginner's Guide

  • We need to perform two more steps before we can test this. Go to Administer |Site configuration | TinyMCE. It will prompt you that you don't have any profiles created. Create a new profile. Keep it enabled by default.
  • Choosing an Open Source CMS: Beginner's Guide

  • Go to Administer | User management | Permissions. You will get this link from theTinyMCE configuration page too. Allow authenticated users to access tinymce. Then save permissions.
  • Choosing an Open Source CMS: Beginner's Guide

  • We are now ready to test. Go to the Create Content | Page link.
  • Super! The shiny WYSIWYG editor is now functional! It shows editing controls belowthe text area (all the other CMSs we saw so far show the controls above).
  • Go ahead and add some content. Make sure to check Full HTML in Input Format.Save the page.
  • Choosing an Open Source CMS: Beginner's Guide

  • You will see the content we entered right after you save it. Congratulations!
  • What just happened?

    We deserve congratulations. After installing Drupal, we spotted that it did not come with a WYSIWYG editor. That's a bit of a setback. Drupal claims to be lightweight, but it should come with a nice editor, right?

    There are reasons for not including an editor by default. Drupal can be used for a variety of needs, and different WYSIWYG editors provide different features. The reason for not including any editor is to allow you to use the one that you feel is the best. Drupal is about a strong core and flexibility.

    At the same time, not getting a WYSIWYG editor by default was an opportunity. It was our opportunity to see how easy it was to add a plug-in to Drupal. We went to the Drupal site and found the TinyMCE module. The description of the module mentioned that the module is only a hook to TinyMCE. We need to download TinyMCE separately. We did that too.

    Hooks are another strength of Drupal. They are an easy way to develop extensions for Drupal. An additional function of modules is to ensure that we download a version compatible with Drupal's version. Mismatched Drupal and module versions create problems.

    We created a new directory within sites/all. This is the directory in which all custom modules/extensions should be stored. We extracted the module and TinyMCE ZIP files. We then logged on to the Drupal administration panel.

    Drupal had detected the module. We enabled it and configured it. The configuration process was multi step. Drupal has a very good access privilege system, but that made the configuration process longer. We not only had to enable the module, but also enable it for users. We also configured how it should show up, and in which sections. These are superb features for power users.

    Once all this was done, we could see a WYSIWYG editor in the content creation page. We used it and created a new page in Drupal.

    Here are the lessons we learned:

    • Don't assume a feature in the CMS. Verify if that CMS has what you need.
    • Drupal's module installation and configuration process is multistep and may require some looking around.
    • Read the installation instructions of the plug-in. You will make fewer mistakes that way.
    • Drupal is lightweight and is packed with a lot of power. But it has a learning curve of its own.

    With those important lessons in our mind, let's look around Drupal and figure out our way.

    Have a go hero-figure out your way with Drupal

    We just saw what it takes to get a WYSIWYG editor working with Drupal. This was obviously not a simple plug-and-play setup! Drupal has its way of doing things. If you are planning to use Drupal, it's a good time to go deeper and figure your way out with Drupal. Try out the following:

    • Create a book with three chapters.
    • Create a mailing list and send out one newsletter.
    • Configure permissions and users according to your requirements.
    • What if you wanted to customize the homepage? How easily can you do this? (Warning: It's not a simple operation with most CMSs.)

    Choosing a CMS is very confusing!
    Evaluating and choosing a CMS can be very confusing. Don't worry if you feel lost and confused among all the CMSs and their features. The guiding factors should always be your requirements, not the CMS's features. Figure out who's going to use the CMS—developers or end users. Find out all you need: Do you need to allow customizing the homepage? Know your technology platform. Check the code quality of the CMS—bad code can gag you. Does your site need so many features? Is the CMS only good looking, or is it beauty with brains? Consider all this in your evaluation.

    Drupal code quality

    Drupal's code is very well-structured. It's easy to understand and extend it via the hooks mechanism. The Drupal team takes extreme care in producing good code. Take a look at the sample code here. If you like looking around code, go ahead and peek into Drupal. Even if you don't use Drupal as a CMS, you can learn more about programming best practices.

    Choosing an Open Source CMS: Beginner's Guide

    Now let's do a quick review and see some interesting Joomla! features.

    Is Joomla! the best choice?

    Joomla! (http://joomla.org/) is the most popular open source Web CMS. It's been more than three years since Joomla! was born as a fork of Mambo (http://mambofoundation.org/). Today Joomla! has an active community of more than 200,000users and contributors. Joomla! has around 4,000 extensions and many themes.

    Numerous high-profile sites use Joomla!. The code quality is good enough, but there is a steep learning curve. Many users complain about its template system. Also, the backend administration system could be simpler.

    The Harvard University web site and the MTV's Quizilla web site are both Joomla! based.

    Choosing an Open Source CMS: Beginner's Guide

    Choosing an Open Source CMS: Beginner's Guide

    But is Joomla! the best choice? Consider the following:

    • Joomla! has the reach and size.
    • It satisfies the content management needs of most typical sites—either out of the box or with some extension.
    • Since there are so many choices in Joomla!, it can get confusing. Selecting a template can be arduous. Selecting the best extension for your need maybe completely a guess.
    • Joomla! does not score too well on usability. But that's the case with most CMSs. Joomla! is also known to be demanding on the server.
    • If you are looking for additional modules such as e-commerce, communities, and so on, you won't go wrong with Joomla!.

    With this overall feedback, let me show a few useful out-of-the-box features of Joomla!.

    Joomla! gives you more

    Here are some useful features in the default installation of Joomla!. We did not cover them earlier, since we concentrated on the core content management features.

    • The Frontpage Manager controls what shows up on your home page. This gets really important as your site grows.
    • Menus control navigation around the site. You can manage them the way you want. You can order items in the priority you wish, and even control access levels.
    • Banners let you run advertisements and promotions. They support both text and image ads. This means you can display Google AdSense-like ads on your own.
    • News Feeds make it easy to syndicate content from other sites. You can even categorize feeds.
    • Polls make it easy to carry out surveys.
    • Joomla! even has an internal messaging system. You can easily communicate with all users of your site.

    Choosing an Open Source CMS: Beginner's Guide

    Choosing an Open Source CMS: Beginner's Guide

    If you use these features creatively, you can build a very powerful site.

    Have a go hero-set up a full site with Joomla!

    This is a great time to explore Joomla! further. Here's something you can try out:

  • Set up a full site with Joomla! along with sample content, images, menus,and homepage.
  • Create users and understand how a workflow can be established.
  • Install a SEO extension for Joomla! and learn how it can help your site.
  • I did not answer the question we started with: Is Joomla! the best choice? You are the person who has to decide on that because everyone's needs will be different. Continue to evaluate other CMSs, and then you can make your final decision.

    A small requirement can jeopardize your development. Keep a watch on your requirements and carefully evaluate that the CMS you choose can either fulfill it by default, or allow doing it with custom code. A small requirement (especially if it is not clear at the start) can derail your CMS project if the CMS you select does not accomplish that requirement easily.

    SilverStripe—easy and extensive

    SilverStripe (a target="_blank" href="http://www.silverstripe.com/">http://www.silverstripe.com/) is an upcoming CMS. When you see it, you will be impressed. When you try the demo, you will be further impressed! Take a look at the following screen, which shows up right after you log in:

    Choosing an Open Source CMS: Beginner's Guide

    Notable features

    Here are the noticeable things in this screen:

    • You start in content editing. You don't have to click around menus to get to the content editing screen.
    • All the content is easily available on the lefthand side. Click on an item and its content loads on the right side without reloading the page.
    • Apart from the standard WYSIWYG editor, you get all other options for this content right here. This includes metadata and page behavior (standard page, forum, blog, e-commerce page, and so on).
    • You can control access and translations of content right here.
    • When invoked, the image manager shows on the righthand side with thumbnails and quick insertion.
    • SilverStripe has an built-in image editor. It allows you to resize and crop images.
    • On the left, you also get options for Page Versions and Site Usage Reports.
    • The CMS also has other powerful features such as Newsletter, Files, Comments, Reports, and Statistics.

    The things that you don't see onscreen, but are worth a mention for SilverStripe, are:

    • An RoR-like framework in PHP, based on Sapphire
    • An easy template system
    • SilverStripe has additional modules for e-commerce, blog, forum, Flickr, and Google Maps
    • Thorough documentation for both users and developers

    Is it for you?

    SilverStripe is a strong contender for any site that needs core content management features. If you don't need all the extensions and overhead, it makes perfect sense. The efforts spent on making the software usable are evident. The terminology is simple, and the workflow even better. Anyone can get started with SilverStripe in minutes. The bottom line is, evaluate SilverStripe before you take your decision.

    ezPublish—enterprise CMS

    If you are looking for an enterprise class CMS, you should consider ezPublish(http://ez.no/). High-profile sites such as MySQL (http://www.mysql.com) and Zend (http://www.zend.com), and even NASA, National Geographic, and MIT run on ezPublish. The software has more than 2.5 million downloads, at least 230 official partners across the world, and approximately 30,000 community users.

    So what makes ezPublish an enterprise-class CMS? Let's review some of its notable features.

    Notable features

    • A complete workflow control, which includes adding, editing, and publishing content
    • An extensive user access and privilege system
    • Multilingual support from the ground up
    • Content Versioning
    • Publishes to multiple sites easily
    • Strong SEO features
    • Strong controls for media or news publishing
    • Imports Word or OpenOffice documents, and even supports WebDAV for uploads
    • Supports different content types such as text, images, videos, and so on
    • Extensive documentation and partner support
    • Many extensions available

     The following image shows the different categories of setting options in ezPublish:

    Choosing an Open Source CMS: Beginner's Guide

    Is it for you?

    If you want a strong workflow, ezPublish is one of the best. It comes with all standard CMSfeatures. However, the variety of extensions available is not as good as Joomla!; and the product has a strong corporate feel to it. If you are looking for a quick solution, this may not be your bet. But if you are deploying something for a large organization, ezPublish can top the list.

    All the CMSs we have seen up to this point use PHP as the backend programming language.PHP is available on most web servers. But what if you want to use some other environment?Let's quickly review some non-PHP CMSs.

    Umbraco—rising high

    Umbraco (http://www.umbraco.org/) is a simple and easy CMS written for .Net. It's gaining popularity because of its simplicity. The management interface is simple and allows developers to customize the design and functionality.

    Hasselblad (http://www.hasselblad.se/) is a high-end photography equipment site that runs on Umbraco.

    Choosing an Open Source CMS: Beginner's Guide

    Notable features

    • Written in C#, and can be used with any .Net language
    • Convenient for custom design, and has full HTML support
    • APIs for easy integration with their own applications
    • IntelliSense and tight Visual Studio integration
    • Outputs content as XML—easily integrates with Flex/SilverLight richInternet applications
    • Out-of-the-box XSLT and AJAX support
    • Versioning of content, integration with MS Word
    • Multilingual, and easy content translation support
    • Simple and easy system that focuses on web site building and content, and not on endless extensions
    • Professional support and extensions available

    Is it for you?

    Umbraco is pretty impressive. You will love its simplicity and integration features. But the documentation needs improvements, and you can't run it without an SQL Server. If your site wants core CMS features, Umbraco is the best .Net system today. Go check it out.

    DotNetNuke—the first you may notice

    If you are on Windows and want a .Net-based CMS, dotNetNuke (DNN) (http://www.dotnetnuke.com/) is the first CMS you will notice. DNN was inspired from phpNuke—a once very popular CMS—and derived from sample web site code that Microsoft opened up. DNN is advertised as a web application framework. It has well-rounded core features and modules that extend it.

    Notable features

    • One of the first open source .Net CMSs, DNN has been there for ages
    • A good base system, allows extensions via modules
    • Many free and commercial modules available
    • Feature-rich, extensive support available

    Is it for you?

    If you want a well-known, well-rounded .Net CMS, DNN is a very good choice. It's not the best when it comes to usability or quality, but it's popular and easy to get developers to review it!

    Plone—for Python lovers

    If you are into Python, you must have heard of Zope and Plone (http://plone.org/). As a matter of fact, you may have heard of Python because of Plone. Plone is a high-profile (sometimes more hyped) CMS, built on Zope. Zope (http://www.zope.org/) is an application server written in Python—with built-in web server and database—to build CMSs, intranets, portals, and community sites.

    The magazine Discover and the Free Software Foundation web site are the prime advocates of Plone.

    Choosing an Open Source CMS: Beginner's Guide

    Choosing an Open Source CMS: Beginner's Guide

    Notable features

    • Solid and extensible system
    • Enterprise features—workflow engine, security, LDAP, and so on
    • Used by many high-profile sites
    • Easy to install, powerful template language
    • Ability to define its own content types
    • Can be used for intranets, community sites, and so on—Plone is not just a CMS!
    • Based on Zope, uses ZODB as database—this is also a limitation

    Is it for you?

    Plone has some great features and some big advocates. It has an equally great learning curve. If you are new to Python, Plone will have a significant learning curve for you. If you don't have a programming background, you may find yourself stuck when you want to enhance the core system. Python is easy to learn, but getting around with Zope and Plone can take a few weeks even for an experienced programmer.

    If you are already using Python, Plone is a natural choice for your CMS. It has the elegance and features that satisfy demanding users. Go for Plone if you've got a team to manage it.

    dotCMS—enterprise and Java

    DotCMS (http://www.dotcms.org/) is a J2EE Web CMS. It's packed with features and is in constant development. It's not just a CMS, since it also offers many portal-like components. It has an interesting history, and is from the same company that produced dotProject—an open source project management system.

    Notable features

    • Excellent core features that match and top similar PHP solutions
    • Structured content
    • Enterprise features such as caching, rules support, clustering, Amazon EC2 support, WebDAV support, task-based workflow, and so on
    • Built-in systems such as calendars, events, CRM, newsletter, and so on
    • AJAX used to make things faster and simpler

    Is it for you?

    If you have a J2EE infrastructure running, dotCMS is a very good choice as a CMS. There are only a handful of Java CMSs, and dotCMS is one of the best. Although setting up dotCMS is not as easy as setting up a PHP CMS, we must remember that they are in different leagues altogether. There are some other popular Java CMSs as well, and most of them are more than just Web CMSs.

    Where to find more?

    We covered most of the top web CMSs here. If you are still looking for more, here is aquick list:

    That should satisfy anyone's need for a list of CMSs! We have seen enough CMSs in this article. Let's summarize what we learned.


    We reviewed a whole lot of Web CMSs in this article. We covered details of only a few, since most have common features and workflow. Doing all these evaluations, we can see that most CMSs are similar. The choice of which to pick depends a lot on factors other than features. The ease of use, platform, integration with other systems, and so on weigh a lot more than just features. At the same time, most CMSs are under constant development. They keep improving on their limitations. Always keep your requirements and situation at the top priority while selecting a CMS.

    In this article, we specifically looked at:

    • Creating structure and content with CMS Made Simple
    • Adding a WYSIWYG editor to Drupal
    • Using Drupal administration and content addition features
    • Drupal's code quality
    • Built-in Joomla! features that we can use
    • Easy-to-use SilverStripe CMS
    • Enterprise features of CMSs
    • ezPublish, Plone, Umbraco, DNN, dotCMS— an overview and notable features
    • The CMS that could be right for you

    We accomplished a lot in this article. There is a lot for you to review and think through.

    You've been reading an excerpt of:

    Choosing an Open Source CMS: Beginner's Guide

    Explore Title