Music is so hard to discover; the only way to find it is by giving it time and a chance. And by chance is how I’ve discovered some of my favorite bands. They’re either an opening act, or someone at work shared them after stumbling across them live, or the algorithm actually finds me and pushes their KEXP/Tiny Desk my way.

That problem of discovery is what led to ShowGo, and I’ve been carrying it around for about 11 years. Back in 2015/2016 we had a hackathon at Ignite and made nearly 0 progress. Instead, it ended up being a small concept deck. No code or anything, just some concepts stuck in a PowerPoint. Dev/APIs used to be very hard. It would take days to get an API key. 2026, a POC was built in 24hrs.

Ok, let’s get into it:

Jacksonville is a smaller touring market. We get some larger arena shows, and we get some tiny bar shows. But there’s only a handful of medium-sized venues that are technically in other cities: Ponte Vedra and St. Augustine. It’s a big chance to take on unknown bands, especially with ticket prices etc. A band name, an album cover, even a genre label tells you almost nothing about what a band sounds like. That’s even more true for the smaller acts.

And as parents, we only get a handful of nights out.

What it does

Back in 2009, I wrote here about wanting to see shows at Cafe Eleven in St. Augustine, and about a band called BLK JKS that I had never heard of until I watched a video on the venue’s website. Same itch. I just never had a way to scratch it for every show in town.

ShowGo turns every live show near you into a preview radio station.

You pick a place, a radius and a date range (by default, last week through four months out). ShowGo gathers every show in range and plays 30 seconds of every band on every bill, openers included, one after another.

While it plays, you can:

Try it out →

It’s a test right now. The POC was to test if the concept could even work and be interesting to listen to. Honestly, my first time turning it on I found two brand new bands immediately that are now on heavy rotation: Florist and Pinegrove. Never heard of them, they are older indie bands. But boom! It worked.

There are a lot of features to add to make this good such as genre and venue filtering. Expect rough edges, but I could not be more excited!

The stack

Claude and I built it over a few evenings. The first night produced a single-file prototype I could open on my laptop. Then we rebuilt it as a real app meant for a few dozen people spread across different cities. Searches are cached by area, so if ten people near Austin tune in, the listing sites only get asked once.

This is where we’re at.

What I actually learned

The data is the product.

I thought the hard part would be the radio. It wasn’t. The hard part is that two ticketing sites can describe the same night at the same room and agree on very little. Ticketmaster says “Metro,” SeatGeek says “Metro Chicago.” One says “Bar-Be-Que,” the other says “BBQ.” The map pins for a single venue were up to 16 miles apart.

When I added SeatGeek, the number of shows went up, and so did the duplicates: 21 in Austin, 29 in Chicago. The fix came from looking at the actual rows instead of guessing. The city on a listing turned out to be more trustworthy than its map pin. A couple of rounds later, Austin was down to zero duplicates and Chicago to two, and those two are a real disagreement between the sources about which casino a show is at.

The thing I care about most is the hardest thing to find.

Openers are the whole point of ShowGo, and they’re mostly missing. About 70% of the shows in my test cities list only the headliner. Listings exist to sell tickets, and headliners sell tickets. The opener is an afterthought in the data, the same way it’s an afterthought on the marquee.

That’s the next problem to solve, and it’s a good one to have, because it’s the exact gap the app exists for.

“No answer” is not the same as “no.”

The first night I tried it on my phone, it played a few bands and then crossed off everything after them. It looked like nobody in Denver had any music.

The real problem:

iTunes allows about 20 preview searches a minute from one connection. The app was looking ahead and skipping fast past bands without previews, so it burned through that in about a minute. Every search after that failed, and the app read each failure as “this band has no music.” Worse, it saved that verdict to the shared database, so every other listener would have lost those bands too.

It was fixed in two ways:

Searches now run one at a time with a short gap between them. And only a real “no match” counts as no music; if iTunes doesn’t answer, the band gets tried again instead of crossed off. The backup service I’d wired in, Deezer, turned out to have found zero previews in every test, so iTunes is doing all the work.

What’s next

The name might change too. I fell for “Hear Here” until I found out an audio app already owns it. ShowGo it is, for now.


This is part of my experiments series (small things I build, ship, and write about).


The first song ShowGo brought up when I fired it up, and LOVE it!

Florist: NPR Music Tiny Desk Concert


Release notes

ShowGo keeps changing. Every major release gets a note here, newest first.

v0.15 · October 31, 2026 · Venue pages

v0.14 · October 29, 2026 · A new look

v0.13 · October 20, 2026 · Venue stations

v0.12 · October 20, 2026 · Share it, hear it

v0.11 · October 19, 2026 · Live sessions

v0.10 · October 18, 2026 · Pick your nights

v0.9 · October 17, 2026 · Play my keeps

v0.8 · October 17, 2026 · Open in your music app

v0.7 · October 17, 2026 · Zip codes and a quieter start

v0.6 · October 13, 2026 · Share a station

v0.5 · October 13, 2026 · Likely openers and set lists

v0.4 · October 13, 2026 · JamBase and credits

v0.3 · October 12, 2026 · Filters

v0.2 · October 12, 2026 · Previews that keep playing

v0.1 · October 11, 2026 · First release