COPE: Create Once, Publish Everywhere

Guest Author
Oct. 13 2009, 01:23AM EDT

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.

The 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.

Guest Author

Comments

Comments(78)

@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.

[...] Narrative is a crucial part of good journalism, but it’s not enough, not anymore. The news industry needs to start thinking about journalism in terms of information and the myriad ways in which we can present that information to our readers. Daniel Jacobson, director of application development over at NPR, sums it up as follows: build a content management system, not a web publishing tool. 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. (Daniel Jacobson) [...]

We see this content strategy problem all the time in managing our Web content for a Fortune 50 site. We confuse CMS with WTP and use our CMS to generate our very complex site navigation as well as content. The complex navigation files (that also include dynamic functionality by country and language) get consumed by another layer that controls the content display. I'll do some digging and see if COPE can help in this area. We certainly need another layer of abstraction somewhere!

[...] 6. COPE – Create Once, Publish Everywhere. Another best practice in sharing content is to get the most out of everything you create. If you write a blog post, get interviewed on a podcast or create any other content, share it on appropriate social media sites. Similarly, if you work for an organization that produces content (such as white papers, cool ads or events), share that information with your networks to support the brand of your company. Learn more about the COPE concept here. [...]

[...] NPR’s Director of Application Development, has an excellent article on the philosophy of de-coupling the content management tier from the delivery tier. He calls this strategy COPE: Create Once Publish Everywhere. In particular, the diagram is [...]

[...] The solution calls for product teams to adopt a mantra of Create Once Publish Everywhere (COPE as originally coined by Daniel Jacobson). To accommodate mobile, software architects for modern companies have a responsibility to ensure [...]

The NPR implementation seems to be based on the COPE-Enabled Media Publishing and Distribution System developed and published in 2000 written Douglas Heise and Johnathan Hornstein of iLX, Inc's Digital Media and Broadband Solutions Group and sponsored by Cisco, Digital Island, EMC2 Oracle, and Sun.

[...] COPE: Create Once, Publish Everywhere — NPR’s Director of Application Development, Daniel Jacobson, walks by how NPR separates calm from arrangement and uses a singular information source for all a apps, sites, APIs and feeds. A good instance of what Frost talks about per calm as a liquid thing. [...]