Pym.js Embeds version Now with AMP ⚡️ support!

It's hard to do truly custom interactives work within WordPress. INN Labs' Pym.js Embeds plugin is built to make it easier for your newsroom to embed your latest data project, with help from NPR's Pym.js library.

Other solutions often involve pasting JavaScript into the post editor, disabling or bypassing parts of WordPress' security filters, or using interactive-builder plugins that limit your creative freedom.

All that Pym.js Embeds requires is a place to host your interactive as a standalone HTML page, and that you use NPR's Pym.js library in your interactive to make it resizable. Our plugin provides the seamless WordPress integration. Take the URL of your interactive and embed it in posts using the Block Editor or shortcodes. We handle the rest!

For the first time, thanks to the efforts of Claudiu Lodromanean and Weston Ruter, the Pym.js Embeds plugin supports the official WordPress AMP ⚡️ plugin. With both plugins installed, your Pym.js-based iframes will now be displayed as <amp-iframe> tags when your site is viewed through AMP.

Since amp-iframe now includes Pym.js's messages as a supported protocol, your embedded content is now more likely to work in AMP sites than it was before. As Google drives more content to your AMP pages, your readers will continue to have the same first-class experience they'd have if the reader viewed your full site.

This release also fixes some minor documentation issues, and we've improved this plugin's contribution guidelines on GitHub for external contributors.

Connect with the INN Labs Team

If you're using this plugin, let us know how you're using it! Send us links to cool things you've done with it; we'd love to include them in our weekly newsletter.

If you'd like to learn more about INN Labs' open-source WordPress plugins and tools for publishers or how we can work together on your next project, send us an email or join us at one of our weekly Office Hours.

Announcing: Pym.js Embeds version

The INN Labs team is issuing a major, Gutenberg-friendly update to the Pym.js Embeds WordPress plugin, formerly known as the Pym Shortcode plugin, which improves presentations of data journalism.

The Pym.js Embeds plugin creates a better experience for the reader with responsive embeds that scale to fit the story, reduces workflows for data journalists, and removes the need for tricky embed workarounds.

For more details, see our latest announcement. You can also learn more about the latest release on GitHub and download the plugin from

Pym Shortcode plugin update: version 1.3.1

Last week, NPR released Pym.js version 1.3.0, and earlier this week released 1.3.1. These feature releases introduced optional scroll tracking, allowing the child iframe to know where the browser is on the parent page. You can read more about how that's implemented, and how it can be used, on the NPR Visuals Team blog post announcing Pym 1.3.0. Pym.js version 1.3.1 added a function getParentPositionInfo to the Pym child.

Pym Shortcode version 1.3.1 brings you the latest version of Pym.js, as well as the following improvements:

  • Adds an id="" attribute to allow setting of custom IDs on embeds, for Github issue #21. The id="" attribute is useful if you want to load a new embedded page inside the iframe and maintain Pym functionality.
  • Adds a class="" attribute to allow setting custom of classes on embeds, for Github issues #22 and #23. The class="" attribute allows you to, among other things, add layout classes to embeds so they take a different shape on your page.
  • Adds a default class name pym to all embed-containing <div> elements output by this plugin, and a filter pym_shortcode_default_class to allow changing the default class or removing it.

You can download the new version of the Pym Shortcode plugin through your WordPress dashboard, on the plugin repository, or on Github.

If you have feedback on the plugin or would like to contribute to development of the Pym Shortcode plugin, check out our contributor guidelines and join the conversation in the plugin's GitHub issues or in our Slack.

Nerd Alert Issue 36: A steady diet of waffles


It's important to maintain "a steady diet of waffles." - @NYTMinusContext


What we're reading this week

  Adam: This post on WeChat is a fascinating read on what might be the future of mobile commerce. WeChat is a popular messaging app in China, but it’s grown into much more than that - an entire ecosystem with millions of interconnected apps within apps.

  Ben: Here’s a really well-written explanation of the difference between imperative and declarative programming languages.

  Dani: I’m getting ready to go back to school (graduate school this time), so statistics is on my mind. This article uses data viz to debunk some of the most common misconceptions about p-values.

  David: All news organizations and reporters need to ask this regularly: Do we have a clear engagement strategy for the status quo of the attention economy to deliver news products? Or are we just posting links on social media?

  Kaeti: Is your platform perpetuating unconscious (or conscious) bias? Latoya Peterson writes persuasively about why we need to engineer the racism out of apps.

  Ryan: Check out this curated list of lists containing links to some the best literature, libraries, videos, etc., on a variety of topics related to programming.

  Bert: You just stay there on the couch. I got the lawn.

This week's guest contributor:Dom DiFurio, Digital Engagement Intern at The Dallas Morning News.

The sexplosion of Vanity Fair’s Tinder story this week displays the importance in creating for the new audience. Most people would unfortunately agree that, in this era, Internet users tend to trade an interest in foreign affairs for mobile apps that get you laid (40 unique lays a year, if that’s what you’re into). That being said, somebody should create a Tinder but for finding news content millennials left at frat parties.

Each week we ask someone from outside our team to contribute a link, tool or idea. Are you our next guest star? We think you might be. Send us a note at


Work we admire by our journalism peers



The folks over at Texas Tribune's News Apps team built Pymviewer, an essential tool for anyone using NPR's popular pym.js to power responsive <iframe> embeds.


Gather ye rosebuds

LISTEN: The caution tape is there because this may bamboozle you.

COOK: Crunch. Repeat.

WATCH: A layer-lapse blends multiple time-lapses each moving at their own rate and starting from different times of day.

GIF: Be fearless. Try something uncomfortable and new!