DEV Community

Cover image for How I built a free-forever iOS travel app with no backend, no analytics, and no ads (as a self-taught dev)
Kyoto Unknown
Kyoto Unknown

Posted on

How I built a free-forever iOS travel app with no backend, no analytics, and no ads (as a self-taught dev)

No backend, no analytics, no paid tier, and the story of accidentally becoming a developer while building an app for Kyoto's under-visited 80%.


Hi Dev.to. First time posting. Pretty nervous.

The short version

I grew up in Kyoto. I built a free iOS app called Kyoto Unknown that lists the under-visited 80% of the city. Along the way I accidentally became a developer, and I'd love some honest feedback on what I've made.

App: kyotounknown.com
App Store: apps.apple.com/app/id6762438418

The why (short, then I'll get to the dev stuff)

Kyoto gets about 50 million visitors a year. The vast majority go to the same 10-15 places — Fushimi Inari, Arashiyama, Kinkaku-ji, turning them into queues. Meanwhile the other 80% of the city, full of genuinely excellent places, sits empty.

I didn't want to write another "15 things to do in Kyoto" listicle — that just makes the problem worse. I wanted to build something that actually redistributes visitors: a small curated app with handpicked quiet places, offline-capable, chosen by locals.

One thing I made a commitment to: it will always be free. No ads, no tracking, no accounts, no paid tier, no affiliate links, ever. I wrote a binding commitment page at kyotounknown.com/promise so I can't walk it back. Not a strategy, if the product is "please go to less-visited places", ads would flip the incentives toward whoever's paying.

The dev story

Worth saying upfront: I am not a professional developer. I started this project with some basic programming familiarity and a lot of Googling.

A few months in, I realised I was actually enjoying the dev side as much as the Kyoto side. Something about having a specific, finite project to learn on turned every problem into something worth solving. Swift, Xcode, Core Data, Astro for the marketing site, Cloudflare Pages for deploys, a little bit of everything.

What I built with:

  • iOS app: Native Swift, SwiftUI, Core Data
  • No backend. All places are bundled into the app as data. The app never makes a network request for content.
  • No analytics. No third-party SDKs. No tracking.
  • Marketing site: Astro + Tailwind on Cloudflare Pages
  • Content: Markdown files in the repo, rendered statically

The "no backend" choice was partly philosophical (I didn't want to collect data) and partly practical (one less thing to maintain, one less thing to break). I'm sure a real engineer would look at the code and find a dozen things to refactor.

What I'd love feedback on

Not looking for download numbers or "nice work." I'd actually love thoughts on:

  1. Is bundling content into the app a bad idea at scale? Right now I have 26 places. What happens if I have 300? Is it time to add a CMS, or is "ship a new app version per content update" actually fine?
  2. SwiftUI vs UIKit for content-heavy apps? I went all-in on SwiftUI and mostly it's been fine, but there are a few places where it feels like I'm fighting the framework (scroll performance with many images, offline image caching).
  3. Static + markdown site vs a proper CMS? I'm enjoying the simplicity of markdown files, but I worry I'm going to regret it at 100 posts. Curious what setups people have converged on.
  4. App analytics without tracking? I want to know if people are actually using the app — which places get tapped, do people use the map more than the list — without adopting Firebase/Mixpanel. Is there a privacy-preserving approach I'm missing?

If any of these resonate, I'd love your take. Not selling anything — the app is genuinely free forever, no monetisation, no upgrade funnel. Just a passion project for the city I grew up in, and I'm trying to make both the app and the code behind it better.

If you're going to Kyoto, give it a download and tell me what it gets wrong.


Kyoto Unknown: kyotounknown.com
Free forever commitment: kyotounknown.com/promise
App Store: apps.apple.com/app/id6762438418

Top comments (0)