Tales of Content Aggregation

A comparison of how we implemented real-time data within two of our latest interactive media exhibits by Nicolas Ross, Interactive Developer at ZEBRADOG.

Kaisang Tenzin, Technical Project Manager at ZEBRADOG, demonstrates the media wall at Joan North Place.

As a developer at ZEBRADOG, I’ve learned that thoughtful content aggregation is integral to implementing interactive media exhibitry. In addition to selecting the most representative sources, it’s also a process of wrangling and massaging their contents into one place so that they are viable for us and digestible for the end user.

So when we were approached by the University of Wisconsin - Stevens Point and Leinenkugel’s® to help tell their stories, we were wary to rely upon generic solutions to convey such vivid identities. These exhibits illustrate how the needs of our clients informed our content aggregation strategies and ultimately led us to contrasting solutions.

Do it yourself

Last fall we were delighted to be involved with the renovation of the College of Professional Studies at the University of Wisconsin in Stevens Point.

Joan North Place is a study area that we reimagined to help celebrate the college and its rich history. Its centerpiece — an interactive media exhibit featuring two screens — achieves this in part by aggregating nearly four dozen social timelines, event calendars, and RSS sources into a uniform feed.

Several factors encouraged us to develop the underlying architecture for this exhibit internally:

Update frequency

We agreed with the client that the exhibit would be most effective if its content updated in real-time. This level of granularity combined with the sheer number of sources would have become too cost-prohibitive for their budget if we had chosen a turnkey solution.

Zero moderation

The client desired a hands-off content management experience that simply pulled from a static list of approved content sources. This greatly simplified our workflow because we didn’t require a moderation interface between the aggregation logic and the exhibit.

Source obscurity

We were provided with several obscure content sources which weren’t particularly designed for turnkey use. For example, we implemented an RSS feed of campus events which specified its events’ dates, times, and locations using nonstandard microdata in their descriptions. Having access to the raw data allowed us to meaningfully massage these quirks before they became stories in our feed.


Given these requirements, we determined that a custom aggregator would be the most useful and cost-effective solution for the client.

The result was a RESTful API that gave us full control over our incoming data, the frequency at which we pull it, and its storage and formatting. With the adapter design pattern, for example, we converted varying implementations of feed items into a common interface. I was especially pleased with how this separation of concerns translated to the front-end because it reduced several complex procedures into one simple HTTP request:

GET /feed

Don’t reinvent the wheel

This spring we worked with Leinenkugel’s® to modernize the tour experience at the Leinie Lodge® in Chippewa Falls, Wisconsin.

The family wall exhibit that we created for the Leinie Lodge® in Chippewa Falls, Wisconsin.

The family wall is one of many exhibits we developed for the Leinie Lodge® to celebrate over 150 years of rich family history. Six generations of the Leinenkugel family are featured within the center of the triptych, whereas the surrounding panels display aggregated content from Facebook, Instagram, and Twitter. The result is an inclusive experience which invites visitors to become a part of this living family history.

Several factors compelled us to move beyond the aggregator we developed for Joan North Place and employ a turnkey solution instead:

Variable sources

Although there are several hashtags for which the exhibit is always listening, the client desired the ability to temporarily display content from others during holidays and special events. Implementing this functionality within our custom aggregator was feasible but not trivial.

Total moderation

The client desired a robust moderation interface to ensure that all content displayed within the exhibit is legally and ethically sound. While technically feasible, adding a moderation layer to our custom aggregator would have tightly coupled it to our content management system. This was undesirable for us from a maintainability standpoint.

Instagram integration

Unlike Joan North Place, we could not leverage a sandbox application to query Instagram posts from a public hashtag or more than twenty users. This level of integration requires a live Instagram application. For our narrow use case, we concluded that we would not pass Instagram’s permissions review process without a much broader scope.

This Instagram photo of a dog with a Leinenkugel’s® Summer Shandy® was one of my favorites during early development. If you look closely, you can spot it in the exhibit photo above.

We briefly considered creating a general-purpose platform to achieve these added goals. As we researched the cost and features of existing turnkey solutions, the impracticality of that task became immediately clear: our developer-hours are always better spent focusing on our exhibits themselves.

Eventually we selected Juicer to handle the content aggregation for this exhibit. The deciding factor for me was their robust API, which made it possible for us to implement some custom actions directly into our content management system. This decision ultimately afforded us dozens of hours to commit toward refining our content direction and interaction design.

Lessons learned

For what it’s worth, choosing an effective content aggregation method is never easy. Indecision and regret are common emotions on the rollercoaster between initial concept and final deliverable—the concept informs the method, which informs the implementation, which ultimately affects how closely the deliverable resembles the concept. Our success as storytellers is defined by how we choose to interpret and grow from these trials.

My takeaways from these projects include:

  • Consider all possibilities.
  • Don’t be afraid to try something new.
  • Be malleable with your expectations.
  • Grow from your mistakes.

What have you learned through your storytelling experiences?


Nicolas Ross tells stories for a living as an interactive developer at ZEBRADOG — a company which never lets his coffee cup go dry, and where he can befriend the world’s most interesting characters.