COPE: Create Once, Publish Everywhere

Guest Author, October 13th, 2009

This guest post comes from Daniel Jacobson, Director of Application Development for NPR. Daniel leads NPR’s content management solutions, is the creator of the NPR API and is a frequent contributor to the Inside NPR.org blog.

NPRThe digital media world is in the process of dramatic change. For years, the Internet has been about web sites and browser-based experiences, and the systems that drove those sites generally matched those experiences. But now, the portable world is upon us and it is formidable. With the growing need and ability to be portable comes tremendous opportunity for content providers. But it also requires substantial changes to their thinking and their systems. It requires distribution platforms, API’s and other ways to get the content to where it needs to be. But having an API is not enough. In order for content providers to take full advantage of these new platforms, they will need to, first and foremost, embrace one simple philosophy: COPE (Create Once, Publish Everywhere).

npr_architecture_diagram_490

The diagram above represents NPR’s content management pipeline and how it embraces these COPE principles. The basic principle is to have content producers and ingestion scripts funnel content into a single system (or series of closely tied systems). Once there, the distribution of all content can be handled identically, regardless of content type or its destinations (Click here for an enlargement of this diagram).

COPE

Through COPE, our systems have enabled incredible growth despite having a small staff and limited resources. Although the CMS is home-grown, COPE itself is agnostic as to the build or buy/integrate decision. Any system that adheres to these principles, whether it is a COTS product, home-grown, or anything in between, will see the benefits of content modularity and portability.

In this series of posts, I will be discussing these philosophies, as well as how NPR applied them and how we were able to do so much with so little (including our NPR API).

COPE is really a combination of several other closely related sub-philosophies, including:

  • Build content management systems (CMS), not web publishing tools (WPT)
  • Separate content from display
  • Ensure content modularity
  • Ensure content portability

These philosophies have a direct impact on API and distribution strategies as well. Creating an API on top of a COPE-less system will distribute the content, but there is still no guarantee that the content can actually live on any platform. COPE is dependent on these other philosophies to ensure that the content is truly portable.

Build CMS, not WPT

COPE is the key difference between content management systems and web publishing tools, although these terms are often used interchangeably in our industry. The goal of any CMS should be to gather enough information to present the content on any platform, in any presentation, at any time. WPT’s capture content with the primary purpose of publishing web pages. As a result, they tend to manage the content in ways focused on delivering it to the web. Plug-ins are often available for distribution to other platforms, but applying tools on top of the native functions to manipulate the content for alternate destinations makes the system inherently unscalable. That is, for each new platform, WPT’s will need a new plug-in to tailor the presentation markup to that platform. CMS’s, on the other hand, store the content cleanly, enabling the presentation layers to worry about how to display the content not on how to transform the markup embedded within it.

True CMS’s are really just content capturing tools that are completely agnostic as to how or where the content will be viewed, whether it is a web page, mobile app, TV or radio display, etc. Additionally, platforms that don’t yet exist are able to be served by a true CMS in ways that WPT’s may not be able to (even with plug-ins). By applying COPE, NPR was able to quickly jump on advancements throughout the years like RSS, Podcasts, API’s and mobile platforms with relative ease. As an example, the public API took only about two developer months to create, and most of that time was spent on user and rights management.

This presentation shows the same NPR story displayed in a wide range of platforms. The content, through the principles of COPE, is pushed out to all of these destinations through the NPR API. Each destination, meanwhile, uses the appropriate content for that presentation layer.

Separate Content from Display

Separating content from display is one of the key concepts supporting COPE. In the most basic form, this means that the presentation layer needs to be a series of templates that know how to pull in the content from the repository. This enables the presentation layer to care about how the content will look while the content can be display-agnostic, allowing it to appear on a web site, a mobile device, etc.

But to truly separate content from display, the content repository needs to also avoid storing “dirty” content. Dirty content is content that contains any presentation layer information embedded in it, including HTML, XML, character encodings, microformats, and any other markup or rich formatting information. This separation is achieved by the two other principles, content modularity and content portability

At a high level, many systems and organizations are applying the basics of COPE. They are able to distribute content to different platforms, separate content from display, etc. But to take some of these systems to the next level, enabling them to scale and adapt to our changing landscape, they will need to focus more on content modularity and portability. In my next post, I will go into more detail about NPR’s approach to content modularity and why our approach is more than just data normalization.

20 Responses to “COPE: Create Once, Publish Everywhere”

October 13th, 2009
at 9:24 am
Comment by: Todd

Whoa! Awesome.

Any plans to release this as open source?

October 13th, 2009
at 2:00 pm
Comment by: Daniel Jacobson

@Todd: We have talked a lot about opening up our CMS to the community and it is in our long-term strategy. That said, converting our system into a truly portable product is a big undertaking. Despite the magnitude of the project, it is still something that we very much want to do and will be making strides towards over time.

