By Teemu Tammela, on May 22, 2019

Building a better podcast with Contentful and Sinatra

Have you ever noticed that developers tend to be a musically inclined bunch? I dare you to find a team without a single guitarist, drummer, producer or a DJ in their midst. When the enthusiasm for both music and programming converges, Contentful provides a solid foundation for those all-important passion projects.

It Was a Very Good Year

The story of AuralCandy.Net - Premium House Music Podcast began in 2008 when my best friend and I decided to launch our own podcast. Incidentally, that was also the same year I started working as a full-time developer. Ever since, the evolution of AuralCandy.Net has gone hand in hand with my professional career. Be it programming or UI design, every iota of know-how I have accumulated over the years has been distilled into building a better podcast.

Podcast hosting platforms are a dime a dozen, so it's fair to ask why did we bother building our own? For the same reason a painter paints and a composer composes - because they can! If you want something done right perfect, you have to do it yourself. #amirite

The current iteration of AuralCandy.Net is the sixth major version. The first four versions were made of custom PHP code with libraries such as Smarty and a MySQL database thrown in the mix. Being a non-profit project, AuralCandy.Net operates on a shoestring budget. Therefore, in the early days the technology stack was largely dictated by what was available at affordable web hosting services at the time.

My Kind of Town

There's no denying that traditional content management systems such as Drupal or WordPress are convenient for setting up a website with relative ease. That convenience, however, comes with the trade-off of being restricted to PHP and abiding by the conventions of the platform. Whether or not such trade-off is viable depends on a number of variables, but in the case of AuralCandy.Net the answer was a firm "No".

I originally came in contact with Contentful when my employer was evaluating options for replacing its aging stack of Drupal installations. It was love at first sight. Simply put, Contentful features only the best parts of a CMS, enabling the developer to build the presentation layer using the language and framework of their choosing.

Down the road my job provided an opportunity to be among the first enterprise-scale adopters of Contentful in Finland. The best part, however, was forming wonderful working and personal relationships with several Contentful employees. While it weighed in on my decision to adopt Contentful as the foundation of AuralCandy.Net, at the end of the day I chose Contentful because it was the best tool for what I wanted to achieve.

I Get a Kick Out of You

Even though I've been working with PHP and JavaScript for a large part of my career, my preferred language is Ruby. JavaScript gets all the hype these days, so it's easy to overlook Ruby's elegance and mature ecosystem. Fortunately, Contentful offers excellent support for Ruby as well, so hooray for choice!

Ruby on Rails has traditionally been the popular Ruby framework, but it was a bit excessive for my needs. I needed something lightweight and less bound to the MVC pattern, as Contentful already handled CRUD operations and model validation. Enter Sinatra, a micro framework for creating web applications with minimal effort. I've always preferred "add what you need" over "disable what you don't", so Sinatra's minimalistic approach and straightforward documentation won me over.

Alas, nothing is perfect. I found myself longing for few useful features in Rails - namely template helpers and an asset pipeline. The solution to each respective need came in the guise of Padrino framework's stand-alone helpers and Grunt. Purists might view using a JavaScript task runner in a Ruby application as bad form, but I found Grunt to fit my preferences better than, say, Sprockets.

All in all, the technology stack of Ruby, Sinatra and Contentful has proven to be a perfect fit for AuralCandy.Net. I dabble with Express and Node.js from time to time, but I just don't get the same kick out of JavaScript. Who knows, maybe I'll give Python and Flask a try one of these days.

The Best Is Yet To Come

Contentful inspires me to be a contributing member of the developer community, so I've decided to release the entire source code of AuralCandy.Net on GitHub.

https://github.com/teemutammela/auralcandy.net

I've done my best to document the source code as comprehensively as possible, but please note that this application is tailored to our needs - it's not a generic, turn-key podcast platform. The source code is released for educational purposes for anyone wishing to learn more about developing Contentful applications using Ruby and Sinatra.

Hopefully the source code of AuralCandy.Net will offer you insight into the power and fun of Contentful and Sinatra. Who knows, perhaps it will even inspire you to build your own passion project. At the end of the day, that's what our trade is all about –– passion.

Teemu Tammela

Contentful Certified Professional, Software Developer at Contentful partner Reason Solutions Oy, and a Contentful Developers Meetup guest speaker.

Community Contributor
Become a contributor