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:
- Keep a band, which saves their dates and ticket links into a list for planning a night out
- Say Not for me and never hear them again
- Hear another song from the same band
- Watch live to see what they’re like on stage
- Flip the running order to Openers first, because those are the bands nobody has heard of yet
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
- Next.js 14 and TypeScript, built on the same patterns as Baby is a Go
- PostgreSQL on Neon, with Prisma
- Ticketmaster and SeatGeek for show listings
- iTunes and Deezer for the 30-second previews
- OpenStreetMap to turn a city name into a spot on the map
- Deployed on Vercel at show.ant.cat
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
- Openers, still: JamBase and the likely openers from setlist.fm are filling in bills, and next I want to measure how many headliner-only shows are left (the release notes below track what’s shipped)
- Filtering out the things that aren’t bands (festival names, comedy nights, a gospel brunch), so nobody has to turn them off by hand
- Small rooms that sell through Opendate, if JamBase doesn’t already cover them
- Design changes, now that I can judge them on the live site
- A real test in the car: it plays on my phone now, but I haven’t tried a whole drive with the screen locked
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
- Every room gets its own radio. A venue’s page at show.ant.cat/v/ plays every band coming to that room, openers before the headliner, about six months ahead. Tap any band on any night to hear it.
- The room comes first. Its name, how big it is and how many shows are ahead, then the address, Directions in your maps app, the venue’s website, Instagram and phone when we know them, and Share. All of it fits on the first screen of a phone.
- Find any night fast. A bar of dates sticks to the top as you scroll, with the months marked. Tap a date to jump to it, and a button brings you back to the top. The next show leads the list, marked Tonight on the night.
- Same radio, venue layout. One slim player, and everything the radio does for a band is one tap away: Watch live, Open in your music app, Another song, Set list and Keep. Your keeps are the same keeps as the radio.
- A map of the block. Visit shows where the room is on a small map, with the full address and phone number.
- Made for the people who work there. The page links to a kit with the venue’s link, an embed for its website and a printable poster with a QR code.
v0.14 · October 29, 2026 · A new look
- The music sets the mood. The screen sits on the playing song’s album cover, blurred and darkened, and eases into the next band’s colors as the station moves on. A band without a cover gets a stage lit in its genre’s color.
- One sentence to start. “Play every show near Jax Beach within 13 mi coming up in this weekend.” The miles are a little tuning dial you roll with a finger, the mouse wheel or the arrow keys, and quick picks set the dates. Tune in starts the music in one tap and tells you how many bands are waiting.
- Hear it before you tune in. Under the button sits a fan of album covers from the first night. Tap one to hear that band right there. First-time visitors hear the busiest city on ShowGo, so there’s always something to play.
- Come back and press Play. ShowGo remembers your place, miles, dates, tuning, keeps and favorite streaming app, so a return visit is one tap.
- A calmer song card. The band, then its night, then the player right under it, then one row of what to do: Keep, Tickets or ✕. One mint color always marks your next step: Play, then Keep, then Tickets. On a phone, swipe the card right to keep a band or left to pass, and Undo if you change your mind.
- Every night as a ticket. The running order is now a stack of tickets grouped by night, one per show with every band on the bill, openers included. A week strip slides through the dates and follows along as you scroll, and once the song card scrolls away a mini player keeps the music at the bottom of the screen.
- Plan the night. Heart any band without waiting for it to play. Your keeps appear beside the nights with Tickets for each, and Add to calendar puts every kept night in your calendar at once.
- Open it anywhere. Open in shows your streaming app’s icon and goes straight to the song in Spotify, Apple Music, TIDAL, YouTube Music, Deezer or Amazon Music.
- Watch them live. Bands with a KEXP or Tiny Desk session get a button for it, and a band with no audio preview anywhere plays a live clip instead.
- Fine tune in one place. One panel holds genres (comedy and tribute acts too), nights of the week, venues to follow or mute, and room size, with a live count of the bands still playing.
- Tribute acts play the band they honor, labeled “Plays the music of Fleetwood Mac,” and more small bands are found when venues add words like “(Full Band)” to their names.
v0.13 · October 20, 2026 · Venue stations
- Every venue gets its own station. A venue’s link, like show.ant.cat/v/blue-jay-listening-room, opens on the room itself: its name, one Play button, and every upcoming bill with dates and ticket links. Each night plays the way the room will sound it, openers first and the headliner last.
- It never goes stale. The link always plays the next 90 days, and new shows appear on their own as they are announced, so it can live in an email footer or an Instagram bio for good.
- Made for sharing. Posted or texted, the link shows a card with the venue’s name, its next three nights and a strip of album covers.
- A kit for the venue. Each venue has a kit page with the link, the card to download, one line of code that puts a player on its own website (dark or light), and a printable poster with a QR code for the bar or the box office.
- Find it from the radio. Tap a venue’s name in Now Playing to open its station, or choose This venue under Share to copy its link.
v0.12 · October 20, 2026 · Share it, hear it
- Share in one tap. On a computer, Share copies a short note about the song (who, when, where) with a short link, ready to paste. On a phone it opens the share sheet. Under it you can pick the whole station or just the link instead.
- Links that look like something. A shared song now arrives as a card with the album cover, the band, the song and their next night in town. A shared station shows how many bands are coming and a strip of covers. Links are short now too, like show.ant.cat/s/q2h2qmt, and Teams gets its own square card.
- Pick your radius. Tap the miles to open a slider that runs 3, 5, 8, 13, 21 and on up to 144 miles, with the number of shows at each stop. New stations start at 13 miles, so a metro area stays close to home.
- Previews on more phones. When a phone can’t reach Apple’s song search, the ShowGo server now looks the band up instead, and Deezer finally finds songs for US listeners. If a band still can’t be found, the radio moves on instead of stalling.
- Shows in the right city. A listing whose map pin sits in a different state than its address no longer sneaks onto the wrong station (a San Diego show had turned up near Jacksonville).
v0.11 · October 19, 2026 · Live sessions
- KEXP and Tiny Desk sets. When a band on the bill has played a KEXP session or an NPR Tiny Desk Concert, it shows up right in the player as a Live sessions row. Tap one to watch it without leaving the station.
- Watch live picks the good one. For those bands, Watch live now plays the Tiny Desk or the full KEXP set first, before falling back to a search.
- Easy to spot. A small Tiny Desk or KEXP tag in the running order marks the bands that have one. Only the official KEXP and NPR Music channels count, so a look-alike upload never sneaks in, and new sessions appear within a day.
v0.10 · October 18, 2026 · Pick your nights
- Nights of the week. Tune the station has a row of days, Mon through Sun, with how many shows fall on each. Turn off the nights you can’t go out, or tap Weekends or Weeknights. Your days stay set from search to search and travel with share links, so “weekends near Jacksonville” opens that way for a friend too.
v0.9 · October 17, 2026 · Play my keeps
- Play my keeps. One tap turns the radio into just the bands you kept, soonest show first, and plays every song each band has before moving on. Bands you kept in another city play too.
- Make a playlist. Your keeps become a list of songs, two per band in show order, ready to paste into TuneMyMusic or Soundiiz. Either one builds the playlist in Spotify, Apple Music, TIDAL or YouTube Music.
- Copy buttons say so. Copy list and Copy songs now read “Copied” when they work.
v0.8 · October 17, 2026 · Open in your music app
- Open in… Hear something you like, tap Open in… and pick Spotify, Apple Music, TIDAL, YouTube Music, Deezer or Amazon Music. ShowGo takes you to that exact song when it can match it, and to a search for the band and song when it can’t. Exact matches come from Songlink.
v0.7 · October 17, 2026 · Zip codes and a quieter start
- Zip codes. “Shows near” now takes a zip code as well as a city, and labels the station like “Tampa, FL 33602.”
- No more surprise sound. Tune in loads the station and lines up the first band, then waits for you to press Play. Tuning in again mid-song stops the music, so Play always starts the new station.
v0.6 · October 13, 2026 · Share a station
- Share links. Share now makes two links: one to your whole station (the place, dates, running order and every filter, down to the venues you follow), and one that also starts on the band and song you’re hearing. Whoever opens it hears the same station, and their own settings stay untouched unless they choose to keep yours.
- Simpler start. New searches begin at 25 miles, from today through the next two months, and Tune in sits next to the dates.
v0.5 · October 13, 2026 · Likely openers and set lists
- Likely openers. Most listings name only the headliner. Now, a few bands before one of those shows comes up, ShowGo checks setlist.fm for who played with that headliner on recent nights of the same tour, and adds them to the bill. They play like any other band, labeled “Likely opener,” and become regular openers once a ticketing site lists them.
- Set list button. See what a band played most recently, and tap any song that has a preview to hear it.
v0.4 · October 13, 2026 · JamBase and credits
- A fourth listing source. JamBase gathers shows from many ticketing sites, including the ones small rooms use. Jacksonville went from 157 shows to 286, and from 12 club-sized rooms to 26.
- Real room sizes. Venue capacity now decides arena, theater or club when a source lists it.
- Credits. The page now names every service the station is built from, and each show says which ones listed it.
v0.3 · October 12, 2026 · Filters
- Tune the station. Turn off genres that aren’t your thing, skip arenas, follow or mute venues, or play only the venues you follow. Your choices stick between searches.
- Genres for every act, folded from each ticketing site’s labels into one short list.
v0.2 · October 12, 2026 · Previews that keep playing
- Preview searches now run one at a time, and a lookup that fails is retried instead of crossing the band off. Phones stopped losing whole stretches of the station.
v0.1 · October 11, 2026 · First release
- A radio station of every band on every bill near you, from Ticketmaster and SeatGeek, with Keep, Not for me, Another song, Watch live and Openers first.
- The same show listed by two sites now plays once, and cancelled shows are skipped.