← Back
LiveiOS · Android · 8 languages · App Store + Play Store · gokc.app · Featured by KCTV5 + Fox4 KC

GoKC

Kansas City for visitors and locals. 750+ places, 8 languages, native iOS + Android.

A tourism app for the city of Kansas City. 750+ curated places, 8 languages, native iOS and Android, free. Built in 30 days ahead of the 2026 World Cup and featured by KCTV5 and Fox4 KC. The live demo of NativeBridge — the cross-platform conversion tool I built to make this kind of solo cross-platform shipping possible.

Origin

Most cities don't have a single great tourism app — they have ten mediocre ones. KC needed one before the 2026 World Cup brought visitors from every continent. Building it natively on two platforms would normally take a 3-engineer team a quarter. With NativeBridge, one engineer shipped it in 30 days — and the local news noticed.

What it does

  • 750+ curated places

    Restaurants, museums, parks, breweries, sports venues, hidden gems. Curated, not scraped. Authored once, emitted to both platforms via the build pipeline.

  • 8 languages, all native

    English, Japanese, Brazilian Portuguese, French, Spanish, German, Korean, Arabic. Chosen for actual KC visitor traffic, not as a checkbox.

  • Today

    What's happening in KC today. Live event awareness.

  • Map + Plan

    Browse places by neighborhood. Build a custom day or itinerary.

  • Transit

    Get there — public transit, walking, rideshare guidance.

  • GameDay mode

    Special-purpose mode for KC sporting events (Chiefs, Royals, Sporting KC) — game-day routing, parking, food spots near stadiums.

  • Native on both platforms

    iOS in SwiftUI. Android in Jetpack Compose. Not React Native, not Flutter — fully native UI on each platform, with feature parity maintained by codegen.

  • Localized seed content, not just UI strings

    The 750+ KC places aren't just translated UI labels — the place data itself (names, descriptions, neighborhood blurbs) is localized. SeedLocalization.kt on Android and the matching Swift Services pipeline emit place content per language at build time, so a Japanese visitor reads the same content quality a local would.

Engineering

  • The cross-platform leverage move

    GoKC iOS and GoKC Android live in the same parent folder as NativeBridge. The 5 JavaScript files at that root (convert-gokc.js, postprocess-gokc.js, convert-seed-content.js, convert-xcstrings.js, sync-strings.js) are the GoKC-specific conversion driver. When a string changes in one platform, sync-strings.js propagates it to the other. The codegen and localization pipeline is automated, not manually duplicated.

  • Build-pipeline localization

    Apple's modern .xcstrings format on iOS converts to Android-compatible strings.xml automatically. No duplicate localization spreadsheets. Strings are authored once, translated once, emitted to both platforms via the build pipeline.

  • Generic engine + project-specific overlay

    Generic NativeBridge handles 'any Swift file → any Kotlin file.' Project-specific decisions (which iOS framework maps to which Android library, asset re-naming for Compose, file boundary merges) live in postprocess-gokc.js. Clean separation between generic tool and project overlay — the same pattern any seasoned platform engineer recognizes.

  • Validated by local press

    KCTV5 and Fox4 KC both ran segments on GoKC ahead of the 2026 World Cup — independent confirmation that a free, no-account, no-ads, no-data-collection app, shipped natively on both platforms by one engineer in 30 days, was newsworthy. The hard part of solo shipping isn't the code; it's whether anyone notices. The local news did.

Stack

  • Swift / SwiftUI
  • Kotlin / Jetpack Compose
  • NativeBridge (custom)
  • JavaScript (build pipeline)
  • Vercel (marketing site)