And a Few Great Suggestions

The most fundamental component in choosing the right content management system ( CMS ) for your project, is understanding your needs.  Choosing a CMS is a lot like picking a tool out of your toolbox, depending on what you are trying to build, different tools provide more value.  Are you trying to build a fast, inexpensive "Corporate Presence" or blog?  Do you have many different types of content with unique properties?  Do you need a shopping experience or ecommerce?  Are you building a social network?  Also, how often do you expect to update the site content?  Are you migrating an existing site or building a new one?  How long to you plan to keep this particular site?

Second, you need to decide who will build the site.  Do you have staff that you expect to build and maintain the site, or will you be searching for a partner to assist you?  If you have in-house talent, you probably need to assess their skills and preferences, and get their input.  If you decide that you need an outside partner, will you be using a local provider or will you reach out to other markets, domestic and foreign?  If you choose a local provider in a small market, your choices maybe more limited.  Additionally, if the builders go MIA, you need to be able to replace them.    

The most important aspect of any site is the content, so, "Who will be updating the content?"  Does your staff have SEO and content experience?  Will it be a single person's responsibility to maintain the content?  Will it be you? Will you hire a specialist for SEO?  The more people and the more external organizations that need to have access to the site is important to understand before choosing a CMS.  Your CMS should be able to adequately control the roles and responsibilities of each person who has access to the site.  

Comparing Some Great CMSs 

Now you should have a pretty good understanding of your needs, but before we jump right in, we need to understand our choices.  We are going to compare Open Source CMSs.  At the most basic level, CMSs can be divided into two categories, Open Source and Closed Source.  You don't need to understand all of the semantics, but there are some key points about what these mean to you.   Some are generalizations, over simplified so as not to become too technical. 

Open Source

  1. Open Source is generally free to use.  Doesn't mean the Website will be free or even less expensive, or that some features and extension won't still cost money.  Generally though, a Website build with Open Source technology has a lower starting point.
  2. Open Source support and / or development is often community based.  This means that features and help are usually at the whim of volunteers.  If you need help, unless you are paying someone for support, there isn't a phone number to call when you need help.  ( hopefully you have a good developer you can call )
  3. Open Source usually means that you, or anyone, has access to the source code.  Importantly, if changes need to be made, the code is right there.

Closed Source

  1. Closed Source typically mean commercial software, or "pay to use".  Some solutions require annual or monthly fees, some are one-time payments, but either way, choosing Closed Source means you have to pay somebody before you even start building.
  2. Closed Source software usually includes some level of support.  This doesn't always mean a 24 hour hotline, but usually there is a way to get support.  With one caveat, the company may or may not exist forever.
  3. Closed Source software is often compiled or the code is locked up in a way that you can't make changes your self, or use any provider other than the original creators.  Hopefully they care about your problem and help you, because that is your only option.

Our professional preference is for Open Source software, we feel the good far out weighs the bad.  Additionally, we recommend Open Source for the entire technology stack, servers, database, programming languages.  The good news is, this is actually what the vast ( I mean VAST ) majority of what is out on the Web.  

For our comparison, we are going to focus on LAMP ( Linux, Apache, MySQL, PHP ) based CMSs, though most can run on other platforms.  Let's take a look at some of the top Open Source CMSs.  

Textpattern

http://textpattern.com/

Textpattern calls itself "A flexible, elegant and easy-to-use CMS".  Pretty lofty, let's see if it lives up to those standards.

Much different in philosophy than the other CMS choices I am going to cover, Textpattern is a dream and a nightmare in the same package.  

The content manager's perspective:

Textpattern is all about the content, by default, when you log in, you are on the New Article screen.  "Article"?  Yes, Textpattern calls everything an Article, but that's ok, because A) it's simple and B) it's not a limitation.  Using Categories and Sections, what we would consider static pages are created the same way as, say a blog post.  

The next thing a content manager would notice is the simplicity of the administrative interface.  Textpattern is designed to get out of the way, only what you need, focus on the content.  Additionally, it supports a variety of popular markups, Textile, Textpattern, HTML, and plain text.  And if these don't strike your fancy, a traditional WYSIWYG editor can be installed.

Finding and editing existing content is easy, since everything is an article, you can visit the Articles page and there are plenty of filtering, sorting and search options.  No more looking at different screens trying to remember where content might be hidden.  