October 13th, 2009
at 9:19 pm
Comment by: Bookmarks for October 13th < fugaz

[...] COPE: Create Once, Publish Everywhere – Post a comment | Trackback URI [...]

October 14th, 2009
at 11:08 am
Comment by: NPR’s COPE: Create Once, Publish Everywhere « Predicate, LLC | Editorial + Content Strategy

[...] COPE: Create Once, Publish Everywhere, by Daniel Jacobson of NPR. See his related post. [...]

October 14th, 2009
at 10:23 pm
Comment by: CMS or COPE? « Small Business+Phoenix+Software

[...] or COPE? A nice article and diagram on NPR’s Content Management System built on the principles of Create Once, Publish [...]

October 14th, 2009
at 11:54 pm
Comment by: iterativelearning » Blog Archive » COPE

[...] interesting post in the Programmable Web by Daniel Jacobson on Create Once, Publish Everywhere (COPE). Two big standouts for me are how it foregrounds portability (e.g., to mobile platforms) and [...]

October 20th, 2009
at 1:30 am
Comment by: At NPR’s unconference, 2009 is the year of “We, the media.” « digiphile

[...] Jacobson wrote more about the NPR API at the Programmable [...]

October 21st, 2009
at 12:25 pm
Comment by: Content Modularity: More Than Just Data Normalization

[...] discussed in my previous post, COPE (Create Once, Publish Everywhere) is a fundamental philosophy that drives NPR’s digital [...]

October 25th, 2009
at 11:04 am
Comment by: C3? | C3 - Complete Community Connection

[...] Public Radio is well down this path.  Their Create Once, Publish Anywhere system is a joy to use.  Try their iphone/itouch [...]

October 25th, 2009
at 1:02 pm
Comment by: Οικοσύστημα παρακολούθησης προμηθειών και διαγωνισμών « Λίγο από όλα

[...] για δημιουργία-μια φορά-δημοσιοποίηση-παντού, βλ. COPE [...]

October 28th, 2009
at 9:14 am
Comment by: Follow live digital coverage of APME convention this week « Pursuing the Complete Community Connection

[...] and execution in which we produce content independently of products, as NPR is doing in its Create Once, Publish Everywhere [...]

November 5th, 2009
at 5:04 pm
Comment by: Andrew Golis » Blog Archive » links for 2009-11-05

[...] COPE: Create Once, Publish Everywhere This is so intense and impressive. (tags: npr syndication api mobile blogging) [...]

November 6th, 2009
at 3:38 am
Comment by: Hello World » Blog Archive » Weekly Digest

[...] Shared COPE: Create Once, Publish Everywhere. [...]

November 11th, 2009
at 2:17 pm
Comment by: Content Portability: Building an API is Not Enough

[...] previous posts focused on COPE (Create Once, Publish Everywhere) and content modularity, the fundamentals for ensuring that content can be managed and distributed [...]

November 12th, 2009
at 4:47 pm
Comment by: Unbundling the Magazine « Ergo McHenceforth

[...] these concepts nicely in his recently coined acronym COPE, standing for their philosophy of “Create Once, Publish Everywhere,” and illustrates it by way of a diagram of their content management [...]

November 12th, 2009
at 6:09 pm
Comment by: The NPR Model Is Correct | Tech Startups

[...] COPE: Create Once, Publish Everywhere Content Modularity: More Than Just Data Normalization Content Portability: Building an API is Not Enough [...]

November 13th, 2009
at 5:17 pm
Comment by: Things I Found Interesting Around November 12th | Chris Coyier

[...] COPECreate Once, Publish Everywhere [...]

November 24th, 2009
at 6:28 am
Comment by: NPR – doing everything right - blog - James Cridland

[...] other people. They regularly contribute to the web as a whole – witness this article about their content management system, for example – or their discussion of their site redesign process. “Agree on [...]

December 4th, 2009
at 9:20 am
Comment by: Sorry, it’s too late to COPE « CMSish

[...] it’s too late to COPE I was just reading an interesting couple of posts by Daniel Jacobson on the content storage strategy they’ve adopted for the U.S National [...]

December 17th, 2009
at 2:35 pm
Comment by: Peter Monks » Blog Archive » The Case for Killing “WCM”

[...] Production System” (CPS) and “Presentation Management System” (PMS), and in their COPE strategy NPR uses the terms “Content Management System” (CMS) and “Web Publishing [...]

Leave a Reply

  1. (not published)

Mashery: The Premier API Management Solution
Clickatell - Reliable SMS Gateway, Many APIs
Sonoa Systems: Enterprise class API infrastructure
Mashery: Etsy gains more customers every day. See how.Need API Documentation? Use SDK Bridge.

Become a ProgrammableWeb Sponsor

Follow PW on Twitter