Navver
Turn-by-turn navigation for iPhone and CarPlay, with live weather radar and a forecast for every stop.
- Swift
- SwiftUI
- UIKit
- CarPlay
- Google Maps & Navigation SDK
- Mapbox Navigation SDK
- WeatherKit
- RevenueCat
- SwiftData
- Figma
Navver is turn-by-turn navigation with the weather built in: live storm radar on the map, a forecast at every point along your route, and a warning before you drive into rain. It has around 400 monthly active users and 20+ paying Navver Pro subscribers, on iPhone and CarPlay.
I’ve written about how it started and the first rewrite. Back then I’d forked Mapbox’s navigation repo and hacked weather into it, and I was still hoping Apple would let me build for CarPlay. This is what it looks like now.
Who it’s for
Motorcyclists, people driving through bad weather, and people who aren’t driving at all and just want to see what the weather is doing. It’s got a pretty great radar for that: open the map and you can look at the whole world, with no need to search for a location first.
The redesign
Navver started as a single map screen. I redesigned it into a four-tab, card-based app (Home, Trips, Map, You), designed first in Figma with its own token set:
- Home answers “should I go?” without touching a map: current conditions, active alerts, and your next trip.
- Trips are saved, named, and scheduled, with a creation wizard, an itinerary timeline, the best departure window, and a one-tap start.
- Map is search plus a persisted radar layer you can toggle, instead of a separate radar mode.
- CarPlay has its own route preview and guidance screens.
Getting CarPlay
I requested CarPlay access from Apple and heard nothing for about a year. So I set up an automated email to Apple every day. After a month of my nagging emails, they granted it.
Living home scenes
I think this is what gives the app personality. It’s a tiny thing that shows there’s more thought here than just making something utilitarian. It’s art, and it’s the character that makes you want to open the app again.
The Home hero is an illustrated landscape that follows the time of day and the actual weather. Clouds drift, stars twinkle, pines sway, and rain, snow, fog, and lightning roll in based on live WeatherKit conditions. I designed the scenes in an HTML gallery first, then ported them to SwiftUI, where every layer’s motion is computed from wall-clock time inside a TimelineView and a stateless Canvas draws the particles, so there are no timers or per-view animation state. It goes static when Reduce Motion is on.
Free and Pro
Free does most things. Pro makes it better: CarPlay, weather along your route, scrubbable radar, and a radar forecast up to 72 hours out. Subscriptions run through RevenueCat on top of StoreKit 2, with one entitlement state that drives the whole app’s gate.
Engineering decisions
- Moving to Google Maps. Mapbox is expensive. It charged me every time someone opened the app, not even to navigate, on top of what I already pay for radar tiles. Google Maps is basically free up to 5,000 app opens a month with how Navver is built, so that was a no-brainer. Their navigation is also more widely trusted, which makes a big difference in how people perceive the quality of the app. I migrated in five flagged phases, on the phone and on CarPlay, behind a backend seam so either stack could run while I verified parity. I still use Mapbox for routing that respects an RV’s weight rating.
- Billing safety as an invariant. Since map loads and radar tiles cost money per use, a user who hasn’t made it through onboarding must never construct the map. A build-phase script enforces it: the map entry point may appear exactly once, and gate, onboarding, and paywall code can’t reference map or radar code.
- Two weather pipelines, kept separate. Radar tiles come from Rainbow.ai and refresh every five minutes, with forecast frames preloaded so scrubbing is instant. Point forecasts come from WeatherKit, streamed into the route sample by sample with bounded concurrency so the list fills in progressively.





