Content Management System (CMS): A web-based application allow you to easily manage content such as a blog, pages, and products.
Framework: A library of code which allows you to build applications like a Content Management System.
Cache/Caching: The act of storing a temporary version of something for quicker access later. It speeds up the response time of an application or website.
Platform: A preconfigured system or application allowing you to perform an action or complete a task.
Interface: A way to interact with something such graphical elements on a phone or on a webpage. Another example is those old arcade games with the joystick, buttons, and screen which are the interface
to the game.
Module: A piece of code that extends the functionality or features of a larger system or application.
Unit Test: The programmatic testing of code to ensure it does what is expected.
WordPress is ultimately built for managing blog content and has been adapted over the years to cater for multiple structures of content. It is also the most actively used and promote CMS across the world with a large community of support. However, whist it does have support, quality developers for the platform are limited, and the bulk amount of WordPress developers are DIY individuals who learnt the
platform over time but aren’t necessarily software developers. Its biggest threat is security, trust, and reliability of the platform and 3rd party plugins as WordPress websites are known to receive a high quantity of security threats.
Laravel is built for building any type of application, including Content Management Systems. It is built on top of software design patterns making it quicker and simpler to develop custom applications. It can be
used specifically for what is needed and wanted without extra fluff. Active and growing interest and community with training. Requires less wiring to do custom development and 3rd party integration.
Having spent over 18 years in the web development industry I’ve been fortunate enough to work with multiple Content Management Systems and Frameworks. I started out building my own Content
Management System in the days of Microsoft VBScript 3 (2000-2003). Back then the web was simple. You could get away with many issues. I continued to enhance that CMS over several websites and
applications which included an attorney website, a marketing website, and a video rental website/application.
I then moved over to PHP working with WordPress, Joomla, and Drupal (2005-2006). These were “simple” Content Management Systems and as I took on more and more complex projects, the design,
architecture, and structure of these Content Management Systems restricted my ability to performantly solve more complex problems.
The key to evaluating these Systems is in how much extra work must be put in on top of the system to get it to do what is needed and wanted. Basically, and with any technology, when you start finding more
technology being invented on top of the original, it means the original technology was insufficient or too complex to solve real problems and developers had to build new solutions to solve those problems. This is the case with WordPress, Joomla, and Drupal. More so WordPress and even more so Drupal. WordPress is primarily a Blogging tool. That’s its purpose. It isn’t a business or web portal building application. The way it is designed and architected is around it’s purpose. Over time people started to bend it and use it for more than just blogging yet fundamentally the system’s design never changed
from the “blogging” platform. Joomla shared a similar fate but was more a content platform. Drupal took this further and did attempt to make a Content Management System that was adaptable and easy to mould around one’s content needs, not just blogging. I loved Drupal and at the time I was an active supporter of it, having built a Social Community application on top of it.
However, in 2006 I started to turn to real application development and move away from content management systems. The reason: CMS’s are not built for building applications (which is what today most modern web “portals” and commerce websites are). In addition, a few, including WordPress fall short of the best practices for application development, unit testing, and version control. This is where other developers have added and tweaked the CMS’s to try close this gap with additional technology being built on top as mentioned before. In modern application development, these items are crucial in ensuring the quality and reliability of what is being offered is at a high standard, and in my experience of these CMS’s, again WordPress included, this is where it makes it more challenging to know and trust 3rd party code or plugins.
So I decided back then to follow some popular PHP frameworks such as CakePHP and Zend. Both implemented common design patterns (common approaches to solving software design challenges, NOT content management challenges). These design patterns are what Software Developers use to solve common problems and if a system is already built with that perspective in mind, building on top of that software becomes simpler and faster than what can be discovered in traditional CMS’s. If I had stayed with WordPress or Drupal, I would have only built technology on top of technology that I neither agreed with or believed based on experience was what technology centred companies should use. WordPress is good for its purpose. However, its biggest weakness in my opinion is 3rd party plugins which can introduce security threats and bad coding practices. We had several WordPress sites which we maintained over the years that received hack attempts and security threats daily. This is a good example why WordPress as a base technology is insufficient and has to have additional technology added to it.
Once you master WordPress and know the good from bad plugins, you can provide a good product and several top websites across the world, including governmental institutions and fortune 500 companies, run on it. However it didn’t build and promote on standards and objectives for a quality, unit test driven application architecture to satisfy a wide range of online project needs. In our experience, clients want
to know and trust the software works and is as secure as it can be. To this day, not one of our applications has been threatened in the same way WordPress is. Having now used popular PHP Frameworks (not CMS’s) over the last 10 years I can say that without a doubt the best adaptable and performant way to build a web-based application or portal, is by using a proven Framework, not an off the shelf CMS’s. Over the last several years we’ve developed our applications around Laravel which is one of the most popular and widely supported PHP Frameworks in the world and built on solid architecture and design patterns. It has resulted in less time and code than what I would have had to develop in traditional CMS’s (even though they provide an Admin/Backend interface).
Furthermore, we’ve gone that extra step further and developed reusable parts and code (called the Foundry Framework) that allows us to rapidly develop customised applications in less time than building
the application from scratch. Our belief is the market for off the shelf will be challenged by the fact people are not moulds. Businesses are different, and procedures are different from one company to the next. The market for 100% custom built applications from scratch is challenged by the fact it is expensive and generally proprietary. Long gone are the years of building proprietary software. It wastes hundreds of thousands of dollars where a customisable framework can achieve the same result, if not better. Proprietary is also expensive to maintain.
Our applications are built off shared modules and shared experiences. Each project we have built as enhanced our code base further and further and each project gains on this without having to have paid
for it. And the best part is it is all open source and released on licences which allows you to own the code and do with it what you wish (See a comparison1).
|Migration||Not Good – need to use extra tools/code||Good||Excellent|
|Version Control||Not Good – not native and requires adaption||Average – not native and requires adaption||Excellent|
|Ease of Team Development||Not Good – need to use extra tools/code||Bad – need to use extra tools/code||Excellent|
|Modules||Good – Mixed coding standards||Good – Mixed coding standards||Excellent – Strong coding standards|
|Community||Excellent – Yet mixed between coders and non-coders||Good – Yet mixed between coders and non-coders||Good – strong coding community|
|Security||Average – Needs active monitoring, plugins, and continuous upgrading||Average – Needs active monitoring and upgrading||Excellent – Yet does need some monitoring and upgrading, but little|
What Others say
They following are articles others have written about the subject. This is not an exhaustive list and you are more than welcome to search “Laravel vs WordPress”.
https://www.reddit.com/r/laravel/comments/8vy1wz/laravel_vs_wordpress/ (read the comments)
https://www.theportlandcompany.com/2018/06/24/in-depth-comparison-of-wordpress-vs-laravel-cms-ecommerce-included/ (a little technical but written by a long time WordPress developer)