WordPress vs. Codeigniter

I recently had the opportunity to join a great group of people building websites using the CodeIgniter framework.  After building websites with WordPress for several years I was looking forward to learning a new framework and was interested to know how it would compare in both speed of development and quality of the Website build.

It is important to note that CodeIgniter is not for beginning web developers.  The CodeIgniter framework requires significant knowledge of PHP, javascript, mySQL, CSS, and html.  Knowledge of application architecture is also required for best performance and scaleability.

For websites that have low traffic volume and for which high speed response times are not critical, WordPress can not be beat.  It’s ease of installation and user friendly updates are great for the beginner to intermediate web developer.  When the correct method for making customizations is followed, WordPress can be a very effective and competitive framework to use. (this website is WordPress)

When using WordPress for enterprise level web applications, WordPress becomes more of a PHP framework that is customized similar to any PHP framework.  Developers dissect the application and use only in house plugins and themes that are streamlined for the specific application.  This improves the efficiency of the application and removes all the unnecessary code bloat and bugs that come with third party plugins and themes.  The core files are not altered and major core updates can still occur.

When a developer has reached the need for this level of sophistication and customization it is time to question whether WordPress is the best framework to use.  Since the developer is no longer using the things that sped up development (namely third party plugins) why not consider using a framework that is truly light weight in structure yet provides all the necessary classes for building a truly performant application?

The main reason this does not happen is the organization has built in-house “plugins” or codes snippets that speed their web development process up. Copying large sections of code for reuse is common practice in all types of application development and web development is no different.  When an organization has built a large in house library using one framework, the upfront cost of starting over with another framework seems too great.

It is this cycle that causes an organization to get stuck in one framework. If the organization has started small using WordPress and grows into needing to providing high performance, scalable web applications it may run into problems making the transition to large scale enterprise level web applications as the cost of a transition is seen as too high.  Not wanting to spend the extra money on sophisticated developers or take the time to learn a new process.

In the end my experience with both WordPress and CodeIgniter has led me to believe the best choice depends on your clients needs (go figure?).  WordPress is slow.  Too slow for enterprise level websites out of the box.  It is perfect for low to medium traffic web sites and keeps build costs low initially.

While WordPress is used by many enterprise level web sites the level of necessary customization to reach acceptable performance levels is on par with any other framework.  So for the enterprise level website my vote goes to CodeIgniter.

What is a CMS?

A CMS is a “Content Management System”.  A content management system creates an interface that a person uses to build or manage a website without having to know any code.  It allows the user to login from a web browser and make changes to the website like adding pictures and making text changes.  Depending on the system the level of customization can vary. It can be easy to change the font size, colors, and many other design options.

There are three popular open source CMS systems available today (there are others less popular). Drupal, Joomla, and WordPress.  Wordpress is the most popular system in use today with over 24 million active websites. Around 24% of websites using a content management system use WordPress.  These CMS systems share a common model.  They all use  “Themes” which provide page designs for the user and “Plugins” (WordPress), “Modules” (Drupal), or “Extensions” (Joomla) that extend its base functionality.  The user adds personal content into the template to create the website. Using a CMS a person can build a simple website without knowing any code at all.

Once the user has learned how the system works they are able to upload images and change text easily and from any major web browser. The CMS also speeds up the creation of a website by using page builder systems.  That can divide and place content quickly and easily. Page templates can be used and plugins can be installed to further customize the site.

A proper CMS system can save professional web designers many hours of coding by providing the frame work of things common to all websites.  For a person who doesn’t know any code at all it gives them the ability to create and publish great looking websites.