Open Source and its Application to Popular CMS Products
As you will all know, choosing the right Content Management System (CMS) is an essential element in becoming a successful web developer. With hundreds to choose from it can be a nightmare knowing which one could be right for you. Some are commercial (paid) and others are free (open-source). This article will discuss the merits of using an open-source CMS for your next project.
What is open-source?
Open-source is a pragmatic methodology that encourages development of a product through the opening of source materials. It has been an important factor in the growth of the Internet with many software vendors benefitting from the effects of crowd-sourcing and collaboration to improve and add features to a base code.
According to OpenSource.org, there are a number of other criteria software must meet in order to be classified as “open-source”. I have discussed all of these below, with my own thoughts in regards to the justification.
Free distribution: no party should be restricted from giving away the software either on its own or as a paid aggregation of products. I like this particular point as it encourages value-adding, long-term growth rather than the get-rich-quick mentality adopted by so many these days.
Source code: must be included and allowed to be freely distributed. All forms of source code should be accessible in some way, preferably via Internet download. This seems like an obvious prerequisite but some software distributors may be tempted to keep some code “secret” which is not in the best interests of easy modification.
Derived works: must allow modifications and derived works. This is another interesting point as it means that software may end up being distributed with a different usage or purpose to its initial developer’s vision. This makes open-source limitless with its advantages: thousands of perspectives can make an extremely versatile product. As a designer and developer, it gives you the opportunity to use your artistic and creative license – adding value to the product and for yourself.
Integrity of the Author’s Source Code: the license must allow for the distribution of the software, but always maintain the credit to the original developer/firm who produced it. This is essential to encourage firms to distribute open-source rights to a product as ultimately they will be credited with its success.
No Discrimination Against Persons or Groups: does exactly what it says on the tin. Removing restrictions and discrimination adds diversity to the process and in my opinion will ultimately lead to a better end product for the end user. Certain cultures and people may have different tastes and therefore a wide variety can only be beneficial in the long-term.
No Discrimination Against Fields of Endeavour: whether it be for business or research there should be no restriction. Similar to the other points regarding discrimination I believe this is essential to maintain originality and embrace the true spirit of open-source, with the potential benefits of the initial product release being hugely influential on others, whether it be a commercial purpose or a charitable cause.
Distribution of License: distribution rights must apply to all those who redistribute the product. This is an interesting point as it stops the product/software creator from limiting certain parties from distributing.
License Must Not Be Specific to a Product: “The rights attached to the program must not depend on the program’s being part of a particular software distribution. If the program is extracted from that distribution and used or distributed within the terms of the program’s license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution.” Slightly more technical, but this would prevent vendors restricting distribution based on bundling products/software. In the case of a CMS, this is obviously less of a problem as generally speaking a CMS download is standalone and not part of a bundle of products.
License Must Not Restrict Other Software: cannot restrict software that is distributed alongside the open-source software. This is great as it encourages developers to create commercial products to sell alongside open-source software. A great example of this would be paid Wordpress plug-ins. An open-source CMS, distributed alongside a paid product.
License Must Be Technology-Neutral: “No provision of the license may be predicated on any individual technology or style of interface.” Not so relevant in the case of a CMS but does help ensure compatibility across platforms.
All of the above need to be adhered to in order to qualify as an open source product. With the sheer volume of open-source CMS’s on the Internet today, it is tough to know which one(s) are right for you and your business.
What is a CMS?
It is a Web application that uses a central database, such as MySQL, to create, edit and store content in a simple way. An administration panel is then used to edit the content in the “backend” which is then displayed to normal visitors on the “frontend”.
Why use a CMS?
There are various reasons why you may choose to use a CMS, but the primary reason cited is to make the creation and editing of content simple. Depending on the purpose of your project, you may need to use a different CMS each time – so it is vital to understand the needs of your project before deciding. If you are creating a site on behalf of a client, a CMS can be essential. Most clients will have little to no coding knowledge, so the ability for them to edit content with the click of a button is extremely beneficial.
Okay, I want to use a CMS, what choices do I have?
Four of the most interesting are: Wordpress, Joomla or Drupal and ZykeCMS.
Here’s a short overview on each:
Wordpress needs no introduction. Launched in 2003 it is one of the most widely used CMS’ and can be seen on millions of blogs around the world. With the ability to be self hosted or hosted on Wordpress, it has become the choice of many wannabe bloggers with limited experience. Wordpress started out as a blogging platform, but has quickly become extremely versatile it its uses. You can find plug-ins for virtually anything, and the beauty of it being open-source is that you can easily build on anything that fits your needs until it is perfect. Google also loves Wordpress, so if you want to combine SEO and design for yourself or a client, it is often a sensible choice. As a standalone CMS Wordpress is great; but combined with a combination of plug-ins, can be an extremely powerful solution.
Recommended for: blogging; review style sites.
Not recommended for: quick and simple sites; clients on low budgets.
Zyke is newly launched and as such is still at V1.0, but is extremely lightweight, so allows you to pump out small sites in a matter of minutes unlike some of the other options which have higher learning curves. The SEO friendly URL’s and Web 2.0 feel is a particular benefit of this CMS. Being new it means you can help develop the product as you build and learn about the code. The Zyke developer community is where the owners hang out and ask for any feedback. Much like any other open-source software, if you have any suggestions, improvements or ideas – you are free to build them and offer them in the forums to the users. Being a new launch, if you get in today you could soon become one of the lead developers and come widely respected in the community – a great opportunity for the up-and-coming Web developers among you!
Recommended for: quick and simple sites; clients on low budgets.
Not recommended for: big, complex sites; blogging.
Joomla has mixed reactions in the web development world. With a huge developer base comes a number of problems: to every problem there are hundreds of “solutions”. This can bring about even more problems. Out of the four CMS’ mentioned Joomla probably has the highest learning curve but can be extremely versatile when used correctly. I would only recommend Joomla to the most experienced developer and/or designer – it can be disheartening when first used. In terms of SEO it is also weak, with system generated URLs being poor for SEO. There are plug-ins to fix this but it is always useful to have the base software ready to go, without the need for sometimes bulky and buggy additions.
Recommended for: membership sites; larger sites that don’t require a blog.
Not recommended for: the faint hearted; those who dislike high learning curves.
Drupal is another popular choice, widely cited as being one of the most user-friendly CMS options. With a large number of add-on modules it can be adapted for a range of purposes. Creating templates for Drupal can be problematical, especially for the less experienced developer. PHP knowledge is required, which for the more experienced among you will be no problem, but when starting out it may be best to avoid. The back-end itself is very intuitive, and as such is handy for clients who are not overly tech-savvy, and would like to be able to add content themselves.
Recommended for: clients who are not tech-savvy; nicely designed sites.
Not recommended for: large sites requiring complex code; blogs.
Overall, it all comes down to what suits your particular needs for a project. Each CMS has a number of advantages and disadvantages so it is important to lay out the specifications first and then match them to a CMS. Open-source allows you to do whatever you like with the code, so eventually you will have perfect option you can use over and over again.
As a professional web developer you will all understand the headaches endured by explaining over and over to the same client how to add/edit content on their site. By choosing the right open-source CMS you can remove this hurdle from your projects, empowering your client to do more with less input from you. This will enable you to get your hands dirty with your next project and take away some of the hand holding that many clients require!
Of course, a commercial CMS is always an option too. The best element of open-source is the pure volume of developers working on the product. In the case of commercial software, it is impossible to have paid teams that match the size and diversity of the open-source developers. This means it is always likely that whatever specific need you may have, it has probably already been tackled by someone else in the field.
Not sure which one to pick? Ask your local PHP Developer for more information.

