Since the very beginning, Pinecast’s application servers have been hosted on Heroku. The main application database, the Django application that serves web requests, cron jobs, the CI pipeline, and the staging environment have all been built exclusively on Heroku infrastructure.

Heroku has never been perfect. Every year or so, I encounter a rough edge or a hiccup. I’m sure I’ve complained enough about Heroku’s shortcomings on Twitter. But in recent months, this has come to a head.

The impetus for migrating

In October, Pinecast started experiencing infrequent periods of degradation for 4–20 minutes at a time, roughly once every week or two. During these…


Back in 2015, I built Pinecast out of necessity: the podcast host my buddy was using was going out of business. Looking at the options, I was dissatisfied with every option out there, so I decided to build my own. My buddy was editing podcasts as a side hustle, so I joined forces with him.

After thousands of iterations and tweaks, Pinecast became what it is today. But instead of just being my friends, it’s tens of thousands of amateur and professional podcasters, businesses, students, priests and pastors, and more. …


This past week, to satisfy my urge to build something new, I’ve started putting together a project which has a real-time chat component, which means websockets. In a server-side JavaScript project, this is not something I’d think twice about: setting up a project with ws or another similar library is easy. But I love Django’s ORM and I’ve got a pile of useful Python from Pinecast, and Django 3 was recently released with ASGI support, so I decided to play with Django Channels for the first time.

Channels is a project from Django that allows you to build applications which…


The Pinecast Episode Renumbering tool is a fairly recent feature that podcasters have at their disposal. It allows podcasters to update their episode titles in bulk to account for Apple’s 2019 guidelines.

The renumbering tool in action, automatically removing prefixes from episode titles

What does it do?

Apple’s guidelines essentially boil down to a couple things:

  1. Start using the season and episode number tags in RSS feeds
  2. Remove your season and episode numbers from your episode titles

While this is a straightforward ask on paper, there’s a great deal of technical shizzle-wizzle that needs to happen behind the scenes.

The big challenge is that most podcast apps—including old versions of Apple’s own podcast apps—don’t support…


For the first time since Pinecast launched, we’re increasing our prices. I’d like to take a minute to explain the change and how it will affect accounts.

TL;DR: Our Starter plan will go from $5/mo to $10/mo on Feb 29 for new subscriptions only. Existing customers will be unaffected, unless your subscription is canceled. Referral credits will increase from $10 to $20.

History

Pinecast was founded with the philosophy that podcast hosting shouldn’t be expensive. In fact, when I put the first version of Pinecast online in 2015, the only users were me and my friends. …


A few months ago, someone wrote in to Pinecast support asking about whether they could host their podcast. The nature of the podcast was controversial, and so they were inquiring whether it would be removed from Pinecast for violating policies. Specifically, they asked the following:

Is there ANYTHING I could say in a podcast to get removed from your service? I’m taking “trans people have a mental disorder” all the way to “Hitler wasn’t so bad.”

I usually would otherwise not share the contents of a message from a customer, but this pokes at an issue that I’ve been asked…


Reddit user /u/StargatePioneer, a host of the Better Podcasting, has fifteen-points of criteria for choosing a podcast hosting service. You can check out the Better Podcasting episode that outlines the criteria on their website. I wanted to take the time to go through each point and compare how Pinecast stacks up.

The criteria

#1 Don’t mess with my file. What I upload is what I want people to download.

Pinecast does not re-encode your file when you upload it. However, we do offer the ability to add or update meta tags (and embed podcast artwork) during the upload process. ID3 tags, which are the tags stored within the episode itself, annotate the file with basic information about your…


A couple months ago, we got a tweet from a user:

Well, Mr. Golden, we’ve got good news for you. Today, Pinecast users can create social audiograms for their episodes through Headliner.

If you click on any episode in your podcast dashboard, you’ll have the option to create a new audiogram. Clicking the “Create video” button will launch the Headliner wizard.

It costs nothing to design your video, and exporting it from Headliner costs only one dollar. We’ll add it as a line item on your monthly invoice so you get billed all at once.

These audiograms are…


We get a lot of questions about our analytics at Pinecast. Many of these questions are very fair: Pinecast analytics don't work very much like the analytics for other podcast hosts, nor do they work like most analytics features in other non-podcasting applications. This article is meant to help explain how Pinecast analytics work, and why they work that way.

Analytics that change

The most important difference between Pinecast analytics and other analytics products is that Pinecast analytics are dynamic. We keep a living record of every listen and subscription, each tagged with metadata about the circumstances of the corresponding event. …


In the beginning, Pinecast was a very simple application. The first interactive features included the category picker and the upload widget: both started as vanilla JavaScript (i.e., no framework) components without even a minification step.

Pinecast has long outgrown the ability to ship features like this. While we do have the odd one-off <script> tag to support a minor feature here and there, almost all interactive UIs are driven by our main JavaScript bundle, db-omnibus (the site builder has its own bundle, sb-editor, for reasons). This bundle is created by compiling our TypeScript monorepo using Webpack. …

Matt Basta

A salty software guy. Stripe by day, Pinecast by night.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store