You are browsing as a guest. Sign up (or log in) to start making projects!

stashm10

@stashm10

Joined June 10th, 2026

  • 3Devlogs
  • 2Projects
  • 2Ships
  • 15Votes
Hi I build stuff ig
Ship

Built NASA-Pulse, a site that fetches NASA's Astronomy Picture of the Day and displays the title, image/video, and explanation, updated daily. Used Vite + vanilla JS, deployed via GitHub Actions to GitHub Pages.

The trickiest part was debugging a "stuck loading" bug that turned out not to be my code at all. NASA's own API servers were timing out. Confirmed it by hitting the raw API URL directly and seeing the same timeout. Fixed it by adding a 15s timeout with one automatic retry so the site fails faster and recovers on its own more often instead of hanging.

Proudest of getting the full pipeline working end to end local dev, GitHub Secrets for the API key, and auto-deploy on every push since this was my first time setting up real CI/CD instead of just running things locally.

To test it: just visit the live link, it fetches today's picture automatically. Occasionally NASA's API itself is slow (their servers, not the site), so a refresh usually fixes it if it takes a moment.

Try project → See source code →
Open comments for this post

1h 15m 59s logged

Devlog #1: Building NASA-Pulse

What I built

A little site that pulls NASA’s Astronomy Picture of the Day and shows it with the title, image (or video), and explanation. Nothing crazy complicated on paper, but it ended up teaching me a lot more than I expected going in.

Live here: https://stashm10.github.io/NASA-Pulse/

This was my first time actually setting up a full pipeline from scratch –> Vite for the build, GitHub for version control, GitHub Actions for CI/CD, and GitHub Pages for hosting. I’d used git before but never wired together a real automated deploy flow, so that part alone was a good learning curve.

Currently, this website is a little slow in terms of loading speed. After deploying, the site would sometimes work fine and sometimes just hang on “Loading…” for a minute before failing. Turns out NASA’s own API servers were timing out, not a bug in my code. Confirmed it by hitting the raw API URL directly and getting a server timeout error. Ended up adding a timeout + automatic retry so the site fails faster and recovers on its own more often instead of just hanging.

What I’d do differently

Honestly, not much. Going step by step through GitHub setup -> local scaffolding -> coding -> deployment in that order made debugging way easier than if I’d tried to do everything at once. Testing locally before pushing saved me from pushing broken code multiple times.

What’s next

A few ideas I want to come back to:

  • Add a date picker so I can browse past APOD entries, not just today’s
  • Handle the “already have a token but rate-limited” case more gracefully, maybe cache the day’s response so repeated visits don’t hit the API again
  • Clean up mobile styling a bit more — the zigzag decorative strips are hidden below 600px right now, but I want to double check the rest of the layout holds up on smaller screens
  • Maybe swap in a search-by-date feature or a “random APOD” button for fun
    Takeaways

This was a good first real end-to-end project AND not just “write some code” but actually shipping something live, dealing with a flaky third-party API, and setting up a deploy pipeline that runs itself going forward. Small project, but it covered a surprising amount of ground.

0
0
5
Open comments for this post

4h 14m 34s logged

Devlog#2   I decided to add some more features to make this game more accessible. The main feature that I added was a difficulty section.  How it works: After selecting “let’s play” you get the option to pick the “normal” or “grandmaster” difficulty. You can easily tell that the grandmaster difficulty is the harder one by the intimidating cartoon picture next to it (I did use AI to make that since I am not good at drawing). As the game grew, I noticed that chess puzzles and openings can be incredibly brutal if you do not know the exact lines, which often leads to quick frustration. On the flip side, making the game universally easier takes away the competitive edge that chess veterans look for. I wanted to bridge this gap so casual players can learn without getting punished immediately while hardcore players can still experience a strict challenge. Grandmaster mode offers the classic, strict experience with standard guess limits and only allows you to step two moves back on your final guess to try and correct your line. To make things more forgiving, Normal mode adds an extra lifeline giving you one more guess than usual, and it allows a deeper lookback of four moves instead of two on your final guess. This extra context helps players re-visualize where their theory went wrong and successfully find the right continuation. Looking ahead, now that the core difficulty framework is in place, I am focusing on content depth and progression. First, I plan to significantly expand the library of chess openings and variations. To balance out the difficulty, I might limit the pool of openings in Normal mode to more common, foundational lines while increasing them in the Grandmaster section to unleash rare, highly theoretical variations that require deep knowledge. I am also looking into implementing a login system to keep track of progress, save personal stats, and track which openings players have mastered. Along with user accounts, I want to introduce a potential leaderboard so players can see how their scores stack up against the rest of the community. The update is live right now, so please try it out for yourself and and let me know if you have any questions or feedback.

