iOS Weather App

LucidSky

See what meteorologists actually see. Forecast confidence, 9+ weather models, and honest uncertainty on every prediction.

LucidSky showing light and dark mode side by sideLucidSky home screen with current conditions, AI forecast, precipitation map, and hourly stripModel comparison view showing wind, cloud cover, and wind direction across NWS, ECMWF, and GFS models

Solo Project · Live on the App Store

From concept to App Store, independently

LucidSky is a production iOS weather app I designed, engineered, and shipped. I handled every layer: product strategy, UX design, full-stack engineering, App Store submission, and ongoing operations.

I structured it as a monorepo with a shared API: one backend serves both the web app and the mobile client. That decision changed how I think about building products. Design the API first, and the clients become thin, focused interfaces. Iterate once, both platforms benefit.

React Native · Expo · Next.js · Three.js · Claude AI · Supabase · RevenueCat · TypeScript

The Problem

Every weather app gives you a single number and calls it a forecast

Forecast models don't produce single numbers. They produce probability distributions. That "72 degrees" is actually the median of a range that might span 65 to 79 degrees, and the confidence varies dramatically between tomorrow and next week. Different models often disagree entirely.

Meanwhile, NWS meteorologists write detailed forecast discussions explaining what they see, why models disagree, and what to watch for. That analysis exists. No consumer weather app was surfacing it.

Weather forecasts are inherently uncertain, but most apps hide that behind a single number. LucidSky doesn't.

Core Experience

Confidence ranges on every prediction

In Honest Mode, every metric shows a range that reflects actual forecast uncertainty. Tomorrow's temperature might be 42–44 degrees. Five days out, it's 28–50 degrees. The widening range tells you exactly how much to trust the forecast.

Toggle between 11 metrics: temperature, feels-like, precipitation, wind, gusts, humidity, dewpoint, cloud cover, visibility, AQI, and UV index. Each with hourly charts, day/night shading, and confidence bands. Or switch to Classic Mode for a clean, traditional view.

Precipitation probability metric showing confidence levels on 7-day forecast with hourly chartWind metric view showing confidence bands on hourly wind speed chart
AI forecast discussion showing record heat advisory with What Changed, Outlook, and Forecast Confidence sectionsAI forecast summary showing rain tonight then clearing with detailed outlook and confidence assessment

AI forecast discussions that explain the why

NWS meteorologists write Area Forecast Discussions explaining what they see and why. Claude AI translates these into plain-language summaries with three sections: What Changed, Outlook, and Forecast Confidence.

You learn that an upper ridge is strengthening faster than expected, that Tuesday's record heat is locked in, but that Thursday's cold front timing is still uncertain. The kind of context no other weather app gives you.

Compare 9+ weather models side by side

When ECMWF, GFS, and HRRR agree, you can plan with confidence. When they diverge, you know to have a backup plan. Compare temperature, wind, cloud cover, precipitation, and wind direction across NWS, ECMWF IFS, GFS, HRRR, ICON, GEM, JMA, and Meteo-France. A wind compass shows each model's predicted direction simultaneously.

iPad showing model comparison with wind, cloud cover, and wind direction charts across NWS, ECMWF, and GFSiPhone showing model comparison with wind, cloud cover, and wind direction
Live precipitation radar showing rain across the Boston area24-hour precipitation forecast map showing rain, snow, and mixed precipitation

Radar and forecast precipitation maps

Animated NEXRAD/MRMS radar with 2-hour history and 30-minute forecast shows weather moving across the map in real time. A 24-hour precipitation forecast map shows where rain, snow, and mixed precipitation are headed next.

A custom EC2 pipeline processes NOAA MRMS radar tiles every 5 minutes, reprojects them, applies a color ramp, and serves them via Supabase CDN. Minute-by-minute precipitation nowcasting with intensity levels completes the picture.

Date trackers and seasonal outlook