A few quirks though:  

  • No menu manager, so adding / removing links from the navigation means determining how the developer chose to create it and hope it isn't too complicated.  
  • Pictures and files are managed separately from Articles.  You upload your files, and Textpattern gives you code to paste where you want it.  The picture manager does have some nice cropping, thumbnails support, captions and categorization.
  • For more advanced management, learning about Textpattern and reading the docs is almost mandatory.

The developer's perspective:

Textpattern lacks a typical theme system, all the theming is done right in the browser, in text areas all of the logic and structure for building pages lives in a few places, Sections, Pages, Forms.  Also, it uses special tags "" that perform much of the heavy lifting.  These tags take a bit to get used to, but are very powerful when you get the hang of them, and provide much of the functionality you would typically go to a server side language to achieve.  If you need some PHP, there is a special tag that gives you a block for custom coding.  

It does take some practice to get the hang of Textpattern's workflow, and since you are developing in the browser, you have to be careful about breaking things.  But once you do get the hang of it, putting together a small site is a breeze.  One of the benefits to doing your site building in the browser is that, making changes can be done on-the-fly from any device.  

Textpattern is a blank slate for theming and developing.  It does come with some default Sections, Pages, Forms, but you have full control of the logic, structure and design.

Pros

  • Clean design, especially for editors.
  • Content is king
  • Lot's of time saving tools once you get the hang of it.
  • Flexible, you can make a site work just about any way you want.
  • In browser development.
  • It is very, very fast.  Some of our best page load times.

Cons

  • Steep learning curve for developers, especially for advanced functionality.
  • Has some quirks, both for developers and editors.
  • Smaller community than the other CMS options.  Development seems to have picked back up recently, but there have been slow periods, less plugins available than other platforms.
  • In browser development.  Versioning means grabbing the database every time you want to test a change.
  • Harder to find a developer.  Just not as many people building Textpattern sites.

Verdict

We love Textpattern, we've been using it for client sites for years, but not so much recently.  While we find it to be a great fit for smaller sites, clients are often befuddled by the interface.  Many people have experience blogging on WordPress, and people hate change.  Our developers find that Textpattern's in-browser development doesn't go well with their workflow.

If you are a developer or a blogger who isn't afraid to get your hands dirty, I definitely recommend giving Textpattern a go.  If you are a business needing a quick, affordable site, don't be put off if you developer recommends it.  In the right hands, Textpattern has a lot to offer, especially performance.  But be aware, you may not be able to easily replace your developer.

WordPress

http://wordpress.org/

"WordPress is web software you can use to create a beautiful website or blog."

WordPress runs more Websites than any other software.  As we will discuss, this is both a great thing and a challenge.  WordPress started life as a blogging platform, but has matured into a very competent CMS.  

The content manager's perspective:

If you have worked with Websites, likely, you've worked with WordPress.  As such, you are probably familiar with the interface and are pretty adept at navigating it.  Overall, it is not too complicated, but out-of-the-box, there is more clutter than other platforms.  The dashboard has all kinds of "stuff" that you likely don't care about, menus and pop out menus galore.  Don't worry, a good developer can help you with this.

The default WordPress has a couple of areas to manage content, Pages, Posts, and Media, each with it's own menu items.  Plugins and themes can add more.  This can make it confusing to know where to find a specific piece of content.

The WordPress content editor itself is actually pretty nice, with a WYSIWYG editor pre-installed ( and alternatives you can download ).  By default, your input options are the editor, or HTML, but again, plugins can add Markdown and others. WordPress has a nice revision history, so if you make a change you don't like, it's easy to go back.  The media manager has a lot of picture editing options that are pretty easy to use.  

The developer's perspective:

WordPress is really easy to get started developing for, whether theming or plugins, with excellent documentation ( codex ) and a huge community.  But getting into more advanced development means learning a lot about the inner workings of WordPress. The good news is, most of what clients want from a WordPress site has already been developed and is available as a free plugin.  However, some of the really good plugins are not free.  And you must take care when purchasing plugins and themes, as many contain malicious code or are warez.

WordPress is a bit odd in that so much functionality can be controlled from the theme, even creating new post types and database queries.  Seems like an odd place to put that kind of power.  You can get started with WordPress theming knowing only HTML by using a child theme and finding snippets online, but you really want to build something custom, learn to code in PHP.  Final word on theming, there are so many themes available, but if you are selling WordPress Websites, don't just install a theme and charge the client like you built it.

Pros

  • Huge community, active development, many many plugins available.
  • Powerful and flexible, can build almost any kind of site.
  • Lot's of available developers.
  • Familiar to many content managers.

