NPR is moving away from separate content management systems and towards an API-first approach called CAPE (Create Anywhere, Publish Everywhere) that allows content to be created and managed in any system but published through APIs. The key principles of CAPE are to separate content from display, make content modular and portable, design all features as APIs, prioritize speed in APIs, use search indexes through APIs rather than databases, enable granular security controls, and design for user queries rather than data models.
2. Create Once, Publish Everywhere
● Build content management systems (CMS),
not web publishing tools (WPT)
● Separate content from display
● Ensure content modularity
● Ensure content portability
NATIONAL PUBLIC RADIO
5. Create Anywhere, Publish Everywhere
● Separate content from display
● Ensure content modularity
● Ensure content portability
● Everything is an API
● Speed is a feature
● API is a search index
● Granular security
● Design for user queries, not: data models
NATIONAL PUBLIC RADIO
6. Everything Is an API
à la Jeff Bezos + Amazon. Do not create access
dualities. All features and content must be
accessible through an API.
NATIONAL PUBLIC RADIO
7. Speed Is a Feature
Faster the API, the more it gets used. Slow APIs do
not survive.
NATIONAL PUBLIC RADIO
8. API: Search Index
For a distributed publishing system, API is the data
integration point, not: the database of record.
Search engine is a great backend for such API.
NATIONAL PUBLIC RADIO
9. Granular Security
Publishers need control on a single content item
level. Sometimes: even on the level of assets of a
content item.
NATIONAL PUBLIC RADIO
10. Design user queries,
not: data models
Forget what they taught you in CS classes. UML is
for Suits. Stateless Inputs and Responses are all
that matter.
NATIONAL PUBLIC RADIO
11. Create Anywhere, Publish Everywhere
● Separate content from display
● Ensure content modularity
● Ensure content portability
● Everything is an API
● Speed is a feature
● API is a search index
● Granular security
● Design for user queries, not: data models
NATIONAL PUBLIC RADIO
12. Questions?
Irakli Nadareishvili
twitter: @inadarei
NATIONAL PUBLIC RADIO