DrupalCamp NJ - Headless Drupal
This past weekend (February 4, 2017) I had the opportunity to visit the sixth annual DrupalCamp NJ. Hosted at the Princeton University Friend Center, the conference gathered a wide variety of like-minded professionals from various backgrounds interested in sharing their knowledge about Drupal and discussing their experiences. In a true open-source environment, presentations were broken up into varying experience levels ranging from beginner to advanced and included categories like: Site Building, Front End & Design, Development, and Case Studies.
During my visit, I attended several really great presentations. Ted Bowman had a really awesome discussion on Drupal 8 module development. Erich Beyrent demonstrated how to manage a Drupal 8 configuration with Git and Composer, and Michael Hess shared some great tips on improving web security. However, a few presentations/discussions really jumped out and grabbed my attention…Headless Drupal covered by Williamson Vedder (Bluecadet) and Michael Potter (Penn State).
What is Headless Drupal?
Headless Drupal is seemingly the NEXT BIG movement in the Drupal community. To this point, traditional Drupal environments carry out all the components of a Drupal site (content and style to name a few) and serve them to the user. However, in a Headless Drupal environment – Drupal is mainly used as a depot for data while a multitude of other functions are carried out by JavaScript frameworks (AngularJS, React, Polymer, to name a few) that are plugged into Drupal. This is significant because it creates a clear separation between theming and content.
In a traditional Drupal environment, custom theming is often difficult because it typically requires a large number of views, template files, and large queries to deliver the desired results. Most developers who work with design teams will share war-stories about the time it takes to recreate some of the more intricate designs. In addition, depending on the size of your site, large queries to those files can cause lack-luster performance (slow load times) for your users. In short, Headless Drupal offers an alternative that allows Drupal to focus on what it is really good at…the back-end CMS, while JavaScript frameworks focus on delivering the client-side front-end.
Admittedly, prior to my visit to DrupalCamp NJ – I had heard colleagues in the community discussing the potential for Headless Drupal but I never truly grasped the concept and/or the significant impact it was having on site building; the Drupal sites I have built are all of the traditional format. That being said, I am excited to see how I might implement this approach into future projects. The thing that I find most encouraging about this topic is that it can be as simple or complicated as you want to make it. You can use a JavaScript framework to create a full theme, but you can also use it to create small applications to plug into your traditional site as well. For example, Williamson Vedder gave an excellent demonstration of creating a simple music player during his presentation (github.com/willvedd/drupalcampNJ17_headless_talk) that I plan to recreate as a learning experience; so stay tuned for future videos / write ups as I navigate my way through this headless adventure.
Finally, I want to give a BIG shout-out to DrupalCamp NJ for hosting such a great event. I have had the opportunity to attend several DrupalCamps and this was one of the most well organized to date. The sessions were very informative and engaging to all levels of experience and everyone was extremely friendly and helpful; I would encourage anyone reading this to make plans to attend next year.