|
30428
|
my APOD site by @Justin-F | Stardance
|
Justin-F
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Justin-F | Stardance
|
1793235104.9749858
|
1793839904.9749858
|
|
39405
|
my APOD site by @Joudyy | Stardance
|
Joudyy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Joudyy | Stardance
|
1793296405.1594656
|
1793901205.1594656
|
|
35316
|
my APOD site by @Jordantianlu | Stardance
|
Jordantianlu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Jordantianlu | Stardance
|
1793155653.3797626
|
1793760453.3797626
|
|
29986
|
my APOD site by @Johan_swe | Stardance
|
Johan_swe
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Johan_swe | Stardance
|
1793530109.8676057
|
1794134909.8676057
|
|
40374
|
my APOD site by @Jhenil | Stardance
|
Jhenil
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-29T22:28:53Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have made a website. This website was part of the mission and it was to Give Your Website A Pulse. I have used the guide and it uses a Nasa API key to pull the image of the day or video. When I am shipping it is actually a video. I have made so that if it is video or image it will be on the website for you to view. I have added animations to it to make it better with CSS styling! It also have the clock and the name of the website, it was the same logic from my webOS 1.", "repo": "https://github.com/JP-code33/Give-Your-Website-a-Pulse", "demo": "https://jp-code33.github.io/Give-Your-Website-a-Pulse/"}]...
|
[{"post_id": 37128, "ts": "202 [{"post_id": 37128, "ts": "2026-07-29T16:46:41Z", "hours": 2.0247, "text": "Devlog - 2 I know that I was out for a while but I have completed the project. I have added styling to it to make it better . I have made an information sidebar which contains a bit of information about the video or image using the API. I have added a box underneath the video or image explainging about the media. I have also start up animation to it! You can see it in action in the video below!"}, {"post_id": 36987, "ts": "2026-07-29T12:53:20Z", "hours": 0.5481, "text": "Devlog - 1 I have started on working on this project using the guide they provide. The GitHub self deployment was hard to understand for me because I haven’t done, I just did it manually, so it took me a while but after wrapping that done I have started on the JavaScript and on the main HTML file."}]...
|
Title: my APOD site by @Jhenil | Stardance
Devlog Title: my APOD site by @Jhenil | Stardance
Devlogs:
Devlog - 1 I have started on working on this project using the guide they provide. The GitHub self deployment was hard to understand for me because I haven’t done, I just did it manually, so it took me a while but after wrapping that done I have started on the JavaScript and on the main HTML file.
Devlog - 2 I know that I was out for a while but I have completed the project. I have added styling to it to make it better . I have made an information sidebar which contains a bit of information about the video or image using the API. I have added a box underneath the video or image explainging about the media. I have also start up animation to it! You can see it in action in the video below!
Ships:
I have made a website. This website was part of the mission and it was to Give Your Website A Pulse. I have used the guide and it uses a Nasa API key to pull the image of the day or video. When I am shipping it is actually a video. I have made so that if it is video or image it will be on the website for you to view. I have added animations to it to make it better with CSS styling! It also have the clock and the name of the website, it was the same logic from my webOS 1....
|
1793328710.156245
|
1793415110.156245
|
|
47385
|
my APOD site by @Javokhir | Stardance
|
Javokhir
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Javokhir | Stardance
|
1793177757.070534
|
1793782557.070534
|
|
41668
|
my APOD site by @Jason_in_basement | Stardance
|
Jason_in_basement
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Jason_in_basement | Starda Title: my APOD site by @Jason_in_basement | Stardance...
|
1793134502.0968785
|
1793739302.0968785
|
|
41298
|
my APOD site by @Jason_Mloza | Stardance
|
Jason_Mloza
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-02T10:15:24Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did you make? I built a NASA Astronomy Picture of the Day website that uses NASA’s APOD API to fetch and display the picture of the day, its title, date, explanation, and copyright information. I also added a custom interface so users can explore the content instead of just seeing raw API data. What was challenging? The hardest part was getting the API, environment variables, and frontend to work together properly. It worked locally but initially gave me a 403 error after deployment, which forced me to understand the difference between local and production environments and fix my Vercel configuration. I also had to work through several smaller bugs while building the site. What are you proud of? I’m proud that I actually got the project from an idea and tutorial into a working, publicly deployed website. The biggest thing for me was seeing data from a real NASA API turn into an actual experience that someone else can visit and use. I also learned a lot from the problems I ran into instead of giving up when things broke. What should people know so they can test your project? The project doesn’t require an account or any special setup. Just open the live website and wait for the APOD to load. The site fetches the current Astronomy Picture of the Day from NASA, so the content will change as NASA publishes new APODs. If an APOD is a video rather than an image, the site displays the available media accordingly.", "repo": "https://github.com/jasonmloza/my-apod-nasa-site", "demo": "https://my-nasa-apod-site.vercel.app/"}]...
|
[{"post_id": 60128, "ts": "202 [{"post_id": 60128, "ts": "2026-09-02T09:31:21Z", "hours": 0.8303, "text": "NASA APOD A simple web experience for exploring NASA’s Astronomy Picture of the Day. I built this project to practice working with APIs and learn how to turn data from an external service into an actual web experience. The site fetches the current APOD from NASA and dynamically displays its title, date, media, explanation, and copyright information. It started as a project I was experimenting with and went through a few frustrating bugs before I finally got it working the way I wanted. Getting the API request, environment variables, and frontend rendering working together was the part that taught me the most."}]...
|
Title: my APOD site by @Jason_Mloza | Stardance
D Title: my APOD site by @Jason_Mloza | Stardance
Devlogs:
NASA APOD A simple web experience for exploring NASA’s Astronomy Picture of the Day. I built this project to practice working with APIs and learn how to turn data from an external service into an actual web experience. The site fetches the current APOD from NASA and dynamically displays its title, date, media, explanation, and copyright information. It started as a project I was experimenting with and went through a few frustrating bugs before I finally got it working the way I wanted. Getting the API request, environment variables, and frontend rendering working together was the part that taught me the most.
Ships:
What did you make? I built a NASA Astronomy Picture of the Day website that uses NASA’s APOD API to fetch and display the picture of the day, its title, date, explanation, and copyright information. I also added a custom interface so users can explore the content instead of just seeing raw API data. What was challenging? The hardest part was getting the API, environment variables, and frontend to work together properly. It worked locally but initially gave me a 403 error after deployment, which forced me to understand the difference between local and production environments and fix my Vercel configuration. I also had to work through several smaller bugs while building the site. What are you proud of? I’m proud that I actually got the project from an idea and tutorial into a working, publicly deployed website. The biggest thing for me was seeing data from a real NASA API turn into an actual experience that someone else can visit and use. I also learned a lot from the problems I ran into instead of giving up when things broke. What should people know so they can test your project? The project doesn’t require an account or any special setup. Just open the live website and wait for the APOD to load. The site fetches the current Astronomy Picture of the Day from NASA, so the content will change as NASA publishes new APODs. If an APOD is a video rather than an image, the site displays the available media accordingly....
|
1793469348.2895348
|
1793555748.2895348
|
|
37965
|
my APOD site by @Jakud | Stardance
|
Jakud
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Jakud | Stardance
|
1793224108.3661883
|
1793828908.3661883
|
|
36316
|
my APOD site by @JTaco | Stardance
|
JTaco
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @JTaco | Stardance
|
1793541262.9503057
|
1794146062.9503057
|
|
64388
|
my APOD site by @Iwantmackbook | Stardance
|
Iwantmackbook
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Iwantmackbook | Stardance
|
1793062413.5703795
|
1793667213.5703795
|
|
29169
|
my APOD site by @IshanWarrior2012 | Stardance
|
IshanWarrior2012
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @IshanWarrior2012 | Stardan Title: my APOD site by @IshanWarrior2012 | Stardance...
|
1792936064.7578032
|
1793800064.7578032
|
|
32351
|
my APOD site by @Isanchezv | Stardance
|
Isanchezv
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Isanchezv | Stardance
|
1793375376.3126462
|
1793980176.3126462
|
|
32725
|
my APOD site by @Ikira | Stardance
|
Ikira
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Ikira | Stardance
|
1793162844.3261771
|
1793767644.3261771
|
|
28904
|
my APOD site by @Iarush7 | Stardance
|
Iarush7
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Iarush7 | Stardance
|
1792936329.177107
|
1793800329.177107
|
|
29590
|
my APOD site by @Huroli | Stardance
|
Huroli
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Huroli | Stardance
|
1793357323.6118164
|
1793962123.6118164
|
|
58002
|
my APOD site by @Hirsh | Stardance
|
Hirsh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Hirsh | Stardance
|
1793468997.4654114
|
1794073797.4654114
|
|
59691
|
my APOD site by @Hamza223 | Stardance
|
Hamza223
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Hamza223 | Stardance
|
1793029642.9495773
|
1793634442.9495773
|
|
39767
|
my APOD site by @HalaJava | Stardance
|
HalaJava
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @HalaJava | Stardance
|
1793541322.7842343
|
1794146122.7842343
|
|
32192
|
my APOD site by @HackPlayAar | Stardance
|
HackPlayAar
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @HackPlayAar | Stardance
|
1793443875.9625545
|
1794048675.9625545
|
|
70717
|
my APOD site by @Haashini07 | Stardance
|
Haashini07
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Haashini07 | Stardance
|
1793228162.9971712
|
1793832962.9971712
|
|
34111
|
my APOD site by @Gelo | Stardance
|
Gelo
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-12T19:56:30Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an interactive NASA Astronomy Picture of the Day website. The most challenging part was handling images and API errors . I am proud of the responsive design and features like date navigation and random discoveries.", "repo": "https://github.com/gelo-dev-e/nasa-daily-astronomy-image-site", "demo": "https://gelo-dev-e.github.io/nasa-daily-astronomy-image-site/"}]...
|
[{"post_id": 27314, "ts": "202 [{"post_id": 27314, "ts": "2026-07-12T19:48:45Z", "hours": 0.3125, "text": "I added new features to make the website more interactive and engaging. Users can select a date, view the previous or next astronomy picture, or discover a random NASA image. I also added HD viewing, link copying, a loading animation, improved error handling, and responsive design for mobile devices."}, {"post_id": 27300, "ts": "2026-07-12T19:21:47Z", "hours": 0.7519, "text": "adding new features"}]...
|
Title: my APOD site by @Gelo | Stardance
Devlogs: Title: my APOD site by @Gelo | Stardance
Devlogs:
adding new features
I added new features to make the website more interactive and engaging. Users can select a date, view the previous or next astronomy picture, or discover a random NASA image. I also added HD viewing, link copying, a loading animation, improved error handling, and responsive design for mobile devices.
Ships:
I made an interactive NASA Astronomy Picture of the Day website. The most challenging part was handling images and API errors . I am proud of the responsive design and features like date navigation and random discoveries....
|
1793522849.128761
|
1793609249.128761
|
|
41783
|
my APOD site by @GTXPOFFIC | Stardance
|
GTXPOFFIC
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-30T03:13:35Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I make a community website on my VPS based on react and prisma databse Postgrees Local and VPS of my hostinger all this is done trough me and my bot which just fixed bugs", "repo": "https://github.com/GTXPOFFIC-developer/hackclub-community", "demo": "https://community.odsind.com"}]...
|
[{"post_id": 37408, "ts": "202 [{"post_id": 37408, "ts": "2026-07-30T03:09:50Z", "hours": 1.7942, "text": "Now I am working on some bugs of UI and sever and others are good!!"}]...
|
Title: my APOD site by @GTXPOFFIC | Stardance
Dev Title: my APOD site by @GTXPOFFIC | Stardance
Devlogs:
Now I am working on some bugs of UI and sever and others are good!!
Ships:
I make a community website on my VPS based on react and prisma databse Postgrees Local and VPS of my hostinger all this is done trough me and my bot which just fixed bugs...
|
1793465275.0130742
|
1793551675.0130742
|
|
34586
|
my APOD site by @GAURI_R | Stardance
|
GAURI_R
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @GAURI_R | Stardance
|
1793462065.1354585
|
1794066865.1354585
|
|
68004
|
my APOD site by @FloaFloa | Stardance
|
FloaFloa
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @FloaFloa | Stardance
|
1793116332.234377
|
1793721132.234377
|
|
29803
|
my APOD site by @FelixSerrano | Stardance
|
FelixSerrano
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @FelixSerrano | Stardance
|
1793534166.2832198
|
1794138966.2832198
|
|
33250
|
my APOD site by @Farukia | Stardance
|
Farukia
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Farukia | Stardance
|
1793501456.5189743
|
1794106256.5189743
|
|
29369
|
my APOD site by @Faridat | Stardance
|
Faridat
|
0
|
1.03
|
0
|
[]
|
[{"post_id": 20228, "ts": "202 [{"post_id": 20228, "ts": "2026-07-01T19:34:24Z", "hours": 0.7053, "text": "started with the css"}, {"post_id": 20118, "ts": "2026-07-01T17:20:33Z", "hours": 0.325, "text": "I started by ensuring a clean header, a container for the dynamic image, and a description area. is done"}]...
|
Title: my APOD site by @Faridat | Stardance
Devlo Title: my APOD site by @Faridat | Stardance
Devlogs:
I started by ensuring a clean header, a container for the dynamic image, and a description area. is done
started with the css...
|
1792939915.3743527
|
1793803915.3743527
|
|
34893
|
my APOD site by @Farha | Stardance
|
Farha
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Farha | Stardance
|
1793274453.0180473
|
1793879253.0180473
|
|
34157
|
my APOD site by @EmanShahid | Stardance
|
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @EmanShahid | Stardance
|
1792900218.5451522
|
1793764218.5451522
|
|
34158
|
my APOD site by @EmanShahid | Stardance
|
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @EmanShahid | Stardance
|
1792885858.6633422
|
1793749858.6633422
|
|
40875
|
my APOD site by @Elfoclaw | Stardance
|
Elfoclaw
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Elfoclaw | Stardance
|
1793527007.051907
|
1794131807.051907
|
|
46865
|
my APOD site by @Efeatagul | Stardance
|
Efeatagul
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Efeatagul | Stardance
|
1793159335.0508163
|
1793764135.0508163
|
|
56431
|
my APOD site by @Deku123987 | Stardance
|
Deku123987
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Deku123987 | Stardance
|
1793382712.2985146
|
1793987512.2985146
|
|
35081
|
my APOD site by @Danimani_lmv1 | Stardance
|
Danimani_lmv1
|
0
|
0.67
|
0
|
[]
|
[{"post_id": 28948, "ts": "202 [{"post_id": 28948, "ts": "2026-07-15T15:46:46Z", "hours": 0.6661, "text": "Second Project Okay so nothing too interesting to start things off BUT All I’ve done so far after staring at JavaScript and just processing it for 2 hours is do something, and i did plan a little ahead on how I’m going to be taking things forward! Follow along and stay updated!"}]...
|
Title: my APOD site by @Danimani_lmv1 | Stardance
Title: my APOD site by @Danimani_lmv1 | Stardance
Devlogs:
Second Project Okay so nothing too interesting to start things off BUT All I’ve done so far after staring at JavaScript and just processing it for 2 hours is do something, and i did plan a little ahead on how I’m going to be taking things forward! Follow along and stay updated!...
|
1793526576.3309972
|
1794131376.3309972
|
|
72255
|
my APOD site by @Dane | Stardance
|
Dane
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Dane | Stardance
|
1793432848.6833954
|
1794037648.6833954
|
|
45709
|
my APOD site by @DJCraft | Stardance
|
DJCraft
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @DJCraft | Stardance
|
1793350428.6903799
|
1793955228.6903799
|
|
64756
|
my APOD site by @DEEPML18 | Stardance
|
DEEPML18
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-26T16:46:40Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "🌌 NASA Pro - Explorer Dashboard A dynamic new-tab dashboard built for the “Give Your Website a Pulse” challenge. ✨ Features Zero-Delay Backgrounds: Instantly loads a cached cosmic background, while gracefully fetching the latest NASA APOD image. Live Search Integration: Fully integrated web search (SerpApi) directly in the dashboard. Dynamic Glassmorphism UI: Custom CSS featuring smooth backdrop-filters and hover animations. Custom Bookmarks Engine: An interactive widget to add and manage your favorite links via localStorage . 🛠 Tech Stack & Setup Tech: Pure HTML, Vanilla JavaScript, Custom CSS, and Vite. Setup: npm install -> Add .env with VITE_NASA_API_KEY & VITE_SERPAPI_KEY -> npm run dev 📝 Challenge Checklist HTML + CSS + JS required Public repository with good README Devlogs included No AI one-click builders (100% manual code) Custom UI/CSS Real Features (APIs, localStorage) Fully deployed website NASA Pro - Devlogs Day 1: Project Setup Scaffolded the project using Vite to test my vanilla JavaScript skills. Created the basic HTML structure, JS entry points, and added a fallback cosmic image ( hero.png ) to guarantee the background never breaks. Day 2: NASA API & Local Caching Hooked up the NASA APOD API. To prevent hitting API rate limits, I engineered a localStorage caching system that saves the last 20 fetched images and falls back to them automatically. Day 3: Clock & DOM Skeleton Built a precise digital clock function with a dynamic time-based greeting. Sketched out the search bar and built a collapsible “Info Panel” with CSS transitions to display the NASA APOD descriptions. Day 4: SerpApi Integration & Glassmorphism Integrated SerpApi for native Google Search results. Configured a Vite proxy to fix CORS, built a custom Vanilla JS rendering engine for the results, and completely overhauled the CSS to a “Glassmorphism” theme. Day 5: Refactoring & Bookmarks Modularized the 650-line main.js into clean components. Replaced hardcoded quick links with a dynamic Custom Bookmarks engine, and polished the background to load instantly with zero delay.", "repo": "https://github.com/DEEPML1818/my-APOD-site", "demo": "https://my-apod-site-gamma.vercel.app/"}]...
|
[{"post_id": 74059, "ts": "202 [{"post_id": 74059, "ts": "2026-09-26T16:37:03Z", "hours": 0.6386, "text": "day 3 - Final Polish & Refactoring massive code cleanup: broke down a monolithic main.js into clean modules (clock.js, apod.js, bookmarks.js, search.js soon) fixed UI visibility issue where search results background obscured the NASA image fixed z-index bug to ensure the APOD description info panel is fully readable while searching built custom bookmarks functionality: users can now dynamically add and remove their own links that persist via localStorage (goodbye hardcoded links) implemented zero-delay background rendering: app now instantly loads a cached background on initial load while fetching the fresh NASA API image in the background, eliminating any black screen delays project is officially ready to ship! 🚀"}, {"post_id": 73612, "ts": "2026-09-25T14:08:01Z", "hours": 1.2392, "text": "Today’s session was a full transformation of nasa_pro — from a basic Vite page with a clock into a working search engine with a premium space-themed UI, powered by two live APIs. SerpApi Search Engine The old search bar just opened Google in a new tab. I ripped that out and replaced it with a real SerpApi integration. Now when you type a query and hit Go, the app makes an API call to SerpApi’s Google engine, parses the JSON response, and renders the top 5 organic results directly on the page — each with a clickable title and snippet preview. A close button dismisses the results panel. The entire search flow happens without leaving the page. To bypass CORS restrictions, I set up a Vite dev proxy in vite.config.js that routes /search.json requests through to serpapi.com, so the browser treats it as a same-origin request. The API key is stored in .env as VITE_SERPAPI_KEY. NASA APOD Background Fix The APOD integration existed but was completely broken — the background was pure black. I traced this to three issues: the code was loading the full-res hdurl (tens of megabytes, 40+ seconds to download) instead of the optimized 1024px web version; NASA’s servers were rejecting requests because the browser sent a Referer header from localhost; and there was zero fallback if the image failed. I fixed all three — prioritized the smaller d.url, added a no-referrer meta tag to index.html, and built a proper loading chain using Image() preloading with onload/onerror handlers that tries the web image first, falls back to hdurl, then to a local hero.png asset. The .bg element now starts with a cosmic radial gradient so the page always looks like space, even if every image source fails. I also busted the localStorage cache so stale data doesn’t persist. UI Redesign Rewrote styles.css almost entirely. The search panel now uses glassmorphism — backdrop-filter blur, translucent rgba backgrounds, subtle borders, and deep box shadows. The search input transitions on focus with a glowing border. Buttons lift on hover. The info toggle has a continuous pulse animation that stops on hover and swaps to a scale-up glow. The info panel opens with a bouncy cubic-bezier scale transition. The clock is 64px extra-bold with text-shadow depth. Quick links have hover states with fading borders. Everything feels alive and responsive. Bug Fixes Fixed the clock greeting saying “Good morning” at 9 PM — the original code used the 12-hour variable to decide time of day, so 9 PM registered as morning. Switched it to the 24-hour value. Features Live clock with AM/PM and context-aware greeting. SerpApi-powered inline Google search with results panel. NASA APOD daily background with smart preloading and triple fallback. Collapsible info panel showing APOD title, explanation, and date. Quick links bar. Glassmorphic UI with micro-animations throughout. Cosmic gradient fallback. localStorage caching. Responsive layout. Both API keys configured via .env with Vite proxy for CORS-free development."}, {"post_id": 72654, "ts": "2026-09-23T12:59:09Z", "hours": 2.0681, "text": "Kicked off the project. Built the Vite skeleton, wired up the NASA APOD fetch with a localStorage daily cache so it doesn’t hammer the API every reload. Added the always-visible caption bar at the bottom and a collapsible info panel behind the i button. Background controls (open HD image, Google Image Search) live in the bottom-left corner. Ran a production build locally to confirm Vite outputs a clean dist/ . Files touched: src/main.js , src/styles.css , index.html"}]...
|
Title: my APOD site by @DEEPML18 | Stardance
Devl Title: my APOD site by @DEEPML18 | Stardance
Devlogs:
Kicked off the project. Built the Vite skeleton, wired up the NASA APOD fetch with a localStorage daily cache so it doesn’t hammer the API every reload. Added the always-visible caption bar at the bottom and a collapsible info panel behind the i button. Background controls (open HD image, Google Image Search) live in the bottom-left corner. Ran a production build locally to confirm Vite outputs a clean dist/ . Files touched: src/main.js , src/styles.css , index.html
Today’s session was a full transformation of nasa_pro — from a basic Vite page with a clock into a working search engine with a premium space-themed UI, powered by two live APIs. SerpApi Search Engine The old search bar just opened Google in a new tab. I ripped that out and replaced it with a real SerpApi integration. Now when you type a query and hit Go, the app makes an API call to SerpApi’s Google engine, parses the JSON response, and renders the top 5 organic results directly on the page — each with a clickable title and snippet preview. A close button dismisses the results panel. The entire search flow happens without leaving the page. To bypass CORS restrictions, I set up a Vite dev proxy in vite.config.js that routes /search.json requests through to serpapi.com, so the browser treats it as a same-origin request. The API key is stored in .env as VITE_SERPAPI_KEY. NASA APOD Background Fix The APOD integration existed but was completely broken — the background was pure black. I traced this to three issues: the code was loading the full-res hdurl (tens of megabytes, 40+ seconds to download) instead of the optimized 1024px web version; NASA’s servers were rejecting requests because the browser sent a Referer header from localhost; and there was zero fallback if the image failed. I fixed all three — prioritized the smaller d.url, added a no-referrer meta tag to index.html, and built a proper loading chain using Image() preloading with onload/onerror handlers that tries the web image first, falls back to hdurl, then to a local hero.png asset. The .bg element now starts with a cosmic radial gradient so the page always looks like space, even if every image source fails. I also busted the localStorage cache so stale data doesn’t persist. UI Redesign Rewrote styles.css almost entirely. The search panel now uses glassmorphism — backdrop-filter blur, translucent rgba backgrounds, subtle borders, and deep box shadows. The search input transitions on focus with a glowing border. Buttons lift on hover. The info toggle has a continuous pulse animation that stops on hover and swaps to a scale-up glow. The info panel opens with a bouncy cubic-bezier scale transition. The clock is 64px extra-bold with text-shadow depth. Quick links have hover states with fading borders. Everything feels alive and responsive. Bug Fixes Fixed the clock greeting saying “Good morning” at 9 PM — the original code used the 12-hour variable to decide time of day, so 9 PM registered as morning. Switched it to the 24-hour value. Features Live clock with AM/PM and context-aware greeting. SerpApi-powered inline Google search with results panel. NASA APOD daily background with smart preloading and triple fallback. Collapsible info panel showing APOD title, explanation, and date. Quick links bar. Glassmorphic UI with micro-animations throughout. Cosmic gradient fallback. localStorage caching. Responsive layout. Both API keys configured via .env with Vite proxy for CORS-free development.
day 3 - Final Polish & Refactoring massive code cleanup: broke down a monolithic main.js into clean modules (clock.js, apod.js, bookmarks.js, search.js soon) fixed UI visibility issue where search results background obscured the NASA image fixed z-index bug to ensure the APOD description info panel is fully readable while searching built custom bookmarks functionality: users can now dynamically add and remove their own links that persist via localStorage (goodbye hardcoded links) implemented zero-delay background rendering: app now instantly loads a cached background on initial load while fetching the fresh NASA API image in the background, eliminating any black screen delays project is officially ready to ship! 🚀
Ships:
🌌 NASA Pro - Explorer Dashboard A dynamic new-tab dashboard built for the “Give Your Website a Pulse” challenge. ✨ Features Zero-Delay Backgrounds: Instantly loads a cached cosmic background, while gracefully fetching the latest NASA APOD image. Live Search Integration: Fully integrated web search (SerpApi) directly in the dashboard. Dynamic Glassmorphism UI: Custom CSS featuring smooth backdrop-filters and hover animations. Custom Bookmarks Engine: An interactive widget to add and manage your favorite links via localStorage . 🛠 Tech Stack & Setup Tech: Pure HTML, Vanilla JavaScript, Custom CSS, and Vite. Setup: npm install -> Add .env with VITE_NASA_API_KEY & VITE_SERPAPI_KEY -> npm run dev 📝 Challenge Checklist HTML + CSS + JS required Public repository with good README Devlogs included No AI one-click builders (100% manual code) Custom UI/CSS Real Features (APIs, localStorage) Fully deployed website NASA Pro - Devlogs Day 1: Project Setup Scaffolded the project using Vite to test my vanilla JavaScript skills. Created the basic HTML structure, JS entry points, and added a fallback cosmic image ( hero.png ) to guarantee the background never breaks. Day 2: NASA API & Local Caching Hooked up the NASA APOD API. To prevent hitting API rate limits, I engineered a localStorage caching system that saves the last 20 fetched images and falls back to them automatically. Day 3: Clock & DOM Skeleton Built a precise digital clock function with a dynamic time-based greeting. Sketched out the search bar and built a collapsible “Info Panel” with CSS transitions to display the NASA APOD descriptions. Day 4: SerpApi Integration & Glassmorphism Integrated SerpApi for native Google Search results. Configured a Vite proxy to fix CORS, built a custom Vanilla JS rendering engine for the results, and completely overhauled the CSS to a “Glassmorphism” theme. Day 5: Refactoring & Bookmarks Modularized the 650-line main.js into clean components. Replaced hardcoded quick links with a dynamic Custom Bookmarks engine, and polished the background to load instantly with zero delay....
|
1793422286.020833
|
1793508686.020833
|
|
72262
|
my APOD site by @DDG_ | Stardance
|
DDG_
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @DDG_ | Stardance
|
1793436426.0196702
|
1794041226.0196702
|
|
31942
|
my APOD site by @Cleon | Stardance
|
Cleon
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Cleon | Stardance
|
1792803041.664188
|
1793407841.664188
|
|
38626
|
my APOD site by @Chiboy | Stardance
|
Chiboy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Chiboy | Stardance
|
1793422251.7495587
|
1794027051.7495587
|
|
40777
|
my APOD site by @CherryMG | Stardance
|
CherryMG
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-28T21:06:43Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "The most challenging part of this project was well, javascript. I have created multiple websites before, even one for my business, but I have avoided js nearly entirely. Took me a bit of trying but was so worth it.", "repo": "https://github.com/CherryMakesGames/nasa-plaything", "demo": "https://cherrymakesgames.github.io/nasa-plaything/"}]...
|
[{"post_id": 36618, "ts": "202 [{"post_id": 36618, "ts": "2026-07-28T20:55:16Z", "hours": 1.5228, "text": "So, this is basically it for the project. I did a few simple changes including: making the text glow improving the look of the date picker using flatpickr adding a “random day” button adding a “load high resolution” button to images."}, {"post_id": 36377, "ts": "2026-07-28T13:31:00Z", "hours": 0.6186, "text": "Improvements to the typography and site look"}, {"post_id": 36352, "ts": "2026-07-28T12:29:14Z", "hours": 0.3317, "text": "Created a small date picker that allows me to view past days, by default it is obviously set to the current day and it ends up lodaing it from the start."}, {"post_id": 36079, "ts": "2026-07-27T22:49:56Z", "hours": 0.2908, "text": "Added some basic CSS as a starter"}, {"post_id": 36070, "ts": "2026-07-27T22:26:49Z", "hours": 0.3119, "text": "Using the provided guide I have quickly went through the setup process and after a short amount of research I managed to have the first base website set-up. What I will be focusing on next is making it more functional via having some sort of search and a “surprise me” button"}]...
|
Title: my APOD site by @CherryMG | Stardance
Devl Title: my APOD site by @CherryMG | Stardance
Devlogs:
Using the provided guide I have quickly went through the setup process and after a short amount of research I managed to have the first base website set-up. What I will be focusing on next is making it more functional via having some sort of search and a “surprise me” button
Added some basic CSS as a starter
Created a small date picker that allows me to view past days, by default it is obviously set to the current day and it ends up lodaing it from the start.
Improvements to the typography and site look
So, this is basically it for the project. I did a few simple changes including: making the text glow improving the look of the date picker using flatpickr adding a “random day” button adding a “load high resolution” button to images.
Ships:
The most challenging part of this project was well, javascript. I have created multiple websites before, even one for my business, but I have avoided js nearly entirely. Took me a bit of trying but was so worth it....
|
1792878766.5003085
|
1793742766.5003085
|
|
36257
|
my APOD site by @CamoKid | Stardance
|
CamoKid
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @CamoKid | Stardance
|
1793436583.0270648
|
1794041383.0270648
|
|
29033
|
my APOD site by @Camc | Stardance
|
Camc
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Camc | Stardance
|
1793163197.0003352
|
1793767997.0003352
|
|
36124
|
my APOD site by @COYG_KNGPLCJMS | Stardance
|
COYG_KNGPLCJMS
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @COYG_KNGPLCJMS | Stardance
|
1792907432.9249759
|
1793771432.9249759
|
|
37829
|
my APOD site by @CFMJ | Stardance
|
CFMJ
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @CFMJ | Stardance
|
1793444125.3512356
|
1794048925.3512356
|
|
41408
|
my APOD site by @Boyra_Zeren | Stardance
|
Boyra_Zeren
|
0
|
1.2
|
0
|
[]
|
[{"post_id": 42659, "ts": "202 [{"post_id": 42659, "ts": "2026-08-07T14:33:19Z", "hours": 1.1981, "text": "So I made a base for the APOD guide project. The site doesnt do much rn other than exist (ik crazy right) but I’ll finish it and post it here on the next devlog."}]...
|
Title: my APOD site by @Boyra_Zeren | Stardance
D Title: my APOD site by @Boyra_Zeren | Stardance
Devlogs:
So I made a base for the APOD guide project. The site doesnt do much rn other than exist (ik crazy right) but I’ll finish it and post it here on the next devlog....
|
1792803195.5589836
|
1793407995.5589836
|
|
37033
|
my APOD site by @Boibla | Stardance
|
Boibla
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Boibla | Stardance
|
1792796012.521497
|
1793400812.521497
|
|
31464
|
my APOD site by @Bliss | Stardance
|
Bliss
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @Bliss | Stardance
|
1793177572.4087322
|
1793782372.4087322
|
|
58072
|
my APOD site by @BigD | Stardance
|
BigD
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @BigD | Stardance
|
1793469393.299607
|
1794074193.299607
|