NASA Space Explorer App

Live App Full-StackData VizAI
NASA Space Explorer App

About

Context
Personal Project
Independently built · curiosity-driven
My Role
Solo Developer
Full-stack design and development
Stack
React · Node.js / Express
Recharts · Gemini AI · NASA APIs

Why I built this

NASA publishes a remarkable amount of data every day — the Astronomy Picture of the Day, full-disk Earth photographs taken hourly, real-time tracking of asteroids near our planet. All of it is freely available through a public API.

The problem is that raw API data is just JSON. Numbers, coordinates, timestamps. It takes real effort to see what it actually means.

I wanted to build something that removed that friction — where a curious person, not a researcher, could open a browser and understand what’s happening in space today.

What it does

The app pulls from three NASA data streams:

Astronomy Picture of the Day (APOD) — each day’s featured image with its original NASA caption. I added a Gemini AI layer that generates a short, social-ready description of the image — the kind of thing you might actually want to share.

APOD screenshot

Earth Polychromatic Imaging Camera (EPIC) — the DSCOVR satellite photographs the full Earth in color every hour. Pick any date, and the app assembles those images into a short animation. It’s a simple idea, but watching the planet rotate is quietly striking.

APOD 截图

Near Earth Object Web Service (NeoWs) — on any given day, dozens of asteroids pass close to Earth. The app shows their count over time as a line chart, flags potentially hazardous ones, and lets you click into individual objects for detail. The data sounds alarming; visualised properly, it’s reassuring.

NeoWs screenshot

A few things I cared about

Making complexity disappear. High-resolution space images are large. I preloaded all EPIC frames before playback begins — so the animation runs smoothly rather than stuttering mid-loop. Meanwhile, images outside the viewport stay unloaded until you scroll to them, keeping the initial load fast. Each section also has its own loading state, keeping the interface responsive while data fetches in the background.

Staying honest when something breaks. NASA’s APIs occasionally go dark, or return partial data. Rather than crashing or showing nothing, the app isolates each data source independently — if NeoWs data is unavailable, the APOD and EPIC sections keep working. I wanted it to feel stable, not fragile.

The AI piece. Integrating Gemini wasn’t about automation for its own sake. The idea was that a short, human-sounding caption might be the thing that makes someone pause on an image they’d otherwise scroll past. Whether it works is for the reader to judge.

Stack

React · Node.js / Express · Recharts · Gemini AI · NASA Open APIs

This page focuses on the product and design thinking behind the app. For implementation details — API integration, project structure, and setup — see the GitHub repo.

Reflection

One thing worth reflecting on: for a period of time after this app went live, NASA’s EPIC API went down, taking the entire section with it. I’d put real effort into that module — the image gallery, the date picker, the frame-by-frame animation of the Earth rotating. The code was all there. The data wasn’t.

The API has since recovered, and everything is back online. But the experience taught me something about the real cost of depending on external APIs: you don’t control them. No matter how solid your own code is, one upstream outage is all it takes to leave users staring at a blank screen.

Going forward, I want to explore other space-related data sources and find new ways to render that same sense of scale — the Earth from above, objects drifting through the dark — without tying the experience to a single point of failure.