How we synchronized our podcast hosted on Anchor.fm with our website datastore, Contentful. Importing our podcasts from an RSS feed into Contentful and why.
After talking to many product folks, we realized that this knowledge should be made public. So we started our podcast some time ago to interview Product Managers who understand what it is like being experimental.
The team is originally from the third world, where access to modern tech knowledge is mainly from these forms of media. So for us, we are contributing back to the knowledge pool and helping those that come after us.
We conduct many interviews weekly for product discovery and market research. Some of which turn into a podcast hosted by Dwayne Samuels. The experts we bring on also help shape the product we build.
Over time, we experimented with outreach/sales and realized that it was an excellent opportunity to interview people and show them a demo of the product we are building. So we combined podcast onboarding with sales outreach.
We iterated to find a formula where we got so good at finding people who know their stuff. We got a good cadence going where we publish every week or every two weeks, depending on our capacity. There is a lot involved, from recording the podcast to publishing it.
Part of the ecosystem We have just begun our Search Engine Optimization (SEO) and social marketing experiments. When posting the podcasts on social media, we posted the links to the publisher Anchor.fm. In this case, we are losing traffic to our website, which would have ranked our domain authority higher.
We also lose SEO benefits from the names and companies of the people we interview and the transcripts.
A few days ago, a very kind lady Katy Nardozzi, sent us this email while responding to our invite. Just the push that we needed. Thank you! Much appreciated!
So we reacted to this feedback and built a plan. We need to put all 29 of our podcasts on our website. Steven Samuels is in charge of managing everything podcast-related and is non-technical, so whatever we were doing, it had to go through no code for future releases.
Gatsby allows developers to build landing pages that are statically generated and uploaded to the server. When the browser requests a page, the page is loaded from a file. This allows the page to load blazingly fast with all the required data. There is no other network request to load additional content, very good for SEO.
Gatsby is famous because it is powerful to generate static sites from dynamic data, such as blog content.
Our blog content is stored in Contentful, a product in a space called headless CMS. These are just friendly databases designed to store website content in any shape you specify. When we build our gatsby site, it will use security tokens to pull in the blogs from Contentful and generate static blog pages like the below:
The Contentful database looks like this:
The editor of this data looks like this:
So we copied a version of this model in our Gatsby code and on Contentful. Coding this took a few hours.
So if every change requires a rebuild of the code, either changing the code itself or the data in contentful, how do we automate this? Our host, Netlify, automates this process. When we make a change to the code, Netlify will build and publish the website.
Contentful and Netlify work well together via webhooks, where if we make a change on Contentful, such as publishing a blog, then it will tell Netlify to rebuild the website using the new data.
Setting up Anchor.fm Podcasts in Contentful We tried to model our Contentful after the RSS provided by Anchor.fm, which can be found here. A podcast is uploaded to Anchor, which handles the distribution to Apple's iTunes and Spotify.
Our Contentful model looks like this:
We use a hero image because when we share on social media, we need it to look good enough to click on.
The hero image, however, is not found on the RSS, along with the content. Content here for us should store the iframe given to us by Anchor, to embed the player in our website. We will also place the transcript in this field too.
One value I've learned at Auth0 is that there is just one team, no matter the size of the company or your role.
Steven Samuels handles the podcast, and manually going into contentful and copying over information from Anchor.fm will be tedious. If a teammate's workload could be freed up by your skillset, help them. Automate what we can once the investment pays off.
Most companies would have their marketing/sales manually do this while engineers build the core products. Very strong tech companies will have engineers working in marketing and sales. A startup is about finding repeatable processes and automating them to scale.
We've searched and could not find any no-code tool that can do this easily.
Zapier stopped supporting contentful. Tray.io, I think, tricked us that it had a contentful integration, but the feature was not found after learning about the product and using it. Maybe it was a fake door test, and if it was, the user experience after the test is much more important than continuing to lead them on in pursuit of knowledge.
This is why we are building Samelogic, to make these types of testing more user-friendly. It can be done without pissing off the users.
So we had to write code 😐
This is a one-time typescript code written to read the items from the podcast RSS feed, then send them to contentful.
Now we have populated the podcast list, marked it as a draft until someone verifies them, adds the hero image, embeds links and transcription.
We tested and published one with Farheen Noorie:
Not bad for a few hours of work and having a process becoming more automated to save us time. Now we can point our podcast posts to our blog. Notice we threw up a call to action (CTA) on the right, so that is an additional win of getting some eyes on the product from podcast views. What happens to new podcasts?
Unless we can find a no-code workflow automation product, we will have to write the podcast on contentful manually. This feels like menial work, apparently the norm for marketing teams.
I'm sure we can use this version of this script on a node-code platform and execute it whenever a podcast is published via RSS feed updates. Check out the result here: