Philosophy

Newsroom apps need to be decoupled from the content management system and the current page environment so that they stand the greatest chance of surviving future changes and CMS migrations. At the same time, they need to be good DOM citizens when running in an article page without an iframe's prophylactic embrace. Bundling apps with browserify allows us to enclose everything the app needs to survive in one file that can run either inside a Time.com page or on its own via the bare-bones index.html that accompanies each new app generated with this module. jQuery is the only dependency for our apps that is not bundled into the final script file, and at some future point we'll allow them to add it to the mix if it isn't located on the parent page.

To that end, our interactives at Time are developed independently from the CMS and bundled into self-assembling Javascript files using webpack. They are both discrete--requiring no dependencies--and discreet--interfering as little as possible with the rest of the page.

The Cardinal Rule: EULER

Easily
Understood by the
Least
Engaged
Reader

Standards

Code best-practices (or must-practices, if you report to Chris Wilson).

The Wilson Rule:

When an interactive data visualization is paired with written analysis, the user should be able to recreate all of the author's assertions in the interactive itself. The author should not have access to tools or information that the user does not.