Building the Bagel Concert Finder

· Music, Elixir, BagelRadio, IndieRadio, IndieMusic, Phoenix, SomaFM

The Bagel Concert Finder is a small site that tells you when bands played on BAGeL Radio are coming to your town. I built it for myself. It turns out a lot of other people wanted it too.

The inspiration

I found BAGeL Radio years ago, back when it was a station on SomaFM. It’s about as music-centric as radio gets, and it was obvious pretty quickly that the people listening were complete music dorks. I mean that in the most affectionate and loving way possible. That seemed like a crowd worth talking to. If you want good conversation, good music suggestions, and good concert tips, you go where the music nerds are.

So I set up a place for listeners to talk to each other. It started on IRC, and a good, solid group of people showed up. IRC is a little tricky for people to get into, though, so I created a Slack workspace for BAGeL Radio to lower the bar. Now there’s a thriving community there. When the station goes live every Friday for 480 Minutes, the channel is packed with people discussing the music and whatever else is going on.

After a while of hanging out in there, I noticed a pattern. I’d hear a band I’d never heard of, love it, look up their tour dates, and find out they’d just come through town the week before. Or the month before. I kept missing the shows.

Those tour dates had to be tracked somewhere, and Bandsintown was the obvious place. So I plotted out a program that would take the list of bands played on BAGeL Radio, let you enter a city or zip code and a radius, and give you every upcoming concert in that area by those bands.

Again, this was for me. I didn’t think anyone else would care much. But I made it public, and it turned out a lot of people were interested. My hope is that it helps people find the bands they love without digging through tons of listings to pick out the handful of BAGeL bands in the pile.

Today the site tracks over 5,000 artists and currently lists about 8,000 upcoming events.

If you want in:

The technical side

I started this project when I needed to learn the Phoenix web framework and the Elixir programming language. A real project with real data beats a tutorial every time, so this became my learning platform.

It’s built on one of the early Phoenix versions. I’ve tuned it up a little over the years, but it hasn’t needed much help. A lot of the code is dated. It still works just fine, and we don’t have any issues with it.

The pieces:

Getting the band list

The tricky part was never the concerts. It was getting the list of bands played on BAGeL Radio in the first place.

Originally, SomaFM kept a plain text file on their site with every artist the station had played. I checked it for changes every week and updated my artist list from it. Easy.

Then BAGeL Radio went independent of SomaFM, and that file went away. The new site is rendered with JavaScript rather than being plain HTML you can just fetch and parse, so scraping it took a few different accommodations to get right. It works now. The site gets scoured daily to update the artist list, and once a week the system walks through every artist and pulls in their events and venues.

Future wants

Back in the day, before the internet was a thing most people had, I ran a music rag called The Village Buzz. It was on paper: a newsletter covering local music in North Central Ohio. One of the most popular parts was an insert called the Refrigerator Page, which was a listing of concerts and local shows. You pulled it out, stuck it on the fridge, and always had an eye on what was coming up.

I’d like to bring that back. If you pull up a listing for your area and want it somewhere in real life, the site could generate a clean, printable PDF you can stick on your refrigerator. That feels like a fun addition.

Beyond that, nothing else comes to mind, and that’s where you come in. I haven’t added features to this thing in years. I’d love to see it grow, but right now it’s mostly a tool that keeps me from missing awesome bands coming into town. If you have ideas for what it should do, I want to hear them.