Warning: Creating default object from empty value in /home/cnordholm/cameron.nordholm.us/wp-content/themes/platform/core/library/class.layout.php on line 163

Warning: Creating default object from empty value in /home/cnordholm/cameron.nordholm.us/wp-content/themes/platform/core/library/class.layout.php on line 166

Warning: Creating default object from empty value in /home/cnordholm/cameron.nordholm.us/wp-content/themes/platform/core/library/class.layout.php on line 169

Warning: Creating default object from empty value in /home/cnordholm/cameron.nordholm.us/wp-content/themes/platform/core/library/class.layout.php on line 172

Warning: Creating default object from empty value in /home/cnordholm/cameron.nordholm.us/wp-content/themes/platform/core/library/class.layout.php on line 175

Warning: Creating default object from empty value in /home/cnordholm/cameron.nordholm.us/wp-content/themes/platform/core/library/class.layout.php on line 177

Warning: Creating default object from empty value in /home/cnordholm/cameron.nordholm.us/wp-content/themes/platform/core/library/class.layout.php on line 179

Warning: Creating default object from empty value in /home/cnordholm/cameron.nordholm.us/wp-content/themes/platform/core/library/class.layout.php on line 201

Warning: Creating default object from empty value in /home/cnordholm/cameron.nordholm.us/wp-content/themes/platform/core/library/class.layout.php on line 205

Warning: Creating default object from empty value in /home/cnordholm/cameron.nordholm.us/wp-content/themes/platform/core/library/class.layout.php on line 223

Warning: Creating default object from empty value in /home/cnordholm/cameron.nordholm.us/wp-content/themes/platform/core/library/class.layout.php on line 224

Warning: Creating default object from empty value in /home/cnordholm/cameron.nordholm.us/wp-content/themes/platform/core/library/class.layout.php on line 226

Warning: Creating default object from empty value in /home/cnordholm/cameron.nordholm.us/wp-content/themes/platform/core/library/class.layout.php on line 320

Warning: Creating default object from empty value in /home/cnordholm/cameron.nordholm.us/wp-content/themes/platform/core/library/class.layout.php on line 320

Warning: Creating default object from empty value in /home/cnordholm/cameron.nordholm.us/wp-content/themes/platform/core/library/class.layout.php on line 320

Warning: Creating default object from empty value in /home/cnordholm/cameron.nordholm.us/wp-content/themes/platform/core/library/class.layout.php on line 320
Object-Oriented Storytelling | Media Mass | Cameron Nordholm

One of the major challenges we wanted to tackle with the PBS News project is how we syndicate rich stories. Not multimedia packages, not playlists, and certainly not ‘rich’ articles, but visually compelling, narrative-true structures of content.

To answer this challenge, I’ve been working to define the product side of what we’ve been calling ‘Deep Dives’. Deep Dives are evergreen visual packages of narrative information into which any type of narrative can be added: text, photos, slideshows, video, data visualizations, polls, Q&A – you get the picture. In this first-sketch wire frame they look pretty simple:

So what

But once you begin telling stories and bringing different content objects together (including PBS’s web object standard for capturing – ahem – obscured content), the picture begins to look for like what you see next to these paragraphs.

Context and re-contextualization

But if you’re going to tell a story, simply dropping content into a template is no big feat and won’t give you the economies of an object-oriented approach. So what we did is built in a layering system that allows any content object’s metadata to be overwritten and iterated upon. Existing fields still populate any untouched space, but it allows an editor to take a sequence of biographies and connect the dots between each while preserving the underlying content.

Theming and editorial control

These layers also support distinct theming for individual objects, enabling editors to focus the users’ attention on the right portions of the story, emphasizing a photo in one object or graf in another. The layering approach also supports multi-device versions.

Infinitely modular

In preserving the object-oriented approach, entire layouts can be added a story ‘chapters’, enabling diverse content to be mixed in with standard leads. Practical note: This allows national syndicators to top a story lead at their headquarters while affiliates augment and tweak the content to fit their local or vertical-specific audience.

Highly distributable

In the app we wrote in DjangoCMS, high level metadata contained with the entire layout is output as JSON, powering the Dynamic Lede but also enabling partnerships with Flipboard, Google Slide, and others. The story objects themselves are also accessible through version layers: the entire canvas can be versioned and output as a meta object.