Using Open Atrium as an Innovation Platform at the Department of Education


5 min read

The Department of Education is using Open Atrium to allow its employees to share and collaborate around innovative ideas that could help improve both the Department’s work and education in general in the United States. The main feature of the site, which is called Idea Engine, is the ability for users to post ideas that other users can then vote and comment on. The “Ideas” feature works inside and outside of groups, which allows for both macro-level and smaller team-focused collaboration. This open feedback loop with voting and commenting being used to identify the best ideas aims to increase transparency and the flow of information between employees and senior leadership in the organization.

Department of Education’s Idea Engine out of the box

f2032234c32d  0GN3DZjWBKfYhcjae

Open Atrium out of the box

f2032234c32d  00rxc8 QbY0kA5HsH

From the looks of the above screenshots, it’s hard to tell that the Department of Education is using Open Atrium at all. With its flexibility and ease of theming, the Idea Engine is built on the Open Atrium platform with just a few specific areas of customization.

The Department of Education’s site includes three custom features — the “Ideas” feature, an “About” feature, and a site-wide blog. The Ideas feature allows users to create idea posts on which other users can then comment and vote. It works both inside of groups and at the site level, meaning idea posts can be created in the main site area where everyone can see, vote, comment on, and search for them without having to belong to any group. This is a key architectural difference from how most content is created in a default Open Atrium installation, but it is straightforward to achieve. Ideas can also be enabled within any group in the site, whether a private or public group, to allow for more small-team collaboration.

A look at an Ideas post with voting enabled

f2032234c32d  0M5t9pln4WGNCvaav

View of how users can search for ideas

f2032234c32d  0v1X0EuTbqa7LRf2Y

The About feature powers the “About” section of the site, which is mostly static content used for reference. Lastly, the site-wide Blog feature makes it possible for the site’s editors to post blog posts in the main site area, rather than just within groups.

Technical details

A handful of key steps were involved in making the Idea Engine platform look and work differently from a default Open Atrium installation. Here is a breakdown of the main steps we took to build this custom site:

Custom theme and sprite

We implemented the new design through a custom sub theme. For documentation on how to do this, see Create a Custom Sub Theme. In order for the sub theme to be set out of the box upon installation of the site, we forked the openatrium.profile and do something like the following in openatriumintranetconfigurecheck()

  db_query("UPDATE {blocks} SET status = 0, region = ''"); // disable all DB blocks
  db_query("UPDATE {system} SET status = 0 WHERE type = 'theme' and name ='%s'", 'garland');
  db_query("UPDATE {system} SET status = 0 WHERE type = 'theme' and name ='%s'", 'ginkgo');
  variable_set('theme_default', 'poplar'); // Poplar is the custom theme`

A custom sprite was developed which contains all of the custom graphics and takes the place of the default “sprite_skin.png”, which comes with the Ginkgo theme. You can read more about sprites and Open Atrium on our blog in the posts Designing for Speed and Scaling the Open Atrium UI.

New features and custom configuration

As mentioned above, we built three custom features for Idea Engine. In order to enable these features by default when the site is installed, it’s necessary to implement a few overrides. In this example, we use a custom module called “ed_settings” to store custom configuration that doesn’t really belong in each individual feature, but instead represents configuration that glues all the pieces together. This type of “settings” module is a good place to store a lot of the customizations described in the Customization Guide on

The hook spaces_presets_alter can be used to change default Spaces module settings, such as the default features enabled in a group, or the default blocks which should be available for a specific space type’s dashboard. For example:

* Implementation of hook_spaces_presets_alter()
function ed_settings_spaces_presets_alter(&$items) {
  if (isset($items['atrium_groups_public'], $items['atrium_groups_private'])) {
    // Default features and dashboard blocks for Atrium public groups
    $items['atrium_groups_public']->value['variable']['spaces_features']['efiia_ideas'] = TRUE;
    // Default blocks for dashboard
    $items['atrium_groups_public']->value['variable']['spaces_dashboard_blocks'] = array(
      'atrium-welcome_admin' => 1,
      'atrium-welcome_member' => 1,
      'atrium_calendar-mini' => 1,

In order to change the default site-wide features that are enabled, you can use hook_strongarm_alter:

* Implementation of hook_strongarm_alter()
function ed_settings_strongarm_alter(&$items) {
  // Default site-wide enabled features
  if (isset($items['spaces_features'])) {
    $items['spaces_features']->value['efiia_ideas'] = TRUE;
    $items['spaces_features']->value['efiia_siteblog'] = TRUE;
    $items['spaces_features']->value['efiia_about'] = TRUE;

The “ed_settings” custom settings module is technically a “feature” in that it contains exported definitions, facilitated by the Features module, which include custom boxes, filters, user permissions, and strongarm’ed variables. This module is what allows us to develop individual features that can be open sourced and shared with the general public without containing implementation-specific details, which would make the features unusable for more general use cases.

I worked on this project closely with Jeff, and Saman did all the design. We also had support from our partners at The Efiia Group and continued our close collaboration with Phase2 Technology on further making Open Atrium a well-tuned collaboration tool for the federal space here in Washington, DC.

What we're doing.