iToverDose/Software· 22 APRIL 2026 · 15:00

How a self-taught dev built a Kyoto travel app without backend or ads

A self-taught developer created a free iOS app showcasing Kyoto’s hidden gems while avoiding ads, analytics, and backend costs. Discover the technical and philosophical choices behind this passion project.

DEV Community3 min read0 Comments

A passion project for one of Japan’s most visited cities quietly reshaped a self-taught developer’s career trajectory. What began as a simple idea to highlight Kyoto’s lesser-known locations evolved into a fully functional iOS app, all while avoiding traditional pitfalls like ads, analytics, and backend infrastructure. The result? Kyoto Unknown, a free app that curates 26 underrated spots across the city.

From local insight to technical challenge

Kyoto attracts roughly 50 million visitors annually, yet the majority flock to just 10–15 landmarks, leaving the remaining 80% of the city overlooked and underappreciated. Rather than contribute to the noise with another generic travel guide, the developer sought to build a tool that genuinely redirects tourism toward quieter, locally loved locations.

The commitment to keeping the app free—without ads, tracking, or monetization—wasn’t just a design choice; it was a binding principle. A dedicated "promise" page on the project’s website enshrines this rule, ensuring the app remains accessible to everyone. The reasoning is clear: if the product’s core value is guiding visitors to less crowded places, monetization would inherently conflict with that mission.

Building with constraints: no backend, no analytics, no compromise

With no formal training in software development, the creator approached the project with basic programming knowledge and a willingness to learn. What started as a side interest soon became a full-fledged technical endeavor, driven by the satisfaction of solving real problems within a finite scope.

The app’s architecture reflects a deliberate rejection of complexity. All location data is bundled directly into the app, eliminating the need for a server or API. This approach—while unconventional for apps handling dynamic content—simplified maintenance and reduced failure points. Core Data powers local storage, while SwiftUI provides the front-end framework, offering a balance between modern development practices and practical functionality.

Key technical choices included:

  • Native iOS app built with Swift and SwiftUI
  • Core Data for offline data storage and management
  • Static content delivered via bundled data files
  • Marketing site created with Astro and Tailwind, hosted on Cloudflare Pages

The lack of analytics tools was another intentional decision. Without third-party SDKs or tracking scripts, the app preserves user privacy while still delivering value. This constraint sparked a deeper question: how can developers measure engagement without compromising privacy?

Scaling the vision: content, performance, and feedback

With only 26 locations currently listed, the app remains lightweight and fast. But what happens when the database grows to 300—or 3,000—entries? The developer is weighing whether to introduce a CMS or continue shipping updates as new content becomes available. While manually updating the app might seem inefficient, it eliminates dependency on external services and keeps control firmly in the creator’s hands.

Performance considerations have also surfaced. SwiftUI, while elegant, occasionally struggles with heavy content loads, particularly when handling numerous images. Offline image caching presents another technical hurdle, as users expect seamless access even without an internet connection. These challenges highlight the trade-offs between rapid development and long-term scalability.

An open invitation for constructive feedback

This project isn’t about downloads or revenue—it’s about refining a product built from genuine passion. The developer is actively seeking thoughtful input on several fronts:

  • Is bundling all content into the app sustainable at scale?
  • Does SwiftUI hold up for content-heavy applications, or would UIKit offer better performance?
  • Would migrating to a CMS eventually outweigh the simplicity of static markdown files?
  • How can usage patterns be measured without resorting to invasive analytics tools?

These questions aren’t just technical; they reflect a broader philosophy of building with purpose and restraint. The Kyoto Unknown app is a testament to what can be achieved when constraints become catalysts for creativity rather than barriers to progress. For travelers planning a visit, the app offers a chance to explore Kyoto beyond the postcard-perfect highlights—provided they’re willing to step off the beaten path.

As the project evolves, one thing remains certain: the app will stay free forever, a promise backed by both principle and code. The next step? Refining the experience based on real user feedback and continuing to expand the list of hidden gems—one update at a time.

AI summary

Discover how a self-taught developer created Kyoto Unknown, a free iOS app showcasing underrated spots in Kyoto without ads, analytics, or backend costs.

Comments

00
LEAVE A COMMENT
ID #YQRLIK

0 / 1200 CHARACTERS

Human check

8 + 2 = ?

Will appear after editor review

Moderation · Spam protection active

No approved comments yet. Be first.