Lessons learned from Seattle GiveCamp 2016
This past weekend I was a technical volunteer at Seattle GiveCamp, a weekend-long "hackathon" in support of local non-profits. This is my third time participating in this annual event and over the past few years, Wordpress has become a very popular solution. There are good reasons for this as it's very simple to spin up a new Wordpress site on a managed host and there are a ton of pre-made responsive themes to choose from. Additionally, the learning curve is achievable for tech-savvy individuals to create a site over a weekend that can be passed off to the non-profit to maintain going forward.
The project I selected was to create a filterable and sortable business directory. Having worked with Drupal as a project manager and analyst for over 9 years, I knew how easy this would be to build in Drupal. However, given the non-profit currently has a Wordpress site, that was not the best solution for them. While Fuse IQ does develop Wordpress sites when it is a good solution for the client, I personally haven't worked with it. So I thought this would be a fun exercise to see how a business directory could be developed in WordPress.
In Drupal, creating a business directory would be easy to create with content types and views. A content type is a collection of fields that serves as a template to enter content. In the case of a business listing, this would include fields like their business name, website address, a category they belong to, etc. This is core to Drupal and the fundamental building block for the content display. Wordpress does have something like this, but it's limited to posts and pages unless you install another plugin (a piece of software containing a group of functions that can be added to a WordPress website). After the content type is created in Drupal, a view would be created to display a list of content, such as a list of all the businesses in alphabetical order. Then the list could have filters to narrow down by various categories to help users find a specific business. Every site we build utilizes views and to me it's the most amazing module that you get with Drupal. Even non-developers like me can create views through the Drupal interface without writing any code.
In order to accomplish this in Wordpress, we needed to find a plugin (their version of modules) that had the functionality needed. We spent our Friday night searching for plugins and narrowing it down to a few possible solutions. While modules in Drupal are provided for free by the community, most Wordpress plugins work on a freemium model or have an annual fee so it's a cost that needs to be taken into consideration. This also means there are a lot more plugins available (over 47,000 on WordPress.org) which can be overwhelming.
We picked a plugin aptly called Business Directory Plugin, as it seemed robust and well supported. I do have to say that I was impressed with the level of documentation for this plugin, as sometimes that is lacking for Drupal modules. The plugin comes with extensive configuration and you can determine the fields you need, thus creating the content type you would normally create in Drupal. Then we tried to enter some test data and ran into errors. So we dug into the documentation to figure out what configuration options needed to be tweaked. Three of us technical volunteers managed to muddle our way through and get a functional directory within a day without doing any coding. This didn't include any theming (modifying the code that displays the design) as that would require modifying the existing theme, which was not something we had the bandwidth to tackle over the weekend.
Theming is another big area where Drupal and WordPress vary. This became apparent once we got the directory working. Upon initial implementation, there was a widget displaying on the right-hand sidebar for the blog menu. Left alone, this would be very confusing for users so I wanted to remove it and thought this would be an easy task. In Drupal we have blocks instead of widgets and they are used to put boxes of content in defined regions on a page. For example, I could have a donate box show up on various pages and not others; this is also something available in the admin interface and can be done by a non-developer. However, in WordPress, this is built into the theme layer and would need to be modified by a developer. This is a trade off with buying a pre-made theme, as you still may need to hire a developer to make changes to it.
Over the weekend, I also did my share of content entry and must admit that entering content is nicer on WordPress. It really handles media much better than Drupal. I don't think the admin interface is less cluttered or easier than Drupal's which is a common complaint. Drupal 8's content entry looks much more like WordPress than its predecessors, so there have been strides on that front.
At Fuse IQ we are creating sites in WordPress as well as Drupal. We always evaluate which one would be better for the proposed project, given the complexity and budget. I do see the advantages of WordPress if you have a simple site and limited budget. But if you want flexibility and a customized solution, Drupal is the winner.