Web Content Management Systems

I have used several CMS’s over the years, from my time at Cisco with their internally developed system, and again starting in 2009 or so when I started working with WordPress and later Joomla! They are wonderful tools, but they do have some drawbacks.

First the positives. Someone who is technically minded can setup a WordPress site, add a custom template, and have a pretty decent site in an afternoon. WordPress has grown a lot since I first started using it, and it is a pretty good environment to setup a public website, not just a blog. Joomla! is a bit more complex, but it is infinitely more customizable, and flexible. You can run a pretty complex site with options like project management, multiple vehicles of managing content and contributions, and even a pretty robust e-commerce site.

Both platforms make it easy to create and modify content with either built in WYSIWYG editors, or extended editors as a plugin. That means that your contributors can easily create and maintain pretty complex content like the were creating a document in Microsoft Word.

But that is also a problem as content is updated, modified, and changed. These WYSIWYG editors do all the html stuff on the back end, hiding the complexity from the user. They also do not create optimal html. Little glitches add up over time, and soon, if you have content that you update frequently you will need to either blow it away and restart, or drop into raw HTML mode to clean it up. Fortunately both platforms make this easy, as long as you know how to edit HTML.

The second positive is the amount of customization possible. Both platforms have a great ecosystem of plugins, extensions, and packages. Joomla has a slight lead here, as the quality and support of these third party bits is quite good. WordPress has a lot more, but some of the components are buggy, or are security holes. Again, the community will help guide you to the best pieces.

But there is a downside. I have been using Joomla for a couple years now, running one of my personal sites, as well as a non-profit site (Southern Arizona Greyhound Adoption). I have done lots of experimenting, and sometimes it is a bit of a struggle to undo some changes.  At first, for the SA Greys site I had a testbed, but soon the two sites structurally diverged enough, that I really just keep the main site up now. Of course, with the coming of Joomla! 3.5 stable, I will be making a new version of the website (the hassle of finding and updating plugins and components to 3.0 compatible is a task that I don’t have the patience for, or the time to do. Time for a fresh start with all that I have learned in the past two years)

This weekend, I am beginning the process of configuring a Joomla 3 site as a testbed, and that means replication and processing a lot of data. A fun activity for a cloudy, rainy Sunday.

(This post is a little diversion from the tedious documenting of the current site.)


So you want a Website – let’s get started

I get a lot of people asking me how to create a website.  They see this page, or the site I run for the Southern Arizona Greyhound Adoption group, or my professional site, and wonder what they need to do to play. It can be confusing to a neophyte, but hopefully I can clear the confusion.

First, you need to honestly assess your technical ability. Do you view yourself as a bit of a nerd?  Are you comfortable with supporting yourself on your computer, do you like to tinker?  Then you might want to look to hosting and running a site on your own. But if you get nervous when you hear terms like FTP, SSH, linux, apache, PHP or the like, you might want to go with one of the completely managed solutions.

Second you need to decide what you want to publish to the web. Most common is the blog format. This is a series of articles that can be arranged by category, and give you flexibility on what you want to post (text? photos? videos? all of the above). Or do you want to be a bit more formal, run a site that is more of a portal or a magazine or newspaper.  The Greyhound site that I run is like this. Most of the content is static, but there are dynamic parts of the site.  Additionally, there are tools to help less skilled people contribute without giving them access to the back end. Do you want to do e-commerce?  Integrate ads to help offset your costs? It is best to get this down on paper up front.

If you are a neophyte, and you are scared of terms like FTP and PHP you can go with one of the hosted solutions. Both Blogger (a google property) or WordPress.com will be able to get you up and running very quickly. Both sites give a reasonable service for free, and are very simple to use and setup. Both can host your own domain name (your address on the web).  The wordpress service is what I am using here, and it is pretty solid.  One downside is that they will constantly try to get you to buy extra services (custom typography, custom templates).  Still, for many people, this is the best path.

If you are curious, and not afraid of computers and technology, you might decide to roll your own. Typically you buy hosting from one of the major hosting services (Hostgator, GoDaddy, MediaTemple) and then setup your site. Fortunately, it isn’t too geeky, as you can easily FTP your files over, create a database, and run the built in installer and you will be up with a basic site.

There are some terms to learn. The software that runs on the host to deliver your website to the visitors is called a CMS (content management system).  A content management system (CMS) is a package that provides the logic, the maintenance behind the scenes, and utilities for adding content. They typically have a front end (what the public sees) and a back end (where you add articles, posts, or pages).

Templates are sets of files that alter the look and feel of the website. The packages typically have a couple of default (read: ugly) templates to get you started, but you are probably going to want to use a different template. Don’t worry, you don’t have to create your own, there are tons of free and paid templates for all the major packages.

Plugins/components are additions to the web CMS that extend and enhance the experience. Things like a tag cloud, or a twitter feed, or archive access are common. But there are other plugins that can be used. Perhaps you want Disqus for comments to your posts. Or you want to have Facebook “Like” icons. You can add these and more and not have to know anything about HTML.

All the major CMS platforms have some common attributes – they store their content and settings in a database (typically MySql), they have some type of hierarchy or taxonomy to arrange and group content, and they are typically built on PHP code that creates the HTML and styles that are seen by the public.

The major CMS’s

wordpress logoWordPress: The most used CMS. It is very simple to setup (I can get a new site up in about a half hour), and straightforward to manage.  It doesn’t require a lot of skill to keep it going. There are an amazing number of plugins that gives you infinite flexibility in layout and pizzaz. Additionally there are thousands of templates to give you a site that stands out from the riff-raff. I started with WordPress.

Joomla! logoJoomla!: The second most popular CMS software, Joomla! is quite flexible.  It is what I use for my tralfaz site, and the Greyhound site. It is more of a general purpose CMS, unlike the “blog” focus that WordPress takes. There are lots of automation options for contributors, and a very rich user management environment that allows you to have many different access groups and control who sees what (I don’t really use this, but private sites, and member sites are trivial to setup in Joomla.) Joomla also has a very powerful ecommerce option, called Virtuemart that is pretty easy to setup, but very powerful.

Drupal logoDrupal: Drupal is probably the least friendly CMS that is commonly used. It is more for web professionals, and keeping it up to date is a pretty hefty job. The basics are easy to get up, and built in are things like forums, and some great content bits built in. But the major sites that use Drupal have a lot of customization, and a full IT staff to keep it going. One site that does use Drupal, is the Economist. It is a good example of what can be achieved with Drupal.  I have played with it a little, but it really is not for a hobbyist.

In the next article, I will discuss how to choose a hosting company, and the basic steps required to get online, and sharing your passions. I will also touch on maintenance and how to avoid being hacked.