Skip to main content

Like many other designers and developers who spend their days building the internet, my personal website has consistently suffered from lack of attention. I think as a group we suffer from the Cobblers Children Syndrome, as I've seen even the most prolific pixelworker leaving their own sites looking outdated and neglected. For me, this space historically has gotten very sporadic care, usually spruced up only when needing to impress potential employers, or when wanting to play with a new platform or technology.

In this case, it's the latter. With the release of the newest version of Drupal just around the corner, I figured it was about time to stop kicking the tires and actually build a project so I could get some firsthand experience for my day job. Since I don't think D8 is quite ready for a client project, my own site would serve as a good candidate for a reboot. I believe in our industry this is called dogfooding.

Design

I knew from the start that I didn't want to create another portfolio-centric site. There are a few reasons. Our industry changes so quickly, that portfolios quickly start looking outdated. Many sites that I've worked on no longer really reflect the quality of the work, as they may have been altered over time, or perhaps maintained sub-optimally. Also for me, I've not always been at liberty to include my best work, due to marketing agreements or disclosure arrangements. While I'm happy to provide a potential employer with a private tour, I just no longer felt that I wanted my personal web space to emphasize a gallery of stale screenshots.

Instead, I simply want it to be a place where I can share how I think. With that in mind, I focused the design on making the site easy to read. Sparse, but punchy graphics, and legible type that lends itself to the display of the long-form article. If you haven't noticed, I can be wordy.

The custom theme was built from scratch and was inspired by the newer blogging platforms like Medium and Ghost. I like all the white space and lack of cluttered sidebars. I tried to incorporate that simple feel, and spent an unhealthy amount of time browsing Typekit for a font pair. Sadly, after finally choosing, I noticed that Brandon Grotesque is everywhere. It's well-worn and in danger of becoming a has-been trend, but I still like it and it'll do for now.

Development

For the most part, site building in Drupal 8 is a familiar experience, except that you get a little further out-of-the-box without having to reach for contrib modules. Which is great, because at the time of creation there weren't many modules out in the wild that looked ready for primetime. Creating content types was straight-forward, everything is fieldable, and Views is part of core.

It was during theme production where I got a taste of how different D8 is under the hood. YAML files instead of those weird .info manifests, twig instead of php template, and new conventions for loading assets such as CSS and Javascript. There definitely was a bit of a learning curve, especially when doing overrides at the template level. Also, dealing with upgrades from one beta version to the next was a bit of a headache. Things changed rapidly. Surprisingly, there was already a lot of documentation from other developers with just enough explanation, so I eventually found what I needed to grind through and get the job done.

Tips

The first thing you'll want to do is to install drush 8 if you haven't already. Since I needed to keep an older version of drush for working with our hosting platform, I set up a separate alias so I can run both versions at the same time. You'll be clearing the cache a lot when working with D8. It is no longer with the familiar drush cc all command. It is now drush cr for "cache rebuild."

Another good idea is to turn on the debugging for your twig templates. This is done in the services.yaml file. In the twig.config section, you'll want to set debug: true. This will allow you to inspect the template variables using the following syntax {{ dump(variable) }}.

The last thing I'd recommend for theme production is to brush up on the new process for loading assets such as CSS and JS. These get set in a theme_name.libraries.yaml file and referenced in theme_name.info.yaml. It'd be a good idea to give the official docs a read to get the entire low-down on how it all works together.

Conclusion

Site building in Drupal 8 will be familiar to those with experience with Drupal 7, I found it mostly the same. It's working with the code where things start to go in a new direction. With its new object-oriented architecture, it is quite a departure. These changes have caused a bit of controversy among some in the Drupal community. In response, a few prominent developers even split off and created a new CMS similar to Drupal 7 called Backdrop. Geared toward small businesses and site builders, it is said to boast many of the improvements Drupal 8 provides, but keeps the same architecture. I'll do a test run and a review of that open-source product in a future post.

Overall, I think D8 will be a good platform for larger clients and enterprise-level institutions. By bringing Drupal more in line with the rest of the PHP community, it will ensure that skilled developers on these larger teams can apply their existing knowledge without learning a lot of Drupal-only ways of doing things. On the other hand, I don't think it will be great for smaller freelance work or hobbyists. It's a sophisticated product, and I imagine most significant work on it will need to come from core contributors. It certainly is overkill for this tiny blog. That said, I'm excited to start working with it, because new tech and better tools are why this job never gets old.

Back to the Work section »