News

The decisions behind how Whistlestop works

Carson Coots · September 7, 2026

Whistlestop opens to a single button. Here is the reasoning behind that and the other decisions about how the app behaves in version 1.

There are a lot of audio tour guide apps, and I have driven with most of them. What I noticed once I started using them side by side is that they do not work alike. Some open to a map full of pins and wait for you to tap one. Some sell a specific route and play it back in order. Some ask you to choose a tour before you leave the driveway. Those are answers to the same set of questions, and the answers do not match.

I did not realize how many of those questions there were until I had to answer them for Whistlestop.

Most of the work of building this app has not been writing code. It has been deciding how the app should behave. What it shows when you open it. What it does when you are not moving. How often it should talk. Whose voice it uses. What happens when you are not interested in what it is telling you. Each of those questions has more than one reasonable answer, and the app is the result of the answers we picked.

This post explains those choices and the reasoning behind them. Some of them will change once more people are using the app.

What happens when you open it

The first question was how easy the app is to use on a regular basis.

When I use an app repeatedly, I do not want to make decisions when I open it. Instagram, Gmail, and Reddit do not open to a menu. The content is on the screen and you are using the app right away.

Travel apps usually work the other way. They open with a set of choices: pick a region, pick a tour, pick a theme, pick a length. That is reasonable for a trip you planned in advance. It is more work than most people want to do before a short drive.

The test I used while building Whistlestop was how much has to happen between opening the app and getting something useful out of it. The answer we settled on was a single Start button.

When you open Whistlestop you see a map of where you are, one button, and a short piece of narration to get you oriented. There is no feed, no list of recommendations, and no menu to work through. If you are parked when you press Start, the app detects it and tells you to start driving, and that it will keep a lookout for anything worth knowing about.

Sticking to one button has been harder than deciding on it. Most new feature ideas arrive with a request for their own control on that screen, and most of them do not get one.

What happens when you are parked

The single button had an obvious problem, and it came up the first time we used the app in a parking lot. If you are not moving, the app has nothing to do, and neither do you.

So when the app detects that you are stopped, it shows a Nearby list: the places around you that have a story attached to them. You can tap any one of them and listen.

That turned out to matter more than we expected. A lot of the time you spend with a tour app is time you are not driving. You are parked at a trailhead, or waiting for somebody, or eating lunch in a town you have not been to before. Being stopped is a normal way to use the app, so it needed a screen of its own rather than a message telling you to come back later.

What happens when you drive

Driving is the main case, particularly in cities and along highway corridors where there are a lot of sites close together.

The requirement was that it work hands-free. Nothing the app does requires the driver to touch the phone or look at it. There is something on the screen while a story plays, a photo of the place and a link to the source it came from, but that is optional. It is mostly there for a passenger, or for you to look at once you have stopped.

So while you drive, Whistlestop scans ahead and plays stories as you approach the places they are about. You do not request them or confirm them.

Each story runs 30 to 45 seconds. We arrived at that length through testing. It is long enough to tell you something worth knowing and short enough that you are not sitting through a lecture. We were tempted to make them longer, because there is always more to say about a place, and we decided against it. Most people stop listening well before a long story ends.

If a story does not interest you, there is a Skip button. It stops the narration and the app goes back to scanning for the next place. Without a skip control, an app that plays audio on its own is something you have to sit through. With one, you can dismiss a story in a single motion and keep going.

How often it talks

Testing turned up a problem I had not thought about in advance. It is not only what the app says. It is how often it interrupts you.

On some drives you want the app talking most of the time. On other drives you have an audiobook going, or someone in the car, or you would rather be quiet. The same person wants both, depending on the day.

So there is a frequency setting that controls how often stories play. On the chatty setting there can be as little as 30 seconds of silence between stories. On the relaxed setting there are up to three minutes, which leaves room for your own music or audiobook.

I use the chatty setting almost all the time, because I do not want to miss anything. Other people would rather have the gap, so there is time to think about a story before the next one starts. That is why it is a setting rather than a fixed number I picked for everyone.

The voices

Beta testing with family and friends told me more about voice than about any other part of the app.

People are particular about which voice they listen to. Testers who had no opinion about the interface had firm opinions about the narrator. The voice one person described as calm, another described as flat. The voice one person liked for its energy was too much for someone else.

Version 1 uses OpenAI's standard text to speech voices. There are nine of them. You choose one, and the app makes its announcements and reads its stories in that voice. You can change it at any point during a tour. The voices are generated by AI. They sound realistic, they are not perfect, and they are getting better.

Why we did not use recorded narration

Most road trip guides use pre-recorded voiceover. Someone writes the story, a narrator records it, an editor cuts it, and that recording is what every listener hears. The quality of that is higher than what a generated voice produces today. A good narrator reading a good script is better, and I do not want to argue otherwise.

The drawbacks are that recording does not scale and that the listener has no options. If you do not like the narrator's voice or the energy of the delivery, there is nothing to change.

Whistlestop is meant to work everywhere, not only on the well-known drives: two-lane roads, county highways, markers nobody has stopped to read in years. Writing, narrating, editing, and maintaining tens of thousands of stories across the country, let alone the rest of the world, is not something a team our size can do. I am not sure any team can do it.

Generated voice is what makes that coverage possible. It also lets the story be assembled for the drive you are on. We start from source material, run it through several layers of fact checking, and adjust the result to the settings you chose, both in what is said and in which voice says it. A recording cannot be adjusted after the fact.

That is the trade we made. We accepted a lower ceiling on narration quality in exchange for a guide that has something to say on most roads.

The travel log

Our beta testers and I used the app for several weeks before release. One comment came back repeatedly, in different forms. Someone would tell me they had learned about a place that day, but could not remember the name of the person involved, only that the story was interesting.

I had the same experience. Hearing a story does not mean you retain the details, especially when you are driving at the same time. That was a real gap, and it had nothing to do with how good the stories were.

So we added a travel log, which is the booklet icon in the app. It lists every place you have heard about, with the full transcript of the story that was read to you and a link to the source it came from.

It also answers a fair question about an AI-narrated guide, which is where the information came from. The source is in the log.

What we left out

I may be speaking too soon, but most of the core features are in place. What we need now is use by people other than us. Our beta testers were thorough, and there are still going to be problems that only appear when several thousand strangers use the app on roads we have never driven.

We put a lot of thought into version 1 given the resources we had. The temptation is to add every feature, because every feature sounds good on a list. What gets left out shapes the product as much as what goes in, and each addition costs something, usually the thing I care about most, which is that you can open the app and press one button without thinking about it.

Steve Jobs put it this way at Apple's developer conference in 1997: "Innovation is saying no to 1,000 things."

I would rather hear your ideas than guess at them. If there is something you want Whistlestop to do, or something about it that annoys you, send it through our support form. I read all of it, and several of the things described above exist because someone told me they should.

Hear it from the road

Whistlestop tells you these stories automatically as you pass them. No searching, no tapping, nothing to ask.

Download Whistlestop on the App Store

← All of the Journal