Case study · 2026
TFIA Aurora
A six-feed aurora forecast app, designed and built from spec
Aurora forecast & alerts — “True Frontier In Action”
- Industry
- Travel & tourism · Consumer product
- Engagement
- Product design → architecture → build → ship
- Result
- A six-feed aurora forecast app, designed and built from spec
The challenge
Every aurora app has the same flaw: it scores geomagnetic activity in isolation and fires an alert on storm strength alone. So it wakes someone at 2am when the sky is cloudy, lit by a full moon, or still light. The science is right; the advice is useless. Most aurora-watchers don't want a Kp number — they want one honest answer to one question: is it worth going outside tonight?
The apps that try to answer it tend to break in two further ways. They lean on paid map-tile keys and metered data APIs, so they cost money every month to run. And when an upstream feed wobbles, they show a 502 or a blank screen — at exactly the moment a storm is peaking and the user most needs them.
TFIA Aurora, created by Jo Sehgal, set out to address all three. CIA took it on as a flagship build: turn an ambitious written product spec into a real, data-fused product — reliably, accessibly, and at near-zero running cost.
What we built
CIA designed and built TFIA Aurora from Jo Sehgal's written product spec in a single focused build, on the same stack as the CIA website — Next.js 14, React 18, TypeScript and Tailwind — styled to the CIA brand. At its heart is the Tonight Score: a single 0–100 figure for the user's exact location that fuses six live inputs — NOAA's OVATION geomagnetic model, real-time solar wind (Bz, Bt, speed, density), darkness, cloud cover and moonlight.
The score turns on one rule. Darkness and cloud are applied as multiplicative gates rather than gentle factors, so a major storm in daylight or under thick cloud reads near zero — and an alert only fires when it is genuinely worth going outside. Every score carries a plain verdict and names its limiting factor: “active now, but it isn't dark enough yet.” The alert rules add a live preview that shows exactly why a given rule would or wouldn't fire right now.
We shipped five screens plus onboarding: Tonight (score dial, driver gauges, an hourly viewability timeline with the best window, tap-to-learn on every metric); a self-contained canvas Map of the live aurora oval and visibility boundary, working in both hemispheres with no paid tile key; an expert Data screen (solar wind, Kp, substorm status, X-ray flux, CME watch, live solar disk); a Community sightings feed with photo verification; and Alerts. Astronomy is computed on-device with suncalc; data comes only from NOAA SWPC, Open-Meteo and NASA SDO — all public and key-free. A cache-first feed layer serves the last-known reading through any upstream outage, so the app keeps answering instead of showing a blank or error screen.
The outcome
What exists today is a complete, working aurora forecast and alerts product, built to its own spec and verified against it. The score-and-gating logic that makes the app honest is covered by its own acceptance tests, and all nine pass. The production build is clean, and the Tonight screen loads with 114 kB of first-load JavaScript — light on the phone you'd check before driving out to a dark-sky site.
Because it uses only public, key-free feeds and renders its own map, the app carries no API keys and no monthly data cost. The cache-first feed layer keeps it giving a useful answer when an upstream source falters. Locations, alerts and sightings live on the device, so there is no account to create and no backend to run. It ships three themes, including a red-on-black night-vision mode and a colour-blind-safe palette, and it keeps one promise throughout: aurora is probabilistic, so it never guarantees a sighting — it gives an honest score and shows its working.
This is a flagship capability build: CIA designed and built it end to end from a written spec — the same way we build for a client. We won't dress it up as a live commercial deployment, and we don't need to: it is the proof of what we ship from a spec — a real six-feed product, verified against its own acceptance tests, reliable through upstream outages, and cost-disciplined by design. When we build for your business, this is the standard you can expect.
“One honest score, then the proof behind it — an alert only fires when it's genuinely worth going outside, and the app says why when it won't.”
By the numbers
What was delivered — verified facts from the build, not projected returns.
Built with
- Next.js 14
- React 18
- TypeScript
- Tailwind
- NOAA SWPC
- Open-Meteo
- NASA SDO
- suncalc
Want something built like this?
We design and ship real, data-driven products — not demos. Tell us what you're trying to make and we'll talk through fit.