← All projects
Curiosity · Shipped

Picture of the Day

NASA's Astronomy Picture of the Day: one image of the universe every day, with the story behind it.

Why it exists: It was one of the first React apps I ever built, back when I was figuring out how to call an API for the first time. In 2026 I came back to it and rebuilt it on the same shared template as my other tiny tools.

apodaily.vercel.app ↗
Next.js 16TypeScriptTailwindNASA APOD APIVercel

Then and now

The first version was a Create React App in plain JavaScript that called NASA straight from the browser, API key and all. The rebuild moves it to Next.js 16 and TypeScript on my tool-template, the same base TabMath and TagYourTurn use, so it shares their design system, security defaults, and tests.

A few details I cared about

The NASA request runs on the server now, so the API key never ships to the browser. Responses are cached for an hour.

At some point NASA had moved APOD to a new API with a different shape, and I only found out when I started the rebuild. The app now uses the new API: it picks the newest entry, pulls the image from its new home, and turns NASA's HTML credits and explanations into plain text instead of injecting raw HTML.

Images, YouTube and Vimeo embeds, and NASA-hosted videos each render their own way. Anything unexpected falls back to a link to NASA's page instead of breaking.

New mark: a planet rising inside a picture frame, drawn to still read at 16px as a favicon.