Last year I blogged on the news that Drupal 8 was out and ready for use for the right types of project. Now Five Mile is completing projects that fit well with early Drupal 8 adoption: simple field-based content, brochure style layouts and straightforward page-building content management features. What's more, with these builds, our team is gaining invaluable real-world experience of building in Drupal 8.
The crucial Drupal 8 learning curve
Heading into these projects, we were aware of just how much has changed in Drupal 8 and we knew that our development and theming skills were about to get a hard refresh. We also knew that for some of the trickier project areas, we would be on the edge of where Drupal 8 experimental and key contributed projects are at, particularly migrations.
Even so, we knew that this learning curve was essential for us as an agency focusing on Drupal and it came with the added benefit that it would drive us to get involved in Drupal's development in new ways.
The result of our hard work this year has been to gain invaluable experience and insight into what it's like to site build, develop and theme in Drupal 8 using the 'out-of-the-box' features that are on offer right now. And because the bulk of our client work has been migrating old Drupal 6 to new Drupal, we've had to cover many of those 'every day' site building requirements that are critical components in a modern content management system.
It was my original intention to blog on our experiences 'as we go' but we quickly realised that we needed time to experiment and form opinions on approach for ourselves. And now as the projects we've been working on begin to reach first phase completion, we are ready to start sharing some of our perspectives and experiences over what will be a series of posts.
From our early experiments with Drupal 8 last year, we came to the conclusion that so long as the bulk of the project requirements fit into the capability of Drupal core (plus a sprinkling of contributed modules) then Drupal 8 would provide an author experience that is improved and importantly, remain familiar to our customers.
Drupal 8 provides the CKEditor for managing content and it's very simple to setup, including creating different input formats and associated editor buttons. What's also available is basic media management for uploading and embedding images into your content.
Our recent projects have needed us to focus on this image and media handling functionality because in Drupal 6 we were using the Insert module to provide a similar but slightly more advanced set of image embedding features. For this reason, we're currently experimenting with the interface around embedding images and media as entities and for the author, it's an improved experience, being integral to the HTML editor rather than relying on additional fields.
Drupal 6: Migration to redesign
The Drupal 6 projects we having been migrating are old. It's fantastic that Drupal 8 is providing core functionality for migrating your Drupal 6 and 7 sites and that includes the migration of key Drupal 6 features such as CCK fields and Views.
The challenge you may face, as we did, is that it's not always the case that you will even want to carry out like-for-like migrations.
Drupal 6 and 7 have provided a wealth of ways in which we can work with content, views and the methods for displaying content (display modes being a good example). This inevitably means that our own methods for building in Drupal have evolved over the years and in many cases, we really don't want to be migrating content or features using methods that are outdated or lack flexibility.
To solve this we took the approach of assembling each of our migrations in order to deliver content and features in just the way we needed them: menus needed to be remapped or zapped, content types needed to be dropped or swapped and fields needed to mapped carefully for improved methods of working with content. We even had an early Drupal 6 drag and drop interface built using the Spaces module, the content for which was highly contextual and needed to be mapped node-by-node into a new field-based system in Drupal 8.
For Views in Drupal 6, one of our original habits was to build views using field based output. This was great for achieving fine-grained control over the HTML output on each field (a feature that later became available in Views for Drupal 7) but for Drupal 8, we wanted to shift almost entirely to display modes and the benefits that brings from a configuration, development and theming perspective.
This means that we have taken the time to setup highly customised migrations so that they deliver precisely what we want in Drupal 8.
This level of migration control requires plenty of code-level template creation and at this time, relevant documentation remains thin on the ground but we will be sharing more detail on how we did it in upcoming posts.
In my next post I'd like to dive into more detail on the author experience in Drupal 8, covering some of the key core features that are available and how you can configure them to make editing content simple for your authors.