astroDaily banner

astroDaily

22 devlogs
66h 30m 48s

A polished archive and explorer for NASA’s Astronomy Picture of the Day — every image ever published, searchable, filterable, and shareable.

astro–daily.vercel.app · Built with Astro.js, Supabase & Vercel

Get images from space everyday!

This project uses AI

I used Google Gemini for developing the logic behind the loading of images in gallery page without messing up the masonry layout. Claude was used for the search and filter system API and somewhat in search page frontend.

Demo Repository

Loading README...

Jaydev

Shipped this project!

Hours: 66.51
Cookies: 🍪 1834
Multiplier: 27.57 cookies/hr

This project is a polished archive, gallery and explorer for NASA’s Astronomy Picture of the Day — every image ever published, searchable, filterable, and shareable. There is even a public API endpoint full of features without a rate limit, data limit and no API key required!

This was very challenging than I thought of but in this era of AI it was achievable with the help of Gemini and Claude

I am proud with end result I have got especially I love the UI though there is much more to add in this project, this it for this ship and prolly flavortown.

Jaydev

rewrote the readme and fixed some small UI and bugs. I think I am ready to ship this!

Attachment
0
Jaydev

Added the documentation for APOD API with various examples of almost all the parameters of the API. Fixed the ISR issue on the archive/search page where the query wasn’t loaded on the page from the URL params. Also made it reload-proof where the script malfunctioned on changing the page and coming back. Fixed the UI for the navBar.

Attachment
Attachment
0
Jaydev

The third day of heavy work session! Today I have added one of the most cool things - the filter system in the search page along with the help of claude. I had re-work on the search API for adding up a new filter system. Take a look of it! Also now you can directly search from the url by adding params for search and filter and therefore the redirect from the index archive page will work now. Now I am realizing that I will need to document everything 😭. Also there were several small UI fixes especially for the small devices. I have also fixed the sharing of APOD page where the website url wasnt loaded poperly. The another UI addition is the blurred shadow around the main APOD image. check it out. Also added the related APODs section inside the APOD archive page based on the postgres search. Also fixed the large padding in gallery section for small devices.

Attachment
Attachment
Attachment
Attachment
Attachment
0
Jaydev

Another heavy session today!!!! Added the footer and I think I have cooked it. Just take a look. Also completed one of the important things- the public API v1. It has many features!! Firstly it is free to use, no API key needed, unlimited requests, features include params like date, start_date, end_date, hd, query (Database FTS), thumbnails, random, limits with pagination, media_type, order (new/old first) and specific fields you want, year/month wise filtering. And the max limit is 1000 (1k)!!! You also get a meta data about the returned data regarding pagination, total, and order. There was other stuff done too like ui improvements, added video support (not youtube yet), also the image will be visible in single page now.

Attachment
Attachment
Attachment
Attachment
Attachment
Attachment
0
Jaydev

Fixed the horizontal scrollbar on chrome. Working on the API which will have many features with unlimited calls and no API key required!

Attachment
Attachment
0
Jaydev

Heavy work session! Worked on the archive index page, archive search page, new public API work in progress. The ISR was also not working properly and the astro view transitions also glitched due to which javascript also malfunctioned. I have prettified some code today as it looked messy. Also, updated the dependencies along with fixing of view transitions, and the javascript issues due to that. The main thing done today is the adding of new search page (with debouncing) on archive where you can use the postgres full text search. I have also worked on the index archive page which contains three things - a search query box which takes you to the search page (not working now), a date-wise url maker with 3 examples, and a year-wise list of APODs that even shows the months (in the form of dots)! Sorry for making this devlog big!

https://cdn.hackclub.com/019d29d8-23d0-7641-a3ad-8e2cf5e52c56/2026-03-26_16-21-24.mp4

Attachment
Attachment
Attachment
Attachment
0
Jaydev

I am sorry for not consistently working on this project. I was focusing on the studies and got sick. I am better now. The re-validation and ISR was not setup correctly, so I had to fix that first. Now the site will be re-validated every 24hrs. Also added blurred loading of images for fast preview along with skeleton loading. There’s only blurred loading for the APOD archive page for now. Almost completed the search API and TS vector in Supabase with update trigger (not committed yet).

Attachment
Attachment
Attachment
Attachment
0
Jaydev

Changed to static paths and kept APIs dynamic. Updated the dependencies and upgraded to astroJS v6! Also added the vercel analytics and vercel speed insights. Fixed the internal server error completely and the gallery preview is available now. Working on the archive page with search and filter features.

Attachment
Attachment
0
Jaydev

I am back after a break. Focused on studies. There were two important things to fix, the internal server error on website in preview of gallery section. The other problem is that the image load very slow. So to fix that, I used https://wsrv.nl for webP conversion and caching. Now I can feel the difference. Check it out yourself.

0
Jaydev

