I’m the solo developer of Street Whisperer, an audio guide for iPhone and Android that tells you the story of the places you walk past. It’s built on OSM, and I’d like to show how, and get feedback from people who know the data far better than I do.
What it does with OSM:
An Overpass query finds places worth noticing around the walker: historic=*, tourism=artwork/attraction/museum/gallery/viewpoint, amenity=theatre/library/arts_centre, parks, gardens and named natural features. Results are cached on my server per ~250 m cell.
The wikidata tag is the glue: it links an OSM object to the Wikipedia article the story is written from. In practice, a well-tagged object gets a much better story.
Nominatim for neighbourhood and city names (cached), and opening_hours so nobody gets sent to a closed museum.
Did you create your own overpass server, or are using the ones made available to the community?
Same question for the map tiles.
Your app is not free, what part of the it are you giving back to the projects necessary to your product (OSM, Wikimedia)?
Quote from your website :
Real places, practical information from identified sources, and AI-generated stories. Stories can contain errors.
AI is killing the open web and doing a lot of harm to projects like Wikipedia and OpenStreetMap, why should the OSM community help you to do further damages?
Hi @benoitdd, thanks for the direct questions, they’re fair ones.
Honest answers:
Overpass: I use the public overpass-api.de instance, my server caches results, but the iPhone app also queries it directly for opening hours.
Tiles: the iPhone app uses Apple Maps. The Android app currently uses tile.openstreetmap.org, with attribution and an identified user agent.
Giving back: so far, nothing beyond attribution. That’s a fair point, and I don’t want to leave it there
What I’m changing:
Adding a “report it on OSM” button, so wrong or missing places get fixed at the source rather than silently on my side
On AI: I share the concern. The stories are built from Wikipedia and OSM, every place shows where its facts come from with links to the sources, and images without a known licence are never displayed. The whole point of the app is to send people outside to look at real places. I’d rather contribute than extract, and I’m open to suggestions on how to do that well.
“Honest answer”, using bullet point lists for everything, etc…
When all you have is a hammer LLM, everything looks like a nail prompt.
Unless you are already very familiar with OSM and the (social) processes involved, don’t add editing functionality to your app, especially not vibe coded.
Do you estimate you’ll have more than 4 users in one minute in uncached areas? If yes, you’re not permitted to use the public OSMF Nominatim instance.
The same applies to using the public overpass server as the backend for your app.
Examples of problematic behaviour:
Tens of thousands of times a day sending the same request (from the same address)
Asking for individual OSM elements one by one millions of times.
Stiching bounding boxes to scrape the full data of the complete world.
Setting up an app for more than just OSM mappers and relying on the public instances as backend.
The public overpass server has unfortunately become extremely overloaded and unavailable for actual mappers, exactly because of tons of apps like yours using it as their backend.
There are 4.5M objects worldwide in OSM with a wikidata tag. Let’s imagine you need to store a bit under 100 bytes about each of those, so maybe 400MB needed for that? On my phone that’d be in the top 10 apps by size, but only just (it’d be 8th or 9th).
Rather than querying Overpass live, it might actually be more efficient to just download “everywhere interesting” at the start and then query e.g. Wikipedia, Wikivoyage, Comons or whatever based on interesting things the user has clicked on.
It’s absolutely doable, OsmAnd already does it and allows you to download Wikipedia articles for interesting POIs and display them on the map, all offline (except the images).