What is a CMS?
A CMS is a Content Management System. WordPress, Joomla, Drupal and osCommerce are 4 popular PHP content management systems that we work with. A CMS at minimum provides you with a user friendly means of managing your site and it’s content.
Depending on the requirements for your CMS development project, there are two directions to consider:
- Take an existing CMS, and build on it to meet your needs. Taking WordPress as an example, the possibilities and options for modification are infinite. This is achieved through the development of themes and plugins. There is really no limit to the customization that’s achievable with most popular CMSs and so bespoke CMS development is usually reserved for a project where the majority of functionality would need to be manually built irrespective of existing code and modules.
- If your needs aren’t reasonably met by an existing CMS, then it may be more time and cost effective to build a CMS from the ground up. With this route, you also get to put exactly what features you want, where you want. We have a base framework that we usually build start our CMS development with. It contains the basics for rich page and text creation, article creation and SEO friendly URL management.
In reality, the term ‘CMS’ has been stretched to cover frameworks and beyond. Whilst strictly speaking a CMS is any system that allows content to be managed, the term also describes fully fledged online site management and development platforms.
Security within the CMS is crucial. The CMS acts as an additional layer, that sits between the front end web application and web site, and the back end database and server. To this end, any security bugs within the CMS could well expose database and server access to a hacker.
CMS Plugin Development
WordPress, Joomla, Drupal and osCommerce all support plugins. Whilst WordPress for example is traditionally considered blogging software, with the right theme, plugins and customization it becomes a fully functional online store, with credit card processing, user management, and product reviews.
CMS Plugin Development Warnings
With experience, we’ve seen the same bad practices coming up over and over again when we’ve reviewed existing applications.
- Existing framework or components modified. Modifying the WordPress code to your own purposes is one of the worst things to do, as is modifying popular themes or plugins. As a large and evolving project, WordPress and it’s massive ecosystem of themes and plugins is being regularly updated. Updates contain improvements, bug and security fixes. If a WordPress theme or plugin is modified, that theme can never be upgraded again – an upgrade will overwrite any changes made, and changes would need to be reapplied and reviewed as the theme or plugin has changed. This leaves the theme or plugin becoming more and more outdated as time goes by, potentially susceptible to known security flaws. Furthermore, as WordPress continues to update, the theme or plugin will be left behind and eventually become incompatible. Therefore, WordPress equally can not be upgraded again. Themes are extended through child themes, and WordPress is extended through plugins. Incorrect development practices result in surprise costs and trouble later down the road.
- Plugin badly integrated with CMS/framework. The CMS or framework will provide methods for interacting with the database. Plugin developers should know the CMS, it’s features and it’s documentation. The plugin should be tightly integrated with the CMS according to it’s best practices. The plugin should not generally be accessing database functions or tables directly. This leads to incompatibility and problems with other plugins and future upgrades.
- Wrong CMS selected. There’s usually leeway on selecting an appropriate CMS for a particular project. Sometimes though, it is clear that a CMS has been selected based solely on developer preference and is not well suited to the project. Development time and costs are then significantly higher than they would be otherwise, and the resulting product is not as efficient and robust as possible.
If you’re looking for professional advice on CMS development either from the ground up or using one of the existing CMSs such as WordPress, Joomla, Drupal and osCommerce please get in touch with us today. We offer responsive, top end, boutique service at very reasonable prices.