Pick a future date and watch the forecast evolve day by day. AI-narrated changes explain how predictions are shifting and why. Uncertainty bars narrow as the date approaches, showing you exactly when confidence locks in.

A 7-week seasonal outlook shows ensemble temperature and precipitation forecasts compared against 30-year climate normals. See whether the coming weeks trend warmer or cooler than average, with probability percentages.

Date forecast tracker showing uncertainty bars narrowing as target date approaches with AI-narrated changes7-week seasonal outlook showing temperature ranges compared to 30-year normals
Explore tab showing river discharge, ocean conditions, and solar noonAir quality index view with hourly AQI chart and 7-day AQI forecast

Beyond the forecast

An Explore tab surfaces data most weather apps ignore: moon phases with a sky chart showing planet positions tonight, river discharge levels, ocean swells and tides, solar noon timing, and celestial events.

Air quality gets its own dedicated view with hourly AQI charts and a 7-day forecast showing health categories. All sourced from the EPA AirNow network and USNO astronomical data.

Accessibility and iPad support

LucidSky supports Dynamic Type throughout, scaling all text with the user's accessibility settings. Full iPad layouts use the wider screen for denser data display rather than just stretching the phone UI. Light and dark modes adapt to system preferences.

iPad showing full forecast layout with alerts, precipitation nowcast, radar map, AI discussion, and hourly stripiPhone showing light and dark mode side by side

Architecture

How it's built

A monorepo with a thin mobile client and a server that does the heavy lifting.

1
Mobile client (Expo / React Native)

Thin client that renders pre-processed weather data. NativeWind for styling, RevenueCat for subscriptions, Supabase for auth with custom token caching to avoid GoTrue lock contention.

2
Web backend (Next.js)

20+ API routes fetch from NWS, Open-Meteo, EPA AirNow, Apple WeatherKit, and USNO. Claude Haiku generates forecast summaries, activity forecasts, and date tracker narratives. All cached with appropriate TTLs.

3
Radar pipeline (EC2)

A cron job on EC2 processes NOAA MRMS GRIB2 data every 5 minutes: reproject, color ramp, tile, and upload to Supabase Storage for CDN delivery.

4
Shared package (TypeScript)

All types, uncertainty calculations, metric configs, and business logic live in a shared package. Zero duplication between web and mobile.

7 data sources, zero ads

✓National Weather Service— forecasts, alerts, Area Forecast Discussions
✓Open-Meteo— ECMWF, GFS, HRRR, ICON, GEM, JMA, Meteo-France models
✓Claude Haiku— AI forecast summaries and activity forecasts
✓Apple WeatherKit— minute-by-minute precipitation nowcast
✓EPA AirNow— air quality index and health categories
✓USNO— sunrise/sunset, moon phases, planet positions
✓NOAA MRMS— high-resolution precipitation radar tiles
✓No ads, no data selling— privacy-first, minimal data collection

What this project demonstrates

LucidSky is a production iOS app live on the App Store. Building it required the same skill set as a full product team.

  • ✓Product strategy— identifying forecast uncertainty as an underserved design problem, defining free vs. Pro tiers, pricing at $0.49/month
  • ✓Full-stack engineering— React Native mobile client, Next.js backend with 20+ API routes, EC2 radar pipeline, Supabase database, monorepo with shared TypeScript
  • ✓AI product design— Claude-powered forecast discussions, activity-specific forecasts for 9 sports, date tracker narratives that explain how predictions are shifting
  • ✓Data integration— 7 external data sources (NWS, Open-Meteo, EPA, Apple WeatherKit, USNO, NOAA MRMS, Claude) unified into a single coherent experience
  • ✓Operations— App Store review process, RevenueCat subscription management, automated radar pipeline, daily digest emails, crash monitoring with Sentry

Want to see more?

Get in touch with me to see my in-depth case studies.

to navigate projects · H for home

Side ProjectsHome