Most packing apps treat weather like an afterthought. They'll tell you to "check the forecast" or include a generic note about bringing layers. But they don't actually look at the weather for you.
That felt like a solvable problem. So I solved it.
The Core Problem
Traditional packing lists are static. They work for controlled environments like a business trip where you're indoors most of the time. But most trips aren't that simple:
- You're driving through three climate zones on a road trip
- The forecast changes between when you pack and when you arrive
- Your activities shift based on conditions (hiking if it's clear, museums if it rains)
I needed a system that could pull real-time weather data, analyze forecast patterns (not just single-day snapshots), and generate intelligent suggestions. All without sending user data to external servers.
WeatherKit + On-Device AI
Apple's WeatherKit gives me the same forecast data that powers the native Weather app. 10-day forecasts, hourly granularity, multiple locations for multi-stop trips. The data pipeline is straightforward: user creates a trip with destination and dates, PackFox requests the forecast, analyzes conditions locally, and generates gear recommendations.
Everything happens on-device. I never send trip details to my servers. WeatherKit handles the forecast. PackFox handles the intelligence locally.
Pattern Recognition Over Raw Data
The challenge wasn't getting weather data. It was translating conditions into useful advice.
"65F, 40% rain" isn't helpful. "Bring a light rain jacket (optional)" is. Users don't want raw data. They want decisions.
Instead of reacting to individual data points, PackFox looks for patterns:
Temperature swings. A morning low of 45F and an afternoon high of 75F is a 30-degree swing. "Average temp 60F" doesn't tell you much. But a 30-degree swing tells you exactly what to wear: layer strategy with a base layer, midweight fleece, and packable shell.
UV at altitude. A spring ski trip might have moderate temps (60F) but extreme UV at altitude (9+). PackFox catches this and prioritizes sun protection even when the temperature seems mild. This one catches people off guard constantly.
Multi-destination aggregation. For a road trip from Seattle to Portland to Crater Lake to Bend, PackFox fetches forecasts for all stops, identifies the widest range of conditions, suggests versatile gear that works everywhere, and flags destination-specific items like snow chains for Crater Lake.
Family Profiles
When you combine weather intelligence with family profiles, the suggestions get genuinely smart.
Each profile can include allergies, health conditions, activity preferences, and gear ownership. Your daughter has a severe peanut allergy? Her EpiPen appears on every trip list automatically. Your son has asthma? Inhaler is never forgotten. The dog needs a travel crate? It's there.
A beach trip with a 4-year-old who has sun-sensitive skin gets different suggestions than the same trip with just adults. PackFox checks the UV index (8+), sees the child's flag, and adds rash guard, kids SPF 50, and a pop-up sun tent. Without being asked.
The generic packing list from a blog post will never do this. It can't. It doesn't know who's traveling.
Five Languages From Day One
Conventional wisdom says ship in English first, localize later. For a travel app, that felt backwards. If someone in Tokyo is packing for a trip to Paris, they shouldn't navigate an English-only interface.
I shipped in English, French, German, Japanese, and Spanish. It added roughly 40% to development time. It also forced better architecture decisions (externalized strings, semantic key names, proper pluralization handling) that made the codebase cleaner.
The AI-generated packing suggestions needed localization too. I solved this with prompt engineering: detect the device language and include it in the Gemini prompt. It works surprisingly well, but required native speakers to verify. Japanese was a special case because of formality levels (the AI kept mixing casual and polite registers) and counter words that vary based on what you're counting.
In the first week after launch, 38% of downloads came from non-English markets. The extra effort paid for itself immediately.
Privacy-First Architecture
PackFox doesn't track your location continuously. It doesn't send trip details to my servers. It doesn't require account creation or cloud sync. Everything is processed on-device with optional iCloud backup.
Your travel plans are yours. I built PackFox to be a tool, not a data collection service. It turns out you can build smart, personalized tools without collecting user data. It just requires more thoughtful architecture.
// The weather pipeline
func analyzeForecast(for trip: Trip) -> [PackingSuggestion] {
let forecasts = trip.destinations.map { WeatherKit.forecast(for: $0) }
let patterns = detectPatterns(forecasts) // swings, UV, precipitation
let travelers = trip.participants // profiles, health, preferences
return generateSuggestions(
patterns: patterns,
travelers: travelers,
activities: trip.activities
)
// Weather + people + activities = actually useful suggestions
// All on-device. No server. No tracking.
}