I listen to a country station a long way from me. If I am awake and not in a meeting, it is playing on one of my devices.

Then Apple changed their radio interface. It does not matter what you listened to yesterday, this morning, or every morning for two years. You get the stations they want you to hear, and you go dig through search for yours. That is an annoying feature. They own the interface, so it is their call.

The station also has an iOS app. Its default behavior is to stream for ten seconds and buffer for twenty. I was doing yard work Saturday, could not get to the station through either path, and turned the whole thing off. Everybody lost. I could not listen to my music and their sponsors could not reach me.

So after I cleaned up, I sat down with Grok. We took their web player apart. Found where the audio stream comes from. Found where the now-playing data comes from. Then we built a new player against both.

Three hours later the music plays, and the art, artist, and song name change when the song changes, instead of ten seconds early when the app gets the metadata. I cache the art, the artist, and the rest of it, because song information rarely changes and there is no reason to keep asking for it. I added a lyrics button that hits a free API when I push it. An early beta had a karaoke mode, but the lovely and talented Kathy said a very emphatic no. I opened the thing in Safari on my phone and added it to my home screen.

So I have a new way into my favorite station. One I own, and can change any time I want.

Now before you ask, no, I did not strip out the ads. To the contrary, I looked to see if I could grab a graphic of the sponsor and a URL and add a way to click and pop up a new window. That would have been cool. I could not get it working, but I tried.

I also did not filter out Jelly Roll. The thought crossed my mind, and it would have taken about four lines. I am still on the fence on this one.

One thing stuck with me while I was building. I am a customer, and their numbers can see it. My player shows up in their stats as a streaming client. More than once we have picked a restaurant in their market while visiting, because we heard about it on their air. Their ads work on me. And I still built a better client for their product than they shipped. I did it in an afternoon.

Here is my point. Your interface is no longer your differentiator. It is your default, it is their starting point. If your data is reachable, and it is, your users will build the thing they wanted. The only question is whether they build it with your blessing or go around you. What you own is the data.

I am not trying to rip off my favorite radio station. I want them to win. I just want them to fit into my life.

So stop looking for ways to lock people into your interface. You cannot. There is always a way around. Start looking for ways to make money while they fit you into their life.

Originally posted on LinkedIn: "Three Hours, One Stream, No Karaoke Mode"