Drupal is a scalable, open platform for web content and digital experiences management. 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 boomed in the market we integrated AngularJS with Drupal to create more user-friendly websites.
One of our recent projects, however, required us to use Drupal only as the backend while the frontend would be the mobile App. The requirement was not just to export the data but it was more than that.
This blog is the result of that project as it brings back one of the old, long-debated question “Is Drupal only a CMS (Content Management System) or WAF (Web Application Framework) or moreover CMF (Content Management Framework)?”.
But first, let us take a look at the difference between a CMS, a framework, and CMF. A CMS is a content management system specifically used to manage and share media like text, videos, audio etc. Unlike web application frameworks, it is based on modules rather than code.
On the other hand, a web application framework is simply based on coding. If you are a programmer or a web developer who loves coding you often choose a Web application framework for your projects. E.g.: Blogs, News portals, Job portals. Whereas, the framework is several libraries bundled together that can be used to build a Web application.
Answer - Drupal 8 is a CMF and not just a CMS, it’s a solid enterprise web application framework which uses best of both worlds CMS & WAF to serve a large number of users. Flexible APIs such as actions and triggers, Database API, caching, roles and permissions, Form API, REST API etc. make it an ideal web framework, while continuing to manage the content.
Listed below are some of the major components that are required for a CMF apart from managing the content.
Let’s find out if Drupal have compatible modules or functionality to call it a CMF.
Third party authentication
For any application, the users’ journey starts with sign-up and login so that they can access the authorized content. In today’s time where everything is almost just a click away, sign-up and login should also be that quick and easy. Hence almost every application these days provides a social media (Google or Facebook) login or SSO so that their users can access the authorized content and/or access the sub-domain or sub-sites. This authentication process must be secure while being quick.
Numerous authentication modules are available on Drupal like Google authentication, Social Media sign-ins (OAuth, External Auth) etc. Besides, customization can also be done using Authentication-API, RESTful web services API for 3rd party application sign-ins.
Exchange of relevant data
It is helpful to reuse the data on various applications, after feeding it once on a single application. While the creation of content is a tedious, time-consuming and costly task. Based on the requirement entire or sub-set of data can be exchanged within multiple applications.
One of the most important benefits of Drupal for exchanging the data is Feeds. 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.
Subscription or user type based Access control
While content authoring and publishing required a workflow and adequate permission to access the draft or in review content. An access control of data also may vary based on subscription for the end user or any third-party consumer.
Roles & Permissions provide more than enough access control, however, the Workflow and Rules module can be configured for specific access requirements. More customization can be done if required as RESTful web services API are part of Drupal core.
Serves large number of users
More user will be served if the time taken by the server to produce and serve the result to the end user is less and caching the result or data is the best part to solve this purpose.
Drupal provides out of the box caching for blocks, pages etc. and it is quite intelligent. It has a provision to set the cache timer or does not procure the data which require special access permission to the end user for e.g. About us page or most popular articles block can be cached from a few hours to days. However, latest Tweets or Facebook posts to be cached only for 15 Mins to a few hours only. This can be enhanced using Memcache, Varnish, APC or PHP 7 opcode cache. Along with the caching, CDN would be the icing on the cake.
Integration with JS Framework like Angular, React
Drupal also provides the flexibility to apply animation to represent data, 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 means that the application can leverage the best of both the 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.
Quick turnaround for production setup
Recently we developed a website which is kind of social networking websites for senior citizens. The project took around 6 months to develop and deploy. As we created profile during development. Later we installed the same profile, tweaked the site a bit in terms of style and some of the content and a brand new social networking websites for teens was created just in 10 days.
Out of the box, distributions are available on Drupal to create basic commerce or social media sites. Owing to this, creating a basic commerce site it would only take you 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). This helps in creating multiple instances of the same site.
E2E and automated testing
The graph below depicts the benefit of Automation from a cost perspective. However, that’s not it, 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 Behat is largely used for Behavior Driven Development. Thereby, saving a lot of time and cost.
Considering the number of benefits Drupal provides, it is more than a CMS, it is a CMF. Maybe it is now time to upgrade your digital experience with Drupal.
We can give you a hand at that.