Introducing tpod - from tokens to podcast RSS feed

I wanted to add an audio companion for programmista since I consume more content in audio format than in text. I assume others do as well

More on this soon, but I'm a firm believer in the power of decentralization. Therefore, I didn't want to create a podcast with Spotify, as podcasts are becoming increasingly centralized, despite their origins in RSS.

I care about decentralized media so I decided to mint the audio companion as NFTs. This ensures they have a presence onchain, allowing the episodes to be collected and the content stored in decentralized storage. This is similar to programmista's text version on Paragraph, where posts are stored on Arweave, and each post can be collected as an NFT.

To achieve this, I started a collection on Zora and leveraged the data onchain to build the podcast feed.

As I continue to build more in the decentralized space, this Thanksgiving break, I developed a tool I’m calling tpod. It can create an RSS feed and a simple webpage for a given token URI.

Since my aim is to create more tools and compile ones created by others, I included a tool named man, inspired by the UNIX manual tool. It provides information on how to use each tool.

Here is the man page for tpod:$/man/tpod

Keep in mind, this is a very early alpha version that hasn't been thoroughly tested. Here are a few links to podcast pages from some audio collections on Zora:

- Zero Rights Reserved Podcast:$/tpod/chain://eip155:7777777/erc1155:0x20035fEa4dd659553233FE5ea3CA207E6427B5Eb

- UFO Podcast:$/tpod/chain:/eip155:7777777/erc1155:0x4174f78b7769650c1b205a2e1ac69cd0e47bbe02

- programmista audio companion:$/tpod/chain:/eip155:7777777/erc1155:0xd5E04c47bBF5686dfA55027d9ca8b7c46eC05Fc5

How tpod was built

Since programmista aims to be somewhat technical, I'll share a bit about how tpod was built. I have a Go server that calls the Tokens API to pull data for a given NFT contract on a specific chain. I chose Reservoir because they have indexed many chains, allowing me to pull data from Zora, Base, Optimism, Ethereum, etc.

The server generates the RSS feed following iTunes podcast standards and generates webpages using preact for client side rendering. The site is being served by and the domain is managed by Cloudflare.

I’ll share more later, but I'm building in a way that allows multiple tools to be registered with a descriptor. The server calls the registered tool logic passing in the subcommand and arguments (if any). The man tool reads the tool descriptors to generate the pages.


Give it a try! If you have any suggestions or encounter any issues, please fill out this form.

If you haven't already, check out the welcome post for programmista. Leave any questions you'd like me to answer in the call to action cast.


Subscribe to programmista's audio companion by pasting the following RSS feed URL to your favorite podcast player (only tested with PocketCast so far 😅).$/tpod/chain:/eip155:7777777/erc1155:0xd5E04c47bBF5686dfA55027d9ca8b7c46eC05Fc5.rss

Collect this post to permanently own it.
programmista logo
Subscribe to programmista and never miss a post.
  • Loading comments...