Cons

  • Lot's of low quality, malicious themes and plugins ( be careful )
  • Lot's of inexperienced developers.
  • Blogging roots sometimes gets in the way of being a true CMS.
  • Commonly targeted by hackers.

Verdict

For a business owner building a basic site or a moderately complex site or even a basic ecommerce site, WordPress is a great option.  It is a strong, proven platform with many available developers who would love your business.  However, you must research your developer to make sure they have real development skills, satisfied customers, and find out if they are building a custom theme or purchasing one.  Also, make sure to keep the site backed up and updated and take a few extra steps to make it secure.  

Final thoughts, while WordPress is great at so many things, it isn't always the best solution.  When your site is very complex, with lots of functionality, you may find that WordPress is getting in your way.  

Drupal

https://www.drupal.org

"Use Drupal to build everything from personal blogs to enterprise applications."

Drupal bills itself as a Content Management Framework, and is a robust, powerful system that is used for many very high profile, enterprise Websites.  It has a very large active community, and it can do just about anything you want.  But at a cost.

The content manager's perspective:

Drupal is a full-fledged CMS, and can be customized so that the content management experience is totally unique, but by default, content creation and editing is done in a pop-up window accessed from an admin toolbar that sticks to the top of your browser.  Drupal separates content into types, some come with the core Drupal ( Blogs, Articles, Pages ), some are added via modules, and some can be created on-the-fly by a privileged user in the admin interface.  You can add fields to content types, change how they are displayed, the flexibility goes on and on.  One notable omission is a default WYSIWYG editor, which a developer can add for you.  Otherwise, you can enter HTML or plain text.  

Many people I talk to have heard that Drupal is "hard", but from a content management perspective, it's actually really easy.  Creating content is just a matter of clicking "Add content" then the type, and editing content is just clicking "Find content" and using the sort and filtering options to find the content.  

If your job includes administering the site as well as editing, learning a bit about Drupal is pretty much a requirement.  Remember, this thing is built to handle enterprise level sites, so the administrative functions are very in depth.  But if you are running a smaller site, there are probably only a few places you will need to visit.

The developer's perspective:

Congratulations, you're building a Drupal site!  While everyone needs to cut their teeth on some project, I would recommend that you already are very familiar with PHP and Drupal before taking client work with Drupal.  And it doesn't hurt to know a little command line ( more on this shortly ).

There are thousands of Drupal modules available, but there are some key modules you will want for just about any Drupal site commonly referred to as "Builders Modules".  These include things like Views, Webforms, Chaos Tools and others.  Combining these tools with Drupal's core content framework gives you a powerful Web building platform, and you don't actually need to do much, if any coding.  Drupal modules are often tools which may depend on other modules for functionality, then they may only provide the ability to solve your problem, not actually do it for you.

But when requirements get really high, like building a social media site, a Web service, or application, Drupal provides a rich scaffold, and there is no substitute for learning development skills.   Drupal modules are often tools which may depend on other modules for functionality, then they may only provide the ability to solve your problem, not actually do it for you.  You may find yourself developing your own modules for specific uses.  Drupal has a rich API with hooks that let you tap into all kinds of functionality, and for true efficiency, the hidden gem of Drupal is Drush, the command line tool that is the secret weapon of a Drupal ninja.  

Pros

  • Huge community, proven, flexible, powerful.
  • Typically, more experienced developers in the market.
  • Very secure.
  • Drush, API.
  • Great content management, fine grained permissions.
  • Can do about anything.

Cons

  • Steep learning curve for developers.
  • Resource intensive, especially complex sites.
  • Administrative overhead.  More buttons to push.
  • Typically more expensive developers.

Verdict

When the scope gets big and complex, Drupal is your friend, though it comes at a price.  Drupal developers may not be as numerous as WordPress developers, and prices tend to be higher, but it is a very robust platform that the others just can't compete with on features.  It doesn't have to be expensive for small projects, but you may want to consider one of the other platforms first.  Also, your site will be happier with a better server than most cheap hosting plans offer.

So, if you have big plans, complex requirements, unique features and a budget to match, Drupal is one of the top platforms available. 

Conclusion

We've covered some of the best open source CMSs available that can achieve just about anything you want, but this is far from an exhaustive list and who knows, there may be a better fit for your project.  The most important thing to keep in mind is that all CMSs are tools, your job is to determine which one will serve you best.