Generally, when clients build a sophisticated application (web or native), the back-end interface is an afterthought. Most of the time, complex user-based applications are built with the back-end code directly interfacing with the database, and the abstraction of the data is tackled at a later date, if budget and timeline allow. Usually at some point a small custom admin is built to allow client's a tiny window into their application data. However, with the current rise of headless, or decoupled, CMS software this traditional approach to building applications is being challenged.
At Tragic, we have a rich history of building large user-based website with Drupal and we also have a lot of experience building web applications, primarily with AngularJS. Recently these two worlds have started to collide with the rise of Progressive Web Applications and Headless or Decoupled Content Management Systems . What this means is, Content Management Systems are being built in a way to allow for easy interfacing from outside applications, which in turn allows developers to build cutting-edge Javascript-driven applications while still allowing clients easy access to user data, reporting, e-commerce orders, content and product management, and more!
If you have been following our blog, then you know Drupal 8 has been making huge strides in its move to become an API-first CMS. We have started to leverage Drupal 8's powerful REST services to their max in our continued quest to build complex web applications that are intuitive, well-designed, and easy to manage. Below we've listed a couple reasons why we love to leverage Drupal as the back-end management suite when we build PWAs and native web services:
1. Drupal 8 is a "services first" CMS. It was was built with the mindset that developers would be using it in a headless or de-coupled manner, where Drupal is working solely as the back-end / user management portion of the application. Not only does Drupal come baked with core service endpoints, but it also provides a great interface for building custom endpoints- and best of all the services are built with performance in mind. The focus is in the right place, and important to the types of projects we like to work on.
2. Drupal comes with sophisticated tools that you can leverage for your project.. some examples are:
- Drupal Commerce - provides e-commerce endpoints and payment processor integrations which is crucial for adding e-commerce functionality to your web application and providing your clients' with an easy way to manage products and orders.
- Webforms - provides complex form handling: field interface, content relationships, automated emails, and also provides an easy admin interface for viewing form submissions.
- Views - leverage the power of Drupal views to easily build complex queries to provide data for your application.
- User Management - login, logout, roles, permissions, and profiles are all ready out-of-the-box. This saves time during development, keeps all of your user login info with the user data, and provides an easy visual interface for managing your users.
- Outside Integrations - The Drupal community is teeming with great modules to easily integrate Drupal with your favorite outside service. In our most recent PWA project, we used Drupal's Twilio module to provide an easy SMS integration for the application.
3. Drupal has extensive, custom reporting options. You can easily build totally custom, filterable reporting views that can also include charts, graphs, and a myriad of other features. Any type of report or data you're looking to harness can be harnessed easily, and in an organized, user friendly fashion. Since Drupal already controls all of the data for your application, using it to build out custom analytics reports is a no brainer.
4. Drupal has robust, and most importantly secure, admin features ready to go. When you use Drupal to build your application back-end (to handle your REST services), you are saved the effort of building an actual back-end for your super-admins. Site admins are able to easily manage application content, users, orders, and form submissions, without the need for developers to build out all of the administrative functionality separately. This saves a ton of time and money, not to mention, is significantly more secure with so many eyes and hands on possible loopholes and security flaws.
Using Drupal for your application services will save you time and money in your development process, and will allow your clients an easy-to-use management system right from day one. By offering advanced user and content management as well as the ability to easily create custom REST endpoints, Drupal allows your team to focus on building and growing the custom functionality of your application. Drupal provides application admins with great usage insights and an easy and secure management experience.
Though Drupal is not the only headless CMS in the market, it is one of our favorites, and hopefully this piece has shown you why!
Got Questions?