116: Jerod Santo - Building the Changelog Platform with Elixir and Phoenix
Episode
60 min
Read time
2 min
Topics
Productivity, Remote Work, Software Development
AI-Generated Summary
Key Takeaways
- ✓Pattern Matching Functions: Define multiple versions of the same function with different argument patterns instead of using conditional branching. Elixir automatically dispatches to the correct version based on data shape, eliminating if statements and case logic while making code more declarative and maintainable.
- ✓Plug Architecture Benefits: Phoenix uses Plug middleware where each request passes a connection struct through a pipeline of functions. Stack traces remain shallow (nine functions deep versus Rails' deep nesting), making debugging straightforward and revealing minimal framework code between your application logic and the response.
- ✓Built-in Concurrency: Background tasks like sending transactional emails require no external queue infrastructure. Use Task.start_async to background processes immediately without Redis, SQS, or similar tools. Erlang's ETS provides in-memory caching, eliminating memcached dependencies for RSS feed caching and similar use cases.
- ✓Turbolinks for Persistent Player: Achieve single-page application behavior (persistent audio player across page navigation) without rebuilding as a React app. Add data-turbolinks-permanent attribute to player div and data-turbolinks-off to admin links. Solves specific SPA needs without full architectural changes or JavaScript framework overhead.
- ✓Production Learning Path: Build functional Phoenix applications without understanding GenServers, supervision trees, or advanced Erlang concepts. Focus on web development patterns first—Ecto queries, controllers, templates. The underlying concurrency power exists when needed, but pragmatic web apps succeed using surface-level features and standard Postgres databases.
What It Covers
Jerod Santo explains how Changelog rebuilt their podcast platform using Elixir and Phoenix after outgrowing WordPress, covering pattern matching, functional programming concepts, deployment strategies, and why they chose Elixir over continuing with Ruby on Rails.
Key Questions Answered
- •Pattern Matching Functions: Define multiple versions of the same function with different argument patterns instead of using conditional branching. Elixir automatically dispatches to the correct version based on data shape, eliminating if statements and case logic while making code more declarative and maintainable.
- •Plug Architecture Benefits: Phoenix uses Plug middleware where each request passes a connection struct through a pipeline of functions. Stack traces remain shallow (nine functions deep versus Rails' deep nesting), making debugging straightforward and revealing minimal framework code between your application logic and the response.
- •Built-in Concurrency: Background tasks like sending transactional emails require no external queue infrastructure. Use Task.start_async to background processes immediately without Redis, SQS, or similar tools. Erlang's ETS provides in-memory caching, eliminating memcached dependencies for RSS feed caching and similar use cases.
- •Turbolinks for Persistent Player: Achieve single-page application behavior (persistent audio player across page navigation) without rebuilding as a React app. Add data-turbolinks-permanent attribute to player div and data-turbolinks-off to admin links. Solves specific SPA needs without full architectural changes or JavaScript framework overhead.
- •Production Learning Path: Build functional Phoenix applications without understanding GenServers, supervision trees, or advanced Erlang concepts. Focus on web development patterns first—Ecto queries, controllers, templates. The underlying concurrency power exists when needed, but pragmatic web apps succeed using surface-level features and standard Postgres databases.
Notable Moment
Santo discovered Elixir's approachability when he built a Slack invite web app in two to three hours as his first Phoenix project. That quick win provided enough momentum to commit to rebuilding the entire Changelog platform, proving the framework's productivity despite functional programming's learning curve.
Episode Transcript
In this episode of Fullstack Radio I talked to Jared Santo about building the changelog podcasting platform with Elixir and Phoenix. This is Fullstack Radio episode one sixteen. Hey, everyone. Welcome to another episode of the Full Stack Radio podcast. I'm your host Adam Wadden and today it's my pleasure to be speaking with someone whose voice might be familiar to you if you're an avid podcast listener, Jared Santo of The Change Log. How's it going, Jared? Hello. It's going very well. Thanks for having me. So, the reason I wanna have you on the show today is, I was a guest on one of the the podcasts on your kind of, like, network of podcasts, that you've been running. And after we kinda did that episode, you kinda mentioned that maybe it'd be fun to have a conversation about how I don't know. When was it? Like, maybe two years ago or something? You guys, rebuilt sort of your entire, like, change log platform, using Elixir and Phoenix. That's right. And, Elixir and Phoenix are really cool and exciting technologies. And you guys were kinda pretty early adopters, I think, in trying to do some some web stuff there. And I thought it'd be really interesting to kinda talk to you about your experiences with that, how that's been going for you, what the learning curve was like, and kinda contrasting it with maybe some of the tools and stuff that you used in the past. So I don't know. How's that sound to you? That sounds really good. Yeah. It was a couple years back. We were previously so the changelog website goes back to Tumblr back when the the the original changelog podcast started in 2009. So pretty much the dawn of GitHub was when it started. Mhmm. And that was Adam, my my business partner Adam as well as Wynn Netherland. I actually started that show. I wasn't part of it from the very beginning, but it was a kind of what it is now. It's a news feed and and a podcast. Now we have a a portfolio podcast, but back then, it was just the one. And it was a Tumble log. And they were on Tumblr for a couple of years, finally, I think in, like, the twenty eleven, twenty twelve range, Adam relaunched the site on WordPress. And, a similar timing, we moved the we moved our hosting over to five by five. We joined the five by five network. Mhmm. And we're on that for a couple of years. And then finally, we had pushed WordPress to its logical conclusion as as people tend to do over time as our needs grew more and more custom. And it was obvious, especially when we're going from one show to multiple shows, that it was time to do something else. So that's where the change.com platform came from. I was, I've been a long time web developer, and most of my stuff …
Get the full transcript (11,778 words) + summary by email — free
One-time email with the complete transcript and AI summary of this episode. No account needed.
One email, no spam. We’ll also show you what SignalCast does.
You just read a 3-minute summary of a 57-minute episode.
Get Full Stack Radio summarized like this every Monday — plus up to 2 more podcasts, free.
Pick Your Podcasts — FreeKeep Reading
More from Full Stack Radio
153: DHH – Omarchy and Designing Your Own OS on Arch Linux
Aug 21 · 76 min
Decoder
Yahoo CEO Jim Lanzone on reviving the web's homepage
Mar 16
More from Full Stack Radio
152: Ben Orenstein - How to Stand Out When Applying for a Job at a Small Company
Jan 28 · 47 min
a16z Podcast
The Self-Improving Company | Kavak's AI Playbook
Aug 10
Books, tools, and gear mentioned in this episode
SignalCast may earn commission on purchases via these links.
Tools
“Jerod Santo explains how Changelog rebuilt their podcast platform using Elixir and Phoenix after outgrowing WordPress, covering pattern matching, functional programming concepts, deployment strategies, and why they chose Elixir over continuing with Ruby on Rails.”
“Phoenix uses Plug middleware where each request passes a connection struct through a pipeline of functions. Stack traces remain shallow (nine functions deep versus Rails' deep nesting), making debugging straightforward and revealing minimal framework code between your application logic and the response.”
“Jerod Santo explains how Changelog rebuilt their podcast platform using Elixir and Phoenix after outgrowing WordPress, covering pattern matching, functional programming concepts, deployment strategies, and why they chose Elixir over continuing with Ruby on Rails.”
“Background tasks like sending transactional emails require no external queue infrastructure. Use Task.start_async to background processes immediately without Redis, SQS, or similar tools.”
“Erlang's ETS provides in-memory caching, eliminating memcached dependencies for RSS feed caching and similar use cases.”
“Achieve single-page application behavior (persistent audio player across page navigation) without rebuilding as a React app.”
“Background tasks like sending transactional emails require no external queue infrastructure. Use Task.start_async to background processes immediately without Redis, SQS, or similar tools.”
- TurbolinksRecommended
“Achieve single-page application behavior (persistent audio player across page navigation) without rebuilding as a React app. Add data-turbolinks-permanent attribute to player div and data-turbolinks-off to admin links. Solves specific SPA needs without full architectural changes or JavaScript framework overhead.”
company
“Sponsors: Cloudinary, cloudinary.com”
“Sponsors: DigitalOcean, do.co/fullstack”
More from Full Stack Radio
We summarize every new episode. Want them in your inbox?
153: DHH – Omarchy and Designing Your Own OS on Arch Linux
152: Ben Orenstein - How to Stand Out When Applying for a Job at a Small Company
151: DHH – Building HEY with Hotwire
150: Secret Screencasting Tips & Behind the Scenes of Tailwind CSS 2.0
149: Choosing a Payment Processor, Radical Icons & W3C Hype
Similar Episodes
Related episodes from other podcasts
Decoder
Mar 16
Yahoo CEO Jim Lanzone on reviving the web's homepage
a16z Podcast
Aug 10
The Self-Improving Company | Kavak's AI Playbook
Odd Lots
Aug 7
How a Sardine Gets From the Ocean to a Can
Latent Space
Jul 28
Codex from 0 to 10M Users: Building ChatGPT Work — Akshay Nathan, OpenAI
Investing for Beginners
Jul 27
The Stoplight System with Tykr founder Sean Tepper
Explore Related Topics
This podcast is featured in Best Cybersecurity Podcasts (2026) — ranked and reviewed with AI summaries.
Read this week's Software Engineering Podcast Insights — cross-podcast analysis updated weekly.
You're clearly into Full Stack Radio.
Every Monday, we deliver AI summaries of the latest episodes from Full Stack Radio and 192+ other podcasts. Free for one show.
Start My Monday DigestNo credit card · Unsubscribe anytime