July 3, 2013

Something's budding at Fuse

A little idea has been germinating in our heads for a while here at Fuse.

We'€™ve had a small distribution that we'€™ve used as the foundation for all of our new client builds that's served us well in the past. It provided a healthy amount of default configuration for every possible site we would be building. Things like common module configurations, developer tools, default path aliases, additional quick links in the shortcut bar, and even a sub theme based on our base theme at the time of adaptive theme.

One big thing that's been lacking though is the usability of the client administration interface. A lot of work and thought went into making our jobs easier from the get go, but not much for the users who would end up managing their new site.

So in the last few months we'€™ve put a renewed emphasis on building atop our previous distribution to provide a thoughtful, easy to use and consistent administrative user interface for our clients. We'€™ve pulled from our over five years of experience building nothing but Drupal sites and also borrowed a few things from other projects such as Panopoly, Wordpress and even some nice things from Drupal 8. We'€™re calling it Sprout, and we might be going out on a limb here, but we think you'€™ll like it.

One of the first things we did differently from our last distribution was exporting as much of the configuration as we could into Features instead of relying on an install profile. This would allow us to pick and choose the features we want to use instead of always needing to start with the full Sprout distribution, but more importantly it allows us to retrofit Sprout into older client sites. The more consistent we can make the administration of our sites, the easier and more effective our training and documentation can be.

The Features

We took the opportunity while "€œfeaturizing" to break apart the functionality in the most logical way for us right now. This lends itself to extendability down the road and hopefully makes the most sense for anyone who wants to cherry pick the features they need for a particular site. As such, some features are pretty light on substance for the time being.

Sprout

The main Sprout project contains the installation profile and the make file for downloading all the dependencies using drush make. You can check out how to get your own sprout on the sandbox page.

Sprout Core

Currently a catch all for defaults that don'€™t currently have a good home.

Sprout Admin

  • Provides a two column panels based content edit screen
  • Sets default values for new content types using the Content Type: Extras module (no more having to remember to turn commenting off!)
  • Sets our administrative theme as default for the admin pages as well as content edit screens
  • Sets up a linkit profile for easier linking to both internal and external content
  • Integrates the scheduler module by default to provide a more intuitive publishing flow

Sprout Devel

  • Provides developer related defaults for devel, views and performance options

Sprout Media

  • Provides image handling primarily through the imce module

Sprout Users

  • Sets up a content editor role
  • Sets up a site manager role
  • Provides some default permissions out of the box

Sprout Wysiwyg

  • Provides a wysiwyg text format
  • General cleanup to the ckeditor interface including button grouping and preventing of horizontal resizing of wysiwyg editor

Building on some work that Chris Eastwood has been doing here at Fuse with the Wysiwyg module, we'€™ve bundled up all the possible niceties we could find for Wysiwyg and for our preferred wysiwyg editor, ckeditor.

Spade

Adds some Sprout specific CSS building on an admin sub-theme extending a cloned and grafted version of Rubik with RTBC’d patches from the Rubik issue queue applied.

Where to now?

We still have a lot of work to do (which is why it's still a sandbox project) but we're hoping to put a lot of effort into Sprout over the next few weeks. A few things on our radar right now are:

  • Better out of the box dashboard for all applicable roles
  • Even more image handling capabilities
  • More front end niceties using automatic contextual links where possible
  • Full project status

Thanks for reading, now make like a tree and leave. Oh, and why the name Sprout? Because it all starts with Seed.