Drupal is a scalable, open platform for web content and digital experiences management. It is a free platform written in PHP and distributed under the General Public License. It provides profound capabilities and endless flexibility on the web. Initially, we were also installing and configuring Drupal, creating content types, menus, views, taxonomy etc. to create not just beautiful but secured and performing websites.
When JS framework and decoupling came to the market, we coordinated AngularJS with Drupal to create more user-friendly websites. This blog is about – Drupal is CMS or CMF? To know this, first of all see What is CMS and What is CMF?
A content management system (CMS) is a computer program which allows publishing, editing and modifying content on a web site as well as maintenance from a central page. A content management system, should be ready to go right out of the limit- something that non-developer can easily setup to use. The main purpose of the CMS is to manage the content( For eg., WordPress).
A content management framework (CMF) is a system that facilitates the use of reusable components or customized software for managing web content. A CMF is more like a box of Legos. It could be used to make something very simple, or in the hands of an expert, it could be used to make something VERY complicated.
One of the popular views of a CMF is that, it has to be based on MVC(Model, Views, Controller) architecture. For eg., CodeIgniter, CakePHP.
CMS vs CMF-
In about 2001 Dries Buytaert released Drupal. It began similarly as a simple forum software. However, thanks to the invention of the Node, it quickly evolved from there.
Until Version 4.6, Drupal was still a Node management system or a CMS.
But then something changed…
In Version 4.7, Drupal now had the ability of two awesome Modules called CCK and Views. This was the real turning point for Drupal. This was a point, when it stopped being a CMS and starting to become a true Framework.
This is when all these pre-defined Nodes started being replaced with “text-fields” and “date-fields” and “image-fields“. No longer were we confined to using a pre-built solution, we were instead encouraged to build our own. From few years with Drupal 8, you can see that transformation is almost complete.
Never again will you discover Recipe Modules for download. The expectation for Drupal these days is that you will build your own content.
Compatible modules or functionality to call it a CMF-
1. Exchange of relevant data-
It is helpful to reuse the data on numerous applications, after feeding it once on a single application. Whereas the creation of content is a tedious, time-consuming and costly task. Based on the requirement, whole or sub-set of data can be exchanged within numerous applications. One of the most important benefits of Drupal for exchanging the data is Feeds. These feeds are used to import data, while Views with JSON or XML format output helps to export or provide the required data to third-party applications. Out of the box modules that integrate with various Geolocation tools, Payment Services, Social Networks, CRM, ERP and many other open standards are also available in Drupal.
2. Third party authentication-
For any application, the users’ journey begins with sign-up and login so that users can access the authorized content.
Nowadays, where everything is available just on click, sign-up and login should be quick and easy. So, now almost each application provides a social media login or SSO so that their users can access the authorized content or sub-domain or sub-sites. This authentication process must be secure while being quick. Various authentication modules are available on Drupal like Google authentication, Social Media sign-ins etc. Apart from this, customization can also be done using Authentication API, RESTful web services API for 3rd party application sign-ins.
3. Subscription or user type based Access control-
Content authoring and publishing requires a workflow and necessary permission to access the draft or review content. An access control of data also vary based on subscription for the end user or any third-party consumer. Roles and permissions gives access control which is more than enough, however, the Workflow and Rules module can be configured for particular access requirements. Higher customization can be done if required as RESTful web services API are part of Drupal core.
4. Having large numbers of users-
If the time required to produce and give the result to the end-user is minimum, then the framework will engage more users. Also caching the result or data is the best part to solve this purpose.
Drupal provides multiple caching for blocks, pages etc. and also it is quite intelligent. Drupal has a benefit of setting the cache timer which require special access permission to the end user. For eg., About us page or most popular articles block can be cached from a few hours to days. Whereas, latest Tweets or Facebook posts to be cached only for 15 Mins to a few hours only. This can be increased using Memcache, Varnish, APC or PHP 7 opcode cache.
5. Integration with JS Framework like Angular, React-
Drupal provides flexibility to apply animation to represent data, also have desired look and feel for the same block or change and update it whenever required.
JS framework can be integrated by using libraries and tweaking the template file. However, to make it easier now Drupal is looking to adopt React.This implies the application can use the best of both worlds. Where Drupal will provide the user, content management, and workflow. Also, by using feed, REST APIs or views (as mentioned above) the representation of data can be beautify using JS frameworks.
6. Quick turnaround for production setup-
Out of the limitations, distributions are available on Drupal to develop basic commerce or social media sites. Due to this, developing a basic commerce site would only take a few days.
Configuration Management System, Distribution (installation profiles) help for a quick turnaround along with the features, hook_install, and devel module to create dummy data (If required). As a result, this helps in creating multiple instances of the same site.
7. E2E and automated testing-
Automation also helps in test coverage, data-driven testing, and performing different types of testing such as Functional, Regression, Smoke, API, etc. – both, efficiently and effectively.
This is possible because of simpletest, an integral part of Drupal that requires the developer to write test files at the time of module writing so that any changes in the modules can be verified then and there; and is largely used for Behavior Driven Development. Thereby, saving a lot of time and cost.
Considering these benefits Drupal provides, it is more than a CMS, it is a CMF.
Are you thinking to develop a best website for your business? Dedicated developers at solace are ready to help you for website development using Drupal, that will boost your business to the next level. To get a free quote for drupal website development, contact us.