Before you create a website you need to make a number of fundamental decisions. First, you need to decide whether you have your site entirely built from scratch or if you use any prefabricated elements. The vast majority of all sites either use a content management system (CMS) or a software framework. The most popular content management systems are WordPress, Joomla, Drupal and Typo3.
Content management systems have a large library of readz-made modules a developer can choose from. These modules are open source and are written by a large community of free lance programmers with various skills levels. The fact that those modules are ‘ready’ doesn’t mean they actually work properly. In many cases they don’t so you need to hire a web development company that either fixes those modules or builds them from scratch. A couple of years ago I decided to hire a web developer to rebuild our site in Drupal. As of now, our shop is based on the Drupal Ubercart Module. There are a number of drawbacks to this solution:
- The backend of Ubercart is difficult to navigate because there are so many functions that I don’t need.
- The code of the module was written and changed by several programmers they didn’t work well together.
- The Ubercart module is not well integrated with the SimpleNews Module, the second Drupal module we use on english-test.net.
Using a content management system is only recommended if your site is very standard and average. As soon as you want a certain level of customization you should choose a development framework such as Yii, Symfony or Zend.
The advantages of using a framework instead of a CMS are the following:
- You can build the site fast because the framework contains a library of functions (for example login and password forms). Those are not modules but small pieces of code than can be easily integrated and modified.
- You create a website that is unique. It’s built exactly for your needs and situation. Any prefabricated Drupal or Joomla module comes with a multitude of functions you don’t need. These functions make the code cumbersome and require a lot of resources. They also make it difficult for you and your users to navigate your own system.
- Since the code of your application is written for your needs only, it is more transparent and well documented. It’s much easier to read and understand than Drupal modules that contain a lot of patches by variety of programmers.