4
0
129
Ship

I made a fun chess game, specifically, a chess opening game, Chession. How it works is simple. A position from a famous chess opening is shown on the board, and you have to guess which opening it is. The opening is selected from a list of 25, and the board renders the position after move 10 (20 plies). You type a guess or pick from a list that filters as you type. If your guess is wrong, the board steps back two plies (one full move) and shows an earlier position as a hint. You get 5 guesses total. Each wrong guess reveals more of the position's history, making the next guess easier.

The cool part is that there are so many openings (well, 25 for now), so you can have multiple attempts. Unlike Wordle or other guessing games, you dont have to wait 24 hours to play.

It was difficult setting up the chess board, the pieces, and piece animation, however I made it work. The trickiest part was animating between positions when going back, since each wrong guess jumps the board back two plies rather than one. I solved this by stepping through each half-move individually and animating the piece slide for every step, rather than animating directly from the start position to the end position. This keeps the motion readable even when skipping multiple moves.

I hope in the future I can add more openings, and vartions of popular openings, that way I can make it more difficult :)

The idea is just a simple game for all types of chess players, a chess version of Wordle... if that makes sense.

Enjoy!

  • 1 devlog
  • 2h
  • 17.21x multiplier
  • 38 Stardust
Try project → See source code →
Open comments for this post

2h 12m 56s logged

Chession

Devlog #1

I built a chess opening guessing game.

The idea: a position from a famous chess opening is shown on the board, and you have to guess which opening it is.

How it works
A random opening is selected from a list of 25, and the board renders the position after move 10 (20 plies). You type a guess or pick from a list that filters as you type. If your guess is wrong, the board steps back one move (one move for black and one move for white) and shows an earlier position as a hint. You get 5 guesses total. Each wrong guess reveals more of the position’s history, making the next guess easier.

What I’ve built so far

Static board rendering using FEN-style positions generated from chess.js

Move validation and position-building logic using chess.js

-An animated piece-slide transition when navigating between hint positions, instead of just snapping
Autocomplete with keyboard navigation (arrow keys, enter to select)

-A guess history display showing correct/wrong attempts

-Navigation buttons (and arrow keys) to move between all hint positions you’ve unlocked, not just the latest one

-A welcome modal explaining the rules
A reload-confirmation dialog so accidental refreshes don’t wipe progress mid-game

Animating the hints
The trickiest part was animating between positions when going back, since each wrong guess jumps the board back two plies rather than one. I solved this by stepping through each half-move individually and animating the piece slide for every step, rather than animating directly from the start position to the end position. This keeps the motion readable even when skipping multiple moves.

What’s next
I want to expand from 25 openings to 100+, including variations of openings that are already in the game (e.g. multiple lines within the Sicilian Defense, not just one).

I also think the hinting system could be reworked. Stepping back through earlier moves might be too easy a hint, since recognizable patterns persist even a few moves back. I’m considering alternatives, like instead revealing partial information (e.g. only the pawn structure, or only the piece types without full positions) rather than rewinding the whole position.

In short, this is a very rough draft, and simply a fun project for me. If anyone here knows chess and has any ideas or comments, please let me know. Thanks!!

live at: https://stashm10.github.io/Chession/

0
0
29

Followers

Loading…