A stylized robot face made of the letters F and T.
 

Shortcut

Above: a video generated with Shortcut from the JoJo's Bizarre Explainer podcast.

Brief

This American Life assembled a small team to build a prototype based on a hackathon proof-of-concept with the mandate of making it possible for podcast fans to share their fandom with others. We had a blast on that phase of the project, and were delighted to return to complete the open sourcing of the code base and help build and maintain the Shortcut community.

Implementation

Shortcut was a monster of a project, technically speaking! The first thing we ended up doing was a prototype where we tackled our most pressing immediate problem: given a timed transcript and audio data, could we generate a preview video clientside in canvas and then render that identical video serverside as an mp4 to serve back to the user? Turns out: yes, we could. There were many technical challenges we could mention, but we'll just mention a couple that stand out.

We built Shortcut using Material UI, a popular material design tool for React. In between building our first version in 2016 and the open source version in 2017, Material had a v1.0 pre-release with a ton of great new features. We decided to port the whole UI over to the 1.0 framework, which broke some backwards compatibility and required a fair amount of work. It was totally worth it though, as the API for the new version is miles better than it used to be.

For the original Shortcut we used Amazon Lambda for our heavier audio/visual processing load. It’s an AWS service that lets you run “functions” instead of having to prop up whole servers. In theory it’s cheaper than hosting services on EC2 and you have less to think about as an administrator. But in that intervening year, Lambda really failed to take off (I mean it’s doing fine it just didn’t set the world on fire). And it’s a really intensely confusing dependency with a steep learning curve. So for the open source release we decided to take all our serverside stuff and put it all in the same Express project. This simplified a whole bunch of things: now all you have to do is deploy an AMI to EC2, it’s familiar Ubuntu 16.04, and it encourages more development contributions from the community.

Post Mortem

Some of Shortcut’s development team have written about the process and provided some initial observations on user behavior. You can read press coverage from the initial launch and we’ve written on our own blog about the open source version.

 

The content of this article is provided under a CC-BY Creative Commons Attribution 4.0 license.