Added the scale up animation on loading of image and view transitions from astro. There were a few fixes. Added a version API which tells about the last commit and website version

0
Jaydev

I only test one URL and decided that the OG Image wasn’t working. But it wasnt true until I tested that in https://opengraph.dev So, I have updated the OG image banner (default OG image) with new favicon. Also added a fallback if the dynamic OG image fails. Also worked on the favicon.ico and on theme based changing of icons

Attachment
Attachment
0
Jaydev

Designed this beautiful logo/favicon! Not the main work done today but still took much time. The other things done today are the simplification optimization of website structure. Also edited the gallery preview on the index page. Take a look!

Attachment
Attachment
0
Jaydev

Sorry! Forgot to add a devlog yesterday. There are couple of new things added! I am still trying to fix the dynamic OG image generation. Added the banner (default OG image), designing favicon in figma, fixed the sync DB script and optimized it. the main thing done today was the simplification and modularity of website structure for better performance. Did dimplification on the landing page, navbar and the preview apod component. the navbar shows the current page now! .There were some UI changes too like adding of more roundedness and effects! have a look-

Attachment
Attachment
Attachment
Attachment
Attachment
Attachment
0
Jaydev

My HTML structure is looking shi , I need to modify and simplify every page. I am scared to check the SEO or a lighthouse report. Well, I am trying to make it good and minimal. I worked on prettifying that. The another good change is that I added a whole geist icon set on my project so that the code doesn’t look messy. I planning on unifying the meta data and the OG data. And yeah now the social media sharing is live. Also, added the copy button for the URL. Currently, there is a horizontal scrollbar on chrome idk, what’s wrong. Need to resolve that too. Here’s the lighthouse report.

Attachment
Attachment
0
Jaydev

Yeahhh! figured it out, the api got gallery was controlled by the vercel’s ISR. Now, the gallery works just fine. I did beautification, adding of simplification in the html structure. Also working on the the social media sharing options in archive.

Attachment
0
Jaydev

Okay, there are a couple of things added! First of all I had to use Gemini in order to achieve the dynamic loading of the images on the gallery page as the user scrolled. The second thing added was to remove the ISR on the random APOD page. There are also some Fixes and optimizations on the code. Also added an “Archive” title on the archive page. And added the “LIVE_DATA” or “OLD_DATA” on the navbar, which basically tells if the data is latest. Currently, I am having issues on the gallery page. idk why the images are shown repeated. Will figure it out soon. Thus, adding a photo only. Will add a video on the next devlog.

Attachment
Attachment
Attachment
0
Jaydev

First of all sorry for devlogging this much time. Actually, I had ran into a problem, my .git folder had got some issues. However, the issue is resolved now. I have added two main things, the gallery page, and the random APOD page. Both the pages are not finished yet, I am figuring out the loading of all the data from the db to the gallery page, and the random page is currently static. I have also added a “Today’s APOD” title which was missing in the APOD page. Also there were some minor UI fixes. The other thing is that I have worked on the dynamic OG image generation and converted it into a React component. I’m currently unsure about the loading of images in the gallery page but will soon figure it out.

Attachment
Attachment
Attachment
Attachment
0
Jaydev

The database wasn’t getting an update due to early API call so, changed the workflow time to 5:30 UTC. There were some UI fixes in navbar, misc. Also I have worked on the landing page. Take a look. I have added a section of posts that were posted on a particular day when you go to an APOD. Added a copyright section in the preview of APOD cards.

Attachment
0
Jaydev

Okay so the yearly and monthly archive wasn’t looking that great, so I have worked to beautify it. It is very apple and vercel inspired. Also the navbar was not looking that good as I was thinking so I have redesigned it added blur like everyone else! it’s so beautiful!! But there are still very minute details that I need to add in the UI. Also, the surprise me, gallery , overall archive page is remaining. It is very time consuming !!! But please take a look at my work

Attachment
Attachment
Attachment
Attachment
Attachment
0
Jaydev

A heavy session of UI! Designed the entire monthly archive page. No more energy to journal. Just check it out how beautiful!

Attachment
0
Jaydev

Lets go! I have added the main thing on the page the APOD. Now you can go to https://astro--daily.vercel.app/apod to see the latest APOD. This page fetches the latest APOD from the database and shows it! Along with UI/UX, there are few things remaining for this page like caching for 24h so that the page remains static. I have also added the https://astro--daily.vercel.app/archive/[year]/[month]/[day] to show APOD for that particular day. It also uses the same idea as on the APOD page. I have also added vercel’s ISR on these pages so that the pages stay static without increasing the build times.

Attachment
Attachment
0
Jaydev

The first thing necessary is the data. I made a script that fetches my supabase database and checks the last date. If it doesn’t match with today’s date, the script fetches due APODs (Astronomy Picture of the Day) from NASA’s API and updates the database. I added a github action workflow which automatically runs that script everyday so that my database is always up to the date.

Attachment
Attachment
0