Choosing an Open Source CMS: Beginner's Guide — Save 50%
Find the best CMS and start working with it to create web sites, blogs, communities, e-commerce sites, and intranets
Lets look at the specific uses of CMSs, and evaluate a few of them. In this article by Nirav Mehta, we will take a look at top blog CMSs.
We will also :
- Learn about different blog CMSs
- Evaluate how to perform typical content management operations using the top three blog CMSs
- Review flexibility and extensibility
- Consider the other options available
Let's get started right away.
The first question-do I need a self-hosted or service-based CMS?
Blogs have taken the Internet by storm. They started like simple diaries and have grown to be full-fledged CMSs now. If you want to start a blog, you have the following two options:
- Sign up with a hosted blog service such as WordPress.com, Typepad.com, Blogger.com, or any other similar services available
- Set up blogging software, such as WordPress, Movable Type, ExpressionEngine, and so on, on your own server
If you are a casual blogger, signing up with a hosted service is a suitable choice. But if you want full control of your blog, setting up your own system is the best option. It's not very difficult—you could do it within five minutes.
We will cover only self-hosted solutions for this article. But you can easily apply this knowledge to a blog service.
Top blogging CMSs
WordPress (www.WordPress.org) is the most popular self-hosted blogging software. Hundreds of thousands of sites run on WordPress, and tens of millions of people see WordPress-driven content every day.
Movable Type (www.movabletype.org) is another longtime favorite. It's very easy to use and has a strong fan following.
There are many contenders after the top two blogging CMSs. All general-purpose CMSs have a blogging component. Many old blog software applications are no longer actively maintained. There are new entrants on the scene that focus on niches, such as photo blogging.
Let us cover the top choices
We can't cover all of the blog software in this article. So, we will only cover WordPress at length. We will talk about Movable Type and ExpressionEngine briefly. At the end, we will touch upon other blogging software.
What we are interested in is to find out answers to the following questions:
- What sort of a site is that CMS good for?
- How easy is it to build a site?
- How easy is it to edit content?
- What's its plug-in/template support like?
- How extensible/customizable is it?
- What are the interesting or high-profile examples of that CMS?
Taking WordPress for a test drive
Let's try creating a site structure, adding and editing content, applying design templates, and making a few customizations with WordPress to see how it performs.
Time for action-managing content with WordPress
- Log in to the administration panel of your WordPress installation.
- Click on the New Post link in the top bar. This opens the Add New Post page.Enter a title for your first blog post where your cursor is blinking. We will enter definition of the word Yoga for our Yoga Site.
- Start writing your text in the large text entry box. It's a WYSIWYG editor. You can use buttons in the toolbar to format text, insert links, and so on.
- Let's insert an image into our post. Click on the first icon next to Upload/Insert. When you move your mouse over it, you will see Add an Image in the tooltip.
- Upload a file from your computer.
- Once a file is uploaded, you can enter additional parameters for this image. This includes Title, Caption, Alignment, a link to open when an image is clicked, and so on. Here's how your screen may look at this stage.
- Click on Insert into Post to add this image to your post.
- Complete writing the blog entry.
- If you want to add tags (keywords) to this post, you can do that from the Tagssection at right. WordPress will autocomplete long tags and will create newones as you Add them.
- We have not yet created any categories for our blog. Navigate to the Categories section below Tags. Click on the + Add New Category link.
- Enter Background as your category name and Add it. Any new categories youadd are selected automatically. Notice that you can post a blog entry in multiplecategories at once.
- There are a few other options too. There are the settings for Discussion. We want to allow both comments and trackbacks, so keep both options checked.
- Scroll up and click on the Publish button on the right to make this post live.
- Click on View Post at the top left to see how your site looks at the moment.
Click on that icon.
What just happened?
We published a new blog post with WordPress! This was the first time we used WordPress, but we could accomplish everything we needed to post this entry just from one screen.
This is an important thing. Many CMSs require that you set up categories and images separately. This means you have to know the system before you can use it! WordPress allows you to learn about the system while using it. All sections in the Add New Postpage are well-labeled. There are sufficient descriptions, and what is not needed is hidden by default.
- Our title automatically became a search engine friendly permalink for this post.
- We could format our text with a simple WYSIWYG editor. It was packed with features—spell check, full screen editing, and further formatting options via Kitchen Sink.
- The editor allowed advanced editing by switching to the HTML mode.
- Adding an image was very easy. Upload, set options, and insert. We could select a previously uploaded image from the gallery, too.
- We could enter keyword tags for a post quickly.
- Selecting a category and adding new categories was simple. We created a new category on the Add New Post page itself. WordPress is intelligent enough to understand that if we added a new category on a post page, we would want to use it for that post. So, it was selected automatically.
- Advance options were available, but were hidden by default.
- We could publish the post right away, or at a later date.
- WordPress could also keep history of all the revisions we make to a post, could preview the post, and would auto-save it frequently.
WordPress looks easy and powerful so far. Let us look at how we can harness it further.
Surviving blog jargon and benefitting from it
Blogs have their own terminology. You may not have heard of trackbacks, pingbacks, tags, or permalinks. You can learn more about these terms from http://en.wikipedia.org/wiki/List_of_blogging_terms and http://www.dailyblogtips.com/the-bloggers-glossary/. Similarly, there are excellent features that blogs have—comments, aggregating content from other sources, ability to get updates via RSS feeds, and so on. I recommend you to go through these glossaries to learn more about blogs.
Managing content with WordPress seems easy. We want to see how easy is it to customize its design and extend its features. Let's begin with the action.
Time for action-customizing the design
What just happened?
We installed a new design theme for our WordPress blog. We downloaded three themes from the Web, unzipped them, and uploaded them to our WordPress themes folder.
The themes showed up in WordPress admin. Clicking on a theme showed a live preview. This made our decision easy. We activated the theme we liked. That's how easy it was to change the design of our blog!
If you recall, installing a new design was similar in Joomla!, except that Joomla! allowed us to upload a ZIP file using its administration interface itself. The tricky part in giving a new design to your site was shortlisting and selecting a design, not setting it up.
Customizing the theme
Consider the following theme editor in WordPress
If you want to further customize your theme, you can do that. In fact, you have full control over how your site looks with WordPress. You can use Appearance | Editor to change individual theme files.
We recommend making template customizations on a local installation of WordPress first.Once you get everything done according to your choice, you can upload the changed files to the theme's folder and activate it.
Widgets are content blocks that can be used in a theme. Search, RSS feeds, Blog Post Archives, Tag Cloud, and Recent Posts are some of the built-in widgets available in WordPress. You can turn them on or off independently, determine their position in the sidebar, and also change their settings. Go to the Appearance | Widgets page to take over the control of WordPress widgets.
Add unlimited power with plug-ins
Our Yoga Site needs a lot more than just the core content management. How can we achieve that with WordPress? And will it be wise to use WordPress for our Yoga Site?
The WordPress plug-in architecture is solid. You will find hundreds of high-quality plug-ins from photo galleries to e-commerce. But remember that the core of WordPress is a blog engine, which chronologically displays content under set categories. It encourages sharing and contribution. Theoretically, you can customize WordPress to any need you have. But we recommend you to evaluate the most important features for your site and then decide whether you want to use WordPress as a base, or something else.
I use WordPress for my blog and have a range of plug-ins installed. WordPress is painless, and it allows me to focus on the core goal of my blog—sharing knowledge. Take a look at the list of plug-ins on my blog at www.mehtanirav.com.
You may have noticed a few plug-ins to handle comments and spam. Why would you need that? Well, because you will end up spending all your time removing spam comments from your system if you don't have them activated.
Comment spam is a real pain with all blogs. Spammers have written spam-bots (automatic software) that keep posting junk comments on your blog. If you don't protect comment submission, your blog will soon be flooded with advertisements of pills you don't want to take and a lot of other things you don't want your visitors to attend to.
Comment protection plug-ins are the first you should install. I use Akismet with Simple Math. Simple Math poses a simple mathematical question to the comment writer. A human can easily answer that. This takes care of most of the spam comments. Comments that pass through this test need to pass through Akismet. Askimet is an excellent spam-protection plug-in from the WordPress team. These two plug-ins kill almost 99.99% of spam comments on my blog.
Once I am left with legitimate comments, I can go to WordPress's Admin | Comments, and Approve, Unapprove, Delete, or Mark as Spam all comments. The Edit Comments screen looks like the following screenshot:|
WordPress is a superb choice for creating a blog. It can be used as a general-purpose CMS as well. We have covered most of the day-to-day operations with WordPress so far. Here are some additional resources for you.
eBook Price: $23.99
Book Price: $39.99
Here are some web-sites that will guide you in your WordPress adventures:
- Start with WordPress Codex: http://codex.WordPress.org/
- Official support forums: http://WordPress.org/support/
- Some excellent How-Tos, which are categorized:http://tamba2.org.uk/WordPress/
- Great resources, themes, and articles: http://wpcandy.com/
- A showcase of WordPress-powered sites: http://welovewp.com/
- The WordPress resource blog: http://lorelle.WordPress.com/
- Free themes, tips, and more: http://www.themelab.com/
- The WordPress podcast: http://wp-community.org/
You should be able to manage a WordPress site now. But is it the best blogging software you can have? Let's continue to review further options.
Evaluating Movable Type
Movable Type (http://www.movabletype.org/) is extremely popular. It's been around for a very long time. Movable Type is written in Perl and, unlike most other solutions, publishes static HTML pages. But a lot of high-profile sites use Movable Type (MT).A common opinion is that Movable Type is difficult to install. However, in the newer versions, the installation process has been greatly simplified. You can review the installation instructions at http://www.movabletype.org/documentation/. Assuming that you have all the dependencies in place, the installation should be just a "click-click-and-away" job!
Movable Type needs Perl and a few other modules on the server. Check for system requirements before installation. Movable Type does not require a database—it can use an internal database. But it will work happily with MySQL, or other databases, if you wish.
Let's assume we have installed Movable Type and created a blog in it. Let's now evaluate how easy it is to use.
Time for action-managing content with Movable Type
- Log in to the MT administration panel. The screen looks like this.
- Click on the Write Entry button at the top of the page.
- This brings you to a WYSIWYG editor. Enter a blog title and post content here. This is very similar to WordPress.
- Once we have added some text, we want to add an image. Click on the picture icon in the editor's toolbar. This brings up the Insert Image panel.
- Click on Upload New Image. Browse and select a file to upload, enter a folder location where you want to save the file. A good option is the current date, which shows up in the dropdown for quick selection. Click on the big Upload button to save this image.
- Add Name, Description, and Tags for this image. Also select the right-alignmentoption. Keep Display image in entry checked.
- The image automatically comes up in the content text.
- We need to create a new category for this entry. Click on Add new under Categorieson the righthand side of the page. You can quickly add a new category here.
- You can also add Tags, Keywords, and set up Feedback options from there.
- Click on the Save button at the end of this form to save our entry.
- MT will publish our entry to the site. If you have not yet created a folder to publishthe site in, do so now. Make sure you give 777 permissions on the folder. To manually publish your blog, click on the two circling arrows in the menu bar.
- This opens up a Publish window. Select All Files and click on Publish.
- The site will publish, and you will see a message like this.
- Click on the icon next to the Publish icon in the menu bar to View Site.
- Congratulations, our beautiful site is live!
What just happened?
We posted our first blog entry with Movable Type. Writing an entry was very similar to doing so in WordPress. We could enter a title and an entry text, add an image to the entry, create a new category, and associate metadata—all from a single page.
The look and feel of MT was intuitive, yet solid. It did not require much learning. The image upload process was just as we would have expected—or even better! Category creation happened in a jiffy. Movable Type is certainly one of the easiest CMS to use.
MT automatically publishes the blog as static HTML pages. But we also saw how we could do it manually if needed. We had full control over the publishing process and could select All Files, or only specific types of pages to publish. The advantage of publishing static pages is that it significantly reduces load on your server. On the other hand, if you have a lot of posts, publishing may take longer.
Customizing Movable Type
The default template that MT uses is professional. But if we wanted to make changes, we could easily make them. One of the other benefits of MT is that its template language is like HTML. You don't need to know programming to edit MT templates. You can go to Design | Templates to see a list of templates that MT uses. Click on Main Index to see how the index page of your blog is created. This shows up a page like the following screenshot:
As you see, much of this is HTML. The rest is <$mt:something$> tags—MT's magic blocks that insert content within the HTML design. You can even set up advanced options for each template—including whether it should be published dynamically or statically. (Yes, MT can even publish blog content dynamically.)
Styles allow you to control the overall look of the design, much like Themes do in WordPress. Widgets control the elements that appear on different layouts and are similar to WordPress Widgets.
MT also has a plug-in support. Here, you may not find as much variety of plug-ins as you would in WordPress. But everything you may need for a blog is available.
If you want further customizations, you can modify the Perl source code. If you are publishing your blog dynamically, you can even use PHP for needed customizations. Finding a programmer for MT is harder than for a PHP-based CMS, but you won't really need one to run a blog site.
We saw that MT is a really easy blog system. It allows running multiple blogs out of the box, comes with nice templates, and is flexible enough. It is also available under commercial license. You can pick the version that suits you the most. Here are some additional resources for you:
- Plug-ins for MT:http://plug-ins.movabletype.org/, http://plug-ins.movalog.com/
- Documentation: http://www.movabletype.org/documentation/
- Helpful screen casts: http://www.movabletype.org/screencasts/
- Hosted MT: http://www.typepad.com, http://www.vox.com
- Developer resources:http://www.sixapart.com/developers/movabletype.html
- Learning MT: http://www.learningmovabletype.com/
We are now ready to quickly review another blog CMS. The chosen one is ExpressionEngine.
Expressing opinions with ExpressionEngine
ExpressionEngine (http://expressionengine.com/) is a CMS system with a blog at its core. It was called pMachinePro earlier, and comes from the same company that makes the CodeIgniter development framework. ExpressionEngine's core is a blog system and you can purchase extensions to enhance its features. Its code quality is good. Though the number of users is not very high now, some people have made very good use of ExpressionEngine.
Here are a couple of examples:
Time for action-managing content with ExpressionEngine
Let's see how ExpressionEngine manages our content. Let's put it through the same process we applied to WordPress and MT.
- Download and install ExpressionEngine. The steps are easy to follow.
- Log in to the administration panel.
- Click on the first menu item—Publish.
- This brings you to the now-familiar blog post screen. Enter a title.EE (ExpressionEngine) will automatically create a URL title and allow modifying it, just like other systems.
- Enter text for the blog post. Notice that the text area does not have a WYSIWYG editor. If you know XHTML, you can add your post with full XHTML markup.
- Click on Upload File to add an image to the post. Follow the onscreen prompts to upload, re-size, and place an image in the main body.
- You can use formatting buttons to select and format a portion of text. Select Normal in Button Mode. Select the portion of text you want to make bold. Then click on the<b> button to make it bold. The guided mode prompts you to type the text in bold when you click on it.
- Click on the Categories tab from the top bar. Click on Edit Categories. This opens up a new window. Create a new category called Background here. Click on Close Window and Update Categories in PUBLISH Page.
- Now select Background as category. You can shift-click another category to post this entry in multiple categories.
- Click on the other tabs such as Date, Options, Trackbacks, and Pings to evaluate options there.
- Click on the Submit button in the main Publish form to save this post.
- Click on the My Site link in the top right menu to view our site. As you can see, it's all ready to go!
What just happened?
We created our first blog post with ExpressionEngine. The process was similar to that withWordPress and MT. It was not as easy as with the earlier two, but we could get the job done in a logical way.
We added content, an image, and did basic formatting on content. We could also add categories and modify options for the post from a single page. EE gave us full freedom to use XHTML in blog posts. But this makes it a bit harder for people who do not know XHTML markup.
The administration panel allows you to manage templates, modules, and account settings. An interesting feature is communicating with members, much like a newsletter system from within EE.
Of course, you get full control over design. Template editing is tag-based, and a template looks as follows:
The markup is simple. All dynamic blocks are in curly braces.
EE comes with useful modules. You may notice that even the core blog functionality is implemented as a module. This tells us that its add-on architecture is solid, and it should be easy to build custom modules. Here's a list of default modules that get installed.
We can judge that EE is a solid system, but will have a learning curve. It's great for programmers as they can get into PHP code and extend all the functionality that they want. EE is very flexible and if you want more than just a blog, there are some excellent add-ons available from http://expressionengine.com/downloads/addons/.
If you opt to use EE for your site, here are some additional resources that may help you.
- EE templates: http://expressionengine.com/templates/
- Documentation, excellent Wiki and support forums, and so on:http://expressionengine.com/support/
- Developer resources: http://expressionengine.com/developers/
- EE templates: http://www.eetemplates.com/
Searching for more alternatives
We have taken a detailed look at the top two blogging CMSs and one upcoming choice.There are many more blogging engines available. Let's take a quick look at some noteworthy contenders.
- Take a look at Wikipedia's blog software page for a longer list:http://en.wikipedia.org/wiki/Weblog_software
- Review the blog software demos at: http://www.opensourcecms.com/
- Pebble, a Java-based simple blogging software application:http://pebble.sourceforge.net/
- Roller—http://rollerweblogger.org/—is another good choice.
- Mephisto, a Ruby-based blog engine: http://mephistoblog.com/
- Thingamablog, an offline desktop-based blog engine that publishes static pages to your site: http://thingamablog.sourceforge.net/
- LifeType, an open source blogging platform: http://lifetype.net/
- Hosted blog solutions: http://www.WordPress.com, http://www.typepad.com, http://www.blogger.com, and many others
- Generic CMS systems, such as Joomla! and Drupal, have blogging components as well.
Additional help is also available
If you select one of the top blogging software application for your site, there is enough help available on the Internet. Packt has a great collection of books on open source CMSs, including blog CMSs.
The following link lists books that will help you get an in-depth knowledge of blog CMSs:
Now that we have covered all the details, let's review what we did.
We reviewed WordPress, Movable Type, and ExpressionEngine in this article. We looked at how easy is it to add and manage content. We also saw how templates and functionality can be customized to our needs.
By overall evaluation, we can say that a blog is great as a general-purpose CMS. It is especially good for sites that post periodic updates or articles. Blogs allow for easy collaboration, syndication, and publishing. Most blogging software also have a range of plug-ins that can convert a blog from a content site to an e-commerce site, or whatever else you want.
We specifically looked at:
- Adding content with WordPress, Movable Type, and ExpressionEngine
- Creating categories
- Adding tags
- Uploading images
- Publishing a blog site
- Customizing the look of a WordPress blog by uploading and activating a theme
- An overview of plug-ins and the template system with these three blog engines
- Examples of some high-profile web-sites using WordPress, Movable Type, and ExpressionEngine
There is lot more to CMSs. We have looked at blog CMSs, and now is the turn of their big cousins—web-based CMSs.
If you have read this article you may be interested to view :
eBook Price: $23.99
Book Price: $39.99
About the Author :
Nirav Mehta is renowned for his entrepreneurial ventures, his breakthrough ideas, and his contribution to open source. Nirav leads a software development company – Magnet Technologies – from India that specializes in Rich Internet Applications, Web, and Mobile. Nirav believes in simplifying the most complicated ideas and presenting them in lucid language.
Over the last ten years, Nirav has written and spoken on a variety of topics. He has also been instrumental in localization efforts in India and training programmers to be effective developers.
He has set up a website completely dedicated to the book. You can find more information on it here: cmsbook.info
Books From Packt