|
33165
|
My own site! by @Ishaan_Jha | Stardance
|
Ishaan_Jha
|
2
|
17.27
|
172
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-14T17:44:36Z", "hours": 15.0, "multiplier": 11.45, "payout": 172, "blessing": "neutral", "text": "I made my own personal site, telling almost everything about me. The trickiest part was mastering the UI, but at the end I love the result. Want to know me better? This is basically it.", "repo": "https://github.com/IJai-code/personalproject", "demo": "https://ijai-code.github.io/personalproject/#about"}, {"ship_num": 2, "ts": "2026-07-09T21:00:38Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my personal site about me! I made it notebook style, as i love it that way and I like the whole engineering layout. It is pretty basic, and I didn’t have much difficulty making it. There are 3 main buttons, that use a cool scroll feature to scroll to the section (i learned how to do that when i was pretty young, but it wasn’t that easy back then).", "repo": "https://github.com/IJai-code/personalproject", "demo": "https://ijai-code.github.io/personalproject/#about"}]...
|
[{"post_id": 41821, "ts": "202 [{"post_id": 41821, "ts": "2026-08-06T08:39:01Z", "hours": 1.2667, "text": "Hi guys, it has been a bit since I updated my personal portfolio page, but I think it needed some refresh and updates. It now has more info about me as a person, and who I really am, and is completely accurate now. I will continue to make updates as things change, as well as the process. Also, it is multi-page now :) Enjoy!"}, {"post_id": 28427, "ts": "2026-07-14T17:42:25Z", "hours": 4.6986, "text": "Update complete, different modes, options, buttons, descriptions, and UI overall."}, {"post_id": 28017, "ts": "2026-07-14T00:27:10Z", "hours": 9.2792, "text": "Large UI refresh, still in progress. Not deployed just yet, but large backend refresh, as well as smoother layout and multiple pages."}, {"post_id": 25716, "ts": "2026-07-10T04:33:51Z", "hours": 1.0469, "text": "Made some fixes for the bugs. UI remains the same"}, {"post_id": 25530, "ts": "2026-07-09T20:56:22Z", "hours": 0.6878, "text": "Devlog 1: Starting My Personal WebsiteStarted building my personal website as part of Stardance. I created the initial structure with HTML and CSS, set up the GitHub repository, and deployed it using GitHub Pages. The first version focused on getting the foundation working so I could iterate on the design and make it feel more personal."}]...
|
Title: My own site! by @Ishaan_Jha | Stardance
De Title: My own site! by @Ishaan_Jha | Stardance
Devlogs:
Devlog 1: Starting My Personal WebsiteStarted building my personal website as part of Stardance. I created the initial structure with HTML and CSS, set up the GitHub repository, and deployed it using GitHub Pages. The first version focused on getting the foundation working so I could iterate on the design and make it feel more personal.
Made some fixes for the bugs. UI remains the same
Large UI refresh, still in progress. Not deployed just yet, but large backend refresh, as well as smoother layout and multiple pages.
Update complete, different modes, options, buttons, descriptions, and UI overall.
Hi guys, it has been a bit since I updated my personal portfolio page, but I think it needed some refresh and updates. It now has more info about me as a person, and who I really am, and is completely accurate now. I will continue to make updates as things change, as well as the process. Also, it is multi-page now :) Enjoy!
Ships:
I made my personal site about me! I made it notebook style, as i love it that way and I like the whole engineering layout. It is pretty basic, and I didn’t have much difficulty making it. There are 3 main buttons, that use a cool scroll feature to scroll to the section (i learned how to do that when i was pretty young, but it wasn’t that easy back then).
I made my own personal site, telling almost everything about me. The trickiest part was mastering the UI, but at the end I love the result. Want to know me better? This is basically it....
|
1793109236.9170985
|
1793195636.9170985
|
|
38078
|
ISS OVERHEAD by @Gingembre | Stardance
|
Gingembre
|
1
|
18.0
|
172
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T14:39:20Z", "hours": 18.0, "multiplier": 9.72, "payout": 172, "blessing": "neutral", "text": "I made an app that tells users when the International Space Station flies over them. It contains a lot of cool features like it being able to tell how high the ISS will be in the sky during the next pass. I am proud of this project because it is my first application and I learned a lot coding it.", "repo": "https://github.com/Gingembre3005/ISS_Overhead", "demo": "https://github.com/Gingembre3005/ISS_Overhead/releases/tag/V1.0.0"}]...
|
[{"post_id": 70670, "ts": "202 [{"post_id": 70670, "ts": "2026-09-19T15:49:10Z", "hours": 6.3675, "text": "I have polished the app to get it ready for shipping. This means I completely reworked the UI by displaying numbers in a “Digital Clock” style and the text with a more space like font. You can see a fail I had when trying to display text with the “Digital Clock” font on the third picture : ). I also added notifications to let the user know when the ISS flies over him. And to top it off, now you can see the ISS crossing the background when you are on the app!"}, {"post_id": 65028, "ts": "2026-09-09T20:37:33Z", "hours": 3.325, "text": "In the last few days I have been working on getting the app to calculate at what time the ISS is going to fly over the user again. Now that this is done, I feel like all the core features are done. Do you maybe have an idea of a feature or something that would be interesting to see in the finished app? Let me know in the comments! I’d be more than happy to hear your ideas : )"}, {"post_id": 61754, "ts": "2026-09-04T20:14:05Z", "hours": 3.1083, "text": "My app is finally working! The main thing I want it to do is send the user a notification when the International Space Station flies over them. Right now it can tell the user if the ISS is in his field of view by calculating its position over the horizon. If the amount of degrees over the horizon is positive, then the user should be able to see the ISS (if we neglect the sunlight, weather and so on…)."}, {"post_id": 56838, "ts": "2026-08-28T19:45:11Z", "hours": 4.8992, "text": "This summer I started working on my first mobile app. Since I am very interested in astronomy, I decided to build an app that gives you a notification when the ISS flies over you. Right now I only have two windows, one of which is used to get the user’s location."}]...
|
Title: ISS OVERHEAD by @Gingembre | Stardance
Dev Title: ISS OVERHEAD by @Gingembre | Stardance
Devlogs:
This summer I started working on my first mobile app. Since I am very interested in astronomy, I decided to build an app that gives you a notification when the ISS flies over you. Right now I only have two windows, one of which is used to get the user’s location.
My app is finally working! The main thing I want it to do is send the user a notification when the International Space Station flies over them. Right now it can tell the user if the ISS is in his field of view by calculating its position over the horizon. If the amount of degrees over the horizon is positive, then the user should be able to see the ISS (if we neglect the sunlight, weather and so on…).
In the last few days I have been working on getting the app to calculate at what time the ISS is going to fly over the user again. Now that this is done, I feel like all the core features are done. Do you maybe have an idea of a feature or something that would be interesting to see in the finished app? Let me know in the comments! I’d be more than happy to hear your ideas : )
I have polished the app to get it ready for shipping. This means I completely reworked the UI by displaying numbers in a “Digital Clock” style and the text with a more space like font. You can see a fail I had when trying to display text with the “Digital Clock” font on the third picture : ). I also added notifications to let the user know when the ISS flies over him. And to top it off, now you can see the ISS crossing the background when you are on the app!
Ships:
I made an app that tells users when the International Space Station flies over them. It contains a lot of cool features like it being able to tell how high the ISS will be in the sky during the next pass. I am proud of this project because it is my first application and I learned a lot coding it....
|
1793004763.0102959
|
1793091163.0102959
|
|
51309
|
PocketCam Classique by @Bogey13 | Stardance
|
Bogey13
|
1
|
14.0
|
172
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-19T11:29:07Z", "hours": 14.0, "multiplier": 12.0, "payout": 172, "blessing": "neutral", "text": "I made an esp32cam digicam with a tft showing live view. it was a very exciting and PAINFUL project i must say. alright i really wasnt expecting this level of complexity. first, the damn esp wont flash- somehow got it to flash, tft wont work- it was a library problem. soldering was another pain because first time, and i have shaky hands- all the time, sooo yeah uhhh you know how it went. then. writing the code, huge thanks to my friend; he helped me write the code without AI. it was easier than i was expecting it to be. okay when we got the camera working. i accidentally fried the battery TEMPORARILY. Like an idiot, i plugged in the camera to charge and realized i had a switch between the charging module and the battery, and flipped it. welp. it powered the esp AND was charging and the battery’s protection PCB freaked out and disconnected the battery. I thought i had fried the camera, so i had to resolder the entire thing (becuase wires were coming loose due to bad soldering too). At the end, everything was rlly fine because the battery’s protection pcb tanked the hit and is fine now. one more thing. i decided to ditch the enclosure because im just loving how it looks right now, so cyberpunk-y with those naked wires. im keeping it this way. although i have made it in CAD, those who want can put it on their own pocketcams. So uh yeah. first ship. lets go.", "repo": "https://github.com/Bogey1309/PocketCam-Classique", "demo": ""}]...
|
[{"post_id": 76398, "ts": "202 [{"post_id": 76398, "ts": "2026-10-03T12:57:53Z", "hours": 0.3667, "text": "Its done. Resoldered the entire thing. However the battery is depleted and im gonna have to charge it so we don’t know if it turns on yet"}, {"post_id": 76205, "ts": "2026-10-02T17:37:48Z", "hours": 0.6, "text": "Soldered the shutter button and one part of the sliding switch, also connected a few more wires. Its almost done (again)"}, {"post_id": 75859, "ts": "2026-10-01T11:25:19Z", "hours": 0.5, "text": "Display has been resoldered"}, {"post_id": 75550, "ts": "2026-09-30T12:26:54Z", "hours": 0.65, "text": "resoldered 2 more wires and added the power system"}, {"post_id": 74823, "ts": "2026-09-28T11:51:47Z", "hours": 0.45, "text": "Resoldered one more wire, and a prev one had come lose so fixed that too"}, {"post_id": 73113, "ts": "2026-09-24T12:40:15Z", "hours": 0.4803, "text": "resoldered like 2 wires."}, {"post_id": 73052, "ts": "2026-09-24T08:51:43Z", "hours": 0.5567, "text": "resoldering the camera… the earlier connections came loose. and this ones even worse ahhhh"}, {"post_id": 72616, "ts": "2026-09-23T11:09:32Z", "hours": 0.3108, "text": "ITS CHARGING MY DUDES. FINALLY. LETS GO. I had accidentally tripped the battery’s protection circuit and wouldn’t work (I had messed it up while trying to charge lmao) I just resoldered everything. AND IT WORKS. LETS GOOOOOOOOOO"}, {"post_id": 71659, "ts": "2026-09-21T08:04:24Z", "hours": 0.285, "text": "bad news. i messed up the wiring. had to desolder the battery. will do the rest later"}, {"post_id": 71084, "ts": "2026-09-20T08:52:00Z", "hours": 1.8506, "text": "ITS DONE!!!! soldering and everythign and everything is doneeee. just gotta put it in a case and call it done. lets go. finally."}, {"post_id": 70680, "ts": "2026-09-19T16:09:35Z", "hours": 0.95, "text": "Updated camera enclosure: This is probably the final design- ig only a few changes will be made later like adding holes for the type c and all. But yeah. Its almost done……."}, {"post_id": 70422, "ts": "2026-09-19T04:59:56Z", "hours": 0.6917, "text": "Tried to model a new enclosure but failed horribly. Guess I’ll edit the old one"}, {"post_id": 70038, "ts": "2026-09-18T10:42:44Z", "hours": 0.82, "text": "Messed something up…. [Image from the camera btw] Im running the cam at 5mp now and it takes like 8s for the thing to save, and sometimes it doesn’t even save, I was tweaking around- changed something, now the image sometimes saves, sometimes doesn’t- wth is happening, the first iteration worked perfectly…?"}, {"post_id": 70005, "ts": "2026-09-18T08:12:24Z", "hours": 0.5744, "text": "I fixed the colours on the TFT ( yesterday it looked rlly weird). now its working. LETS GO. the prototype is 99% done. just soldering and 3d printing the case left"}, {"post_id": 69737, "ts": "2026-09-17T18:04:11Z", "hours": 0.6269, "text": "I FINALLY GOT THE TFT WORKING LETS GOOOO. this thing was giving me headaches since the past week. just wouldnt turn on. backlight did. but no data- glowing rectangle of doom. I FIXED IT TODAY. I READ THAT I COULD USE eSPI thingy, change some code, MOST IMPORTANTLY, i wired my DC to IO1… and it just worked. im very tired to type out the detailed thing but yeah. lets go."}, {"post_id": 69096, "ts": "2026-09-16T11:17:42Z", "hours": 0.5917, "text": "I worked a bit more on the cad. The internal assembly is wayyyy more detailed now. milimeter accurate"}, {"post_id": 68167, "ts": "2026-09-14T17:11:03Z", "hours": 0.2972, "text": "I modelled the battery (just a cuboid) and imported the ip5310 from the web. I messed up the importing a bit and had to manually delete a lot of parts lmao"}, {"post_id": 68095, "ts": "2026-09-14T14:36:08Z", "hours": 0.6383, "text": "I made a millimeter accurate cad model of the esp32cam and the tft since i have them in my hands rn. battery and buck converter remain"}, {"post_id": 68032, "ts": "2026-09-14T12:28:13Z", "hours": 0.5081, "text": "I got the camera working. However… the tft is giving me a bad headache. The screen just won’t work- the backlight turns on and all but its not displaying anything. I think its cause of the brownout detection, something is fishy. Working on solving it. I also messed with the code a bit and my friend helped me write better code."}, {"post_id": 67302, "ts": "2026-09-13T11:39:19Z", "hours": 0.325, "text": "I successfully flashed the esp32cam after a big big boss battle. The thing just would not listen or connect or talk. At the end I gave up, tested it with a multimeter. All evidence pointed towards a defective board. The thing just wouldn’t communicate! not even over baud 74880, not even garbage characters!- thats usually a dead board. I tried flashing it like 20 times since yesterday I think. Same cycle. Upload code, compiling, connecting –> PRESS RST, hope something happens, fail. I even sent the supplier an email saying I got a defective piece. The thing is, you gotta flash this board by pressing the “reset RST” button when the arduino ide says “connecting…..”; which obv. did not work for me. So i give up and get bored and watch a random yt video. in that video, the guy doesnt press the RST button, nope. what he does is yanks out the cable connecting GPIO0 to GND (you gotta wire em to make the board go into flashing mode). and it worked for him. I try it. EUREKA. it goshdarn works. like holy crap dude, how. wth!!! i am so goshdarn happy right now that the thing works."}, {"post_id": 67038, "ts": "2026-09-13T02:25:28Z", "hours": 1.8469, "text": "I wrote code for Pocketcam, my friend helped me a lot. got a ton of errors on the first try. I had some trouble uploading however, the thing just would not flash the esp32cam. It was getting late at night so I decided to shut down and sleep."}, {"post_id": 65286, "ts": "2026-09-10T09:54:27Z", "hours": 0.4228, "text": "I got a sort of bad breadboard- so i had to manually plug a dupont male header in and out to make it looser. It was so tight that none of my components went in without feeling like id damage them pushing in"}, {"post_id": 52914, "ts": "2026-08-23T09:17:13Z", "hours": 0.85, "text": "I made a V2 of the camera enclosure. I think its significantly better than yesterday; looks cleaner and is a bit more ergonomic."}, {"post_id": 52529, "ts": "2026-08-22T18:10:31Z", "hours": 1.7447, "text": "I modelled the entire camera in onshape; including the internal components. I must admit- the enclosure was the hardest part. I feel quite productive."}, {"post_id": 52314, "ts": "2026-08-22T13:02:13Z", "hours": 0.7608, "text": "I drew out the rough circuit diagram in diagram.net of how the wiring/circuitry for the cam. would look like."}, {"post_id": 51824, "ts": "2026-08-21T17:55:28Z", "hours": 0.4019, "text": "Today I used Lego to try to see how small I could make my retro pocketcam. I first drew out the dimensions of the components (3.7v 500mah LiPo, ESP32CAM + OV5640 Camera, IP5310 Boost Converter) I then opened my big box o’ legos and tried to match the paper sketch with appropriate pieces. Although I did make them a tad bit bigger cause tolerances exist, I think its nice."}]...
|
Title: PocketCam Classique by @Bogey13 | Stardance Title: PocketCam Classique by @Bogey13 | Stardance
Devlogs:
Today I used Lego to try to see how small I could make my retro pocketcam. I first drew out the dimensions of the components (3.7v 500mah LiPo, ESP32CAM + OV5640 Camera, IP5310 Boost Converter) I then opened my big box o’ legos and tried to match the paper sketch with appropriate pieces. Although I did make them a tad bit bigger cause tolerances exist, I think its nice.
I drew out the rough circuit diagram in diagram.net of how the wiring/circuitry for the cam. would look like.
I modelled the entire camera in onshape; including the internal components. I must admit- the enclosure was the hardest part. I feel quite productive.
I made a V2 of the camera enclosure. I think its significantly better than yesterday; looks cleaner and is a bit more ergonomic.
I got a sort of bad breadboard- so i had to manually plug a dupont male header in and out to make it looser. It was so tight that none of my components went in without feeling like id damage them pushing in
I wrote code for Pocketcam, my friend helped me a lot. got a ton of errors on the first try. I had some trouble uploading however, the thing just would not flash the esp32cam. It was getting late at night so I decided to shut down and sleep.
I successfully flashed the esp32cam after a big big boss battle. The thing just would not listen or connect or talk. At the end I gave up, tested it with a multimeter. All evidence pointed towards a defective board. The thing just wouldn’t communicate! not even over baud 74880, not even garbage characters!- thats usually a dead board. I tried flashing it like 20 times since yesterday I think. Same cycle. Upload code, compiling, connecting –> PRESS RST, hope something happens, fail. I even sent the supplier an email saying I got a defective piece. The thing is, you gotta flash this board by pressing the “reset RST” button when the arduino ide says “connecting…..”; which obv. did not work for me. So i give up and get bored and watch a random yt video. in that video, the guy doesnt press the RST button, nope. what he does is yanks out the cable connecting GPIO0 to GND (you gotta wire em to make the board go into flashing mode). and it worked for him. I try it. EUREKA. it goshdarn works. like holy crap dude, how. wth!!! i am so goshdarn happy right now that the thing works.
I got the camera working. However… the tft is giving me a bad headache. The screen just won’t work- the backlight turns on and all but its not displaying anything. I think its cause of the brownout detection, something is fishy. Working on solving it. I also messed with the code a bit and my friend helped me write better code.
I made a millimeter accurate cad model of the esp32cam and the tft since i have them in my hands rn. battery and buck converter remain
I modelled the battery (just a cuboid) and imported the ip5310 from the web. I messed up the importing a bit and had to manually delete a lot of parts lmao
I worked a bit more on the cad. The internal assembly is wayyyy more detailed now. milimeter accurate
I FINALLY GOT THE TFT WORKING LETS GOOOO. this thing was giving me headaches since the past week. just wouldnt turn on. backlight did. but no data- glowing rectangle of doom. I FIXED IT TODAY. I READ THAT I COULD USE eSPI thingy, change some code, MOST IMPORTANTLY, i wired my DC to IO1… and it just worked. im very tired to type out the detailed thing but yeah. lets go.
I fixed the colours on the TFT ( yesterday it looked rlly weird). now its working. LETS GO. the prototype is 99% done. just soldering and 3d printing the case left
Messed something up…. [Image from the camera btw] Im running the cam at 5mp now and it takes like 8s for the thing to save, and sometimes it doesn’t even save, I was tweaking around- changed something, now the image sometimes saves, sometimes doesn’t- wth is happening, the first iteration worked perfectly…?
Tried to model a new enclosure but failed horribly. Guess I’ll edit the old one
Updated camera enclosure: This is probably the final design- ig only a few changes will be made later like adding holes for the type c and all. But yeah. Its almost done…….
ITS DONE!!!! soldering and everythign and everything is doneeee. just gotta put it in a case and call it done. lets go. finally.
bad news. i messed up the wiring. had to desolder the battery. will do the rest later
ITS CHARGING MY DUDES. FINALLY. LETS GO. I had accidentally tripped the battery’s protection circuit and wouldn’t work (I had messed it up while trying to charge lmao) I just resoldered everything. AND IT WORKS. LETS GOOOOOOOOOO
resoldering the camera… the earlier connections came loose. and this ones even worse ahhhh
resoldered like 2 wires.
Resoldered one more wire, and a prev one had come lose so fixed that too
resoldered 2 more wires and added the power system
Display has been resoldered
Soldered the shutter button and one part of the sliding switch, also connected a few more wires. Its almost done (again)
Its done. Resoldered the entire thing. However the battery is depleted and im gonna have to charge it so we don’t know if it turns on yet
Ships:
I made an esp32cam digicam with a tft showing live view. it was a very exciting and PAINFUL project i must say. alright i really wasnt expecting this level of complexity. first, the damn esp wont flash- somehow got it to flash, tft wont work- it was a library problem. soldering was another pain because first time, and i have shaky hands- all the time, sooo yeah uhhh you know how it went. then. writing the code, huge thanks to my friend; he helped me write the code without AI. it was easier than i was expecting it to be. okay when we got the camera working. i accidentally fried the battery TEMPORARILY. Like an idiot, i plugged in the camera to charge and realized i had a switch between the charging module and the battery, and flipped it. welp. it powered the esp AND was charging and the battery’s protection PCB freaked out and disconnected the battery. I thought i had fried the camera, so i had to resolder the entire thing (becuase wires were coming loose due to bad soldering too). At the end, everything was rlly fine because the battery’s protection pcb tanked the hit and is fine now. one more thing. i decided to ditch the enclosure because im just loving how it looks right now, so cyberpunk-y with those naked wires. im keeping it this way. although i have made it in CAD, those who want can put it on their own pocketcams. So uh yeah. first ship. lets go....
|
1793048022.6634827
|
1793134422.6634827
|
|
45983
|
Github Dashboard by @pandacoder2013 | Stardance
|
pandacoder2013
|
1
|
15.0
|
171
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-04T13:57:32Z", "hours": 15.0, "multiplier": 11.39, "payout": 171, "blessing": "neutral", "text": "A Github Dashboard that utilises the Github API to preview your Github profile and repository data like commits, pull requests, coding languages etc. It takes your username on startup and generates an info card on the main page, and repository cards that you can click in to explore more about that specific repository. It is a website that requires zero setup other than entering your username which is saved in localStorage. btw the example image isn’t my Github profile", "repo": "https://github.com/dsochamp/Github-Dashboard", "demo": "https://dsochamp.github.io/Github-Dashboard/"}]...
|
[{"post_id": 61516, "ts": "202 [{"post_id": 61516, "ts": "2026-09-04T13:56:38Z", "hours": 3.01, "text": "I finished Github Dashboard! It has analytics for your repositories as well as a highly detailed info card of your profile! Pls give feedback and use it whenever you like! Here is an example of viewing the repository for this project."}, {"post_id": 47307, "ts": "2026-08-15T05:31:08Z", "hours": 3.6622, "text": "GOOFY ANIMATIONS! I felt like I wanted the dashboard to be more playful with its users so I added some fun animations! I will probably add an option on which way you want to spin when the page opens."}, {"post_id": 45879, "ts": "2026-08-12T16:48:11Z", "hours": 8.3794, "text": "I finally finished creating my info cards based on the user and also included localStorage to save usernames without having an account or server. My next step is to get the repositories page working with analytics for your repository. I also made a comprehensive table containing everything the Github API returns including other APIs for it."}]...
|
Title: Github Dashboard by @pandacoder2013 | Stard Title: Github Dashboard by @pandacoder2013 | Stardance
Devlogs:
I finally finished creating my info cards based on the user and also included localStorage to save usernames without having an account or server. My next step is to get the repositories page working with analytics for your repository. I also made a comprehensive table containing everything the Github API returns including other APIs for it.
GOOFY ANIMATIONS! I felt like I wanted the dashboard to be more playful with its users so I added some fun animations! I will probably add an option on which way you want to spin when the page opens.
I finished Github Dashboard! It has analytics for your repositories as well as a highly detailed info card of your profile! Pls give feedback and use it whenever you like! Here is an example of viewing the repository for this project.
Ships:
A Github Dashboard that utilises the Github API to preview your Github profile and repository data like commits, pull requests, coding languages etc. It takes your username on startup and generates an info card on the main page, and repository cards that you can click in to explore more about that specific repository. It is a website that requires zero setup other than entering your username which is saved in localStorage. btw the example image isn’t my Github profile...
|
1793105491.5675924
|
1793191891.5675924
|
|
812
|
Portfolio Website by @anayshekhar | Stardance
|
anayshekhar
|
1
|
13.0
|
170
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-08T05:11:14Z", "hours": 13.0, "multiplier": 12.84, "payout": 170, "blessing": "neutral", "text": "I made a portfolio website INSIDE of a 3d macintosh. The most challenging part was rendering the website onto the computer screen mesh while still having basic website functions like scrolling and clicking. I’m proud of the intro with the sound, flickering, terminal, and zoom in. People should know that when you go on the website and click any key or any part of the website you can hear sound effects.", "repo": "https://github.com/AnayShekhar/anayshekhar-portfolio", "demo": "https://anayshekhar-portfolio.vercel.app/"}]...
|
[{"post_id": 22993, "ts": "202 [{"post_id": 22993, "ts": "2026-07-05T18:04:48Z", "hours": 8.2706, "text": "Redesigned to have a more retro theme. Used a 3D model of a macintosh from sketchfab (cited in github). To give it a retro CRT screen look I made the website be physically drawn onto the computer screen mesh. Also redesigned the contents of the website too look more fitting for a macintosh."}, {"post_id": 5779, "ts": "2026-06-09T18:10:21Z", "hours": 2.4131, "text": "Complete Redesign I redesigned my portfolio website because I didnt like how the old loader and navigation system worked. I also switched from a static vite setup to next.js. The loader definitely needs some work. I also switched from using VS Code to Cursor. I like how the menu looks and works. I had also spent time sketching out and writing out the contents of the website and how I wanted it to look like. Feel free to give feedback and suggestions. Also looking for ideas on what to add as my Hero."}, {"post_id": 5205, "ts": "2026-06-08T22:05:26Z", "hours": 2.5394, "text": "Portfolio Color Change I added different color options to my portfolio website. Currently there is Dark mode, Light mode, and a special Retro mode. The content in the website isn’t final. Still planning on fixing the moving particles on the landing page, and looking to add more features. Let me know if you have any ideas for this."}]...
|
Title: Portfolio Website by @anayshekhar | Stardan Title: Portfolio Website by @anayshekhar | Stardance
Devlogs:
Portfolio Color Change I added different color options to my portfolio website. Currently there is Dark mode, Light mode, and a special Retro mode. The content in the website isn’t final. Still planning on fixing the moving particles on the landing page, and looking to add more features. Let me know if you have any ideas for this.
Complete Redesign I redesigned my portfolio website because I didnt like how the old loader and navigation system worked. I also switched from a static vite setup to next.js. The loader definitely needs some work. I also switched from using VS Code to Cursor. I like how the menu looks and works. I had also spent time sketching out and writing out the contents of the website and how I wanted it to look like. Feel free to give feedback and suggestions. Also looking for ideas on what to add as my Hero.
Redesigned to have a more retro theme. Used a 3D model of a macintosh from sketchfab (cited in github). To give it a retro CRT screen look I made the website be physically drawn onto the computer screen mesh. Also redesigned the contents of the website too look more fitting for a macintosh.
Ships:
I made a portfolio website INSIDE of a 3d macintosh. The most challenging part was rendering the website onto the computer screen mesh while still having basic website functions like scrolling and clicking. I’m proud of the intro with the sound, flickering, terminal, and zoom in. People should know that when you go on the website and click any key or any part of the website you can hear sound effects....
|
1793101838.6666658
|
1793188238.6666658
|
|
22871
|
Orbital Eye - ISS & Satellite Pass Predictor b Orbital Eye - ISS & Satellite Pass Predictor by @avishgoyal | Stardance...
|
avishgoyal
|
1
|
13.43
|
170
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-24T09:14:58Z", "hours": 9.0, "multiplier": 19.79, "payout": 170, "blessing": "neutral", "text": "Orbital Eye - Shipped. Five days ago this project was just supposed to be a simple ISS pass predictor. That’s it. I wanted to take better satellite photos and got annoyed at having to open 15 different tabs just to answer one question: “Can I actually see this thing tonight?” One website had pass times. Another had weather. Another had orbit visualization. Another had satellite information. Somehow I always ended up jumping between all of them. So naturally, instead of spending 5 minutes checking websites like a normal human being, I spent 5 days building an entire satellite tracking platform. Orbital Eye calculates upcoming satellite passes, estimates visibility using weather and sunlight data, provides live telemetry during active passes, and displays everything on a 3D globe. Along the way I learned far more about orbital mechanics than I ever expected to. I also learned that: Hidden whitespace characters can ruin your entire day. Globe.gl documentation occasionally feels like a scavenger hunt. A page load time of 50 seconds is generally considered “bad”. The bug is almost never where you think it is. My favorite feature ended up being the custom TLE system. You can paste the TLE of basically any satellite and Orbital Eye will immediately generate orbit predictions, calculate passes, and render it on the globe. The 3D globe itself was also way harder than expected. There were multiple points where the Earth rendered perfectly, the orbit calculations were correct, the backend was working, and the satellite simply refused to exist. Not broken. Not erroring. Just… gone. In the end, though, everything came together. The globe works. The satellites move. The passes are accurate. The performance no longer makes me question my life choices. And most importantly, I finally have a tool that tells me when to point my camera at the sky. Special thanks to lukewalsh11234, he was the only follower lol and seeing his follow it motivated me to do more since people were actually tracking the progress. GitHub: https://github.com/avishgoyal/orbital-eye Because staring at moving dots in space is cooler than it sounds.", "repo": "https://github.com/avishgoyal/orbital-eye", "demo": "https://avishgoyal.pythonanywhere.com/"}]...
|
[{"post_id": 15830, "ts": "202 [{"post_id": 15830, "ts": "2026-06-25T18:54:31Z", "hours": 2.6836, "text": "Devlog #7 Another Day to feel demotivated because your ship got rejected… there was another recommendation they made to me (following up from the fact they thought my project was AI but sure), that was to add new features that would make it more cool to use! Kinda agree tho it does need more QOL features. That is why after the Hide UI (which was also added because of this suggestion btw) I added 2 new features!!! Camera Lock: This button allows you to lock your camera to the satellite, and the camera just follows the satellite, its useful if you just want it to sit in the background or smthing or just dont want to rotate the globe constantly in-between a Pass to see the satellite angle. Notifications!!!: This button allows you to enable notifications and the web-app will remind you 2 minutes before a pass using the alert() function in JS. pretty simpleOff topic: for 1080p monitors or low-end setups, the first load might be very fiddly and maybe the orbit path or the satellite or something can break, reloading fixes this mostly. These features are really simple lol and I was planning on adding more but I think its enough for now, I plan to integrate E-mails so it can remind you through Email or smthing but that will take HOURS! anyways, this sums it up to a total of 3 features. I also FINALLY completed the readme, and yes I know I said I had exams but all the more reason to finish it right here and right now, because if I hadn’t done it now, then I would have kept thinking about it lol, it might have even hindered my exam performance (yes its that serious for me). Anyways, I completely deleted the entire readme which AI made, and I tried my best when writing it manually, I don;t know what you include in a readme because I havent made it before this but I tried my best, I also added a picture of a photo I took using orbital-eye!!!"}, {"post_id": 15569, "ts": "2026-06-25T09:59:23Z", "hours": 1.7486, "text": "Welp, My Ship got rejected, hahahahha, not rejected but there were some changes requested and they were entirely reasonable and actually I’m amazed how much the shipwrights actually care about the people who are making these project. The main reason was because my ENTIRE CSS was just AI slop, and I know that we all hate AI but trust me, CSS is the bane of my existence, even though it is now I had to manually revamp the entire CSS and it looks sooo muchhh better, Istg if this gets flagged as AI I might actually quit lol. Anyways, the second change they suggested was updating the README, which I havent done yet but I will do soon (my exams are in 2 days, I have to study lol) and I guess because I didnt commit until like 50% of the project they thought my entire project was AI or something? In my defence it was my first time using github codespaces and since the code was saved I thought it must have magically synced with my repo or smthing lol. Anyways, the reasons were completely valid and let me list out the changes I made: -Changed font from the generic typewriter to the Inter font, and sans-serif. -Made HUD Panels almost invisible (they were protruding too much and felt distracting, I wanted to make the Globe the visual centre of the site so yea). -Changed the Globe skin to blue marble, the NASA skin wasn’t very detailed it just had a higher resolution, the current one looks very good. -Added a background image URL so that there is a starry sky in the background not a plain black void. -Changed the top left HUD, did many changes, I found inspiration from stellarium, its basically a star tracking astrophotgraphy software, but its UI is like way too detail intensive, I took the transparent design philosophy from there and the rest I just fiddled with it until I liked it lol. -Changed the 100 accents of blues I used, to a single steel blue #5D88AA4D, I decreased the opacity for borders to around 30% ish. -I also reduced the size of the actually pass table to about 70% of its current size, it was wayyy too dominant on the UI, and I also added the accent colour there too. I completely removed green (except for the user dot). -I made the satellite path thickness less because it was tooo thick, it didn’t look like an orbit, so I made it thinner and also made the satellite sphere smaller as well from 8 : 5 to 5 : 4, I dont know the units I just turned the number smaller lol. -Next, I added a Hide UI button, the UI was very prominent on PC itself and on mobile it was just unbearable so I thought I should add a HIDE UI button so that users can focus on the globe (tho that’s not the point of this website but sure, it serves as a simulation too lol). I put it on the top right edge. On click, it just makes all the HUD elements transparent and set their pointer events to none so they can’t interact. That is basically it. I will be sure to completely remake the README I guess when I will get some time, right now, I gotta study."}, {"post_id": 14945, "ts": "2026-06-24T08:44:55Z", "hours": 1.1564, "text": "Devlog 5 - FOV Rings & Custom Satellites! Overview This session was mostly spent adding QOL updates. I made a section for custom TLE data so that you can just drop the TLE for ANY asset you want to track and the app will display it. I also added a ground station field-of-view (FOV) overlay so users can see the exact area of the Earth they can realistically observe from their specific location. What’s New! Added a ground station FOV ring with a ~1500 km visibility radius. Implemented accurate spherical projection for the FOV overlay. Added support for custom TLE injection. Created a new backend API endpoint for custom satellites. Enabled live orbit updates without needing full page reloads. Added pass predictions for custom satellites. Improved overlay rendering and stability. Fixed several major performance bottlenecks. Challenges Globe.gl’s built-in rings system turned out to be designed for animated ripple effects rather than static geometry, making it incredibly frustrating to work with. Spent a good chunk of time tracking down rendering bugs, massive performance drops, and objects annoyingly drawing right through the Earth. Page load times were atrocious—taking at least 50 seconds because my code organization sucked, causing the app to repeatedly load timescales and rerun complex calculations instead of doing them globally. Solutions Scrapped the built-in Globe.gl rings API entirely and custom-built the FOV ring myself using a canvas overlay and spherical geometry calculations. Implemented a mix of occlusion culling, render-loop optimization, and smarter canvas handling to fix the visual bugs and clipping issues. Moved repetitive calculations and timescale loading into global instances, which absolutely crushed the performance bottleneck. Page load times dropped from 50+ seconds down to a smooth 5-10 seconds! I am super proud of how the performance changes turned out (though they were mostly caused because of my stupidity). Also, this is going to be the final development blog for Orbital Eye because I’m finally preparing to ship it! This has somehow turned into a full satellite tracking platform with visibility forecasting, live telemetry, custom TLE support, and a 3D globe. There’s still a lot I want to add in the future, but for now I think it’s time for me to fix the last few little bugs and ship it!"}, {"post_id": 14230, "ts": "2026-06-23T07:40:43Z", "hours": 2.4186, "text": "Devlog 4 - 3D GLOBE!?! Overview ITS LIVE FOR DEMO!, avishgoyal.pythonanywhere.com This session was all about finally implementing the 3D globe for the Satellite Pass Predictor. The goal was to create an interactive Earth that users can rotate around while viewing satellites orbiting in real time, kind of like a mini Google Earth for satellite tracking. To make this work, I used Globe.gl for visualization and Skyfield on the backend to generate future orbital positions from TLE data. Instead of constantly requesting new coordinates from the server, the backend pre-calculates future positions and sends them to the client, which then smoothly animates the satellite between those points. What’s New! Added an interactive 3D Earth using Globe.gl. Implemented future trajectory generation using Skyfield and TLE data. Added a new Flask API endpoint for orbit predictions. Generated 2 hours of future satellite positions at 1-minute intervals. Added real-time satellite animation using interpolation. Implemented automatic trajectory refreshes every 2 hours. Added orbit path visualization around the Earth. Fixed International Date Line wrap-around issues. Improved rendering performance by reducing unnecessary updates. Fixed Celestrak parsing issues caused by hidden characters. Challenges The globe rendered perfectly, the backend returned valid coordinates, and the animation logic was running, yet the satellite simply refused to appear. There were no useful errors either, which made debugging much more painful. Whenever the satellite crossed ±180° longitude, the orbit path would suddenly draw giant lines across the globe, making the orbit look completely broken. Valid satellites occasionally weren’t being found despite existing in the TLE files. Performance became a problem because I was accidentally rebuilding parts of the globe every frame. Approach My first assumption was that the rendering system itself was broken. I experimented with custom Three.js objects, custom spheres, imported raw Three.js alongside Globe.gl, and tried multiple rendering approaches. When none of those worked, I traced the entire pipeline, checking API responses, coordinate generation, interpolation calculations, altitude scaling, and orbit path generation. For the orbit issue, I compared coordinate transitions between consecutive points and investigated what happened when satellites crossed specific regions of the globe. For performance issues, I profiled the update loop and monitored how often rendering updates were occurring. Solutions The rendering issue turned out to be much simpler than expected. I was fighting Globe.gl instead of using the tools it already provided. Once I switched to its built-in object plotting system, the satellite immediately appeared. The orbit path issue was caused by longitude wrap-around at the International Date Line. Adding logic to detect large longitude jumps and split orbit segments fixed the problem. The backend lookup issue was traced back to hidden non-breaking spaces (\\xa0) inside Celestrak TLE files. Sanitizing satellite names fixed the issue. Performance improved significantly after I stopped rebuilding globe geometry every frame and throttled rendering updates. Next Steps Add support for multiple satellites. Improve orbit path visualization. Add satellite labels and information overlays. Improve camera controls and globe interaction. Display upcoming passes directly on the globe. Continue optimizing animation performance. Overall, despite the suffering involved, this was one of the biggest milestones in the project so far. The globe is rendering, satellites are moving around the Earth, orbit paths are displaying correctly, and the project is finally starting to look like the thing I originally imagined instead of a collection of APIs and tables stitched together. See you in Devlog #5!"}, {"post_id": 13679, "ts": "2026-06-22T13:08:21Z", "hours": 1.7814, "text": "DEVLOG 3 Day 3 was an absolute sprint to turn raw orbital math into something I could actually use without gaslighting myself over cloud cover. I started the day with a cup of chai and a mission to fix our directional tracking, which quickly snowballed into a massive overhaul of the entire real-time calculation chain… So instead of drowning the codebase in technical jargon, I tried to focus on human-readable data, AND try to make this hour-long loading time a snappy asynchronous platform, (also hyper-local conditions to keep the frontend running smoothly.) Here is the core of what went down: Compass & Routing: Added a degrees_to_cardinal helper that slices the 360° horizon into 8 neat cardinal directions, refactored find_events to log satellite positions at rise, peak, and set, and squashed a dictionary reference bug preventing set_dir from saving to memory—all bundled into a clean frontend payload string via app. py. Live Telemetry Engine: Implemented get_live_telemetry() in predictor.py to pull coordinates instantly from our local stations.txt TLE cache without network lag, translated orbital positions into altitude/azimuth degrees using ts.now(), and added an above-horizon state gatekeeper. Async & Lifecycle Management: Locked the telemetry rendering logic safely inside the frontend. then() promise block to stop the DOM from breaking on undefined data, and built a self-termination loop that fires clearInterval() and refreshes the browser after 3 seconds when a pass ends. Weather & Geometry Matrix: Integrated an async nearest-neighbor matcher to map Open-Meteo hourly cloud cover to the exact minute of the pass peak while using the de421. bsp planetary model to run double-agent geometry checks, ensuring the local sky is dark (sun altitude below -6°) but the asset itself is . is_sunlit(). Visibility Sorting Pipeline: Aligned app.py to route tracking payloads into a rigid 5-tier classification matrix ranging from EXCELLENT (clear overhead passes) down to INVISIBLE (lost in daylight glare or Earth’s shadow) so I never accidentally watch water vapor for 15 minutes again. With the math finally behaving and the data flowing cleanly between files without throwing runtime attribute errors, the tracking engine is officially locked, loaded, and ready for real sky-gazing mischief."}, {"post_id": 13073, "ts": "2026-06-21T11:54:03Z", "hours": 2.1739, "text": "DEVLOG 2 Building software always starts with a beautiful delusion. You think you’re just taking a neat little script that prints satellite passes to a terminal and giving it a pretty web face. But the second you try to turn it into a real app, the code fights back. You modularize the math, build a safety net so the app doesn’t crash if the external tracking servers go down, and think you’re golden. Then you try to make it smart enough to track things based on where a user is actually standing, and you accidentally unleash an infinite reload nightmare that traps your browser in a loop, forcing you to write a literal memory-check in JavaScript just to stop the page from having a total meltdown. Once you break out of that loop, you realize tracking things in space means dealing with the absolute chaos of time itself. Space math lives in UTC, which is completely useless to a human looking out a window. So you find yourself wrestling with system timezone databases just to translate those raw numbers into normal, local clock times. At the same time, you build a massive, beautifully categorized dropdown menu to track everything from the ISS to random space junk—only to watch the interface develop instant amnesia, resetting itself back to the default option every single time the page refreshes. Fixing it requires writing a client-side script that acts like a digital detective, checking the web address to force the menu to remember what you clicked. But the absolute worst part? The ghosts in the machine. You try to track specific ships, and the app just returns a blank screen. You spend hours digging through raw text lines only to find out the tracking database is silently laced with hidden, non-breaking space characters. They look identical to normal spaces to a human eye, but to a computer, they break strict string matching entirely. After aggressively scrubbing those invisible characters out of the memory loops, you finally cross the finish line by hooking up a live countdown timer that ticks down to the exact second a satellite crosses your sky. You started with a text printout; you ended up surviving a relentless gauntlet of infrastructure fires."}, {"post_id": 12575, "ts": "2026-06-20T15:15:26Z", "hours": 1.0856, "text": "DEVLOG 1 Building a reliable ISS pass predictor has been a lesson in balancing ambition and my own consistent ability to break perfectly good code. I started by moving my entire development workflow to GitHub Codespaces, which has been a lifesaver; it provides a clean, cloud-based environment that keeps my local machine safe from the digital clutter and potential malware risks I encountered during my previous projects. Seriously, I’m pretty sure my machine still has the digital equivalent of an STD from that dock project I made a while ago. I tackled the core prediction engine using the Skyfield and Requests libraries, which allow me to pull live Two-Line Element (TLE) data directly from CelesTrak (which is a website that basically contains all the TLE for almost every satellite), ensuring that every calculation is based on the most recent orbital telemetry. The most significant hurdle I faced was refining the state machine logic within my prediction loop. Without a proper tracker, my initial script would suffer from an existential crisis, mistakenly logging “Set” events before “Rise” events or failing to account for passes that were already in progress when the script began (Please dont judge me, I’m a beginner and tho I have completed half of CS50, it has been a while since I have coded anything…). I solved this by implementing a persistent tracking dictionary that survives outside the loop iterations, allowing the program to safely identify and group the three distinct phases of an ISS pass: the Rise, the Peak, and the Set. Along the way, I navigated some predictable debugging hurdles, such as TypeErrors caused by me trying to force-format a Skyfield Time object as a simple float—which is a fantastic way to make your terminal scream at you—before I finally realized I needed to use proper UTC string formatting. The project is now at a point where it successfully processes raw orbital geometry for my specific coordinates in Greater Noida and exports clean, actionable data. With the backend logic stabilized, my next steps involve refactoring the code into a modular utility for my Flask API and building. Once my exams are finished, I intend to dedicate full-time focus to this project and my upcoming plans for a personal homelab setup, provided I don’t accidentally join a botnet in the meantime."}]...
|
Title: Orbital Eye - ISS & Satellite Pass Pred Title: Orbital Eye - ISS & Satellite Pass Predictor by @avishgoyal | Stardance
Devlogs:
DEVLOG 1 Building a reliable ISS pass predictor has been a lesson in balancing ambition and my own consistent ability to break perfectly good code. I started by moving my entire development workflow to GitHub Codespaces, which has been a lifesaver; it provides a clean, cloud-based environment that keeps my local machine safe from the digital clutter and potential malware risks I encountered during my previous projects. Seriously, I’m pretty sure my machine still has the digital equivalent of an STD from that dock project I made a while ago. I tackled the core prediction engine using the Skyfield and Requests libraries, which allow me to pull live Two-Line Element (TLE) data directly from CelesTrak (which is a website that basically contains all the TLE for almost every satellite), ensuring that every calculation is based on the most recent orbital telemetry. The most significant hurdle I faced was refining the state machine logic within my prediction loop. Without a proper tracker, my initial script would suffer from an existential crisis, mistakenly logging “Set” events before “Rise” events or failing to account for passes that were already in progress when the script began (Please dont judge me, I’m a beginner and tho I have completed half of CS50, it has been a while since I have coded anything…). I solved this by implementing a persistent tracking dictionary that survives outside the loop iterations, allowing the program to safely identify and group the three distinct phases of an ISS pass: the Rise, the Peak, and the Set. Along the way, I navigated some predictable debugging hurdles, such as TypeErrors caused by me trying to force-format a Skyfield Time object as a simple float—which is a fantastic way to make your terminal scream at you—before I finally realized I needed to use proper UTC string formatting. The project is now at a point where it successfully processes raw orbital geometry for my specific coordinates in Greater Noida and exports clean, actionable data. With the backend logic stabilized, my next steps involve refactoring the code into a modular utility for my Flask API and building. Once my exams are finished, I intend to dedicate full-time focus to this project and my upcoming plans for a personal homelab setup, provided I don’t accidentally join a botnet in the meantime.
DEVLOG 2 Building software always starts with a beautiful delusion. You think you’re just taking a neat little script that prints satellite passes to a terminal and giving it a pretty web face. But the second you try to turn it into a real app, the code fights back. You modularize the math, build a safety net so the app doesn’t crash if the external tracking servers go down, and think you’re golden. Then you try to make it smart enough to track things based on where a user is actually standing, and you accidentally unleash an infinite reload nightmare that traps your browser in a loop, forcing you to write a literal memory-check in JavaScript just to stop the page from having a total meltdown. Once you break out of that loop, you realize tracking things in space means dealing with the absolute chaos of time itself. Space math lives in UTC, which is completely useless to a human looking out a window. So you find yourself wrestling with system timezone databases just to translate those raw numbers into normal, local clock times. At the same time, you build a massive, beautifully categorized dropdown menu to track everything from the ISS to random space junk—only to watch the interface develop instant amnesia, resetting itself back to the default option every single time the page refreshes. Fixing it requires writing a client-side script that acts like a digital detective, checking the web address to force the menu to remember what you clicked. But the absolute worst part? The ghosts in the machine. You try to track specific ships, and the app just returns a blank screen. You spend hours digging through raw text lines only to find out the tracking database is silently laced with hidden, non-breaking space characters. They look identical to normal spaces to a human eye, but to a computer, they break strict string matching entirely. After aggressively scrubbing those invisible characters out of the memory loops, you finally cross the finish line by hooking up a live countdown timer that ticks down to the exact second a satellite crosses your sky. You started with a text printout; you ended up surviving a relentless gauntlet of infrastructure fires.
DEVLOG 3 Day 3 was an absolute sprint to turn raw orbital math into something I could actually use without gaslighting myself over cloud cover. I started the day with a cup of chai and a mission to fix our directional tracking, which quickly snowballed into a massive overhaul of the entire real-time calculation chain… So instead of drowning the codebase in technical jargon, I tried to focus on human-readable data, AND try to make this hour-long loading time a snappy asynchronous platform, (also hyper-local conditions to keep the frontend running smoothly.) Here is the core of what went down: Compass & Routing: Added a degrees_to_cardinal helper that slices the 360° horizon into 8 neat cardinal directions, refactored find_events to log satellite positions at rise, peak, and set, and squashed a dictionary reference bug preventing set_dir from saving to memory—all bundled into a clean frontend payload string via app. py. Live Telemetry Engine: Implemented get_live_telemetry() in predictor.py to pull coordinates instantly from our local stations.txt TLE cache without network lag, translated orbital positions into altitude/azimuth degrees using ts.now(), and added an above-horizon state gatekeeper. Async & Lifecycle Management: Locked the telemetry rendering logic safely inside the frontend. then() promise block to stop the DOM from breaking on undefined data, and built a self-termination loop that fires clearInterval() and refreshes the browser after 3 seconds when a pass ends. Weather & Geometry Matrix: Integrated an async nearest-neighbor matcher to map Open-Meteo hourly cloud cover to the exact minute of the pass peak while using the de421. bsp planetary model to run double-agent geometry checks, ensuring the local sky is dark (sun altitude below -6°) but the asset itself is . is_sunlit(). Visibility Sorting Pipeline: Aligned app.py to route tracking payloads into a rigid 5-tier classification matrix ranging from EXCELLENT (clear overhead passes) down to INVISIBLE (lost in daylight glare or Earth’s shadow) so I never accidentally watch water vapor for 15 minutes again. With the math finally behaving and the data flowing cleanly between files without throwing runtime attribute errors, the tracking engine is officially locked, loaded, and ready for real sky-gazing mischief.
Devlog 4 - 3D GLOBE!?! Overview ITS LIVE FOR DEMO!, avishgoyal.pythonanywhere.com This session was all about finally implementing the 3D globe for the Satellite Pass Predictor. The goal was to create an interactive Earth that users can rotate around while viewing satellites orbiting in real time, kind of like a mini Google Earth for satellite tracking. To make this work, I used Globe.gl for visualization and Skyfield on the backend to generate future orbital positions from TLE data. Instead of constantly requesting new coordinates from the server, the backend pre-calculates future positions and sends them to the client, which then smoothly animates the satellite between those points. What’s New! Added an interactive 3D Earth using Globe.gl. Implemented future trajectory generation using Skyfield and TLE data. Added a new Flask API endpoint for orbit predictions. Generated 2 hours of future satellite positions at 1-minute intervals. Added real-time satellite animation using interpolation. Implemented automatic trajectory refreshes every 2 hours. Added orbit path visualization around the Earth. Fixed International Date Line wrap-around issues. Improved rendering performance by reducing unnecessary updates. Fixed Celestrak parsing issues caused by hidden characters. Challenges The globe rendered perfectly, the backend returned valid coordinates, and the animation logic was running, yet the satellite simply refused to appear. There were no useful errors either, which made debugging much more painful. Whenever the satellite crossed ±180° longitude, the orbit path would suddenly draw giant lines across the globe, making the orbit look completely broken. Valid satellites occasionally weren’t being found despite existing in the TLE files. Performance became a problem because I was accidentally rebuilding parts of the globe every frame. Approach My first assumption was that the rendering system itself was broken. I experimented with custom Three.js objects, custom spheres, imported raw Three.js alongside Globe.gl, and tried multiple rendering approaches. When none of those worked, I traced the entire pipeline, checking API responses, coordinate generation, interpolation calculations, altitude scaling, and orbit path generation. For the orbit issue, I compared coordinate transitions between consecutive points and investigated what happened when satellites crossed specific regions of the globe. For performance issues, I profiled the update loop and monitored how often rendering updates were occurring. Solutions The rendering issue turned out to be much simpler than expected. I was fighting Globe.gl instead of using the tools it already provided. Once I switched to its built-in object plotting system, the satellite immediately appeared. The orbit path issue was caused by longitude wrap-around at the International Date Line. Adding logic to detect large longitude jumps and split orbit segments fixed the problem. The backend lookup issue was traced back to hidden non-breaking spaces (\xa0) inside Celestrak TLE files. Sanitizing satellite names fixed the issue. Performance improved significantly after I stopped rebuilding globe geometry every frame and throttled rendering updates. Next Steps Add support for multiple satellites. Improve orbit path visualization. Add satellite labels and information overlays. Improve camera controls and globe interaction. Display upcoming passes directly on the globe. Continue optimizing animation performance. Overall, despite the suffering involved, this was one of the biggest milestones in the project so far. The globe is rendering, satellites are moving around the Earth, orbit paths are displaying correctly, and the project is finally starting to look like the thing I originally imagined instead of a collection of APIs and tables stitched together. See you in Devlog #5!
Devlog 5 - FOV Rings & Custom Satellites! Overview This session was mostly spent adding QOL updates. I made a section for custom TLE data so that you can just drop the TLE for ANY asset you want to track and the app will display it. I also added a ground station field-of-view (FOV) overlay so users can see the exact area of the Earth they can realistically observe from their specific location. What’s New! Added a ground station FOV ring with a ~1500 km visibility radius. Implemented accurate spherical projection for the FOV overlay. Added support for custom TLE injection. Created a new backend API endpoint for custom satellites. Enabled live orbit updates without needing full page reloads. Added pass predictions for custom satellites. Improved overlay rendering and stability. Fixed several major performance bottlenecks. Challenges Globe.gl’s built-in rings system turned out to be designed for animated ripple effects rather than static geometry, making it incredibly frustrating to work with. Spent a good chunk of time tracking down rendering bugs, massive performance drops, and objects annoyingly drawing right through the Earth. Page load times were atrocious—taking at least 50 seconds because my code organization sucked, causing the app to repeatedly load timescales and rerun complex calculations instead of doing them globally. Solutions Scrapped the built-in Globe.gl rings API entirely and custom-built the FOV ring myself using a canvas overlay and spherical geometry calculations. Implemented a mix of occlusion culling, render-loop optimization, and smarter canvas handling to fix the visual bugs and clipping issues. Moved repetitive calculations and timescale loading into global instances, which absolutely crushed the performance bottleneck. Page load times dropped from 50+ seconds down to a smooth 5-10 seconds! I am super proud of how the performance changes turned out (though they were mostly caused because of my stupidity). Also, this is going to be the final development blog for Orbital Eye because I’m finally preparing to ship it! This has somehow turned into a full satellite tracking platform with visibility forecasting, live telemetry, custom TLE support, and a 3D globe. There’s still a lot I want to add in the future, but for now I think it’s time for me to fix the last few little bugs and ship it!
Welp, My Ship got rejected, hahahahha, not rejected but there were some changes requested and they were entirely reasonable and actually I’m amazed how much the shipwrights actually care about the people who are making these project. The main reason was because my ENTIRE CSS was just AI slop, and I know that we all hate AI but trust me, CSS is the bane of my existence, even though it is now I had to manually revamp the entire CSS and it looks sooo muchhh better, Istg if this gets flagged as AI I might actually quit lol. Anyways, the second change they suggested was updating the README, which I havent done yet but I will do soon (my exams are in 2 days, I have to study lol) and I guess because I didnt commit until like 50% of the project they thought my entire project was AI or something? In my defence it was my first time using github codespaces and since the code was saved I thought it must have magically synced with my repo or smthing lol. Anyways, the reasons were completely valid and let me list out the changes I made: -Changed font from the generic typewriter to the Inter font, and sans-serif. -Made HUD Panels almost invisible (they were protruding too much and felt distracting, I wanted to make the Globe the visual centre of the site so yea). -Changed the Globe skin to blue marble, the NASA skin wasn’t very detailed it just had a higher resolution, the current one looks very good. -Added a background image URL so that there is a starry sky in the background not a plain black void. -Changed the top left HUD, did many changes, I found inspiration from stellarium, its basically a star tracking astrophotgraphy software, but its UI is like way too detail intensive, I took the transparent design philosophy from there and the rest I just fiddled with it until I liked it lol. -Changed the 100 accents of blues I used, to a single steel blue #5D88AA4D, I decreased the opacity for borders to around 30% ish. -I also reduced the size of the actually pass table to about 70% of its current size, it was wayyy too dominant on the UI, and I also added the accent colour there too. I completely removed green (except for the user dot). -I made the satellite path thickness less because it was tooo thick, it didn’t look like an orbit, so I made it thinner and also made the satellite sphere smaller as well from 8 : 5 to 5 : 4, I dont know the units I just turned the number smaller lol. -Next, I added a Hide UI button, the UI was very prominent on PC itself and on mobile it was just unbearable so I thought I should add a HIDE UI button so that users can focus on the globe (tho that’s not the point of this website but sure, it serves as a simulation too lol). I put it on the top right edge. On click, it just makes all the HUD elements transparent and set their pointer events to none so they can’t interact. That is basically it. I will be sure to completely remake the README I guess when I will get some time, right now, I gotta study.
Devlog #7 Another Day to feel demotivated because your ship got rejected… there was another recommendation they made to me (following up from the fact they thought my project was AI but sure), that was to add new features that would make it more cool to use! Kinda agree tho it does need more QOL features. That is why after the Hide UI (which was also added because of this suggestion btw) I added 2 new features!!! Camera Lock: This button allows you to lock your camera to the satellite, and the camera just follows the satellite, its useful if you just want it to sit in the background or smthing or just dont want to rotate the globe constantly in-between a Pass to see the satellite angle. Notifications!!!: This button allows you to enable notifications and the web-app will remind you 2 minutes before a pass using the alert() function in JS. pretty simpleOff topic: for 1080p monitors or low-end setups, the first load might be very fiddly and maybe the orbit path or the satellite or something can break, reloading fixes this mostly. These features are really simple lol and I was planning on adding more but I think its enough for now, I plan to integrate E-mails so it can remind you through Email or smthing but that will take HOURS! anyways, this sums it up to a total of 3 features. I also FINALLY completed the readme, and yes I know I said I had exams but all the more reason to finish it right here and right now, because if I hadn’t done it now, then I would have kept thinking about it lol, it might have even hindered my exam performance (yes its that serious for me). Anyways, I completely deleted the entire readme which AI made, and I tried my best when writing it manually, I don;t know what you include in a readme because I havent made it before this but I tried my best, I also added a picture of a photo I took using orbital-eye!!!
Ships:
Orbital Eye - Shipped. Five days ago this project was just supposed to be a simple ISS pass predictor. That’s it. I wanted to take better satellite photos and got annoyed at having to open 15 different tabs just to answer one question: “Can I actually see this thing tonight?” One website had pass times. Another had weather. Another had orbit visualization. Another had satellite information. Somehow I always ended up jumping between all of them. So naturally, instead of spending 5 minutes checking websites like a normal human being, I spent 5 days building an entire satellite tracking platform. Orbital Eye calculates upcoming satellite passes, estimates visibility using weather and sunlight data, provides live telemetry during active passes, and displays everything on a 3D globe. Along the way I learned far more about orbital mechanics than I ever expected to. I also learned that: Hidden whitespace characters can ruin your entire day. Globe.gl documentation occasionally feels like a scavenger hunt. A page load time of 50 seconds is generally considered “bad”. The bug is almost never where you think it is. My favorite feature ended up being the custom TLE system. You can paste the TLE of basically any satellite and Orbital Eye will immediately generate orbit predictions, calculate passes, and render it on the globe. The 3D globe itself was also way harder than expected. There were multiple points where the Earth rendered perfectly, the orbit calculations were correct, the backend was working, and the satellite simply refused to exist. Not broken. Not erroring. Just… gone. In the end, though, everything came together. The globe works. The satellites move. The passes are accurate. The performance no longer makes me question my life choices. And most importantly, I finally have a tool that tells me when to point my camera at the sky. Special thanks to lukewalsh11234, he was the only follower lol and seeing his follow it motivated me to do more since people were actually tracking the progress. GitHub: https://github.com/avishgoyal/orbital-eye Because staring at moving dots in space is cooler than it sounds....
|
1793119925.2062376
|
1793206325.2062376
|
|
29024
|
NimbusLoft by @SML_365 | Stardance
|
SML_365
|
2
|
11.77
|
169
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-06T21:26:26Z", "hours": 2.0, "multiplier": 8.76, "payout": 21, "blessing": "neutral", "text": "Ship #2 for NimbusLoft - A visual clipboard engine This is NimbusLofts ship for v1.2.0. NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This ship includes: Colored files URL saving (Thank you to an anonymous reviewer for this idea!) Bugfixes File size display And more, which you can try out by downloading the executable on GitHub! Please note that NimbusLoft is intended for 64-bit Windows systems.", "repo": "https://github.com/SML365/NimbusLoft", "demo": "https://github.com/SML365/NimbusLoft/releases/"}, {"ship_num": 2, "ts": "2026-07-02T04:51:07Z", "hours": 8.0, "multiplier": 18.75, "payout": 148, "blessing": "neutral", "text": "I made a utility dock for storing temporary files so you don’t have to juggle three instances of File Explorer.", "repo": "https://github.com/SML365/NimbusLoft", "demo": "https://github.com/SML365/NimbusLoft/releases/"}]...
|
[{"post_id": 70117, "ts": "202 [{"post_id": 70117, "ts": "2026-09-18T14:32:24Z", "hours": 1.7656, "text": "Devlog #6 for NimbusLoft It was mainly just bug fixes. I fixed a couple of style issues as well as the version number. I also made it slightly more stable. No new features were added. Anyways, that’s it from me, and have a nice day/night!"}, {"post_id": 23733, "ts": "2026-07-06T21:04:28Z", "hours": 1.31, "text": "Devlog #5 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This devlog is focused on adding URL saving and loading support and stabilizing existing features, along with the releases of v1.1.1 and v2.1.0, available to try on GitHub! Added: URL saving and loading: You can now drag in URLs to save, drag them out into a browser, and open them with the browser. Everything shoulf work as expected 1-second pause before hiding the window upon startup: It helps first-time users find where NimbusLoft is located on their screen, since it might be different depending on monitor setups Adjusted color-code colors: The purple was a bit too strong, and I’ll be adjusting the yellow in an upcoming stability fix (v1.2.1) to make it a bit less green Upcoming: Settings menu (v2.0.0 planned) Persistent items (v2.0.0 planned) Search and Sort functionality (also mentioned in Devlog #4 ) (v2.0.0 planned) Multi-monitor support (v1.4.0 planned) Custom thumbnails for URLs depending on webpage (v1.3.0 planned)"}, {"post_id": 23255, "ts": "2026-07-06T03:11:47Z", "hours": 1.1003, "text": "Devlog #4 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This devlog is focused on getting all the features working for the v1.1.0 release, available to try on GitHub! Added: Right click context menu for each file entry, with options to open and remove file, as well as color changes Change background color of file for organization, with over 6 color options (as well as the default color) Contextual title also shows file size along with full file name Upcoming: Sort by color to improve organization Search functionality (sort) Settings panel to configure options such as auto startup, themes, and more"}, {"post_id": 20525, "ts": "2026-07-02T04:24:09Z", "hours": 1.5339, "text": "Devlog #3 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This devlog is focused on getting everything up and running for the v1.0.0 release, available to try on GitHub! Done: Horizontal scrolling Clear button now works Stability improvements Common filetypes tested (.mp3, .mp4, .png, .jpg, .html) Folders tested Upcoming (In later versions): Theming More stability improvements Removed: Settings button (Maybe coming in later versions)"}, {"post_id": 20287, "ts": "2026-07-01T20:55:22Z", "hours": 3.5933, "text": "Devlog #2 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This devlog was mostly focused on implementing the file drag/drop and having it all showing up. The next high-priority update involves adding a scrolling shelf, a vital element needed to actually make NimbusLoft scale. Done: File drag + drop Folder drag + drop File cards with icons Blurred background Updated styling Upcoming: Drag out to paste Paste whole folders at once Scrolling shelf! Settings panel Clear button functionality Maybe Adding: Custom icons Context menu for each file with remove, copy, delete, etc. functionality"}, {"post_id": 19699, "ts": "2026-07-01T02:47:31Z", "hours": 2.7972, "text": "Devlog #1 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. Done: Basic structure Quit button Transparent UI language Hides in alt+tab menu / taskbar Upcoming: Clear button File drag + drop support Show + hide when the mouse touches the top of the screen Settings menu Title and filename preview in the remaining space in the top of the bar"}]...
|
Title: NimbusLoft by @SML_365 | Stardance
Devlogs Title: NimbusLoft by @SML_365 | Stardance
Devlogs:
Devlog #1 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. Done: Basic structure Quit button Transparent UI language Hides in alt+tab menu / taskbar Upcoming: Clear button File drag + drop support Show + hide when the mouse touches the top of the screen Settings menu Title and filename preview in the remaining space in the top of the bar
Devlog #2 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This devlog was mostly focused on implementing the file drag/drop and having it all showing up. The next high-priority update involves adding a scrolling shelf, a vital element needed to actually make NimbusLoft scale. Done: File drag + drop Folder drag + drop File cards with icons Blurred background Updated styling Upcoming: Drag out to paste Paste whole folders at once Scrolling shelf! Settings panel Clear button functionality Maybe Adding: Custom icons Context menu for each file with remove, copy, delete, etc. functionality
Devlog #3 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This devlog is focused on getting everything up and running for the v1.0.0 release, available to try on GitHub! Done: Horizontal scrolling Clear button now works Stability improvements Common filetypes tested (.mp3, .mp4, .png, .jpg, .html) Folders tested Upcoming (In later versions): Theming More stability improvements Removed: Settings button (Maybe coming in later versions)
Devlog #4 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This devlog is focused on getting all the features working for the v1.1.0 release, available to try on GitHub! Added: Right click context menu for each file entry, with options to open and remove file, as well as color changes Change background color of file for organization, with over 6 color options (as well as the default color) Contextual title also shows file size along with full file name Upcoming: Sort by color to improve organization Search functionality (sort) Settings panel to configure options such as auto startup, themes, and more
Devlog #5 for NimbusLoft - A visual clipboard engine NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This devlog is focused on adding URL saving and loading support and stabilizing existing features, along with the releases of v1.1.1 and v2.1.0, available to try on GitHub! Added: URL saving and loading: You can now drag in URLs to save, drag them out into a browser, and open them with the browser. Everything shoulf work as expected 1-second pause before hiding the window upon startup: It helps first-time users find where NimbusLoft is located on their screen, since it might be different depending on monitor setups Adjusted color-code colors: The purple was a bit too strong, and I’ll be adjusting the yellow in an upcoming stability fix (v1.2.1) to make it a bit less green Upcoming: Settings menu (v2.0.0 planned) Persistent items (v2.0.0 planned) Search and Sort functionality (also mentioned in Devlog #4 ) (v2.0.0 planned) Multi-monitor support (v1.4.0 planned) Custom thumbnails for URLs depending on webpage (v1.3.0 planned)
Devlog #6 for NimbusLoft It was mainly just bug fixes. I fixed a couple of style issues as well as the version number. I also made it slightly more stable. No new features were added. Anyways, that’s it from me, and have a nice day/night!
Ships:
I made a utility dock for storing temporary files so you don’t have to juggle three instances of File Explorer.
Ship #2 for NimbusLoft - A visual clipboard engine This is NimbusLofts ship for v1.2.0. NimbusLoft is a Python-based visual clipboard for all the files you need to use, but don’t want to go hunting in your filesystem for. Just drag them to the dock, and they get saved instantly. This ship includes: Colored files URL saving (Thank you to an anonymous reviewer for this idea!) Bugfixes File size display And more, which you can try out by downloading the executable on GitHub! Please note that NimbusLoft is intended for 64-bit Windows systems....
|
1793108844.305594
|
1793195244.305594
|
|
36993
|
Super Tic Tac Toe by @raczjonathan12 | Stardance
|
raczjonathan12
|
1
|
15.0
|
169
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-20T10:02:54Z", "hours": 15.0, "multiplier": 11.26, "payout": 169, "blessing": "neutral", "text": "I built an AI that plays Ultimate Tic-Tac-Toe, the version where the board is 9 small boards and winning one sends your opponent to a specific one. It learned by playing itself over and over instead of me teaching it moves directly. You can play against it right in your browser, no installs. The hardest part was the very first approach I tried didn’t work. It kept making the same moves no matter what was on the board, so I scrapped it and switched to a different method that actually searches ahead for winning and blocking moves instead of just guessing. That’s what ended up working. Getting the trained AI to run inside a browser instead of on a server was its own fight too, closer to translating it into a different language than just copying it over. If you want to try it, just open the link and play a game. There’s also a scoreboard now that keeps track of wins, losses, and draws between you and it.", "repo": "https://github.com/raczjonathan12/super-tic-tac-toe", "demo": "https://raczjonathan12.github.io/super-tic-tac-toe/"}]...
|
[{"post_id": 31699, "ts": "202 [{"post_id": 31699, "ts": "2026-07-20T09:53:06Z", "hours": 0.3272, "text": "Added a scoreboard to the browser game today. Now it tracks wins, losses, and draws between me and the AI, shown right above the board. It saves to local storage too, so the score sticks around even if I close the tab or hit New Game."}, {"post_id": 31680, "ts": "2026-07-20T09:11:03Z", "hours": 3.3053, "text": "Got the game playable in an actual browser tab today. Moved the whole thing over from Python to a real webpage, board, AI opponent, all of it, so anyone can just open a link and play. Had a hard time getting the trained model working in the browser, but got it working and double checked it gives the same results as the original. Then spent a while making it actually feel good to play. The AI’s moves were popping in too suddenly, so I slowed that down and added a marker so you can see what it just played. Cleaned up the spacing and added a New Game button too. Deployed it, thought it looked fine, then realized it was actually still showing an old broken version because of caching. Tracked that down and fixed it, also caught one more small thing where the board looked clickable during the AI’s turn when it shouldn’t have been. You can try it at: https://raczjonathan12.github.io/super-tic-tac-toe/"}, {"post_id": 31418, "ts": "2026-07-19T19:28:17Z", "hours": 0.3225, "text": "Rebuilt the whole training setup around Monte Carlo tree search instead of DQN, and it’s actually finding forced wins now. Wrote a real spec and plan before touching code this time. Built the game engine again first, same rules as before, no changes needed, then added the value and policy network, then layered the tree search on top, all with tests along the way. Writing the tests for the tree search caught a genuine sign bug right away. The code assumed the turn always switches after a move, but it doesn’t when a move wins the game, so the value was flipped for exactly the moves that mattered most. Also realized my own test scenario was wrong, it only completed a small board instead of the actual game. Fixed both, and the search now finds a forced win or a forced block on its own, even with a completely untrained network, since it’s real search finding the outcome, not a guess. Got self-play, training, and evaluation working, ran a short validation loop and it actually worked, loss came down and it was already beating random play early on. Scaled it up for a real run. Then the real run barely printed anything for ten minutes. Turned out it was running fine, just slow, because the tree search was calling the network one board at a time for every single simulation instead of batching them together, the exact same slowness from the DQN version, just in new code that never got the fix. Built batched search for self-play and evaluation both, checked it’s actually faster with a real timing test, and added logging that writes to a file and prints a lot more often so it’s obvious it’s alive. Kicked off a real training run right after with the fix in, that’s going now."}, {"post_id": 31403, "ts": "2026-07-19T18:51:36Z", "hours": 7.4972, "text": "Spent a few hours trying to get a DQN to learn the game and it never really worked. Got the DQN model built and training against itself. Found a real bug early where the training math treated every move as if the same player went again next instead of the opponent, and fixed it. After that it just wouldn’t budge. Tried a handful of fixes: better reward shaping, a much faster version of the game engine so it could run way more games at once, features that pointed out immediate wins, playing against older versions of itself with separate buffers so wins didn’t get drowned out by everyday moves. None of it stuck. The network kept settling back into picking almost the same move no matter what the board looked like. Decided the algorithm itself was the problem, not the tuning, and switched to Monte Carlo tree search with a value and policy network instead, closer to how AlphaZero plays these kinds of games. Kept the DQN code in git history instead of deleting it. I have to admit, I gave up on coding and debugging this manually so I used Claude Code… Next devlog soon with the actual changes."}, {"post_id": 30825, "ts": "2026-07-18T19:18:54Z", "hours": 3.5153, "text": "Started the super tic-tac-toe project. Wrote the first version of the game engine in train.py . There’s a Game class that tracks the 9x9 board, whose turn it is, and the status of each of the 9 sub-boards. It handles the annoying part of this game: winning a small board, checking if that wins the whole meta-board, and figuring out which sub-board the other player is forced to play in next (or opening up the whole board if that one’s already finished).Also pulled in TensorFlow/Keras imports up top since the plan is to train a DQN on it once the game logic is solid. Nothing runs as an actual game yet, just the class and its rules."}]...
|
Title: Super Tic Tac Toe by @raczjonathan12 | Star Title: Super Tic Tac Toe by @raczjonathan12 | Stardance
Devlogs:
Started the super tic-tac-toe project. Wrote the first version of the game engine in train.py . There’s a Game class that tracks the 9x9 board, whose turn it is, and the status of each of the 9 sub-boards. It handles the annoying part of this game: winning a small board, checking if that wins the whole meta-board, and figuring out which sub-board the other player is forced to play in next (or opening up the whole board if that one’s already finished).Also pulled in TensorFlow/Keras imports up top since the plan is to train a DQN on it once the game logic is solid. Nothing runs as an actual game yet, just the class and its rules.
Spent a few hours trying to get a DQN to learn the game and it never really worked. Got the DQN model built and training against itself. Found a real bug early where the training math treated every move as if the same player went again next instead of the opponent, and fixed it. After that it just wouldn’t budge. Tried a handful of fixes: better reward shaping, a much faster version of the game engine so it could run way more games at once, features that pointed out immediate wins, playing against older versions of itself with separate buffers so wins didn’t get drowned out by everyday moves. None of it stuck. The network kept settling back into picking almost the same move no matter what the board looked like. Decided the algorithm itself was the problem, not the tuning, and switched to Monte Carlo tree search with a value and policy network instead, closer to how AlphaZero plays these kinds of games. Kept the DQN code in git history instead of deleting it. I have to admit, I gave up on coding and debugging this manually so I used Claude Code… Next devlog soon with the actual changes.
Rebuilt the whole training setup around Monte Carlo tree search instead of DQN, and it’s actually finding forced wins now. Wrote a real spec and plan before touching code this time. Built the game engine again first, same rules as before, no changes needed, then added the value and policy network, then layered the tree search on top, all with tests along the way. Writing the tests for the tree search caught a genuine sign bug right away. The code assumed the turn always switches after a move, but it doesn’t when a move wins the game, so the value was flipped for exactly the moves that mattered most. Also realized my own test scenario was wrong, it only completed a small board instead of the actual game. Fixed both, and the search now finds a forced win or a forced block on its own, even with a completely untrained network, since it’s real search finding the outcome, not a guess. Got self-play, training, and evaluation working, ran a short validation loop and it actually worked, loss came down and it was already beating random play early on. Scaled it up for a real run. Then the real run barely printed anything for ten minutes. Turned out it was running fine, just slow, because the tree search was calling the network one board at a time for every single simulation instead of batching them together, the exact same slowness from the DQN version, just in new code that never got the fix. Built batched search for self-play and evaluation both, checked it’s actually faster with a real timing test, and added logging that writes to a file and prints a lot more often so it’s obvious it’s alive. Kicked off a real training run right after with the fix in, that’s going now.
Got the game playable in an actual browser tab today. Moved the whole thing over from Python to a real webpage, board, AI opponent, all of it, so anyone can just open a link and play. Had a hard time getting the trained model working in the browser, but got it working and double checked it gives the same results as the original. Then spent a while making it actually feel good to play. The AI’s moves were popping in too suddenly, so I slowed that down and added a marker so you can see what it just played. Cleaned up the spacing and added a New Game button too. Deployed it, thought it looked fine, then realized it was actually still showing an old broken version because of caching. Tracked that down and fixed it, also caught one more small thing where the board looked clickable during the AI’s turn when it shouldn’t have been. You can try it at: https://raczjonathan12.github.io/super-tic-tac-toe/
Added a scoreboard to the browser game today. Now it tracks wins, losses, and draws between me and the AI, shown right above the board. It saves to local storage too, so the score sticks around even if I close the tab or hit New Game.
Ships:
I built an AI that plays Ultimate Tic-Tac-Toe, the version where the board is 9 small boards and winning one sends your opponent to a specific one. It learned by playing itself over and over instead of me teaching it moves directly. You can play against it right in your browser, no installs. The hardest part was the very first approach I tried didn’t work. It kept making the same moves no matter what was on the board, so I scrapped it and switched to a different method that actually searches ahead for winning and blocking moves instead of just guessing. That’s what ended up working. Getting the trained AI to run inside a browser instead of on a server was its own fight too, closer to translating it into a different language than just copying it over. If you want to try it, just open the link and play a game. There’s also a scoreboard now that keeps track of wins, losses, and draws between you and it....
|
1793080152.5491188
|
1793166552.5491188
|
|
48703
|
Bird Fight 3 by @Eel | Stardance
|
Eel
|
2
|
93.0
|
169
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-27T01:54:51Z", "hours": 43.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Bird Fight 3 is a fast-paced 2D fighting game where birds battle across a growing roster of arenas using unique attacks, specials, and ultimates. During this Stardance development phase, I took the game through a major overhaul focused on turning it into a much more complete and polished experience. I rebuilt Classic Mode into character-specific campaigns, expanded the roster and stages, added Adventure, improved progression and saves, and introduced features like alternate stage variants, unlockable content, route endings, and multiplayer. I also completely redesigned the game’s UI around a Smash-inspired presentation, covering the main hub, rulesets, fighter and stage selection, Vault, Classic, Adventure, Training, multiplayer, profiles, settings, and pause/results screens. The UI now supports responsive scaling and device-specific prompts for keyboard, controllers, and Wiimotes. A major part of development was also making the game more reliable. I built extensive automated testing and regression coverage, ran thousands of automated matches to test gameplay and balance, and continuously fixed issues across fighters, stages, progression, UI, and multiplayer. Bird Fight 3 has grown significantly throughout this project, and I’m really happy with where it has ended up.", "repo": "https://github.com/Caleb-Guyer/BirdFight3/releases", "demo": "https://github.com/Caleb-Guyer/BirdFight3"}, {"ship_num": 2, "ts": "2026-08-17T03:51:27Z", "hours": 50.0, "multiplier": 9.33, "payout": 169, "blessing": "neutral", "text": "Bird Fight 3 is a fast-paced 2D fighting game where birds battle across a variety of arenas using unique attacks, specials, and ultimates. Play as a growing roster of birds, fight through Story and Classic modes, discover alternate stages and variants, unlock content, and compete through increasingly challenging battles.", "repo": "https://github.com/Caleb-Guyer/BirdFight3/releases", "demo": "https://github.com/Caleb-Guyer/BirdFight3"}]...
|
[{"post_id": 55309, "ts": "202 [{"post_id": 55309, "ts": "2026-08-27T01:46:30Z", "hours": 14.6342, "text": "I’ve spent around 14 more hours working on Bird Fight 3 since my last devlog, and I’ve mainly been focusing on polishing the overall UI and making everything feel more consistent. I finished the full Smash-inspired UI direction across the game, including the rulesets, hub, fighter and stage selection, pause/results screens, profiles, Vault, Classic, Adventure, multiplayer, and Training. I also redesigned the Adventure campaign hub and continued polishing the Adventure flow so it fits in with the rest of the game. I also added responsive scaling and device-specific prompts for keyboard, controller, and Wiimote controls, along with UI regression tests to make sure these changes don’t break existing screens. There have also been a bunch of smaller fixes and polish, including reward reveals, confirmation dialogs, settings, navigation, and some progression-related fixes. I’ve been trying to take the feedback from the ratings seriously, especially the comments about making the game easier to understand and improving the UI. Thanks again to everyone who played and left feedback, as its been super helpful!"}, {"post_id": 54804, "ts": "2026-08-25T22:49:36Z", "hours": 12.1889, "text": "I’ve been focusing on the Adventure UI and bringing it closer to the same polished, Smash-inspired feel as the rest of the game. The main Adventure flow is now coming together, with the UI built around navigating between areas, selecting destinations, and keeping the player oriented as they progress through the mode. I also worked on making the transitions between the different Adventure screens feel consistent with the rest of the game rather than having Adventure use a completely separate visual style. A big part of this was making sure the UI works cleanly with the different input methods supported by the game. The prompts and navigation behavior stay consistent whether you’re using keyboard, controller, or Wiimote. There’s still more I want to do with Adventure itself, but the UI foundation is now in place and it feels much closer to the experience I’m aiming for."}, {"post_id": 54106, "ts": "2026-08-24T22:12:34Z", "hours": 6.5342, "text": "The full Smash-inspired UI goal is now complete. I finished up the major UI systems across the project, including simplified rulesets, the main hub, fighter and stage selection, pause/results screens, profiles, the Vault, Classic, Story, multiplayer, and Training. I also added responsive scaling so the UI adapts properly to different screen sizes and devices. Keyboard, controller, and Wiimote prompts now change based on the input device being used, which makes the controls much clearer. Finally, I added UI regression coverage to help catch visual and functional issues as the project continues to grow. This was a big milestone because the UI now feels much more cohesive across the entire game instead of each mode feeling like its own separate system."}, {"post_id": 52756, "ts": "2026-08-23T03:03:08Z", "hours": 9.7939, "text": "I just shipped Bird Fight 3 v1.4.0, and this is probably the biggest update I’ve done to the game so far. Classic Mode is finally complete, with all 22 playable birds now having their own full eight-encounter route, unique encounters, final bosses, and animated Crown endings. I also finished the ending gallery, route badges, FEATHERDEV support, route previews, music, and a bunch of progression fixes. It feels really good to finally have the entire roster playable from start to finish instead of having unfinished routes sitting around. I also went through basically the entire stage roster and gave it a massive cleanup. All 21 main arenas and 26 variants were audited for collision, spawns, navigation, objectives, hazards, and visual clarity, with a bunch of them being rebuilt or heavily polished. Stage Select was completely redone with rendered previews, and I replaced the old thumbnails across the game. On top of all that, I ran 9,856 headless Classic matches and now have 1,034 automated tests passing with zero failures, errors, or skips. This update was a LOT of work, but v1.4.0 finally feels like Bird Fight 3 is becoming the complete game I’ve been trying to build."}, {"post_id": 48644, "ts": "2026-08-17T03:50:02Z", "hours": 8.1447, "text": "I rebuilt Classic Mode into a full character-route campaign in v1.3.0, adding twelve unique routes with eight encounters each, route-specific bosses, challenges, arenas, mechanics, music, and cinematic endings. I also gave the full roster a major presentation and combat pass, improved knockback, CPU behavior, menus, progression, saves, and reliability, and added the complete Razorbill Final Cut route. The update is backed by 890 automated tests, a 448-match Razorbill balance audit, and additional replay, save, LAN, audio, and visual regression testing."}, {"post_id": 47852, "ts": "2026-08-16T02:34:48Z", "hours": 41.7208, "text": "v1.2.2 is out! This update was a big polish pass focused on stages, fighters, and the overall presentation of Bird Fight 3. Map Select now separates Main stages and Variants, with separate Random options and a Random All option, while the boss-stage variants have been rebuilt with more distinct layouts instead of feeling like copies of their original arenas. City and Parliament Towers also received major visual and layout reworks. I polished the visuals, proportions, animations, and skins for Pigeon, Eagle, Falcon, Phoenix, Hummingbird, and Turkey, along with fixing several animation and geometry issues. Online character selection was also brought closer to the main roster presentation, and Echo fighters now show the icon of their base bird. Finally, I created a completely new 1080p official trailer using real gameplay, story scenes, bosses, stages, skins, and the full roster. The release passed 550 automated tests with zero failures, with additional regression coverage for stages, fighters, animations, multiplayer presentation, and the trailer."}]...
|
Title: Bird Fight 3 by @Eel | Stardance
Devlogs:
Title: Bird Fight 3 by @Eel | Stardance
Devlogs:
v1.2.2 is out! This update was a big polish pass focused on stages, fighters, and the overall presentation of Bird Fight 3. Map Select now separates Main stages and Variants, with separate Random options and a Random All option, while the boss-stage variants have been rebuilt with more distinct layouts instead of feeling like copies of their original arenas. City and Parliament Towers also received major visual and layout reworks. I polished the visuals, proportions, animations, and skins for Pigeon, Eagle, Falcon, Phoenix, Hummingbird, and Turkey, along with fixing several animation and geometry issues. Online character selection was also brought closer to the main roster presentation, and Echo fighters now show the icon of their base bird. Finally, I created a completely new 1080p official trailer using real gameplay, story scenes, bosses, stages, skins, and the full roster. The release passed 550 automated tests with zero failures, with additional regression coverage for stages, fighters, animations, multiplayer presentation, and the trailer.
I rebuilt Classic Mode into a full character-route campaign in v1.3.0, adding twelve unique routes with eight encounters each, route-specific bosses, challenges, arenas, mechanics, music, and cinematic endings. I also gave the full roster a major presentation and combat pass, improved knockback, CPU behavior, menus, progression, saves, and reliability, and added the complete Razorbill Final Cut route. The update is backed by 890 automated tests, a 448-match Razorbill balance audit, and additional replay, save, LAN, audio, and visual regression testing.
I just shipped Bird Fight 3 v1.4.0, and this is probably the biggest update I’ve done to the game so far. Classic Mode is finally complete, with all 22 playable birds now having their own full eight-encounter route, unique encounters, final bosses, and animated Crown endings. I also finished the ending gallery, route badges, FEATHERDEV support, route previews, music, and a bunch of progression fixes. It feels really good to finally have the entire roster playable from start to finish instead of having unfinished routes sitting around. I also went through basically the entire stage roster and gave it a massive cleanup. All 21 main arenas and 26 variants were audited for collision, spawns, navigation, objectives, hazards, and visual clarity, with a bunch of them being rebuilt or heavily polished. Stage Select was completely redone with rendered previews, and I replaced the old thumbnails across the game. On top of all that, I ran 9,856 headless Classic matches and now have 1,034 automated tests passing with zero failures, errors, or skips. This update was a LOT of work, but v1.4.0 finally feels like Bird Fight 3 is becoming the complete game I’ve been trying to build.
The full Smash-inspired UI goal is now complete. I finished up the major UI systems across the project, including simplified rulesets, the main hub, fighter and stage selection, pause/results screens, profiles, the Vault, Classic, Story, multiplayer, and Training. I also added responsive scaling so the UI adapts properly to different screen sizes and devices. Keyboard, controller, and Wiimote prompts now change based on the input device being used, which makes the controls much clearer. Finally, I added UI regression coverage to help catch visual and functional issues as the project continues to grow. This was a big milestone because the UI now feels much more cohesive across the entire game instead of each mode feeling like its own separate system.
I’ve been focusing on the Adventure UI and bringing it closer to the same polished, Smash-inspired feel as the rest of the game. The main Adventure flow is now coming together, with the UI built around navigating between areas, selecting destinations, and keeping the player oriented as they progress through the mode. I also worked on making the transitions between the different Adventure screens feel consistent with the rest of the game rather than having Adventure use a completely separate visual style. A big part of this was making sure the UI works cleanly with the different input methods supported by the game. The prompts and navigation behavior stay consistent whether you’re using keyboard, controller, or Wiimote. There’s still more I want to do with Adventure itself, but the UI foundation is now in place and it feels much closer to the experience I’m aiming for.
I’ve spent around 14 more hours working on Bird Fight 3 since my last devlog, and I’ve mainly been focusing on polishing the overall UI and making everything feel more consistent. I finished the full Smash-inspired UI direction across the game, including the rulesets, hub, fighter and stage selection, pause/results screens, profiles, Vault, Classic, Adventure, multiplayer, and Training. I also redesigned the Adventure campaign hub and continued polishing the Adventure flow so it fits in with the rest of the game. I also added responsive scaling and device-specific prompts for keyboard, controller, and Wiimote controls, along with UI regression tests to make sure these changes don’t break existing screens. There have also been a bunch of smaller fixes and polish, including reward reveals, confirmation dialogs, settings, navigation, and some progression-related fixes. I’ve been trying to take the feedback from the ratings seriously, especially the comments about making the game easier to understand and improving the UI. Thanks again to everyone who played and left feedback, as its been super helpful!
Ships:
Bird Fight 3 is a fast-paced 2D fighting game where birds battle across a variety of arenas using unique attacks, specials, and ultimates. Play as a growing roster of birds, fight through Story and Classic modes, discover alternate stages and variants, unlock content, and compete through increasingly challenging battles.
Bird Fight 3 is a fast-paced 2D fighting game where birds battle across a growing roster of arenas using unique attacks, specials, and ultimates. During this Stardance development phase, I took the game through a major overhaul focused on turning it into a much more complete and polished experience. I rebuilt Classic Mode into character-specific campaigns, expanded the roster and stages, added Adventure, improved progression and saves, and introduced features like alternate stage variants, unlockable content, route endings, and multiplayer. I also completely redesigned the game’s UI around a Smash-inspired presentation, covering the main hub, rulesets, fighter and stage selection, Vault, Classic, Adventure, Training, multiplayer, profiles, settings, and pause/results screens. The UI now supports responsive scaling and device-specific prompts for keyboard, controllers, and Wiimotes. A major part of development was also making the game more reliable. I built extensive automated testing and regression coverage, ran thousands of automated matches to test gameplay and balance, and continuously fixed issues across fighters, stages, progression, UI, and multiplayer. Bird Fight 3 has grown significantly throughout this project, and I’m really happy with where it has ended up....
|
1792882058.564735
|
1793746058.564735
|
|
2519
|
Handcryption by @some_guy_named_joe | Stardance
|
some_guy_named_joe
|
1
|
34.0
|
168
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T19:51:05Z", "hours": 34.0, "multiplier": 5.0, "payout": 168, "blessing": "neutral", "text": "I made a hardware-based encrypted peer-to-peer messaging device built on CircuitPython (ESP32-S2). It is able to send text messages to others of this device over http using a Raspberry Pi Server. I have to hold off of the audio side, as this device uses an analog microphone, which does not record great audio. However, the texting portion works really well. I built all of this in less than two weeks in order to qualify for Hack Club Outpost. I hope you like it!", "repo": "https://github.com/Joethebeast-coder/Handheld-Encryption-Device", "demo": ""}]...
|
[{"post_id": 47644, "ts": "202 [{"post_id": 47644, "ts": "2026-08-15T17:51:11Z", "hours": 3.1564, "text": "FINAL Handcryption Build Sorry if its been so long, I have been doing a lot this summer, but here is what happened over the past month. (Time shown does not reflect time spent, as hackatime wasn’t working when I was coding and I didn’t record the building process) So, I was able to assemble 1 working device with the one working e-ink display I had left. I was on a time crunch as I was trying to qualify for Outpost. I was able to submit it in time, and I shipped it for Outpost. The device has all the previously specified features, such as peer-to-peer messaging and message history. The microphone and speaker are very weird, as they are analog, so the audio quality is questionable. However, the project works great! At Outpost, I had a really good time with my fellow Hack Clubbers. Thank you Hack Club for making this all possible. (P.S. You should allow me to remove my request for funding and submit it normally)."}, {"post_id": 13986, "ts": "2026-06-22T23:09:13Z", "hours": 1.3697, "text": "Handcryption Status Update 0.1.1 This is a short update. I am currently waiting for funding, but I was able to design some button caps in CAD. I really hope I get S tier so I can get to Open Sauce Update On Me: My schedule is super packed. I’m starting to regret taking on a lot of things this summer."}, {"post_id": 12557, "ts": "2026-06-20T14:46:54Z", "hours": 1.6814, "text": "Handcryption Status Update 0.1 What’s Happening? So, I have been able to clean up everything in my code. I have added comments and the ability to connect to Wi-Fi. All of my code has been uploaded to GitHub for review for funding. Also on GitHub are my 3D models. Be aware that the part models’ heights are an estimate based on the total height of the part given (if that makes sense). When printing the cover, I am planning to swap the filament from PLA to TPU to make the pads holding the buttons squishy. I am a little disappointed that the hackatime in my VS Code editor stopped recording time, and I lost 2 hours, but I will just use Lapse from now on. GitHub Repo"}, {"post_id": 11631, "ts": "2026-06-18T23:03:51Z", "hours": 1.6394, "text": "Hancryption Status Update 0.0.4 What Happened? So, I added in one last new feature to my code: voice messages. In order to play the audio, I have decided to ditch the piezo and use an actual speaker breakout, and I have updated the BOM on my Github as such (check the last devlog). Other than that, I have been cleaning and debugging the code, and adding in comments; all to get it ready to request for funding. For some reason, my hackatime on the Stardance website isn’t synced with what my Hackatime dashboard says. So, I’m posting this much eariler than I would have wanted in hopes to fix that issue. What’s Next? Sneak Peak at Funding Request Version Timeline"}, {"post_id": 9595, "ts": "2026-06-16T00:04:46Z", "hours": 3.2939, "text": "Handcryption Status Update 0.0.3.9 What Happened? Ok, big change to the workings of this device. Previously, this device could only work locally, but through my Raspberry Pi server and a domain through ngrok, I can make the device work on the cloud, and I have altered the server code and main device code to work this way. Also, instead of using IPs to identify devices, I am using my own identification system that is like a phone number, a sequence of 9 digits. I recognize that this may be a small number of available sequences, but for now, it is a good amount. I can change this later. So, to send messages now, instead of using a socket, the device sends an HTTP request to the ngrok domain hosted by the Pi. The request includes the message, the destination’s ID, and the sender’s (the device’s) ID. The server then stores this information in a “mailbox” -a collection of all sent messages. The receiving device, every 2 seconds, is sending an HTTP request to the server asking if there is anything in its mailbox. If so, the server returns the message(s) with the sender ID so the receiver can match that to a contact. The cloud update has made my overall code length shorter, as most of the long sequences of code have been simplified to shorter HTTP requests. Also, as promised, this is my part BOM: https://github.com/Joethebeast-coder/Handheld-Encryption-Device/tree/main/Hardware What’s Next in 0.0.4? - Extra Add-on Device Features - Maybe more website interactivity"}, {"post_id": 8069, "ts": "2026-06-13T14:05:00Z", "hours": 5.1436, "text": "Handcryption Status Update 0.0.3.6 What Happened? I added a cool new feature to the Handcryption device-GROUP CHATS!! This allows every user with a Handcryption device who opts to join the group to participate in conversations, fostering a more connected experience among users. I learned how to use Flask (thanks to GeeksforGeeks), which enabled me to seamlessly integrate the group chat feature into the server code running on the Raspberry Pi. In addition to the chat functionality, there is now a website hosted on the Raspberry Pi’s IP address that displays all the messages in the group chat. The caveat is that every message on the website is shown in its encrypted form to maintain security and confidentiality. Looking ahead, I plan to implement a feature that would allow Handcryption users to sign in to the website. This will enable them to view messages in a decrypted format, enhancing user experience while still prioritizing privacy. I believe these developments will significantly improve user engagement and create a more dynamic platform for communication. My device(s) are becoming more and more like a phone What’s next? - Preliminary BOM - Increase Website Functionality - Timeline Estimation - Code Cleanup and Extra Features Photo Description: Some of the server code for the group chat"}, {"post_id": 6401, "ts": "2026-06-10T19:27:12Z", "hours": 2.5883, "text": "Handcryption Status Update 0.0.3.5 What Happened? I was able to set up a server on my Raspberry Pi 4 with the help of Copilot (I do not know Flask in the slightest). So now, when a device wants to send a message, the audio recording is sent to the Pi, requesting that it be translated to text. I’ve been experimenting with Claude on making a website to monitor the server’s status, but I will talk about that more in a later update if I decide to go that route. Today, I was able to make a CAD model of the housing of the device (The process of which is posted on Lapse). I have to admit, it looks a lot like the phreakers from the early days of calling. What’s Next? - Decision on whether to pursue web monitoring - Preliminary BOM - Timeline Estimation - Extra Features for the Device"}, {"post_id": 5790, "ts": "2026-06-09T18:22:30Z", "hours": 4.0547, "text": "Handcryption Status Update 0.0.3.2 (Big News) What Happened? So, I was able to add in a UI that includes settings, contacts, message history, as well as battery status. In the settings, the user can change the volume of the piezo, as well as clear the files on their device (Contacts, Known IPs, and Message History. When hovering over a choice, the icon (the volume icon, for example) repeatedly switches from inverted to normal. However, while I was debugging, I found a MAJOR problem. My measly ESP32 microcontroller doesn’t have enough CPU and RAM to run the speech-to-text model. However, I can pivot from this by using the VOSK model paired with my Raspberry Pi 4 that I have on hand as a server to run the model for the microcontroller. This opens up a whole new possibility. We can now have a main hub that monitors the devices, serves the speech-to-text requests, and sends the text back. What’s Next? - Speech-to-text code for the Raspberry Pi - Communication Protocol between the device and Pi"}, {"post_id": 4972, "ts": "2026-06-08T16:55:09Z", "hours": 4.4942, "text": "Hancryption Status Update 0.0.3 (Combined) What Happened in 0.0.2.3? I have created a parts list for this project: Adafruit: - Adafruit Electret Microphone Amplifier - MAX4466 with Adjustable Gain - Adafruit 2.13” Monochrome eInk / ePaper Display with SRAM - 250x122 Monochrome with SSD1680 - Adafruit ESP32-S2 Feather - 4 MB Flash + 2 MB PSRAM - STEMMA QT / Qwiic - Lithium Ion Polymer Battery - 3.7v 100mAh - Tactile Button switch (6mm) x 20 pack - Small Enclosed Piezo w/Wires I have decided to use the Adafruit ESP32-S2 Feather as my microcontroller, as it takes care of the LiPoly battery charging, so I don’t have to buy extra parts for it. I can also charge the battery through the USB-C on the board. It also has many GPIO pins that I can give to my e-Ink display, as well as the switches (6). What Happened in 0.0.2.5? I created a wiring diagram for the components listed in the parts list. The time-lapse can be seen on Lapse*. *I forgot to add the piezo in the time-lapse, and I wired the SDA and SCL pins to buttons, which was not supposed to happen, so later, I added the piezo, and moved the button wires to spare analog pins. You can see these in the screenshot below. What Happened in 0.0.3? I made a complete draft of the code for the device. I added all of the button logic and basic e-ink display code. I added a loading screen with “HANCRYPTION” in block text and a sleep screen. To “power down”, when the user holds the power button for more than 1 second, it goes into deep-sleep, which is basically off for microcontrollers. If it is less than that, it just goes idle. Of course, this is not the final code. I will keep adding more and more features that are compatible with the current set of parts I already have. What’s Next in 0.0.4? -Extra UI Features -Possibility of Games"}, {"post_id": 3197, "ts": "2026-06-06T00:44:42Z", "hours": 2.9586, "text": "Hancryption Status Update 0.0.2.1 What Happened? I patched some bugs in the client class so I could add a main loop for the device. When the device is sending, it is the server, and in any other circumstance, it is the client, it is idle and waiting for a message. I added the button and microphone logic for the specific components. I need to add the logic for the eink display"}, {"post_id": 2526, "ts": "2026-06-05T01:55:38Z", "hours": 1.7911, "text": "Hancryption Status Update 0.0.2 What Happened? I added classes for server and client communication so the device could be either. I also added the encryption feature, which generates a unique key for each known IP address. The network also includes a client status check that occurs every 15 seconds, in which the client sends its IP address to the server. What’s Next in 0.0.3? Full draft code for a device. This will include all of the machine programming for the ESP32 chip, which is for the microphone, eink screen, and buttons. By 0.0.2.3, a draft parts list should be complete. By 0.0.2.5, a wiring diagram should be complete."}, {"post_id": 1210, "ts": "2026-06-03T02:05:14Z", "hours": 0.3333, "text": "Handcryption Status Update 0.0.1.5 What’s New? I created a rough sketch of the device. I also wrote down a tentative list of parts I would need. See Below 0.0.2 Should be released by 6/4/26. *Note: I completely forgot about the screen and the parts needed for that. LCD 3 buttons"}, {"post_id": 1073, "ts": "2026-06-02T21:44:37Z", "hours": 1.1033, "text": "Hancryption Status Update 0.0.1 I have created the basic logic framework for the speech-to-text with processing. I am currently using many placeholders, however. Will be updating that by 0.0.4 at the latest. For encryption, I am using my previously developed “Cencrypt” Python library. What’s Next in 0.0.2? Networking Framework Encryption Setup"}]...
|
Title: Handcryption by @some_guy_named_joe | Stard Title: Handcryption by @some_guy_named_joe | Stardance
Devlogs:
Hancryption Status Update 0.0.1 I have created the basic logic framework for the speech-to-text with processing. I am currently using many placeholders, however. Will be updating that by 0.0.4 at the latest. For encryption, I am using my previously developed “Cencrypt” Python library. What’s Next in 0.0.2? Networking Framework Encryption Setup
Handcryption Status Update 0.0.1.5 What’s New? I created a rough sketch of the device. I also wrote down a tentative list of parts I would need. See Below 0.0.2 Should be released by 6/4/26. *Note: I completely forgot about the screen and the parts needed for that. LCD 3 buttons
Hancryption Status Update 0.0.2 What Happened? I added classes for server and client communication so the device could be either. I also added the encryption feature, which generates a unique key for each known IP address. The network also includes a client status check that occurs every 15 seconds, in which the client sends its IP address to the server. What’s Next in 0.0.3? Full draft code for a device. This will include all of the machine programming for the ESP32 chip, which is for the microphone, eink screen, and buttons. By 0.0.2.3, a draft parts list should be complete. By 0.0.2.5, a wiring diagram should be complete.
Hancryption Status Update 0.0.2.1 What Happened? I patched some bugs in the client class so I could add a main loop for the device. When the device is sending, it is the server, and in any other circumstance, it is the client, it is idle and waiting for a message. I added the button and microphone logic for the specific components. I need to add the logic for the eink display
Hancryption Status Update 0.0.3 (Combined) What Happened in 0.0.2.3? I have created a parts list for this project: Adafruit: - Adafruit Electret Microphone Amplifier - MAX4466 with Adjustable Gain - Adafruit 2.13” Monochrome eInk / ePaper Display with SRAM - 250x122 Monochrome with SSD1680 - Adafruit ESP32-S2 Feather - 4 MB Flash + 2 MB PSRAM - STEMMA QT / Qwiic - Lithium Ion Polymer Battery - 3.7v 100mAh - Tactile Button switch (6mm) x 20 pack - Small Enclosed Piezo w/Wires I have decided to use the Adafruit ESP32-S2 Feather as my microcontroller, as it takes care of the LiPoly battery charging, so I don’t have to buy extra parts for it. I can also charge the battery through the USB-C on the board. It also has many GPIO pins that I can give to my e-Ink display, as well as the switches (6). What Happened in 0.0.2.5? I created a wiring diagram for the components listed in the parts list. The time-lapse can be seen on Lapse*. *I forgot to add the piezo in the time-lapse, and I wired the SDA and SCL pins to buttons, which was not supposed to happen, so later, I added the piezo, and moved the button wires to spare analog pins. You can see these in the screenshot below. What Happened in 0.0.3? I made a complete draft of the code for the device. I added all of the button logic and basic e-ink display code. I added a loading screen with “HANCRYPTION” in block text and a sleep screen. To “power down”, when the user holds the power button for more than 1 second, it goes into deep-sleep, which is basically off for microcontrollers. If it is less than that, it just goes idle. Of course, this is not the final code. I will keep adding more and more features that are compatible with the current set of parts I already have. What’s Next in 0.0.4? -Extra UI Features -Possibility of Games
Handcryption Status Update 0.0.3.2 (Big News) What Happened? So, I was able to add in a UI that includes settings, contacts, message history, as well as battery status. In the settings, the user can change the volume of the piezo, as well as clear the files on their device (Contacts, Known IPs, and Message History. When hovering over a choice, the icon (the volume icon, for example) repeatedly switches from inverted to normal. However, while I was debugging, I found a MAJOR problem. My measly ESP32 microcontroller doesn’t have enough CPU and RAM to run the speech-to-text model. However, I can pivot from this by using the VOSK model paired with my Raspberry Pi 4 that I have on hand as a server to run the model for the microcontroller. This opens up a whole new possibility. We can now have a main hub that monitors the devices, serves the speech-to-text requests, and sends the text back. What’s Next? - Speech-to-text code for the Raspberry Pi - Communication Protocol between the device and Pi
Handcryption Status Update 0.0.3.5 What Happened? I was able to set up a server on my Raspberry Pi 4 with the help of Copilot (I do not know Flask in the slightest). So now, when a device wants to send a message, the audio recording is sent to the Pi, requesting that it be translated to text. I’ve been experimenting with Claude on making a website to monitor the server’s status, but I will talk about that more in a later update if I decide to go that route. Today, I was able to make a CAD model of the housing of the device (The process of which is posted on Lapse). I have to admit, it looks a lot like the phreakers from the early days of calling. What’s Next? - Decision on whether to pursue web monitoring - Preliminary BOM - Timeline Estimation - Extra Features for the Device
Handcryption Status Update 0.0.3.6 What Happened? I added a cool new feature to the Handcryption device-GROUP CHATS!! This allows every user with a Handcryption device who opts to join the group to participate in conversations, fostering a more connected experience among users. I learned how to use Flask (thanks to GeeksforGeeks), which enabled me to seamlessly integrate the group chat feature into the server code running on the Raspberry Pi. In addition to the chat functionality, there is now a website hosted on the Raspberry Pi’s IP address that displays all the messages in the group chat. The caveat is that every message on the website is shown in its encrypted form to maintain security and confidentiality. Looking ahead, I plan to implement a feature that would allow Handcryption users to sign in to the website. This will enable them to view messages in a decrypted format, enhancing user experience while still prioritizing privacy. I believe these developments will significantly improve user engagement and create a more dynamic platform for communication. My device(s) are becoming more and more like a phone What’s next? - Preliminary BOM - Increase Website Functionality - Timeline Estimation - Code Cleanup and Extra Features Photo Description: Some of the server code for the group chat
Handcryption Status Update 0.0.3.9 What Happened? Ok, big change to the workings of this device. Previously, this device could only work locally, but through my Raspberry Pi server and a domain through ngrok, I can make the device work on the cloud, and I have altered the server code and main device code to work this way. Also, instead of using IPs to identify devices, I am using my own identification system that is like a phone number, a sequence of 9 digits. I recognize that this may be a small number of available sequences, but for now, it is a good amount. I can change this later. So, to send messages now, instead of using a socket, the device sends an HTTP request to the ngrok domain hosted by the Pi. The request includes the message, the destination’s ID, and the sender’s (the device’s) ID. The server then stores this information in a “mailbox” -a collection of all sent messages. The receiving device, every 2 seconds, is sending an HTTP request to the server asking if there is anything in its mailbox. If so, the server returns the message(s) with the sender ID so the receiver can match that to a contact. The cloud update has made my overall code length shorter, as most of the long sequences of code have been simplified to shorter HTTP requests. Also, as promised, this is my part BOM: https://github.com/Joethebeast-coder/Handheld-Encryption-Device/tree/main/Hardware What’s Next in 0.0.4? - Extra Add-on Device Features - Maybe more website interactivity
Hancryption Status Update 0.0.4 What Happened? So, I added in one last new feature to my code: voice messages. In order to play the audio, I have decided to ditch the piezo and use an actual speaker breakout, and I have updated the BOM on my Github as such (check the last devlog). Other than that, I have been cleaning and debugging the code, and adding in comments; all to get it ready to request for funding. For some reason, my hackatime on the Stardance website isn’t synced with what my Hackatime dashboard says. So, I’m posting this much eariler than I would have wanted in hopes to fix that issue. What’s Next? Sneak Peak at Funding Request Version Timeline
Handcryption Status Update 0.1 What’s Happening? So, I have been able to clean up everything in my code. I have added comments and the ability to connect to Wi-Fi. All of my code has been uploaded to GitHub for review for funding. Also on GitHub are my 3D models. Be aware that the part models’ heights are an estimate based on the total height of the part given (if that makes sense). When printing the cover, I am planning to swap the filament from PLA to TPU to make the pads holding the buttons squishy. I am a little disappointed that the hackatime in my VS Code editor stopped recording time, and I lost 2 hours, but I will just use Lapse from now on. GitHub Repo
Handcryption Status Update 0.1.1 This is a short update. I am currently waiting for funding, but I was able to design some button caps in CAD. I really hope I get S tier so I can get to Open Sauce Update On Me: My schedule is super packed. I’m starting to regret taking on a lot of things this summer.
FINAL Handcryption Build Sorry if its been so long, I have been doing a lot this summer, but here is what happened over the past month. (Time shown does not reflect time spent, as hackatime wasn’t working when I was coding and I didn’t record the building process) So, I was able to assemble 1 working device with the one working e-ink display I had left. I was on a time crunch as I was trying to qualify for Outpost. I was able to submit it in time, and I shipped it for Outpost. The device has all the previously specified features, such as peer-to-peer messaging and message history. The microphone and speaker are very weird, as they are analog, so the audio quality is questionable. However, the project works great! At Outpost, I had a really good time with my fellow Hack Clubbers. Thank you Hack Club for making this all possible. (P.S. You should allow me to remove my request for funding and submit it normally).
Ships:
I made a hardware-based encrypted peer-to-peer messaging device built on CircuitPython (ESP32-S2). It is able to send text messages to others of this device over http using a Raspberry Pi Server. I have to hold off of the audio side, as this device uses an analog microphone, which does not record great audio. However, the texting portion works really well. I built all of this in less than two weeks in order to qualify for Hack Club Outpost. I hope you like it!...
|
1792997490.5106902
|
1793083890.5106902
|
|
36733
|
Cobra Programing Language by @Cy | Stardance
|
Cy
|
1
|
13.03
|
168
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-23T06:14:04Z", "hours": 11.0, "multiplier": 15.56, "payout": 168, "blessing": "neutral", "text": "Cobra Programing language Beta V1!!!! This little interpreted programing language was built to make 2d programing easier by making things simple. This language will combine multiple lines of code into one like foe example: Screen init 500 500. What this snit-bit of does is create a screen and sets the window size. As this is just a beta, I am going to be working on this still but I just wanted to get this out there for people to experience. The hardest part about this was trying to figure out what kind of syntax I wanted for this. I came up with the idea that your reading a list, starting from the top and reading line by line. I am proud of even making this in the first place. Ive always wanted to do this and have attempted a compiled programing language (that i might never touch again) that I watched a tutorial for. But this time I went for interpreted and going line by line looking at the first word and reacting that way. Before people test this project I would like to let them know that this is beta and that documentation is coming soon. Enjoy -Cy", "repo": "https://github.com/Cybrock9000/Cobra-Programing-Language", "demo": "https://github.com/Cybrock9000/Cobra-Programing-Language/releases/tag/demo"}]...
|
[{"post_id": 38069, "ts": "202 [{"post_id": 38069, "ts": "2026-07-31T08:26:28Z", "hours": 2.0331, "text": "Thank you to everyone who has voted on this project! I am currently fixing bugs and making things more easier. like the opcode color has returned. everything that needs a vec3 for color can also use color too. the difference is: for vec3: Var name vec3 255 0 0, and for color: Var name color red. color currently has 11 colors to choose from. I have added some variable functionality to some other opcodes and I am creating more demos too. (no that pic is not a new logo) - Cy."}, {"post_id": 33290, "ts": "2026-07-23T02:33:01Z", "hours": 1.1664, "text": "Ive done some touchups on the code and added the inside function for If. It allows to check if something is inside the space you say."}, {"post_id": 32828, "ts": "2026-07-22T07:04:43Z", "hours": 0.8986, "text": "I added the Watch opcode that allows you to watch multiple variables in to terminal for debugging purposes. And I tried to add a wait function where you can still use the program (not like time.sleep()). also changed the icon a tad"}, {"post_id": 32199, "ts": "2026-07-21T06:25:52Z", "hours": 0.6422, "text": "Ive done some light touch ups and simple optimizations but I dont really know what to do next. so Im going to fiddle with this for a bit and hope to get some new ideas. The code is similar to the last devlog but with some tweaks that Ive done to the code."}, {"post_id": 31639, "ts": "2026-07-20T06:23:45Z", "hours": 3.305, "text": "New icon and loads of new opcodes! DebugInfo is a opcode that displays useful info like the fps time current opcode that its running and what like the program is looking at. The If opcode works and supports: > = < ! >= <=. The Var opcode has added: sqrt pow abs dist vec3 rrng (ranrange). There is image, button and (possibly) text support. The Screen got some more opcodes like Caption and a toggleable fps counter by using fps. There is Sound but I havent tested it yet. I decided to use pixel art for the icon because I am better at that compared to digital drawing and I like how it turned out. How this whole language works is like reading a list, were it looks at the code line by line and runs it. Then if it hits something like a LoopEnd then it will go back to the Loop that it noted earlier. Because of this, I dont think I am going to add defs and functions (and ifs sound do the trick). The picture of the code runs a program that has a simple “menu” with a button, after that there is a simple 2d movement script."}, {"post_id": 31089, "ts": "2026-07-19T06:35:56Z", "hours": 4.8256, "text": "First devlog of this project. I have programed (some) functionality’s for these keywords: print, log, loop/Endloop, Break, If/IfEnd (kinda), Var (variables, +-*/ floor, round, ceiling color), and some very basic screen stuff: Screen (init, Caption, pos, box, fill, update, quitControl). This is a interpreted programing language ran through python and is not meant to run fast (yet, maybe). The logo is wip"}]...
|
Title: Cobra Programing Language by @Cy | Stardanc Title: Cobra Programing Language by @Cy | Stardance
Devlogs:
First devlog of this project. I have programed (some) functionality’s for these keywords: print, log, loop/Endloop, Break, If/IfEnd (kinda), Var (variables, +-*/ floor, round, ceiling color), and some very basic screen stuff: Screen (init, Caption, pos, box, fill, update, quitControl). This is a interpreted programing language ran through python and is not meant to run fast (yet, maybe). The logo is wip
New icon and loads of new opcodes! DebugInfo is a opcode that displays useful info like the fps time current opcode that its running and what like the program is looking at. The If opcode works and supports: > = < ! >= <=. The Var opcode has added: sqrt pow abs dist vec3 rrng (ranrange). There is image, button and (possibly) text support. The Screen got some more opcodes like Caption and a toggleable fps counter by using fps. There is Sound but I havent tested it yet. I decided to use pixel art for the icon because I am better at that compared to digital drawing and I like how it turned out. How this whole language works is like reading a list, were it looks at the code line by line and runs it. Then if it hits something like a LoopEnd then it will go back to the Loop that it noted earlier. Because of this, I dont think I am going to add defs and functions (and ifs sound do the trick). The picture of the code runs a program that has a simple “menu” with a button, after that there is a simple 2d movement script.
Ive done some light touch ups and simple optimizations but I dont really know what to do next. so Im going to fiddle with this for a bit and hope to get some new ideas. The code is similar to the last devlog but with some tweaks that Ive done to the code.
I added the Watch opcode that allows you to watch multiple variables in to terminal for debugging purposes. And I tried to add a wait function where you can still use the program (not like time.sleep()). also changed the icon a tad
Ive done some touchups on the code and added the inside function for If. It allows to check if something is inside the space you say.
Thank you to everyone who has voted on this project! I am currently fixing bugs and making things more easier. like the opcode color has returned. everything that needs a vec3 for color can also use color too. the difference is: for vec3: Var name vec3 255 0 0, and for color: Var name color red. color currently has 11 colors to choose from. I have added some variable functionality to some other opcodes and I am creating more demos too. (no that pic is not a new logo) - Cy.
Ships:
Cobra Programing language Beta V1!!!! This little interpreted programing language was built to make 2d programing easier by making things simple. This language will combine multiple lines of code into one like foe example: Screen init 500 500. What this snit-bit of does is create a screen and sets the window size. As this is just a beta, I am going to be working on this still but I just wanted to get this out there for people to experience. The hardest part about this was trying to figure out what kind of syntax I wanted for this. I came up with the idea that your reading a list, starting from the top and reading line by line. I am proud of even making this in the first place. Ive always wanted to do this and have attempted a compiled programing language (that i might never touch again) that I watched a tutorial for. But this time I went for interpreted and going line by line looking at the first word and reacting that way. Before people test this project I would like to let them know that this is beta and that documentation is coming soon. Enjoy -Cy...
|
1793109009.8885856
|
1793195409.8885856
|
|
41332
|
Personal site by @potionj | Stardance
|
potionj
|
2
|
32.0
|
168
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-22T00:44:09Z", "hours": 18.0, "multiplier": 14.43, "payout": 132, "blessing": "neutral", "text": "Changes -Added animations for clicking inside and outside of the black hole -Redid the profile -Minor bug fixes -A lot of performance improvements -Added pre loading for the background in the star map to minimize transition time -Bound the edges of the starmap -Improved rendering speeds at the cost of slight decrease in quality -Rebound some keybinds -Added layered esc Some notes The amount of time i spent on the zoom in animation is way too long and i spent wayyyy too much time on it Had issues changing values with the profile bc of the weird header i made long time ago Had issues loading things? Now it basically just moves the lag to sometime else To justify the questionable hr count: Writing custom rendering is very painful and i do not recommend it at all (just use a library it actually makes it so much easier), this has taken so much effort to complete so please be nice while grading :) Actually helpful info for people rating I entered the site and theres nothing to do? -Click either inside or outside the blackhole (inside leads you to my profile, outside leads you to a starmap i made) Can i use my keyboard for the starmap? -Of course, move around with w/a/s/d, zoom in/out with +/-, turn the info card opque with o Why should i give you 9 stars for all of the parts? -Because i worked rly hard on this project :) -More specifically… -Originality: I dont think you’ve seen anyone with a similar personal site have you? (if you have send it to me on slack username:29mtye) -Technicality: This uses nasa api to load in images, CUSTOM rendering, a fully functional starmap, there is performance built in, there are backups incase the site can’t find anything -Usability: Its built to not break, there might be minor bugs but it accomplishes what it should do right? -Storytelling: This ship message is split into sections so that you can find info easily, i have almost 150 commits…", "repo": "https://github.com/minye065/my-website-templated", "demo": "https://minye065.github.io/my-website-templated/"}, {"ship_num": 2, "ts": "2026-08-23T16:30:05Z", "hours": 14.0, "multiplier": 5.5, "payout": 36, "blessing": "neutral", "text": "The site is done :D Had quite some issues with getting images from the nasa database but the site has turned out quite well. Please be nice while rating as this is my first css/html project. :) Try if you can find the hidden thing.", "repo": "https://github.com/minye065/my-website-templated", "demo": "https://minye065.github.io/my-website-templated/"}]...
|
[{"post_id": 81662, "ts": "202 [{"post_id": 81662, "ts": "2026-10-21T23:12:50Z", "hours": 0.2933, "text": "Fixed minor loading issues Changed how the loading for the star map works Bound the edges of the starmap Made starmap nonscrolling"}, {"post_id": 81413, "ts": "2026-10-21T05:50:52Z", "hours": 2.9125, "text": "Added a zoom in and out animation, zoom out is far superior tho… Zoom in animation needs a lot of fixing."}, {"post_id": 80290, "ts": "2026-10-17T04:06:02Z", "hours": 2.135, "text": "Added an animation for zooming out, fixed some issues with internal stuff. (Picture is mid animation)"}, {"post_id": 79665, "ts": "2026-10-15T00:15:27Z", "hours": 1.8697, "text": "Fixed the render and tuned some more values :) Swapped the render mask for a different method. Next is adding an animation, fixing the writting and maybe more hidden things? View at: https://minye065.github.io/my-website-templated/"}, {"post_id": 74336, "ts": "2026-09-27T06:05:23Z", "hours": 2.8025, "text": "IT WORKS!!!! Never thought that it would work so easily but it does. The blackhole has been split into 2 parts, outside and inside. The outside leads to the old site (soon to be changed) and the inside to the projects and what not. The loading is very jagged and will be overlayed with something :D. The old site is now accessible after however long it was just commented out. Going to do: add loading screens (or smth) add “back” button (revolutionary i know) split the old site into starmap and portfolio"}, {"post_id": 63816, "ts": "2026-09-07T19:45:11Z", "hours": 8.275, "text": "Remade the website again? Yea i had another idea but you’ll see at the end. Currently it’s just a blackhole renderer + mask maker. The mask will go over the blackhole to map out clicks and stuff. Had some issues with centering and omega. Using the math formulas from before caused the rings of the blackhole to do weird things because of a difference in rotation speeds. This was just removed to make it smooth. The blackhole is not as accurate anymore but i dont understand it enough to fix it soooo."}, {"post_id": 53155, "ts": "2026-08-23T16:27:35Z", "hours": 10.9436, "text": "Redid basically the entire website, now has a slightly hidden feature."}, {"post_id": 38017, "ts": "2026-07-31T04:54:36Z", "hours": 2.9147, "text": "added the background"}]...
|
Title: Personal site by @potionj | Stardance
Devl Title: Personal site by @potionj | Stardance
Devlogs:
added the background
Redid basically the entire website, now has a slightly hidden feature.
Remade the website again? Yea i had another idea but you’ll see at the end. Currently it’s just a blackhole renderer + mask maker. The mask will go over the blackhole to map out clicks and stuff. Had some issues with centering and omega. Using the math formulas from before caused the rings of the blackhole to do weird things because of a difference in rotation speeds. This was just removed to make it smooth. The blackhole is not as accurate anymore but i dont understand it enough to fix it soooo.
IT WORKS!!!! Never thought that it would work so easily but it does. The blackhole has been split into 2 parts, outside and inside. The outside leads to the old site (soon to be changed) and the inside to the projects and what not. The loading is very jagged and will be overlayed with something :D. The old site is now accessible after however long it was just commented out. Going to do: add loading screens (or smth) add “back” button (revolutionary i know) split the old site into starmap and portfolio
Fixed the render and tuned some more values :) Swapped the render mask for a different method. Next is adding an animation, fixing the writting and maybe more hidden things? View at: https://minye065.github.io/my-website-templated/
Added an animation for zooming out, fixed some issues with internal stuff. (Picture is mid animation)
Added a zoom in and out animation, zoom out is far superior tho… Zoom in animation needs a lot of fixing.
Fixed minor loading issues Changed how the loading for the star map works Bound the edges of the starmap Made starmap nonscrolling
Ships:
The site is done :D Had quite some issues with getting images from the nasa database but the site has turned out quite well. Please be nice while rating as this is my first css/html project. :) Try if you can find the hidden thing.
Changes -Added animations for clicking inside and outside of the black hole -Redid the profile -Minor bug fixes -A lot of performance improvements -Added pre loading for the background in the star map to minimize transition time -Bound the edges of the starmap -Improved rendering speeds at the cost of slight decrease in quality -Rebound some keybinds -Added layered esc Some notes The amount of time i spent on the zoom in animation is way too long and i spent wayyyy too much time on it Had issues changing values with the profile bc of the weird header i made long time ago Had issues loading things? Now it basically just moves the lag to sometime else To justify the questionable hr count: Writing custom rendering is very painful and i do not recommend it at all (just use a library it actually makes it so much easier), this has taken so much effort to complete so please be nice while grading :) Actually helpful info for people rating I entered the site and theres nothing to do? -Click either inside or outside the blackhole (inside leads you to my profile, outside leads you to a starmap i made) Can i use my keyboard for the starmap? -Of course, move around with w/a/s/d, zoom in/out with +/-, turn the info card opque with o Why should i give you 9 stars for all of the parts? -Because i worked rly hard on this project :) -More specifically… -Originality: I dont think you’ve seen anyone with a similar personal site have you? (if you have send it to me on slack username:29mtye) -Technicality: This uses nasa api to load in images, CUSTOM rendering, a fully functional starmap, there is performance built in, there are backups incase the site can’t find anything -Usability: Its built to not break, there might be minor bugs but it accomplishes what it should do right? -Storytelling: This ship message is split into sections so that you can find info easily, i have almost 150 commits…...
|
1793051701.4685812
|
1793138101.4685812
|
|
2485
|
Pocket Universe by @theinfamousben | Stardance
|
theinfamousben
|
1
|
24.4
|
167
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-11T21:37:22Z", "hours": 23.0, "multiplier": 7.37, "payout": 167, "blessing": "neutral", "text": "Ship 1 Hey guys! I’m proud to announce I’ve developed Pocket Universe to an acceptable degree - with more updates coming soon! Why did I publish so soon? I have a few projects coming up (haven-related) and I want to get this out of the way so I don’t have any unfinished business. What is this project anyways? Pocket Universe is an Interactive Incremental game, which focuses on building up our modern universe from scratch, meaning from the fundamental Interactions up all the way to Galaxies and Nebulae What’s Included in the game right now? I have 4 Generator nodes and 7 Upgrade nodes, with the framework built to add more quickly. Was AI used in this Project? Yes. I used a lot of AI for troubleshooting my final build, as I’ve never built for MacOS and the web before. I also used AI to generate the placeholder SVG images, which will be replaced once the game reaches an alpha / open beta stage.", "repo": "https://github.com/theinfamousben/pocket-universe", "demo": "https://benmudev.itch.io/pocket-universe"}]...
|
[{"post_id": 76232, "ts": "202 [{"post_id": 76232, "ts": "2026-10-02T19:44:55Z", "hours": 1.3992, "text": "Devlog 15 - Trying to make it look a bit better Changes Added Modal Background Moved Menu and Energy Display into Top Bar ** AI was used to generate an SVG for the modal background and to fix the positioning of the elements ** Notes I originally only shipped this project because I thought The event was going to end soon and I was gonna be busy with Haven, but now since the event has been extended, I figured I can continue working on it :)"}, {"post_id": 66193, "ts": "2026-09-11T21:12:27Z", "hours": 2.2889, "text": "Devlog 14 - I am an IDIOT Changes Recreated all SOs to fix their attached script Build 5 broken and 1 working prototype Remove quarks as a resource Add menu with exit button Notes I am the definition of stupid. I had a problem for 2 WHOLE HOURS, and the fix was simply putting the script for the SOs into its own file. I am my own worst enemy, because of my own stupidity. Well, the more you know."}, {"post_id": 63204, "ts": "2026-09-06T21:30:11Z", "hours": 1.4367, "text": "Devlog 13 - double parents :3 Changes Allowed multiple parents per node Fixed false dragging assertions Notes I’m almost done with the base game mechanics, after that it’s just textures, sounds, and gameplay and then I’m ready for my first ship!"}, {"post_id": 63049, "ts": "2026-09-06T16:59:35Z", "hours": 0.9769, "text": "Devlog 12 Changes Added button colors for hover, select, and normal events made button in the Node Info modal uninteractible if node is locked fixed unlocked check for Upgrade Nodes"}, {"post_id": 62782, "ts": "2026-09-06T09:26:48Z", "hours": 0.6336, "text": "Devlog 11 - wow it finally looks okay Changes Added Icons Made NodeInfo Effect Text yellow AI was used to create the icons - This is temporary * until I figure out how to use Inkscape Notes Didn’t do a lot of programming, and unity refused to track my time for some reason, i did more like an hour, so its not a big deal"}, {"post_id": 61042, "ts": "2026-09-03T19:06:58Z", "hours": 1.1097, "text": "Devlog 10 Changes Added 6 Nodes Added 3 Generator Nodes Added 3 Upgrade Nodes Implemented handling of locked/invisible nodes Locked nodes now won’t be able to be bought unless the parent node is bought at least once Nodes behind a locked node are invisible until the locked node is bought Notes This is fun! I’m working on the game mechanics and I’m not running into a lot of issues. All my bugs (except one) were caught pretty early on, so its a win in my book :] That brings me to the one bug, the bane of my existence… For some bizarre reason, clicking on my nodes doesn’t buy them regularly. Sometimes i need to click many many times, and in the log it doesn’t even register that I clicked the nodes! Maybe it has something to do with the epsilon value which i use to distinguish between dragging the screen and selecting a node, which currently evaluates epsilon before the mouseup event, so maybe i can switch it around and it’ll work. maybe… other than that I’m pretty happy with how it’s turning out. I am a bit worried about making textures, though, since they all look like some weird corporate/ai generated logo because i’m not good enough at art / graphic design"}, {"post_id": 60388, "ts": "2026-09-02T18:05:02Z", "hours": 1.29, "text": "Devlog 9 Changes Completed Node Info Box Header Description for the Node Effect, basically what the node does Button to buy the node Added 2 Starting nodes 1 Generator Node named “Fundamental Interaction” 1 Upgrade Node named “Strong Nuclear Force” AI was used in this timespan for troubleshooting max width for the Node info box Notes This was honestly very fun to work on. I’ve really started putting in more time for this project since I’m now under pressure to get it done by the end of summer break (2 weeks :p) I had little trouble figuring everything out, and thanks to some wonderful help from my buddy github copilot i was never truly stuck on anything in this timespan"}, {"post_id": 58253, "ts": "2026-08-30T16:50:28Z", "hours": 1.5778, "text": "Devlog 8 Changes Added Node Info Text Box Shows Title, info about the node, and a button to buy with a set price Refactored Node Script Structure Notes I have been saved by the power of abstract classes! I unified the nodes into one abstract Node class, and made completion classes for Generators and Upgrades. Now it works by simply accessing the base Node class instead of not knowing whether the class is GeneratorNode or UpgradeNode. This makes it much easier. I am planning now to get some interesting node names from physics, like building up from quarks to larger structures, and i also am going to make some textures so the game doesnt look as shitty :p"}, {"post_id": 55915, "ts": "2026-08-27T19:56:21Z", "hours": 2.7292, "text": "Devlog 7.1 Changes Added Line Drawn to Parent node Will be used for hierarchical unlocking in the future Started work on the sidebar Notes Yeah, I’m a bit screwed. The current structure of my nodes is kind of weird; I have two types of nodes: Generators and Upgrades, each having two unique scripts. That’s good, because they have different logic. Thats not so good because they also share some logic. That’s horrific because they sometimes need to be accessed interchangeably. So here are a few things i could do: Merge both scripts into one, with an enum or something for the different node types Make a base which both nodes can inherit and use give up and cry option 3 sounds the easiest right now, my brain is so broken :’)"}, {"post_id": 17851, "ts": "2026-06-28T19:52:53Z", "hours": 3.2889, "text": "Devlog 7 Changes Added Modal Functionality Test Modal for debug purposes Alert Modal for important stuff (save on exit, etc.) Made HUD better for cross-device formatting Included a vertical layout group for all of the displayed currencies Notes It’s been a bit annoying, to say the least. First off, I wanted the Modals to be completely modular from the start, but I kept getting NullReference errors that didn’t make sense to me, so I had to make a script for each modal type and serialize the GameObjects and other stuff individually. It’s not as modular as I want, but what can ya do :p As for the HUD, I hope it works across devices, I sometimes code on my MacBook and sometimes on my PC, and the layout always breaks. I haven’t tested it yet, so I’ll be as surprised as you are if it doesn’t work."}, {"post_id": 13688, "ts": "2026-06-22T13:15:29Z", "hours": 0.8022, "text": "Devlog 6 Changes Added Generator Production cost: Each generator can now require a certain amount of every resource Notes This is a rather small update, but I’m still trying to get back on my feet from my hiatus. More updates coming soon though, I’ve got some more motivation *By the way: If there’s anyone that would like to do some texture designing, I would be more than happy to accept your work! Credit is, of course, guaranteed (I’m working on a credit screen anyways ;p)."}, {"post_id": 12119, "ts": "2026-06-19T19:58:45Z", "hours": 1.2919, "text": "Devlog 5 Changes Added code to allow for generation of different resource types Notes I have been on a long creative block, I can’t really seem to pick up my laptop and continue coding. It might have a bit to do with the fact that I was very busy the last week or so, so i didn’t have much energy and motivation left to program. I kind of forced myself to implement this feature which i half-assed earlier this week, it’s really simple but it’s a start at getting more motivated :) Next week I don’t have as many exams, pressure from DLRG tests and all that stuff, so I’ll have more time to code :]"}, {"post_id": 5092, "ts": "2026-06-08T19:37:39Z", "hours": 1.9783, "text": "Devlog 4 Changes Added functionality to pan & zoom around Moved the HUD (Energy Display) into a separate canvas Notes this took me longer than I’d like to admit, because Unity was being a bit finicky about my GameObject and refused to run its code for some reason. I used AI for troubleshooting the problem, but used none of its code."}, {"post_id": 3443, "ts": "2026-06-06T11:51:02Z", "hours": 1.1675, "text": "Devlog 3 I have continued my work on Pocket Universe, and have added following: Split Node Prefabs into Generator and Upgrade Nodes Added a NodeBoost Scriptable Object Worked on Node Visibility Logic One problem I have is that a lot of the code for Generator and Upgrade Nodes is identical. I would have made a Node Monobehavior script that handles both and individual sub-classes, but that is kind of messy, at least for now. We will see in about 5 Devlogs if I made the right choice :p"}, {"post_id": 3060, "ts": "2026-06-05T23:01:54Z", "hours": 1.4725, "text": "Devlog 2 - Added Nodes for generation These nodes are clickable by the player in order to buy Generators, which create Energy or other resources. They are comparable to the Cell to Singularity nodes. There will be Generator and Upgrade Nodes; Generator Nodes will be able to be bought multiple times, while upgrade nodes will only be able to be bought once."}, {"post_id": 2356, "ts": "2026-06-04T20:06:13Z", "hours": 0.6289, "text": "Starting work This is a really ambitious project I doubt I’ll be able to finish completely by October, but I’ll try to get as far as possible, so lets see :3"}]...
|
Title: Pocket Universe by @theinfamousben | Starda Title: Pocket Universe by @theinfamousben | Stardance
Devlogs:
Starting work This is a really ambitious project I doubt I’ll be able to finish completely by October, but I’ll try to get as far as possible, so lets see :3
Devlog 2 - Added Nodes for generation These nodes are clickable by the player in order to buy Generators, which create Energy or other resources. They are comparable to the Cell to Singularity nodes. There will be Generator and Upgrade Nodes; Generator Nodes will be able to be bought multiple times, while upgrade nodes will only be able to be bought once.
Devlog 3 I have continued my work on Pocket Universe, and have added following: Split Node Prefabs into Generator and Upgrade Nodes Added a NodeBoost Scriptable Object Worked on Node Visibility Logic One problem I have is that a lot of the code for Generator and Upgrade Nodes is identical. I would have made a Node Monobehavior script that handles both and individual sub-classes, but that is kind of messy, at least for now. We will see in about 5 Devlogs if I made the right choice :p
Devlog 4 Changes Added functionality to pan & zoom around Moved the HUD (Energy Display) into a separate canvas Notes this took me longer than I’d like to admit, because Unity was being a bit finicky about my GameObject and refused to run its code for some reason. I used AI for troubleshooting the problem, but used none of its code.
Devlog 5 Changes Added code to allow for generation of different resource types Notes I have been on a long creative block, I can’t really seem to pick up my laptop and continue coding. It might have a bit to do with the fact that I was very busy the last week or so, so i didn’t have much energy and motivation left to program. I kind of forced myself to implement this feature which i half-assed earlier this week, it’s really simple but it’s a start at getting more motivated :) Next week I don’t have as many exams, pressure from DLRG tests and all that stuff, so I’ll have more time to code :]
Devlog 6 Changes Added Generator Production cost: Each generator can now require a certain amount of every resource Notes This is a rather small update, but I’m still trying to get back on my feet from my hiatus. More updates coming soon though, I’ve got some more motivation *By the way: If there’s anyone that would like to do some texture designing, I would be more than happy to accept your work! Credit is, of course, guaranteed (I’m working on a credit screen anyways ;p).
Devlog 7 Changes Added Modal Functionality Test Modal for debug purposes Alert Modal for important stuff (save on exit, etc.) Made HUD better for cross-device formatting Included a vertical layout group for all of the displayed currencies Notes It’s been a bit annoying, to say the least. First off, I wanted the Modals to be completely modular from the start, but I kept getting NullReference errors that didn’t make sense to me, so I had to make a script for each modal type and serialize the GameObjects and other stuff individually. It’s not as modular as I want, but what can ya do :p As for the HUD, I hope it works across devices, I sometimes code on my MacBook and sometimes on my PC, and the layout always breaks. I haven’t tested it yet, so I’ll be as surprised as you are if it doesn’t work.
Devlog 7.1 Changes Added Line Drawn to Parent node Will be used for hierarchical unlocking in the future Started work on the sidebar Notes Yeah, I’m a bit screwed. The current structure of my nodes is kind of weird; I have two types of nodes: Generators and Upgrades, each having two unique scripts. That’s good, because they have different logic. Thats not so good because they also share some logic. That’s horrific because they sometimes need to be accessed interchangeably. So here are a few things i could do: Merge both scripts into one, with an enum or something for the different node types Make a base which both nodes can inherit and use give up and cry option 3 sounds the easiest right now, my brain is so broken :’)
Devlog 8 Changes Added Node Info Text Box Shows Title, info about the node, and a button to buy with a set price Refactored Node Script Structure Notes I have been saved by the power of abstract classes! I unified the nodes into one abstract Node class, and made completion classes for Generators and Upgrades. Now it works by simply accessing the base Node class instead of not knowing whether the class is GeneratorNode or UpgradeNode. This makes it much easier. I am planning now to get some interesting node names from physics, like building up from quarks to larger structures, and i also am going to make some textures so the game doesnt look as shitty :p
Devlog 9 Changes Completed Node Info Box Header Description for the Node Effect, basically what the node does Button to buy the node Added 2 Starting nodes 1 Generator Node named “Fundamental Interaction” 1 Upgrade Node named “Strong Nuclear Force” AI was used in this timespan for troubleshooting max width for the Node info box Notes This was honestly very fun to work on. I’ve really started putting in more time for this project since I’m now under pressure to get it done by the end of summer break (2 weeks :p) I had little trouble figuring everything out, and thanks to some wonderful help from my buddy github copilot i was never truly stuck on anything in this timespan
Devlog 10 Changes Added 6 Nodes Added 3 Generator Nodes Added 3 Upgrade Nodes Implemented handling of locked/invisible nodes Locked nodes now won’t be able to be bought unless the parent node is bought at least once Nodes behind a locked node are invisible until the locked node is bought Notes This is fun! I’m working on the game mechanics and I’m not running into a lot of issues. All my bugs (except one) were caught pretty early on, so its a win in my book :] That brings me to the one bug, the bane of my existence… For some bizarre reason, clicking on my nodes doesn’t buy them regularly. Sometimes i need to click many many times, and in the log it doesn’t even register that I clicked the nodes! Maybe it has something to do with the epsilon value which i use to distinguish between dragging the screen and selecting a node, which currently evaluates epsilon before the mouseup event, so maybe i can switch it around and it’ll work. maybe… other than that I’m pretty happy with how it’s turning out. I am a bit worried about making textures, though, since they all look like some weird corporate/ai generated logo because i’m not good enough at art / graphic design
Devlog 11 - wow it finally looks okay Changes Added Icons Made NodeInfo Effect Text yellow AI was used to create the icons - This is temporary * until I figure out how to use Inkscape Notes Didn’t do a lot of programming, and unity refused to track my time for some reason, i did more like an hour, so its not a big deal
Devlog 12 Changes Added button colors for hover, select, and normal events made button in the Node Info modal uninteractible if node is locked fixed unlocked check for Upgrade Nodes
Devlog 13 - double parents :3 Changes Allowed multiple parents per node Fixed false dragging assertions Notes I’m almost done with the base game mechanics, after that it’s just textures, sounds, and gameplay and then I’m ready for my first ship!
Devlog 14 - I am an IDIOT Changes Recreated all SOs to fix their attached script Build 5 broken and 1 working prototype Remove quarks as a resource Add menu with exit button Notes I am the definition of stupid. I had a problem for 2 WHOLE HOURS, and the fix was simply putting the script for the SOs into its own file. I am my own worst enemy, because of my own stupidity. Well, the more you know.
Devlog 15 - Trying to make it look a bit better Changes Added Modal Background Moved Menu and Energy Display into Top Bar ** AI was used to generate an SVG for the modal background and to fix the positioning of the elements ** Notes I originally only shipped this project because I thought The event was going to end soon and I was gonna be busy with Haven, but now since the event has been extended, I figured I can continue working on it :)
Ships:
Ship 1 Hey guys! I’m proud to announce I’ve developed Pocket Universe to an acceptable degree - with more updates coming soon! Why did I publish so soon? I have a few projects coming up (haven-related) and I want to get this out of the way so I don’t have any unfinished business. What is this project anyways? Pocket Universe is an Interactive Incremental game, which focuses on building up our modern universe from scratch, meaning from the fundamental Interactions up all the way to Galaxies and Nebulae What’s Included in the game right now? I have 4 Generator nodes and 7 Upgrade nodes, with the framework built to add more quickly. Was AI used in this Project? Yes. I used a lot of AI for troubleshooting my final build, as I’ve never built for MacOS and the web before. I also used AI to generate the placeholder SVG images, which will be replaced once the game reaches an alpha / open beta stage....
|
1793004535.9274673
|
1793090935.9274673
|
|
24570
|
ZeroG-KIT by @otzpt | Stardance
|
otzpt
|
1
|
22.0
|
167
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-05T09:56:16Z", "hours": 22.0, "multiplier": 7.67, "payout": 167, "blessing": "neutral", "text": "ZeroG-KIT is a Windows CLI toolkit that includes 20 tools divided into five categories: system cleanup, utilities, security, network, and text/data tools. It is built in Python and automatically gains admin access when launched, so no GUI is required. One challenge was maintaining consistency across the 20 tools in five separate modules. Every tool that interacts with files, the network, or system calls needed solid error handling. This meant using try/except blocks to prevent crashes with bad input. During the project, I also reorganized the code from a single utilities.py into a proper module structure. It took time, but it made the codebase much cleaner. I’m proud of the final scope. What began as a few basic tools has grown into a toolkit I actually use. It now includes a process killer, a firewall check, AES encryption, a LAN scanner, all in one place. To test it, clone the repo, run pip install -r requirements.txt, and then run python main.py. It only works on Windows and will prompt for admin access on launch. Check out the network scanner, the encryption tool, or the process killer; those are the most interesting features.", "repo": "https://github.com/otzpt/ZeroG-Kit-", "demo": "https://github.com/otzpt/ZeroG-Kit-/releases/tag/realese1"}]...
|
[{"post_id": 19351, "ts": "202 [{"post_id": 19351, "ts": "2026-06-30T17:02:32Z", "hours": 2.1925, "text": "Three more tools went in, plus a structural change that’s probably the bigger story this time. The regex tester is straightforward, take a pattern, take a text, run re.findall(), wrapped in a try/except to catch re.error for bad patterns instead of crashing. Nothing fancy but it’s the kind of utility that earns its keep. Lorem ipsum generator was a chance to use random.choices() properly, a fixed word bank, pick k words at random with replacement, join with spaces. Simple, but it’s the first tool that leans on random instead of secrets. Process killer is the one I’m happiest with. It pulls every running process via psutil.process_iter(), sorts by memory usage, and prints a clean top-30 table. A second function, kill_process(), takes a process name, loops through and terminates matches, with try/except for NoSuchProcess and AccessDenied so it doesn’t blow up on protected system processes. Eventually want a GUI version of this with a red kill button next to the list, but that’s a later project, not blocking this one. The bigger change: split the single utilities.py into proper modules. utilities.py now holds system/image/QR/password/unit-convert/process tools, security.py has hashing, password checking, encryption, vuln scanning, and firewall checks, network.py has the network tools, and text_tools.py has base64, JSON, case conversion, regex, and lorem ipsum. main.py got restructured into category submenus (System, Utilities, Security, Network, Text & Data) instead of one flat list. Toolkit is sitting at 20 tools now and the codebase is a lot easier to navigate. Only thing left before this ships: menu polish, colorama for color, cleaner separators, and a version number in the header."}, {"post_id": 16828, "ts": "2026-06-27T10:08:50Z", "hours": 9.4711, "text": "Three more tools implemented and the toolkit is now at 17. Base64 encode/decode was the simplest one. Python has it built in with the base64 module, so it was mostly about building a clean submenu and making sure the output was readable instead of raw bytes. Same pattern as the encryption tool, encode() on the way in and decode() on the way out. The JSON formatter took a bit more. It reads a file path from the user, opens it, parses the JSON, and prints it back with 4-space indentation. The important part was wrapping the whole thing in a try/except — if the file doesn’t exist or the JSON is malformed it gives a clear error message instead of crashing. Something I’ve been doing more naturally now without thinking about it. Text case converter was probably the most fun. UPPER and lower are trivial, Title Case is one method call, but camelCase and snake_case required actually thinking through the logic, split by spaces, transform each word, join with different separators. Doing snake_case first made camelCase easier to see. 19 hours in. Still have regex tester, lorem ipsum, process killer, and menu polish left before this is ready to ship."}, {"post_id": 15757, "ts": "2026-06-25T17:07:13Z", "hours": 2.0628, "text": "The network section kept growing faster than I expected. After the ping checker and IP viewer, I added a port checker. You provide a host and a port, and it tries to connect with a 3-second timeout. It tells you if the port is open or closed. It’s simple, but I actually use this. It’s much quicker than Googling “how to check if port X is open” every time. I had to wrap it in try/except because if the port is closed, the connection throws an exception and crashes everything. I learned that the hard way. Building the IP scanner was the most satisfying part. It grabs your local IP and removes the last number to get the network prefix. Then, it pings every address from 1 to 255. The first version printed the full ping output for every single address, resulting in 255 walls of text. I fixed this by switching from os.system to os.popen, which allowed me to capture the output and show only the IPs that actually replied. I ran it on my network and discovered 5 devices. One of them I didn’t even know was connected. Now, I have 15 tools total. The network section is done."}, {"post_id": 15276, "ts": "2026-06-24T20:17:53Z", "hours": 3.2436, "text": "The security section is done, network tools are in, and the program now handles admin privileges on its own.The security section is done, network tools are in, and the program now handles admin privileges on its own. For the network side I added two things. A ping checker that sends 4 packets to whatever host you type in, and an IP viewer that shows your local IP using Python’s socket module and your public IP by calling curl ifconfig.me. Both are things I actually use all the time and was tired of opening a separate terminal for. The firewall assistant checks if all three Windows profiles are active and whether port 3389 is exposed. That last one matters — leaving Remote Desktop open is one of the most common security mistakes on Windows machines. The self-elevation part was probably the most satisfying to figure out. Some tools need admin rights to work properly, and instead of making the user remember to right-click and run as admin, the script checks on startup and relaunches itself elevated if needed. My machine has auto-UAC so I don’t see the popup, but it works. 14 tools now. Ready to submit."}, {"post_id": 15161, "ts": "2026-06-24T17:04:18Z", "hours": 3.8214, "text": "The toolkit kept growing faster than I expected. After the first batch of tools, I started getting into stuff I hadn’t touched before — cryptography, QR codes, and digging into Windows internals. First I added the QR code generator. Honestly easier than I thought — create a QRCode object, feed it data, save the image. Done in a few lines. Then I moved into the security section, which ended up being the most interesting part of this devlog. The password strength checker evaluates five criteria and returns a rating. The vulnerability scanner reads a .py file and flags dangerous patterns like eval(), exec(), and pickle.loads() — each one is a separate if so it catches everything, not just the first issue it finds. The encryption tool was the trickiest one. I used Python’s cryptography library with AES via Fernet. The user’s key gets hashed with SHA-256 to get a proper 32-byte key, then Fernet handles the rest. The annoying part was the output — Python was printing b’…’ around the encrypted string which broke the decryption input. Fixed it with .decode(). The firewall assistant uses netsh advfirewall to check if the firewall is active on all three Windows profiles and whether Remote Desktop port 3389 is open. Something I’ll actually use. 13 tools now. Security section is done."}, {"post_id": 14476, "ts": "2026-06-23T16:38:03Z", "hours": 1.1403, "text": "ZeroG-KIT started as a simple idea — instead of opening a bunch of different tools or googling converters every time, why not have everything in one place from the terminal? The name comes from zero gravity, no resistance, no friction, things just flow. I built the main menu first, a while loop with a bordered ASCII interface to keep it clean. From there I added the first batch of features. A temp file cleaner that wipes %TEMP%, Windows\\Temp, and Prefetch in one go, a clipboard viewer, and a batch image converter using Pillow that handles format issues like RGBA to JPG automatically. For the utilities side I added a password generator using Python’s secrets module for actual cryptographic randomness, a SHA-256 text hasher, and a full unit converter covering temperature, weight, length, and data size. Those live in a separate utilities.py to keep the main file readable. 6 out of 6 planned tools are working. Next up is system info and some polish."}]...
|
Title: ZeroG-KIT by @otzpt | Stardance
Devlogs:
Z Title: ZeroG-KIT by @otzpt | Stardance
Devlogs:
ZeroG-KIT started as a simple idea — instead of opening a bunch of different tools or googling converters every time, why not have everything in one place from the terminal? The name comes from zero gravity, no resistance, no friction, things just flow. I built the main menu first, a while loop with a bordered ASCII interface to keep it clean. From there I added the first batch of features. A temp file cleaner that wipes %TEMP%, Windows\Temp, and Prefetch in one go, a clipboard viewer, and a batch image converter using Pillow that handles format issues like RGBA to JPG automatically. For the utilities side I added a password generator using Python’s secrets module for actual cryptographic randomness, a SHA-256 text hasher, and a full unit converter covering temperature, weight, length, and data size. Those live in a separate utilities.py to keep the main file readable. 6 out of 6 planned tools are working. Next up is system info and some polish.
The toolkit kept growing faster than I expected. After the first batch of tools, I started getting into stuff I hadn’t touched before — cryptography, QR codes, and digging into Windows internals. First I added the QR code generator. Honestly easier than I thought — create a QRCode object, feed it data, save the image. Done in a few lines. Then I moved into the security section, which ended up being the most interesting part of this devlog. The password strength checker evaluates five criteria and returns a rating. The vulnerability scanner reads a .py file and flags dangerous patterns like eval(), exec(), and pickle.loads() — each one is a separate if so it catches everything, not just the first issue it finds. The encryption tool was the trickiest one. I used Python’s cryptography library with AES via Fernet. The user’s key gets hashed with SHA-256 to get a proper 32-byte key, then Fernet handles the rest. The annoying part was the output — Python was printing b’…’ around the encrypted string which broke the decryption input. Fixed it with .decode(). The firewall assistant uses netsh advfirewall to check if the firewall is active on all three Windows profiles and whether Remote Desktop port 3389 is open. Something I’ll actually use. 13 tools now. Security section is done.
The security section is done, network tools are in, and the program now handles admin privileges on its own.The security section is done, network tools are in, and the program now handles admin privileges on its own. For the network side I added two things. A ping checker that sends 4 packets to whatever host you type in, and an IP viewer that shows your local IP using Python’s socket module and your public IP by calling curl ifconfig.me. Both are things I actually use all the time and was tired of opening a separate terminal for. The firewall assistant checks if all three Windows profiles are active and whether port 3389 is exposed. That last one matters — leaving Remote Desktop open is one of the most common security mistakes on Windows machines. The self-elevation part was probably the most satisfying to figure out. Some tools need admin rights to work properly, and instead of making the user remember to right-click and run as admin, the script checks on startup and relaunches itself elevated if needed. My machine has auto-UAC so I don’t see the popup, but it works. 14 tools now. Ready to submit.
The network section kept growing faster than I expected. After the ping checker and IP viewer, I added a port checker. You provide a host and a port, and it tries to connect with a 3-second timeout. It tells you if the port is open or closed. It’s simple, but I actually use this. It’s much quicker than Googling “how to check if port X is open” every time. I had to wrap it in try/except because if the port is closed, the connection throws an exception and crashes everything. I learned that the hard way. Building the IP scanner was the most satisfying part. It grabs your local IP and removes the last number to get the network prefix. Then, it pings every address from 1 to 255. The first version printed the full ping output for every single address, resulting in 255 walls of text. I fixed this by switching from os.system to os.popen, which allowed me to capture the output and show only the IPs that actually replied. I ran it on my network and discovered 5 devices. One of them I didn’t even know was connected. Now, I have 15 tools total. The network section is done.
Three more tools implemented and the toolkit is now at 17. Base64 encode/decode was the simplest one. Python has it built in with the base64 module, so it was mostly about building a clean submenu and making sure the output was readable instead of raw bytes. Same pattern as the encryption tool, encode() on the way in and decode() on the way out. The JSON formatter took a bit more. It reads a file path from the user, opens it, parses the JSON, and prints it back with 4-space indentation. The important part was wrapping the whole thing in a try/except — if the file doesn’t exist or the JSON is malformed it gives a clear error message instead of crashing. Something I’ve been doing more naturally now without thinking about it. Text case converter was probably the most fun. UPPER and lower are trivial, Title Case is one method call, but camelCase and snake_case required actually thinking through the logic, split by spaces, transform each word, join with different separators. Doing snake_case first made camelCase easier to see. 19 hours in. Still have regex tester, lorem ipsum, process killer, and menu polish left before this is ready to ship.
Three more tools went in, plus a structural change that’s probably the bigger story this time. The regex tester is straightforward, take a pattern, take a text, run re.findall(), wrapped in a try/except to catch re.error for bad patterns instead of crashing. Nothing fancy but it’s the kind of utility that earns its keep. Lorem ipsum generator was a chance to use random.choices() properly, a fixed word bank, pick k words at random with replacement, join with spaces. Simple, but it’s the first tool that leans on random instead of secrets. Process killer is the one I’m happiest with. It pulls every running process via psutil.process_iter(), sorts by memory usage, and prints a clean top-30 table. A second function, kill_process(), takes a process name, loops through and terminates matches, with try/except for NoSuchProcess and AccessDenied so it doesn’t blow up on protected system processes. Eventually want a GUI version of this with a red kill button next to the list, but that’s a later project, not blocking this one. The bigger change: split the single utilities.py into proper modules. utilities.py now holds system/image/QR/password/unit-convert/process tools, security.py has hashing, password checking, encryption, vuln scanning, and firewall checks, network.py has the network tools, and text_tools.py has base64, JSON, case conversion, regex, and lorem ipsum. main.py got restructured into category submenus (System, Utilities, Security, Network, Text & Data) instead of one flat list. Toolkit is sitting at 20 tools now and the codebase is a lot easier to navigate. Only thing left before this ships: menu polish, colorama for color, cleaner separators, and a version number in the header.
Ships:
ZeroG-KIT is a Windows CLI toolkit that includes 20 tools divided into five categories: system cleanup, utilities, security, network, and text/data tools. It is built in Python and automatically gains admin access when launched, so no GUI is required. One challenge was maintaining consistency across the 20 tools in five separate modules. Every tool that interacts with files, the network, or system calls needed solid error handling. This meant using try/except blocks to prevent crashes with bad input. During the project, I also reorganized the code from a single utilities.py into a proper module structure. It took time, but it made the codebase much cleaner. I’m proud of the final scope. What began as a few basic tools has grown into a toolkit I actually use. It now includes a process killer, a firewall check, AES encryption, a LAN scanner, all in one place. To test it, clone the repo, run pip install -r requirements.txt, and then run python main.py. It only works on Windows and will prompt for admin access on launch. Check out the network scanner, the encryption tool, or the process killer; those are the most interesting features....
|
1793087744.8369567
|
1793174144.8369567
|
|
37847
|
Logic loom by @jegtaiwo | Stardance
|
jegtaiwo
|
1
|
21.63
|
167
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-26T03:07:55Z", "hours": 15.0, "multiplier": 11.13, "payout": 167, "blessing": "neutral", "text": "I built Logic Loom, an interactive web-based digital logic circuit simulator using HTML, CSS, and JavaScript. The project provides a modern interface for building logic circuits and serves as the foundation for a complete digital circuit simulator. What was challenging? The biggest challenge was organizing the project as it grew. I refactored the code by separating the HTML, CSS, and JavaScript into their own files, resolved Git merge conflicts, and implemented a customizable theme with localStorage so user preferences persist after refreshing the page. What are you proud of? I’m proud of how much I learned while building this project. Developing each feature incrementally—from the UI and theme customization to organizing the project structure—helped me strengthen my HTML, CSS, JavaScript, Git, and debugging skills. What should people know when testing it? This is an early MVP. The interface, project structure, and customization features are complete, while the circuit simulation engine is still under active development. Feedback is welcome as I continue improving Logic Loom.", "repo": "https://github.com/Zenskistudios/Logic-Loom", "demo": "https://logic-loom-delta.vercel.app/"}]...
|
[{"post_id": 47792, "ts": "202 [{"post_id": 47792, "ts": "2026-08-15T23:37:39Z", "hours": 3.9794, "text": "Another 8 hours spent working on ZenOS. ☯️ Today I mostly worked on making the desktop feel more like an actual OS instead of just a UI. I spent time working on the built-in apps and getting more of them working properly, including Finder, TextEdit, Notes, Paint, Calculator, Calendar, Terminal, Preview, and the other system apps. I also worked more on things like window management, the dock, Spotlight, notifications, keyboard shortcuts, and how the apps open and interact with the desktop. There’s still a lot that needs fixing and improving, but it’s starting to feel much more like an actual desktop environment now. 18 hours in so far. And I’m definitely not done yet. There’s still a lot more I want to add to ZenOS. ☯️ #ZenOS #DevLog #BuildInPublic #WebDevelopment #JavaScript #HTML #CSS"}, {"post_id": 37153, "ts": "2026-07-29T17:27:24Z", "hours": 1.8928, "text": "Worked on Logic Loom today. Added the NOR gate, fixed the logic so it evaluates correctly, and started implementing PNG export."}, {"post_id": 35599, "ts": "2026-07-27T04:06:23Z", "hours": 0.7542, "text": "Devlog #3 — Improving the README Today I rewrote the README for Logic Loom after receiving review feedback. I made it more personal by explaining why I built the project, what I’ve completed so far, and what I’m working on next. I also updated the documentation to better reflect my development journey and added a project screenshot. This reminded me that good documentation is just as important as writing good code. 🚀"}, {"post_id": 34818, "ts": "2026-07-25T20:30:53Z", "hours": 5.7986, "text": "Devlog #2 — Refining Logic Loom Today I focused on improving Logic Loom’s structure and user experience. Separated the HTML, CSS, and JavaScript into dedicated files. Added a customizable background theme with localStorage support. Improved the project structure and continued refining the interactive UI. Next, I’ll continue building the simulation features and enhancing the overall user experience."}, {"post_id": 33860, "ts": "2026-07-24T03:41:49Z", "hours": 9.2586, "text": "🚀 Starting Logic Loom Today I started building Logic Loom, a web-based digital logic circuit simulator using HTML, CSS, and JavaScript. The goal is to let users build and simulate digital circuits with gates like AND, OR, XOR, NAND, NOR, and NOT. Today’s progress 🎨 Designed the dark-themed UI. 🧰 Built the toolbox for adding logic gates. 🖥️ Created the top toolbar (Undo, Redo, Save, Load, Randomize, Clear Wires, Reset). 📱 Made the layout responsive. ⚡ Added animations and reusable UI components. 🏗️ Organized the project structure for the upcoming JavaScript logic. 📂 Pushed today’s progress to GitHub. Today’s focus was building a solid foundation. The UI is coming together, and next I’ll start implementing the JavaScript logic for dragging components, connecting wires, simulating circuits, and generating truth tables. Looking forward to bringing Logic Loom to life! 🚀"}]...
|
Title: Logic loom by @jegtaiwo | Stardance
Devlog Title: Logic loom by @jegtaiwo | Stardance
Devlogs:
🚀 Starting Logic Loom Today I started building Logic Loom, a web-based digital logic circuit simulator using HTML, CSS, and JavaScript. The goal is to let users build and simulate digital circuits with gates like AND, OR, XOR, NAND, NOR, and NOT. Today’s progress 🎨 Designed the dark-themed UI. 🧰 Built the toolbox for adding logic gates. 🖥️ Created the top toolbar (Undo, Redo, Save, Load, Randomize, Clear Wires, Reset). 📱 Made the layout responsive. ⚡ Added animations and reusable UI components. 🏗️ Organized the project structure for the upcoming JavaScript logic. 📂 Pushed today’s progress to GitHub. Today’s focus was building a solid foundation. The UI is coming together, and next I’ll start implementing the JavaScript logic for dragging components, connecting wires, simulating circuits, and generating truth tables. Looking forward to bringing Logic Loom to life! 🚀
Devlog #2 — Refining Logic Loom Today I focused on improving Logic Loom’s structure and user experience. Separated the HTML, CSS, and JavaScript into dedicated files. Added a customizable background theme with localStorage support. Improved the project structure and continued refining the interactive UI. Next, I’ll continue building the simulation features and enhancing the overall user experience.
Devlog #3 — Improving the README Today I rewrote the README for Logic Loom after receiving review feedback. I made it more personal by explaining why I built the project, what I’ve completed so far, and what I’m working on next. I also updated the documentation to better reflect my development journey and added a project screenshot. This reminded me that good documentation is just as important as writing good code. 🚀
Worked on Logic Loom today. Added the NOR gate, fixed the logic so it evaluates correctly, and started implementing PNG export.
Another 8 hours spent working on ZenOS. ☯️ Today I mostly worked on making the desktop feel more like an actual OS instead of just a UI. I spent time working on the built-in apps and getting more of them working properly, including Finder, TextEdit, Notes, Paint, Calculator, Calendar, Terminal, Preview, and the other system apps. I also worked more on things like window management, the dock, Spotlight, notifications, keyboard shortcuts, and how the apps open and interact with the desktop. There’s still a lot that needs fixing and improving, but it’s starting to feel much more like an actual desktop environment now. 18 hours in so far. And I’m definitely not done yet. There’s still a lot more I want to add to ZenOS. ☯️ #ZenOS #DevLog #BuildInPublic #WebDevelopment #JavaScript #HTML #CSS
Ships:
I built Logic Loom, an interactive web-based digital logic circuit simulator using HTML, CSS, and JavaScript. The project provides a modern interface for building logic circuits and serves as the foundation for a complete digital circuit simulator. What was challenging? The biggest challenge was organizing the project as it grew. I refactored the code by separating the HTML, CSS, and JavaScript into their own files, resolved Git merge conflicts, and implemented a customizable theme with localStorage so user preferences persist after refreshing the page. What are you proud of? I’m proud of how much I learned while building this project. Developing each feature incrementally—from the UI and theme customization to organizing the project structure—helped me strengthen my HTML, CSS, JavaScript, Git, and debugging skills. What should people know when testing it? This is an early MVP. The interface, project structure, and customization features are complete, while the circuit simulation engine is still under active development. Feedback is welcome as I continue improving Logic Loom....
|
1793098269.9918566
|
1793184669.9918566
|
|
47764
|
Tic Tac Toe by @weborbit1980 | Stardance
|
weborbit1980
|
1
|
13.72
|
167
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-22T13:17:33Z", "hours": 12.0, "multiplier": 13.88, "payout": 167, "blessing": "neutral", "text": "I built a Tic-Tac-Toe game with 4 different AI bots, each with its own difficulty level. The most challenging parts were building the Minimax AI and the reinforcement learning-based AI. I also spent a lot of time fixing bugs and handling different edge cases. The game has different levels, starting with an easy bot that makes random moves and going all the way to an impossible bot trained using reinforcement learning. Through this project, I learned a lot about reinforcement learning and solving problems with minimal use of external AI. It was a fun project to build, and now it’s finally ready to be shipped!", "repo": "https://github.com/vinitkumarsingh632-creator/tic-tac-toe", "demo": "https://tic-tac-toe-ten-gules-96.vercel.app/"}]...
|
[{"post_id": 52759, "ts": "202 [{"post_id": 52759, "ts": "2026-08-23T03:08:23Z", "hours": 0.2519, "text": "Fixed a bug inside my impossible level Bug: My AI got stuck on “AI is thinking…” Cause: I used grid instead of grids .Therefore, JS threw a reference error that grid is not defined and this error was stopping the function. Fix: I have replaced grid with grids . Lesson: When something appears stuck or not working as intended then check browser console first."}, {"post_id": 52446, "ts": "2026-08-22T15:56:09Z", "hours": 1.4703, "text": "I have changed my UI"}, {"post_id": 52293, "ts": "2026-08-22T12:33:20Z", "hours": 2.1506, "text": "Completed the Impossible Level Finally finished the impossible level using Q-learning. The bot learns from thousands of games and uses the trained Q-table to decide its moves instead of following fixed rules. And with that, the Tic Tac Toe AI journey is complete. I started with simpler random moves and gradually moved to rule-based AI, Minimax and finally reinforcement learning. Now it’s time to upload the project."}, {"post_id": 52182, "ts": "2026-08-22T08:39:52Z", "hours": 0.5275, "text": "Hard Level is finally completed I have upgraded the Tic-Tac-Toe AI from rule based decisions to Minimax. Instead of only looking at current board, the bot now stimulates possible future moves, considers how the player could respond, and chooses the move with the best possible outcome. **Next: Impossible Mode (Reinforcement Learning)"}, {"post_id": 52127, "ts": "2026-08-22T06:54:20Z", "hours": 3.2267, "text": "Finished the Medium Level bot I manually built the bot’s decision making logic. It can now look for winning move, block opponents winning move, prioritize the center and corner and fallback to a random move when there is no better option. Next: Hard Level (Minimax)"}, {"post_id": 51661, "ts": "2026-08-21T13:46:13Z", "hours": 1.3397, "text": "🤖Easy Mode is now complete! The bot makes random moves, with win and draw detection working properly. Next up: Medium Mode — making the bot actually think. 🧠"}, {"post_id": 51537, "ts": "2026-08-21T09:28:09Z", "hours": 1.9358, "text": "Added a Bot Selection area to the game! Players can now choose different AI difficulty levels — from random moves to an unbeatable Minimax AI. Next up: making each bot smarter 🚀"}, {"post_id": 46873, "ts": "2026-08-14T12:42:08Z", "hours": 2.8747, "text": "Tic Tac Toe — Entrance Screen I started building my tic-tac-toe game. I created a responsive screen with full-screen background, glass-style card, title and play button. Next: I will build the bot selection screen"}]...
|
Title: Tic Tac Toe by @weborbit1980 | Stardance
D Title: Tic Tac Toe by @weborbit1980 | Stardance
Devlogs:
Tic Tac Toe — Entrance Screen I started building my tic-tac-toe game. I created a responsive screen with full-screen background, glass-style card, title and play button. Next: I will build the bot selection screen
Added a Bot Selection area to the game! Players can now choose different AI difficulty levels — from random moves to an unbeatable Minimax AI. Next up: making each bot smarter 🚀
🤖Easy Mode is now complete! The bot makes random moves, with win and draw detection working properly. Next up: Medium Mode — making the bot actually think. 🧠
Finished the Medium Level bot I manually built the bot’s decision making logic. It can now look for winning move, block opponents winning move, prioritize the center and corner and fallback to a random move when there is no better option. Next: Hard Level (Minimax)
Hard Level is finally completed I have upgraded the Tic-Tac-Toe AI from rule based decisions to Minimax. Instead of only looking at current board, the bot now stimulates possible future moves, considers how the player could respond, and chooses the move with the best possible outcome. **Next: Impossible Mode (Reinforcement Learning)
Completed the Impossible Level Finally finished the impossible level using Q-learning. The bot learns from thousands of games and uses the trained Q-table to decide its moves instead of following fixed rules. And with that, the Tic Tac Toe AI journey is complete. I started with simpler random moves and gradually moved to rule-based AI, Minimax and finally reinforcement learning. Now it’s time to upload the project.
I have changed my UI
Fixed a bug inside my impossible level Bug: My AI got stuck on “AI is thinking…” Cause: I used grid instead of grids .Therefore, JS threw a reference error that grid is not defined and this error was stopping the function. Fix: I have replaced grid with grids . Lesson: When something appears stuck or not working as intended then check browser console first.
Ships:
I built a Tic-Tac-Toe game with 4 different AI bots, each with its own difficulty level. The most challenging parts were building the Minimax AI and the reinforcement learning-based AI. I also spent a lot of time fixing bugs and handling different edge cases. The game has different levels, starting with an easy bot that makes random moves and going all the way to an impossible bot trained using reinforcement learning. Through this project, I learned a lot about reinforcement learning and solving problems with minimal use of external AI. It was a fun project to build, and now it’s finally ready to be shipped!...
|
1793087787.8207953
|
1793174187.8207953
|
|
51763
|
heith.me by @aamosm | Stardance
|
aamosm
|
1
|
13.41
|
167
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T16:49:30Z", "hours": 13.0, "multiplier": 10.33, "payout": 167, "blessing": "neutral", "text": "heith.me - shipping This site started from a pretty simple motivation: I wanted the portfolio itself to be part of the work, not just a page containing it. I wanted to see how far I could push a plain HTML, CSS and JavaScript site without a framework or build system, while still making it work properly across different devices. The visual direction came from a lot of different sites and ideas I liked, but the final site ended up being its own thing. The site tries to break all molds while being simple as well, If not a portfolio it serves as a learning experience. So yeah, it’s done. heith.me", "repo": "https://github.com/aamosm/heith.me", "demo": "https://aamosm.github.io/heith.me/"}]...
|
[{"post_id": 56689, "ts": "202 [{"post_id": 56689, "ts": "2026-08-28T15:29:49Z", "hours": 0.4139, "text": "guys. just to remind you before you rate this work. the best experience of the site is ona good pc with hardware acceleration *on in your browser. for mobile and lower end computers it is very basic. it will give out the same info but the design is very basic. and the design is the main thing abt it. it is very basic on phones etc. as seen below. ofc the effort has still been put in to make it look good with a video and other features."}, {"post_id": 53834, "ts": "2026-08-24T15:07:46Z", "hours": 6.2108, "text": "devlog 03 - i think we’re done I think heith.me is done. Everything I wanted to implement is in now. The full site, the effects, the different device cases, the lite mode, the mobile mode, the interactions, the performance fallbacks, all of it. I’ve also finished the design process stuff I wanted to document, so the site isn’t just showing the final result. There is actually an explanation behind why I chose certain colours, fonts, layouts and effects. I wanted to build the whole thing as one process instead of constantly adding random features forever. So I’m stopping here. I don’t really plan on committing changes later down the line unless something is actually broken or I absolutely need to change something. I wanted this to be a finished piece, not another project that keeps getting new features until the original idea is gone. The only thing left is getting the domain. I’m waiting for the website domain grant to go through so I can finally buy the domain I designed this site around. So yeah. here guys. https://aamosm.github.io/heith.me/ ..the attached image is the portfolio page. also a note i wanted to add.. : this website has taken much longer than what is timed. the actual pen paper designs. getting together failed projects in other folders. designing in figma etc. was not tracked. This happens a lot with the projects i do in missions but somehow it affected a chunk of this one too. also i just realised this project has been listed as hardware???? its software. and i cant change it now. ill have to get help from support"}, {"post_id": 52258, "ts": "2026-08-22T11:15:17Z", "hours": 2.2228, "text": "devlog 02 - making the site work everywhere The site has changed quite a bit since the first version. the new look I’ve changed a lot of the actual interface and started pushing the visual direction much further. I also added the custom cursor from xenobiota . I really liked how something that small could change the whole feel of the site, so I wanted to try it here too. I’ve also been taking a lot of inspiration from Awwwards sites. One thing I’ve noticed is that the best sites aren’t just crazy because they have crazy effects. The really good ones make those effects work properly across devices. That became a pretty big focus for me. performance I added separate cases for different hardware. If a device has hardware acceleration, it can use the full experience. If it doesn’t, the site falls back to a lighter version so the effects don’t completely destroy performance. There’s also a separate lite mode and a mobile mode . I don’t want the site to only look good on the machine I built it on. small things I’ve also been making the interactions a bit more obvious, especially around muting and unmuting. There are still a lot of little things like this that I’m catching as I actually use the site instead of just looking at it. documenting the process I’m also working on something I want to add directly to the site: a breakdown of the design process. I want to explain why certain colours, fonts, layouts and effects were chosen instead of just putting the finished site in front of someone and leaving them to guess. The site is the portfolio piece, but the process behind making it should be part of it too."}, {"post_id": 50811, "ts": "2026-08-20T07:14:09Z", "hours": 5.0589, "text": "devlog 01 - starting the site I went into this with a pretty clear idea of what I wanted, I just didn’t expect the actual design to stay the same. The main references were: xenobiota rithunyaa acid crunch artem galekto I liked how all of them had their own identity instead of looking like a normal portfolio template. That was the main thing I wanted here too. Visually I was going for a Wes Anderson-ish kind of thing. Not copying it, more the controlled layouts, odd colour combinations and slightly theatrical feeling. The idea behind heith.me is also kinda recursive. The site itself is one of my portfolio pieces , and I’m going to be breaking it down in my portfolio too. landing I knew I wanted the opening to feel more like entering something than just seeing a hero section. I went through multiple versions of the opening before landing on the torn-paper idea. The paper tear gave me a way to make the video feel like it was underneath the page instead of just sitting in a box. I changed the tear quite a few times too, especially the shape and colours. The video is an old render of mine , and one of my first animation attempts. I didn’t really want to make a completely new video just for the site, so I reused it and messed with the presentation instead. I chopped it up, added the scanline treatment and made it more chaotic. It felt way more fitting than just putting the original render there normally. I also originally had the text arranged diagonally. It looked cool, but once everything was actually on the page it started fighting with the person in the centre, so I straightened it out. A lot of the site has basically been this. I have an idea, build it, realise it doesn’t fit as well as I thought, change it. The colours went through a lot of versions too. I have not even made a proper repo for this on github. or hosted it yet. The plan is to get the website to how i want it to look and finish it off in one commit. and ofc future changes will be committed, but i want something to show first. The entire thing is just pure html, css, and js. no frameworks."}]...
|
Title: heith.me by @aamosm | Stardance
Devlogs:
d Title: heith.me by @aamosm | Stardance
Devlogs:
devlog 01 - starting the site I went into this with a pretty clear idea of what I wanted, I just didn’t expect the actual design to stay the same. The main references were: xenobiota rithunyaa acid crunch artem galekto I liked how all of them had their own identity instead of looking like a normal portfolio template. That was the main thing I wanted here too. Visually I was going for a Wes Anderson-ish kind of thing. Not copying it, more the controlled layouts, odd colour combinations and slightly theatrical feeling. The idea behind heith.me is also kinda recursive. The site itself is one of my portfolio pieces , and I’m going to be breaking it down in my portfolio too. landing I knew I wanted the opening to feel more like entering something than just seeing a hero section. I went through multiple versions of the opening before landing on the torn-paper idea. The paper tear gave me a way to make the video feel like it was underneath the page instead of just sitting in a box. I changed the tear quite a few times too, especially the shape and colours. The video is an old render of mine , and one of my first animation attempts. I didn’t really want to make a completely new video just for the site, so I reused it and messed with the presentation instead. I chopped it up, added the scanline treatment and made it more chaotic. It felt way more fitting than just putting the original render there normally. I also originally had the text arranged diagonally. It looked cool, but once everything was actually on the page it started fighting with the person in the centre, so I straightened it out. A lot of the site has basically been this. I have an idea, build it, realise it doesn’t fit as well as I thought, change it. The colours went through a lot of versions too. I have not even made a proper repo for this on github. or hosted it yet. The plan is to get the website to how i want it to look and finish it off in one commit. and ofc future changes will be committed, but i want something to show first. The entire thing is just pure html, css, and js. no frameworks.
devlog 02 - making the site work everywhere The site has changed quite a bit since the first version. the new look I’ve changed a lot of the actual interface and started pushing the visual direction much further. I also added the custom cursor from xenobiota . I really liked how something that small could change the whole feel of the site, so I wanted to try it here too. I’ve also been taking a lot of inspiration from Awwwards sites. One thing I’ve noticed is that the best sites aren’t just crazy because they have crazy effects. The really good ones make those effects work properly across devices. That became a pretty big focus for me. performance I added separate cases for different hardware. If a device has hardware acceleration, it can use the full experience. If it doesn’t, the site falls back to a lighter version so the effects don’t completely destroy performance. There’s also a separate lite mode and a mobile mode . I don’t want the site to only look good on the machine I built it on. small things I’ve also been making the interactions a bit more obvious, especially around muting and unmuting. There are still a lot of little things like this that I’m catching as I actually use the site instead of just looking at it. documenting the process I’m also working on something I want to add directly to the site: a breakdown of the design process. I want to explain why certain colours, fonts, layouts and effects were chosen instead of just putting the finished site in front of someone and leaving them to guess. The site is the portfolio piece, but the process behind making it should be part of it too.
devlog 03 - i think we’re done I think heith.me is done. Everything I wanted to implement is in now. The full site, the effects, the different device cases, the lite mode, the mobile mode, the interactions, the performance fallbacks, all of it. I’ve also finished the design process stuff I wanted to document, so the site isn’t just showing the final result. There is actually an explanation behind why I chose certain colours, fonts, layouts and effects. I wanted to build the whole thing as one process instead of constantly adding random features forever. So I’m stopping here. I don’t really plan on committing changes later down the line unless something is actually broken or I absolutely need to change something. I wanted this to be a finished piece, not another project that keeps getting new features until the original idea is gone. The only thing left is getting the domain. I’m waiting for the website domain grant to go through so I can finally buy the domain I designed this site around. So yeah. here guys. https://aamosm.github.io/heith.me/ ..the attached image is the portfolio page. also a note i wanted to add.. : this website has taken much longer than what is timed. the actual pen paper designs. getting together failed projects in other folders. designing in figma etc. was not tracked. This happens a lot with the projects i do in missions but somehow it affected a chunk of this one too. also i just realised this project has been listed as hardware???? its software. and i cant change it now. ill have to get help from support
guys. just to remind you before you rate this work. the best experience of the site is ona good pc with hardware acceleration *on in your browser. for mobile and lower end computers it is very basic. it will give out the same info but the design is very basic. and the design is the main thing abt it. it is very basic on phones etc. as seen below. ofc the effort has still been put in to make it look good with a video and other features.
Ships:
heith.me - shipping This site started from a pretty simple motivation: I wanted the portfolio itself to be part of the work, not just a page containing it. I wanted to see how far I could push a plain HTML, CSS and JavaScript site without a framework or build system, while still making it work properly across different devices. The visual direction came from a lot of different sites and ideas I liked, but the final site ended up being its own thing. The site tries to break all molds while being simple as well, If not a portfolio it serves as a learning experience. So yeah, it’s done. heith.me...
|
1793123350.190546
|
1793209750.190546
|
|
11035
|
VarFooty by @sansarkarki | Stardance
|
sansarkarki
|
1
|
14.0
|
166
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-19T00:53:39Z", "hours": 14.0, "multiplier": 16.59, "payout": 166, "blessing": "neutral", "text": "I built VarFoot for myself. I’m an incoming freshman trying to make varsity soccer and I was training hard but had no actual system. Clips on Instagram, random YouTube drills, nothing tied together. I built the thing I needed. You go through a baseline assessment when you sign up and it scores you on a Varsity Readiness scale (0-100, where 40 is freshman level, 70 is JV, 100 means you’re ready). From there it builds a day-by-day plan based on your weakest areas and your tryout date. As you complete sessions, the remaining plan regenerates from where you actually are, so it’s not just a static calendar you make on day one and ignore. There’s also 50+ drills with coaching diagrams, a nutrition tab that pulls from real USDA food data (and uses your actual height/weight/age from onboarding to calculate targets), and an AI coach. The coach was the hardest part. It used to show a spinner and dump a response. I rebuilt it so it streams token by token through SSE, with a blinking cursor. It reads your last 6 messages and knows how long the session has been so it doesn’t repeat itself. Getting that working in Next.js took way longer than I thought. The thing I’m most proud of is the roadmap engine. It’s deterministic: takes your scores, sorts your gaps weakest-first, and builds a real plan toward your tryout date. Every time you finish a session it re-runs from your current scores. It actually moves. To try it: on the login page, hit “Explore demo athlete.” It loads my profile (Sansar Karki, incoming freshman, Varsity Readiness 70, biggest gap Speed and Stamina). TODAY shows what’s up next, PLAN shows the full roadmap, TRAIN lets you open a session and go drill by drill, FUEL is nutrition, COACH you can ask anything like “what should I work on this week.” You can also create an account and do the real onboarding if you want to put in your own info.", "repo": "https://github.com/jccollinsdev/varfoot", "demo": "https://varfoot.vercel.app/"}]...
|
[{"post_id": 5524, "ts": "2026 [{"post_id": 5524, "ts": "2026-06-09T10:29:26Z", "hours": 13.9303, "text": "VarFoot is an AI-powered football training PWA. You go through an onboarding assessment, it scores you across skill categories, builds you a personalized training roadmap, and an AI coach responds to you in real time based on your data. I started with a full PWA rebuild, onboarding wizard, 5 tabs, the whole foundation. Since then I have been stacking features on top. The big thing I just shipped is streaming AI coaching. Previously the coach would just spinner and dump a response. Now it uses SSE streaming through a Next.js route and renders the text chunk by chunk with a live blinking cursor, the same way ChatGPT types out responses. The coach also gets context from your last 6 messages and knows your session length so it stops making things up. Nutrition is now personalized. I implemented Mifflin-St Jeor with an activity multiplier so calorie and macro targets are calculated from your actual height, weight, age, and activity level collected during onboarding instead of being hardcoded. Onboarding now ends with an aha moment: a score ring reveals your overall level, your strongest skill, and what to focus on. Before it was just a done screen. I also added sessionStorage draft-saving so if you refresh mid-onboarding your progress is not lost. Drills have a stopwatch mode for sprint work and a fill timer ring that builds toward your varsity benchmark on hold drills. Gap analysis was redesigned as collapsible per-category accordions so you can drill into exactly where you are falling short. The UI is framed as a phone shell on desktop so it always looks like a real mobile app regardless of screen size. Still working on some edge cases in the roadmap logic and refining how the coach uses session context. You can check it out at varfoot.vercel.app Happy coding!"}]...
|
Title: VarFooty by @sansarkarki | Stardance
Devlo Title: VarFooty by @sansarkarki | Stardance
Devlogs:
VarFoot is an AI-powered football training PWA. You go through an onboarding assessment, it scores you across skill categories, builds you a personalized training roadmap, and an AI coach responds to you in real time based on your data. I started with a full PWA rebuild, onboarding wizard, 5 tabs, the whole foundation. Since then I have been stacking features on top. The big thing I just shipped is streaming AI coaching. Previously the coach would just spinner and dump a response. Now it uses SSE streaming through a Next.js route and renders the text chunk by chunk with a live blinking cursor, the same way ChatGPT types out responses. The coach also gets context from your last 6 messages and knows your session length so it stops making things up. Nutrition is now personalized. I implemented Mifflin-St Jeor with an activity multiplier so calorie and macro targets are calculated from your actual height, weight, age, and activity level collected during onboarding instead of being hardcoded. Onboarding now ends with an aha moment: a score ring reveals your overall level, your strongest skill, and what to focus on. Before it was just a done screen. I also added sessionStorage draft-saving so if you refresh mid-onboarding your progress is not lost. Drills have a stopwatch mode for sprint work and a fill timer ring that builds toward your varsity benchmark on hold drills. Gap analysis was redesigned as collapsible per-category accordions so you can drill into exactly where you are falling short. The UI is framed as a phone shell on desktop so it always looks like a real mobile app regardless of screen size. Still working on some edge cases in the roadmap logic and refining how the coach uses session context. You can check it out at varfoot.vercel.app Happy coding!
Ships:
I built VarFoot for myself. I’m an incoming freshman trying to make varsity soccer and I was training hard but had no actual system. Clips on Instagram, random YouTube drills, nothing tied together. I built the thing I needed. You go through a baseline assessment when you sign up and it scores you on a Varsity Readiness scale (0-100, where 40 is freshman level, 70 is JV, 100 means you’re ready). From there it builds a day-by-day plan based on your weakest areas and your tryout date. As you complete sessions, the remaining plan regenerates from where you actually are, so it’s not just a static calendar you make on day one and ignore. There’s also 50+ drills with coaching diagrams, a nutrition tab that pulls from real USDA food data (and uses your actual height/weight/age from onboarding to calculate targets), and an AI coach. The coach was the hardest part. It used to show a spinner and dump a response. I rebuilt it so it streams token by token through SSE, with a blinking cursor. It reads your last 6 messages and knows how long the session has been so it doesn’t repeat itself. Getting that working in Next.js took way longer than I thought. The thing I’m most proud of is the roadmap engine. It’s deterministic: takes your scores, sorts your gaps weakest-first, and builds a real plan toward your tryout date. Every time you finish a session it re-runs from your current scores. It actually moves. To try it: on the login page, hit “Explore demo athlete.” It loads my profile (Sansar Karki, incoming freshman, Varsity Readiness 70, biggest gap Speed and Stamina). TODAY shows what’s up next, PLAN shows the full roadmap, TRAIN lets you open a session and go drill by drill, FUEL is nutrition, COACH you can ask anything like “what should I work on this week.” You can also create an account and do the real onboarding if you want to put in your own info....
|
1793065862.1525385
|
1793152262.1525385
|
|
12619
|
G-Lens by @urged-st | Stardance
|
urged-st
|
1
|
13.0
|
166
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-27T12:09:23Z", "hours": 13.0, "multiplier": 13.25, "payout": 166, "blessing": "neutral", "text": "I have developed a functioning gravitational lensing simulator, where you can drag a massive object across a real deep field image and watch it warp the light from background galaxies in real time. You can adjust the mass of the lens and switch between presets simulating different object types: a simple lens, black hole, neutron star, and galaxy cluster, each with a distinct visual appearance. The most technically challenging part was the rendering architecture. Rather than handling everything in p5.js, I wrote a custom GLSL fragment shader running in WebGL to perform the actual light deflection, with p5.js running as a separate overlay layer for the UI and lens visuals. This was my first time writing a shader, and getting the aspect ratio correction and UV space deflection maths to work correctly took a long time. I also had to carefully calibrate the p5 lens visual to match the shader’s distortion radius, since they compute size differently. The landing overlay and info cards took a significant amount of time across many iterations because I wanted the design to feel polished and intentional rather than throwaway, and I’m especially happy with how the article view and card animations turned out. If the colour scheme and UI style look familiar, that’s intentional cause I’ve developed a consistent design language across my simulators, using the same typefaces and colour palette to give them a coherent identity. One of the main limitations is having to model everything as a perfect circle as I have never made a shader before this, but too complex and users won’t really enjoy it. Thanks for reading, hope you find this interesting.", "repo": "https://github.com/urged-st/gravi-lens-sim", "demo": "https://g-lens-sim.vercel.app"}]...
|
[{"post_id": 16860, "ts": "202 [{"post_id": 16860, "ts": "2026-06-27T11:21:32Z", "hours": 3.6564, "text": "Massive G-Lens update: Shipping NOW! Ok so I have been polishing this up now, making it look complete and just using trial and error to adjust the values for distortion cause there were quite a few annoying issues with that. Now, I present the finished G-Lens simulator. So, what have I done since my last devlog? I’ll split it into sections for you. UI: Added a dedicated side panel for stats, where there is a low opacity rectangle to create separation from the background image as it was hard to read the stats before. Added labels to everything where needed Changed the style of the “simple” preset from a solid blue circle to a circle with a blue glow, it’s nothing necessary but just looks better than a solid circle. Functionality: Added bg switcher Added auto scaling to each bg - this was necessary as different images had galaxies of different sizes, so the same massive black hole would look disproportionate if you used the same default scaling. So, I changed the scaling based on which image it is (no auto detect or anything but you see the point lol) Added a show/hide button for the lensing - previously this would prevent lens movement but there wasn’t really a reason to restrict this so I reverted it. Of course, we needed a reset button lol. Had to change distortion scaling with trial and error (this was the majority of 2hrs) and also modelling and remodelling the distort to match the scaling of the size of the lens. ^ the above changes aren’t chronological btw, but if you need it like that, my video devlogs on instagram are there. also I added the two new backgrounds as the famous Hubble Ultra Deep Fields from 2004 and 2014"}, {"post_id": 10179, "ts": "2026-06-16T19:51:25Z", "hours": 1.4928, "text": "PRESETS PRESETS PRESETS If you have seen my other sim, you’ll know I wasted no time on adding presets. Well I now have presets for this sim too to replicate lensing from different celestial bodies Also, the distortion was kinda eliptical, so I had to fix this as it would change due to different aspect ratios (now its circular). Added a mass slider, this had some layering issues before but thats not a problem now. I had to fix a bug where the field size and lens size increased at different rates (my stupid ahh used two different equations) so I just rewrote the equations I used for both. Overall a pretty productive 1hr 30mins, will probably add MORE UI features to make it feel more polished, change the bg image etc. Also probably a toggle lensing button. See you in the next one! all video devlogs are at https://instagram.com/urged.st"}, {"post_id": 8175, "ts": "2026-06-13T16:56:27Z", "hours": 4.1161, "text": "I FORGOT TO MAKE A LOG Okay so for the last 4 hours i’ve been fighting with my shader code as it didnt work for a long time, but it finally works. What was the issue? when using shaders on pngs, sometimes the edges and transparent areas render weird I thought my code was wrong, but in reality I just had to switch the image type. issue #2 was that the blue circle, which is the lens (had to make it obvious for debugging) was firstly having inverted movement to the actual distortion field, and secondly sometimes just not showing up. to fix the inverted movement, I just mapped the actual circle’s position to the field’s coords. (btw, the inversion was caused by webgl canvas and p5.js canvas having different coordinate systems) to fix it not showing up, that was just a layering issue. Overall, that 4 hour period was a rollercoaster and i’m glad its over. If you want to see how it broke (I didnt devlog this cause I was too preoccupied) there’s a video devlog on my instagram: https://www.instagram.com/urged.st/"}, {"post_id": 6855, "ts": "2026-06-11T14:42:13Z", "hours": 1.8492, "text": "Been toying around with distortion lately, I’m still torn between making a full on shader or just having distortion to look like lensing. Most of my time spent has been trial and error with different ways of distorting, from basic inward radial distortion to a more complex particle tracing distortion. I am gonna try and perfect this before moving on I think, because if I can’t get this right then in my opinion I have a long way to go before making a shader. added mass slider, larger masses = more gravity, so more lensing/distortion! made the source draggable, but I don’t know how useful this really is lol (maybe easier to centre, to see einstein rings?)"}, {"post_id": 5916, "ts": "2026-06-09T21:52:58Z", "hours": 1.4789, "text": "G-Lens Begins! This is, to say the least, gonna be hard. I have a rough idea of what I’m gonna do, but really i have never made a shader before or used GLSL. Luckily I decided not to do this today as I was already tired and decided to make a prototype which rather than solving the lens equation, simply uses a radial distort to… well distort the space around it. I did initially try distort a point mass (yeah my bad) so obviously had to switch it to a bunch of particles densely packed. This actually shows a distort, even if its not accurate to astrophysics (this isn’t the goal for today) Next steps? think about how i will integrate actual physics into this, and read MORE research papers."}]...
|
Title: G-Lens by @urged-st | Stardance
Devlogs:
G Title: G-Lens by @urged-st | Stardance
Devlogs:
G-Lens Begins! This is, to say the least, gonna be hard. I have a rough idea of what I’m gonna do, but really i have never made a shader before or used GLSL. Luckily I decided not to do this today as I was already tired and decided to make a prototype which rather than solving the lens equation, simply uses a radial distort to… well distort the space around it. I did initially try distort a point mass (yeah my bad) so obviously had to switch it to a bunch of particles densely packed. This actually shows a distort, even if its not accurate to astrophysics (this isn’t the goal for today) Next steps? think about how i will integrate actual physics into this, and read MORE research papers.
Been toying around with distortion lately, I’m still torn between making a full on shader or just having distortion to look like lensing. Most of my time spent has been trial and error with different ways of distorting, from basic inward radial distortion to a more complex particle tracing distortion. I am gonna try and perfect this before moving on I think, because if I can’t get this right then in my opinion I have a long way to go before making a shader. added mass slider, larger masses = more gravity, so more lensing/distortion! made the source draggable, but I don’t know how useful this really is lol (maybe easier to centre, to see einstein rings?)
I FORGOT TO MAKE A LOG Okay so for the last 4 hours i’ve been fighting with my shader code as it didnt work for a long time, but it finally works. What was the issue? when using shaders on pngs, sometimes the edges and transparent areas render weird I thought my code was wrong, but in reality I just had to switch the image type. issue #2 was that the blue circle, which is the lens (had to make it obvious for debugging) was firstly having inverted movement to the actual distortion field, and secondly sometimes just not showing up. to fix the inverted movement, I just mapped the actual circle’s position to the field’s coords. (btw, the inversion was caused by webgl canvas and p5.js canvas having different coordinate systems) to fix it not showing up, that was just a layering issue. Overall, that 4 hour period was a rollercoaster and i’m glad its over. If you want to see how it broke (I didnt devlog this cause I was too preoccupied) there’s a video devlog on my instagram: https://www.instagram.com/urged.st/
PRESETS PRESETS PRESETS If you have seen my other sim, you’ll know I wasted no time on adding presets. Well I now have presets for this sim too to replicate lensing from different celestial bodies Also, the distortion was kinda eliptical, so I had to fix this as it would change due to different aspect ratios (now its circular). Added a mass slider, this had some layering issues before but thats not a problem now. I had to fix a bug where the field size and lens size increased at different rates (my stupid ahh used two different equations) so I just rewrote the equations I used for both. Overall a pretty productive 1hr 30mins, will probably add MORE UI features to make it feel more polished, change the bg image etc. Also probably a toggle lensing button. See you in the next one! all video devlogs are at https://instagram.com/urged.st
Massive G-Lens update: Shipping NOW! Ok so I have been polishing this up now, making it look complete and just using trial and error to adjust the values for distortion cause there were quite a few annoying issues with that. Now, I present the finished G-Lens simulator. So, what have I done since my last devlog? I’ll split it into sections for you. UI: Added a dedicated side panel for stats, where there is a low opacity rectangle to create separation from the background image as it was hard to read the stats before. Added labels to everything where needed Changed the style of the “simple” preset from a solid blue circle to a circle with a blue glow, it’s nothing necessary but just looks better than a solid circle. Functionality: Added bg switcher Added auto scaling to each bg - this was necessary as different images had galaxies of different sizes, so the same massive black hole would look disproportionate if you used the same default scaling. So, I changed the scaling based on which image it is (no auto detect or anything but you see the point lol) Added a show/hide button for the lensing - previously this would prevent lens movement but there wasn’t really a reason to restrict this so I reverted it. Of course, we needed a reset button lol. Had to change distortion scaling with trial and error (this was the majority of 2hrs) and also modelling and remodelling the distort to match the scaling of the size of the lens. ^ the above changes aren’t chronological btw, but if you need it like that, my video devlogs on instagram are there. also I added the two new backgrounds as the famous Hubble Ultra Deep Fields from 2004 and 2014
Ships:
I have developed a functioning gravitational lensing simulator, where you can drag a massive object across a real deep field image and watch it warp the light from background galaxies in real time. You can adjust the mass of the lens and switch between presets simulating different object types: a simple lens, black hole, neutron star, and galaxy cluster, each with a distinct visual appearance. The most technically challenging part was the rendering architecture. Rather than handling everything in p5.js, I wrote a custom GLSL fragment shader running in WebGL to perform the actual light deflection, with p5.js running as a separate overlay layer for the UI and lens visuals. This was my first time writing a shader, and getting the aspect ratio correction and UV space deflection maths to work correctly took a long time. I also had to carefully calibrate the p5 lens visual to match the shader’s distortion radius, since they compute size differently. The landing overlay and info cards took a significant amount of time across many iterations because I wanted the design to feel polished and intentional rather than throwaway, and I’m especially happy with how the article view and card animations turned out. If the colour scheme and UI style look familiar, that’s intentional cause I’ve developed a consistent design language across my simulators, using the same typefaces and colour palette to give them a coherent identity. One of the main limitations is having to model everything as a perfect circle as I have never made a shader before this, but too complex and users won’t really enjoy it. Thanks for reading, hope you find this interesting....
|
1792878741.7895591
|
1793742741.7895591
|
|
36007
|
virtual scale by @anchith | Stardance
|
anchith
|
1
|
19.0
|
166
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T10:25:25Z", "hours": 19.0, "multiplier": 8.61, "payout": 166, "blessing": "neutral", "text": "virtual-scale I made a simple Java tool for visualizing real world measurements on your screen. In the project, you can draw lines and view their real world measurements in various units. You can also import images, and then define a known measurement to accurately measure other parts of the image. The project has a ScaleLibrary tool in the backend, that has all the conversion and measurement tools. Creating this was an interesting but also challenging experience and I got to learn about displays, DPI, and more. I made the entire project in Java, with no external dependencies or libraries.", "repo": "https://github.com/koino2/virtual-scale", "demo": "https://github.com/koino2/virtual-scale/releases/tag/release"}]...
|
[{"post_id": 71694, "ts": "202 [{"post_id": 71694, "ts": "2026-09-21T10:15:36Z", "hours": 0.8969, "text": "shipping time! I did some final last minute changes to polish everything up, like fixing a grid bug, making a unit parser thing for measurements, and a bunch more. Then I built it into a jar and now I’m going to ship!"}, {"post_id": 71616, "ts": "2026-09-21T05:17:08Z", "hours": 7.4208, "text": "GUIs and other stuff The main thing that I did in these 7 hours was making a graphical interface for the app. I first designed the UI in the Netbeans Form Editor because it’s really easy to make it in there, then I exported all the code generated by that and then spent a lot of time wiring everything up and making the GUI stuff actually do something. It has a bunch of new features and settings like: Snapping Line colour Units Zoom Image stuff which took very long to implement because it needed a lot of backend stuff I also briefly overwrote a bunch of code and accidentally deleted the source folder but I managed to retrieve everything from the recycle bin I then made another GUI for the initialization screen - where you choose the calibration method (manual or reported) in a similar way. Did a lot of backend work as well, like changing how the image system calibrates stuff. Also I made a nice readme and I’m going to ship soon!"}, {"post_id": 69122, "ts": "2026-09-16T12:53:35Z", "hours": 2.4922, "text": "more improvements I added a file selection screen to choose which image to view. There is also a nice grid background now which took way too long woa you can put emojis now? I also made a bunch of other small QoL improvements too, and this is how it looks now! (not much of a visual difference compared to before )"}, {"post_id": 66074, "ts": "2026-09-11T17:17:54Z", "hours": 4.9775, "text": "Image measurement! I implemented another system where you can import an image, then draw a line and say how long that line is. Then the whole image stuff will be scaled proportional to that and then you can measure it and stuff! I also added a bunch of other small things like improving the scale library backend, adding camera controls, etc. It’s kind of barebones rn and this took way too long anyway, I’m going to add some menus/interfaces to tie everything together and some other QoL next ig. Here’s a picture of a maze where I selected the big horizontal line and defined it as 170mm, and there’s some measurements on it."}, {"post_id": 60158, "ts": "2026-09-02T10:50:28Z", "hours": 1.9089, "text": "Measure stuff I implemented some basic drawing tools with swing and now you can click and draw lines with real measurements displayed. Also there are some snapping features and other QoL stuff."}, {"post_id": 55594, "ts": "2026-08-27T15:28:11Z", "hours": 1.6364, "text": "virtual-scale I’m making a virtual scale! When modelling or designing stuff, it’s very easy to lose a sense of how big a measurement actually is. I constantly find myself grabbing a ruler just to visualize a distance. So I’m making a little virtual ruler that displays real-world measurements directly on your screen. It uses your screen’s dots-per-inch count (basically how many pixels are in an inch of the screen) to show accurate distances. Today, I worked on the actual scale library/backend of the app and worked on the scale calibration, unit conversion and scale systems."}]...
|
Title: virtual scale by @anchith | Stardance
Devl Title: virtual scale by @anchith | Stardance
Devlogs:
virtual-scale I’m making a virtual scale! When modelling or designing stuff, it’s very easy to lose a sense of how big a measurement actually is. I constantly find myself grabbing a ruler just to visualize a distance. So I’m making a little virtual ruler that displays real-world measurements directly on your screen. It uses your screen’s dots-per-inch count (basically how many pixels are in an inch of the screen) to show accurate distances. Today, I worked on the actual scale library/backend of the app and worked on the scale calibration, unit conversion and scale systems.
Measure stuff I implemented some basic drawing tools with swing and now you can click and draw lines with real measurements displayed. Also there are some snapping features and other QoL stuff.
Image measurement! I implemented another system where you can import an image, then draw a line and say how long that line is. Then the whole image stuff will be scaled proportional to that and then you can measure it and stuff! I also added a bunch of other small things like improving the scale library backend, adding camera controls, etc. It’s kind of barebones rn and this took way too long anyway, I’m going to add some menus/interfaces to tie everything together and some other QoL next ig. Here’s a picture of a maze where I selected the big horizontal line and defined it as 170mm, and there’s some measurements on it.
more improvements I added a file selection screen to choose which image to view. There is also a nice grid background now which took way too long woa you can put emojis now? I also made a bunch of other small QoL improvements too, and this is how it looks now! (not much of a visual difference compared to before )
GUIs and other stuff The main thing that I did in these 7 hours was making a graphical interface for the app. I first designed the UI in the Netbeans Form Editor because it’s really easy to make it in there, then I exported all the code generated by that and then spent a lot of time wiring everything up and making the GUI stuff actually do something. It has a bunch of new features and settings like: Snapping Line colour Units Zoom Image stuff which took very long to implement because it needed a lot of backend stuff I also briefly overwrote a bunch of code and accidentally deleted the source folder but I managed to retrieve everything from the recycle bin I then made another GUI for the initialization screen - where you choose the calibration method (manual or reported) in a similar way. Did a lot of backend work as well, like changing how the image system calibrates stuff. Also I made a nice readme and I’m going to ship soon!
shipping time! I did some final last minute changes to polish everything up, like fixing a grid bug, making a unit parser thing for measurements, and a bunch more. Then I built it into a jar and now I’m going to ship!
Ships:
virtual-scale I made a simple Java tool for visualizing real world measurements on your screen. In the project, you can draw lines and view their real world measurements in various units. You can also import images, and then define a known measurement to accurately measure other parts of the image. The project has a ScaleLibrary tool in the backend, that has all the conversion and measurement tools. Creating this was an interesting but also challenging experience and I got to learn about displays, DPI, and more. I made the entire project in Java, with no external dependencies or libraries....
|
1793005030.492505
|
1793091430.492505
|
|
41257
|
Recess game by @nikhil_nagaraj | Stardance
|
nikhil_nagaraj
|
1
|
45.0
|
166
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T19:50:53Z", "hours": 45.0, "multiplier": 3.88, "payout": 166, "blessing": "neutral", "text": "I made a recess-simulating game inspired by the recess we used to have in elementary school. It was tricky to figure out enemy AI.", "repo": "https://github.com/Infernodude777/4square", "demo": "https://infernodude777.github.io/4square/"}]...
|
[{"post_id": 46509, "ts": "202 [{"post_id": 46509, "ts": "2026-08-13T19:46:35Z", "hours": 3.9958, "text": "added finishing touches"}, {"post_id": 46007, "ts": "2026-08-12T21:22:17Z", "hours": 1.8328, "text": "almost done, just finishing up and fixing some bugs"}, {"post_id": 45941, "ts": "2026-08-12T19:07:22Z", "hours": 3.6092, "text": "added functional side stuff like a swing and bench and minor tweaks and improvements"}, {"post_id": 45559, "ts": "2026-08-12T04:13:26Z", "hours": 9.4856, "text": "added MANY more game modes (dodgeball, tag, gaga ball, wallball, etc"}, {"post_id": 44996, "ts": "2026-08-11T04:03:02Z", "hours": 1.5519, "text": "minor improvements"}, {"post_id": 39553, "ts": "2026-08-02T16:14:02Z", "hours": 12.3347, "text": "Massive overhaul incoming"}, {"post_id": 37661, "ts": "2026-07-30T15:35:25Z", "hours": 2.5336, "text": "Added a new mode (tetherball). I plan to add more recess modes like wallball and tag in the future"}, {"post_id": 37032, "ts": "2026-07-29T14:35:05Z", "hours": 6.8764, "text": "finished a base version of the 4 square game"}, {"post_id": 36859, "ts": "2026-07-29T05:57:37Z", "hours": 3.025, "text": "Set up a basic version of the game in vscode and made an MVP version of the game. I am using tsx for the root game to challenge myself and also to help me learn typescript."}]...
|
Title: Recess game by @nikhil_nagaraj | Stardance
Title: Recess game by @nikhil_nagaraj | Stardance
Devlogs:
Set up a basic version of the game in vscode and made an MVP version of the game. I am using tsx for the root game to challenge myself and also to help me learn typescript.
finished a base version of the 4 square game
Added a new mode (tetherball). I plan to add more recess modes like wallball and tag in the future
Massive overhaul incoming
minor improvements
added MANY more game modes (dodgeball, tag, gaga ball, wallball, etc
added functional side stuff like a swing and bench and minor tweaks and improvements
almost done, just finishing up and fixing some bugs
added finishing touches
Ships:
I made a recess-simulating game inspired by the recess we used to have in elementary school. It was tricky to figure out enemy AI....
|
1792878549.9625595
|
1793742549.9625595
|
|
53935
|
Solar System Simulation Catalogue by @miry | Stard Solar System Simulation Catalogue by @miry | Stardance...
|
miry
|
1
|
14.0
|
166
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-05T11:46:37Z", "hours": 14.0, "multiplier": 11.55, "payout": 166, "blessing": "neutral", "text": "I made a simulation of every known solar system so far. I saw a video on youtube showing people how to make a basic simulation of our solar system using pygame and real physics, and I enjoyed the video so much I decided to take it a step further and make simulations of every system we know of. What was most challenging honestly was understanding how to merge physics with code, and I did have a hard time understanding how the data is structured in the Open Exoplanet Catalogue. It’s been a while since I used python but now I can say I have the hang of it again!", "repo": "https://github.com/melsamad/planet_simulation", "demo": "https://melsamad.github.io/planet_simulation/"}]...
|
[{"post_id": 62097, "ts": "202 [{"post_id": 62097, "ts": "2026-09-05T10:48:02Z", "hours": 1.4281, "text": "After almost 15 hours I FINALLY have a working simulation of every single solar system we know of so far! Honestly the last hour was the most GRUESOME because I faced sooo many errors when trying to deploy to web I had to change a lot of stuff in code but here we are! You can run this in the web or locally on your computer and you can also edit the project to use other exoplanet catalogues, such as NASA’s Exoplanet Archive. When the Nancy Grace Roman Space Telescope stars sending us back data, I will definitely be looking forward to upgrading this project!!"}, {"post_id": 61819, "ts": "2026-09-04T22:13:14Z", "hours": 5.1161, "text": "I finally have a working simulation of every single solar system discovered according to the Open Exoplanet Catalogue, a project I did in honor of the successful launch of the Nancy Grace Roman Space Telescope! I need to deploy it on the web now which honestly is the biggest headache I’ve had in coding why is pygame like this… anyway, I also had to download the data in an xml file instead of retrieving it from github because of pygame complications bla bla bla but im SO CLOSE to finally deploying this project and moving on to the next. Key features include browsing and filtering through all solar systems (and checking out ours) and then clicking on one and watching a real physics simulation of planets orbiting their star take place. interesting way of seeing the scale of our universe maybe? Its currently 1am and I kinda broke the code (again) so I will show final results with simulations and everything tomorrow, here are my beautiful errors till now."}, {"post_id": 61158, "ts": "2026-09-03T22:43:57Z", "hours": 1.0842, "text": "I’m finally heading towards a SUPER exciting part. So now whenever you press on a planet you get some basic info about it retrieved from the solar system Open Data API as shown below. After taking care of that, I did some research on some APIs because I want to make a simulation of EVERY solar system known so far (and make the simulation update according to new discoveries). Of course my first choice was NASA’s Exoplanet Archive, but apparently they’re updating it or something and the links weren’t even opening so I opted for the Open Exoplanet Catalogue which is just as amazing! You can check it out here you don’t even need an API key: https://github.com/OpenExoplanetCatalogue/open_exoplanet_catalogue/tree/master . Tomorrow I will incorporate a search bar and allow users to explore other solar systems. It’s not going to look super pretty or stunningly 3D but it will be simulations of real solar systems with actual facts and that’s what matters!"}, {"post_id": 60786, "ts": "2026-09-03T11:42:55Z", "hours": 1.5731, "text": "Fixed the laggy orbits and now you get images of the planets orbiting the sun instead of just colored circles! This was actually just a stupid mistake with the frames when I was half awake. ANDD… I incorporated the OpenData Solar System API!! Now, everytime you press on any object, it’s going to print its info in the terminal. Next time, I will make it display a screen with selected info."}, {"post_id": 60510, "ts": "2026-09-02T21:57:14Z", "hours": 0.6956, "text": "I accidentally broke it partially by trying to render images for planets instead of circles which made the orbits extremely laggy. I mean I was also coding while barely being able to keep my eyes open so either I’ll fix this or drop the idea. On the bright side, I did find a great free API to upload some info about the planets and other celestial objects to my simulator. I have this idea of making like a dashboard where you can visit many actual solar systems other than ours!"}, {"post_id": 59180, "ts": "2026-08-31T20:31:10Z", "hours": 1.1375, "text": "You can now adjust the timeframe to your liking and I added Pluto! Now I’m really starting to get the hang of this (at least for this project) and I’m having so much fun adding customizable features. I think next time instead of just circles I’ll render an image of each planet and integrate an API to get the current weather data for each. stay tuned!"}, {"post_id": 59010, "ts": "2026-08-31T16:18:55Z", "hours": 1.0719, "text": "Added all the planets and created a zoom in and zoom out functionality, enabling users to see the distant gas giants and their orbits at proportional scale."}, {"post_id": 58760, "ts": "2026-08-31T10:08:03Z", "hours": 1.7386, "text": "A very basic model completed! So I got the first 4 planets to move around the sun. Now, this was a beginner’s kind of project, so now I want to make it my own. I added a title and the Moon moving around the Earth (which doesn’t exactly look great). Next, I want to add the entire SOLAR SYSTEM (or at least as much as I can of it). I’m going to create some in and out zooming panels, the moons of other planets and I really want to implement some NASA api in some way"}, {"post_id": 54075, "ts": "2026-08-24T20:57:01Z", "hours": 0.4833, "text": "Starting with the first 4 planets! So I’m a bit new to pygame (and it’s been a while since my last python project) so for the first step of this project I learned how pygame works through a youtube vid and set up the first four planets, once I get comfortable with it I’ll move solo. This simulation uses real physics and I plan on connecting NASA apis, moons and overlooked objects of our solar system and make it like a museum."}]...
|
Title: Solar System Simulation Catalogue by @miry Title: Solar System Simulation Catalogue by @miry | Stardance
Devlogs:
Starting with the first 4 planets! So I’m a bit new to pygame (and it’s been a while since my last python project) so for the first step of this project I learned how pygame works through a youtube vid and set up the first four planets, once I get comfortable with it I’ll move solo. This simulation uses real physics and I plan on connecting NASA apis, moons and overlooked objects of our solar system and make it like a museum.
A very basic model completed! So I got the first 4 planets to move around the sun. Now, this was a beginner’s kind of project, so now I want to make it my own. I added a title and the Moon moving around the Earth (which doesn’t exactly look great). Next, I want to add the entire SOLAR SYSTEM (or at least as much as I can of it). I’m going to create some in and out zooming panels, the moons of other planets and I really want to implement some NASA api in some way
Added all the planets and created a zoom in and zoom out functionality, enabling users to see the distant gas giants and their orbits at proportional scale.
You can now adjust the timeframe to your liking and I added Pluto! Now I’m really starting to get the hang of this (at least for this project) and I’m having so much fun adding customizable features. I think next time instead of just circles I’ll render an image of each planet and integrate an API to get the current weather data for each. stay tuned!
I accidentally broke it partially by trying to render images for planets instead of circles which made the orbits extremely laggy. I mean I was also coding while barely being able to keep my eyes open so either I’ll fix this or drop the idea. On the bright side, I did find a great free API to upload some info about the planets and other celestial objects to my simulator. I have this idea of making like a dashboard where you can visit many actual solar systems other than ours!
Fixed the laggy orbits and now you get images of the planets orbiting the sun instead of just colored circles! This was actually just a stupid mistake with the frames when I was half awake. ANDD… I incorporated the OpenData Solar System API!! Now, everytime you press on any object, it’s going to print its info in the terminal. Next time, I will make it display a screen with selected info.
I’m finally heading towards a SUPER exciting part. So now whenever you press on a planet you get some basic info about it retrieved from the solar system Open Data API as shown below. After taking care of that, I did some research on some APIs because I want to make a simulation of EVERY solar system known so far (and make the simulation update according to new discoveries). Of course my first choice was NASA’s Exoplanet Archive, but apparently they’re updating it or something and the links weren’t even opening so I opted for the Open Exoplanet Catalogue which is just as amazing! You can check it out here you don’t even need an API key: https://github.com/OpenExoplanetCatalogue/open_exoplanet_catalogue/tree/master . Tomorrow I will incorporate a search bar and allow users to explore other solar systems. It’s not going to look super pretty or stunningly 3D but it will be simulations of real solar systems with actual facts and that’s what matters!
I finally have a working simulation of every single solar system discovered according to the Open Exoplanet Catalogue, a project I did in honor of the successful launch of the Nancy Grace Roman Space Telescope! I need to deploy it on the web now which honestly is the biggest headache I’ve had in coding why is pygame like this… anyway, I also had to download the data in an xml file instead of retrieving it from github because of pygame complications bla bla bla but im SO CLOSE to finally deploying this project and moving on to the next. Key features include browsing and filtering through all solar systems (and checking out ours) and then clicking on one and watching a real physics simulation of planets orbiting their star take place. interesting way of seeing the scale of our universe maybe? Its currently 1am and I kinda broke the code (again) so I will show final results with simulations and everything tomorrow, here are my beautiful errors till now.
After almost 15 hours I FINALLY have a working simulation of every single solar system we know of so far! Honestly the last hour was the most GRUESOME because I faced sooo many errors when trying to deploy to web I had to change a lot of stuff in code but here we are! You can run this in the web or locally on your computer and you can also edit the project to use other exoplanet catalogues, such as NASA’s Exoplanet Archive. When the Nancy Grace Roman Space Telescope stars sending us back data, I will definitely be looking forward to upgrading this project!!
Ships:
I made a simulation of every known solar system so far. I saw a video on youtube showing people how to make a basic simulation of our solar system using pygame and real physics, and I enjoyed the video so much I decided to take it a step further and make simulations of every system we know of. What was most challenging honestly was understanding how to merge physics with code, and I did have a hard time understanding how the data is structured in the Open Exoplanet Catalogue. It’s been a while since I used python but now I can say I have the hang of it again!...
|
1793101926.463758
|
1793188326.463758
|
|
2455
|
FRC Programming (Raycast Extension) by @pranay | S FRC Programming (Raycast Extension) by @pranay | Stardance...
|
pranay
|
1
|
10.0
|
165
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T00:50:10Z", "hours": 10.0, "multiplier": 17.25, "payout": 165, "blessing": "neutral", "text": "Hello everyone! I built a Raycast extension built for FRC (FIRST Robotics Competition) programmers. It basically has a couple of commands for looking up documentation and converting common FRC-specific units right inside Raycast instead of having a bunch of tabs open to do the same thing. If you haven’t used it, Raycast is a super fast keyboard launcher app where you can search, run commands, and build little custom extensions that can be then be used really easily on your computer. FRC is a robotics competition where high school teams build and program robots to compete in a game that changes every year, and WPILib is the software library most FRC teams use to write their robot’s code. What The Extension Does The extension has the following features: searchable WPILib Java and C++ documentation, a quick link to WPILib’s status light reference page for decoding hardware indicator lights, and a unit converter for things like velocity, angular velocity, torque, and force that come up sometimes when writing robot code and just robot stuff in general. Instead of scraping documentation webpages, the Java and C++ commands pull the same search index files that power each site’s own search bar, parse them into something usable, and cache the results so repeat searches are instant rather than re-fetching every time. Roadblocks Adding the Python documentation feature was a huge headache since the url I was pulling the search data from kept randomly blocking requests and instead sent a Cloudflare auth page (which is a good thing, I’m not saying human auth pages are bad), and nothing I tried got around it consistently. I eventually had to just cut the feature from the extension. Aside from that, there was a lot of annoying bug hunting in the unit converter, you know the kind where you try and hit flies with your hands, but you simply can’t move fast enough. Anyway, I also had to figure out how to use markdown (the detail panels in Raycast use markdown) and make it look good. That learning started as an annoying process due to markdown’s limitations, but it actually became quite fun trying to work around those limitations. What I’m proud of I’m most proud of the unit converter. Though the Java and C++ documentation search are more useful, I just had a really fun time mapping out the logic for the unit converter and actually coding it when compared to the documentation search features. This is also the first time I’ve built something intended for other people to use. I’ve always coded random passion projects in my free time, but actually shipping something that’s actually useful for other people is a huge first for me. Try it Out The Try it Out button takes you to instructions that tell you how to install the extension. Sorry that the process is a hassle, but until Raycast approves the extension, this is the only way to share the project with people.", "repo": "https://github.com/helloGithub326/FRC-Programming-Raycast-Extension", "demo": "https://www.raycast.com/helloGithub326/frc-programming"}]...
|
[{"post_id": 10950, "ts": "202 [{"post_id": 10950, "ts": "2026-06-17T23:16:34Z", "hours": 1.1394, "text": "Devlog 05 Finished cleaning up the repo and wrote a temporary file explaining how to manually install the extension, then submitted it to Raycast for review. Raycast’s review bot then caught a handful of bugs I hadn’t noticed. So, I fixed those bugs and pushed those changes. I also swapped the C++ documentation code out for code that safely parsing the data as plain JSON instead of using eval, so it only ever reads data and never executes anything. During that process, I also got a bunch of TypeScript errors due to not properly giving everything an object type. The extension is now in Raycast’s review queue. Next up is just waiting on that, and addressing anything else reviewers flag. In the meanwhile, anyone that wants to try out the extension can manually install it using the Try it Out link."}, {"post_id": 10710, "ts": "2026-06-17T15:59:46Z", "hours": 1.8261, "text": "Devlog 04 The Python documentation feature turned out to be very annoying. The search index url I am using to fetch the documentation was being way too inconsistent. Half the time, it gave the data and half the time, it gave back a Cloudflare auth page. So I decided to drop that feature entirely. Here is the search index url I was using in case anyone knows how to get past the auth page: https://robotpy.readthedocs.io/projects/robotpy/en/stable/searchindex.js . The screenshot shows what is supposed to fetched from this url. I also built a feature to look up status indicator lights for various FRC hardware components, but realized there’s already a single webpage that has all of this information laid out well. So instead of rebuilding that information inside the extension, the feature now just opens that webpage directly. Next up, I’m going to finish tidying up the repo, write a temporary instructions file explaining how to manually install the extension (since it isn’t live yet), and submit it to Raycast for review so it can be officially published."}, {"post_id": 10306, "ts": "2026-06-16T23:26:11Z", "hours": 2.7492, "text": "Devlog 03 I improved how the extension fetches the Java documentation. Instead of fetching 600 something URLs (one for each class in the WPILib library), it now only fetches one search index URL. I also got the C++ documentation lookup feature working. Unfortunately, the C++ documentation’s search data doesn’t include as much detail as the Java one. It doesn’t tell you what functions each class has, so the C++ results are a bit more bare-bones for now. You can see what it looks like in the attached screenshot. I’m currently working on adding Python documentation support. It’s been a bit annoying since the search index URL for the Python docs sometimes is sending HTML instead of javascript. Once I get that fixed, I can finally get to the motor/sensor lookup feature."}, {"post_id": 1108, "ts": "2026-06-02T22:49:58Z", "hours": 3.6142, "text": "Devlog 02 The extension can now fetch the Java WPILib (the library mainly used in FRC) documentation and display all the classes and methods in the library. Once you fetch the documentation (takes ~one minute), you only have to fetch it again when you want to update what you have cached. Tomorrow’s plans are to show descriptions of classes, show descriptions of methods, and add either Python or C++ WPILib documentation."}, {"post_id": 476, "ts": "2026-06-01T22:43:13Z", "hours": 0.7608, "text": "Devlog 01 As of right now, the unit converter (the command in the video) is the only part of the extension that is completely done. Most of the unit converter was done last week. Today, I added the action menu so that you can copy the answer and quickly put it in the search bar. In the future, I plan on adding a WPILib (the main library used for First Robotics Competition coding) documentation viewer, a motor/sensor status lookup, and a robot status monitor (that would be in the menu bar). Posting this early the development in order to get some feedback."}]...
|
Title: FRC Programming (Raycast Extension) by @pra Title: FRC Programming (Raycast Extension) by @pranay | Stardance
Devlogs:
Devlog 01 As of right now, the unit converter (the command in the video) is the only part of the extension that is completely done. Most of the unit converter was done last week. Today, I added the action menu so that you can copy the answer and quickly put it in the search bar. In the future, I plan on adding a WPILib (the main library used for First Robotics Competition coding) documentation viewer, a motor/sensor status lookup, and a robot status monitor (that would be in the menu bar). Posting this early the development in order to get some feedback.
Devlog 02 The extension can now fetch the Java WPILib (the library mainly used in FRC) documentation and display all the classes and methods in the library. Once you fetch the documentation (takes ~one minute), you only have to fetch it again when you want to update what you have cached. Tomorrow’s plans are to show descriptions of classes, show descriptions of methods, and add either Python or C++ WPILib documentation.
Devlog 03 I improved how the extension fetches the Java documentation. Instead of fetching 600 something URLs (one for each class in the WPILib library), it now only fetches one search index URL. I also got the C++ documentation lookup feature working. Unfortunately, the C++ documentation’s search data doesn’t include as much detail as the Java one. It doesn’t tell you what functions each class has, so the C++ results are a bit more bare-bones for now. You can see what it looks like in the attached screenshot. I’m currently working on adding Python documentation support. It’s been a bit annoying since the search index URL for the Python docs sometimes is sending HTML instead of javascript. Once I get that fixed, I can finally get to the motor/sensor lookup feature.
Devlog 04 The Python documentation feature turned out to be very annoying. The search index url I am using to fetch the documentation was being way too inconsistent. Half the time, it gave the data and half the time, it gave back a Cloudflare auth page. So I decided to drop that feature entirely. Here is the search index url I was using in case anyone knows how to get past the auth page: https://robotpy.readthedocs.io/projects/robotpy/en/stable/searchindex.js . The screenshot shows what is supposed to fetched from this url. I also built a feature to look up status indicator lights for various FRC hardware components, but realized there’s already a single webpage that has all of this information laid out well. So instead of rebuilding that information inside the extension, the feature now just opens that webpage directly. Next up, I’m going to finish tidying up the repo, write a temporary instructions file explaining how to manually install the extension (since it isn’t live yet), and submit it to Raycast for review so it can be officially published.
Devlog 05 Finished cleaning up the repo and wrote a temporary file explaining how to manually install the extension, then submitted it to Raycast for review. Raycast’s review bot then caught a handful of bugs I hadn’t noticed. So, I fixed those bugs and pushed those changes. I also swapped the C++ documentation code out for code that safely parsing the data as plain JSON instead of using eval, so it only ever reads data and never executes anything. During that process, I also got a bunch of TypeScript errors due to not properly giving everything an object type. The extension is now in Raycast’s review queue. Next up is just waiting on that, and addressing anything else reviewers flag. In the meanwhile, anyone that wants to try out the extension can manually install it using the Try it Out link.
Ships:
Hello everyone! I built a Raycast extension built for FRC (FIRST Robotics Competition) programmers. It basically has a couple of commands for looking up documentation and converting common FRC-specific units right inside Raycast instead of having a bunch of tabs open to do the same thing. If you haven’t used it, Raycast is a super fast keyboard launcher app where you can search, run commands, and build little custom extensions that can be then be used really easily on your computer. FRC is a robotics competition where high school teams build and program robots to compete in a game that changes every year, and WPILib is the software library most FRC teams use to write their robot’s code. What The Extension Does The extension has the following features: searchable WPILib Java and C++ documentation, a quick link to WPILib’s status light reference page for decoding hardware indicator lights, and a unit converter for things like velocity, angular velocity, torque, and force that come up sometimes when writing robot code and just robot stuff in general. Instead of scraping documentation webpages, the Java and C++ commands pull the same search index files that power each site’s own search bar, parse them into something usable, and cache the results so repeat searches are instant rather than re-fetching every time. Roadblocks Adding the Python documentation feature was a huge headache since the url I was pulling the search data from kept randomly blocking requests and instead sent a Cloudflare auth page (which is a good thing, I’m not saying human auth pages are bad), and nothing I tried got around it consistently. I eventually had to just cut the feature from the extension. Aside from that, there was a lot of annoying bug hunting in the unit converter, you know the kind where you try and hit flies with your hands, but you simply can’t move fast enough. Anyway, I also had to figure out how to use markdown (the detail panels in Raycast use markdown) and make it look good. That learning started as an annoying process due to markdown’s limitations, but it actually became quite fun trying to work around those limitations. What I’m proud of I’m most proud of the unit converter. Though the Java and C++ documentation search are more useful, I just had a really fun time mapping out the logic for the unit converter and actually coding it when compared to the documentation search features. This is also the first time I’ve built something intended for other people to use. I’ve always coded random passion projects in my free time, but actually shipping something that’s actually useful for other people is a huge first for me. Try it Out The Try it Out button takes you to instructions that tell you how to install the extension. Sorry that the process is a hassle, but until Raycast approves the extension, this is the only way to share the project with people....
|
1793000928.8218906
|
1793087328.8218906
|
|
8691
|
resea by @jithesh_sarvin | Stardance
|
|
1
|
17.27
|
165
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-09T13:28:04Z", "hours": 16.0, "multiplier": 10.69, "payout": 165, "blessing": "neutral", "text": "What did you make? Research Feed — a personalized research paper discovery app. FastAPI backend + Next.js frontend, lightweight crawler pipeline (arXiv + OpenAlex) that populates a SQLite DB, a recommender/feed engine, and a demo deployment so people can try the site. What was challenging? Making the whole pipeline robust end-to-end: deduplication, citation backfill, handling OpenAlex/semantic‑scholar rate limits, purifier rules so we don’t delete useful papers, and getting Next.js + API routing right behind nginx on the Nest host. Deployment constraints (Nest environment, no Docker initially) added friction too. What are you proud of? A working interactive demo with a live crawler and ≈570 papers, a usable frontend (feed, search, paper pages), an automated demo deploy flow (Docker/demo scripts + non‑Docker bootstrap), and fixes for tricky issues (routing, citation backfill, offsets, and safer purifier logic). What should people know so they can test your project? Open the demo: https://jithesh.hackclub.app Try these flows: browse Home feed, click Search, open a paper, open the PDF (external), save a paper to Library, and use the refresh button on the feed. API checks: /api/stats (paper count), /api/feed, /api/papers/:id return JSON. If the UI shows JSON, hard-refresh (Ctrl+Shift+R) — nginx was fixed so UI routes should render HTML. To repro crawler/DB behavior (server access): tail logs at /root/research-feed/logs and manage services with systemctl (research-feed-api, research-feed-frontend). Report any broken link, missing PDF, or pages that show raw JSON and I’ll fix it quickly. Want me to craft a one‑paragraph summary for the project page or the “What did you make” field?", "repo": "https://github.com/Lunarcolony/ReaSea", "demo": "https://jithesh.hackclub.app"}]...
|
[{"post_id": 12053, "ts": "202 [{"post_id": 12053, "ts": "2026-06-19T17:41:36Z", "hours": 0.3608, "text": "thank you for using this website. I updated the architecture for better recommendation"}, {"post_id": 6243, "ts": "2026-06-10T14:22:08Z", "hours": 0.905, "text": "added a new cashing system which helps save data locally in the browser so that each person gets a individualized feed in the demo website."}, {"post_id": 5575, "ts": "2026-06-09T12:41:30Z", "hours": 8.4961, "text": "devlog-4 • Crawlers: OpenAlex and arXiv jobs pull open-access papers (min 5 citations) while offsets are persisted in crawler_offsets.json so each topic resumes where it left off. • Canonical catalog: All crawled papers land in data/papers.db, ensuring every service references the same SQLite store even when multiple components run concurrently. • Enrichment: Each new row undergoes OpenAlex metadata backfill, DOI/arXiv linking, and topic/authorship tagging so everything downstream sees complete content. • Metrics + embeddings: classification.metrics computes trending/hybrid scores and embeddings.pipeline generates vector representations that let the feed rank novelty and relevance. • Purifier: db_purifier.py runs after enrichment, removing paywalled, duplicate, or incomplete papers while keeping PDF/ArXiv URLs up to date. • Feed cache: Once the catalog is clean, FeedCache stores session rows and shown IDs so the API can quickly respond without re-running heavy scoring on every request. • API: FastAPI’s /feed handler calls build_feed(db, refresh?, client_seen_ids) which builds a FeedContext containing seen IDs, soft/hard exclusions, and user-interest signals. • Feed logic: The engine pulls candidates via _select_from_query, applies feedback-weighted scores, injects high jitter on refresh, and enforces seen-paper penalties so every refresh reshuffles without repeating the exact same order. • Frontend: The YouTube-style carousel shows hero/trending/high-impact rows, pulls seen IDs from localStorage, calls api.getFeed(refresh, seenIds), and records events (click/save/dismiss) to teach the feed what must never reappear. • Feedback loop: User events plus the refresh button feed back into feed.build_feed() via soft/hard exclusions, ensuring fresh papers are promoted while clicked/saved items stay hidden forever."}, {"post_id": 5325, "ts": "2026-06-09T01:54:14Z", "hours": 2.1086, "text": "Smarter Fallback: If you have seen absolutely every paper in the catalog, the algorithm will now smoothly fall back to showing you the best papers you’ve already seen rather than giving you a completely blank screen. Clearer UI & Reset Button: I updated the frontend so if you ever somehow run out of papers again, it will proudly tell you “You’re all caught up!” and give you a button to Clear your read history so you can start over while the crawlers hunt for more."}, {"post_id": 5232, "ts": "2026-06-08T22:52:39Z", "hours": 2.0489, "text": "I have updated the program and intereface to look better, it now has custom themes better crawler and more"}, {"post_id": 3889, "ts": "2026-06-06T23:55:52Z", "hours": 2.9272, "text": "This is like Netflix, but for research papers. It crawls the internet to index research papers and classifies them by topic. Then, a feed-based ML algorithm filters and displays a personalized list based on the user’s activity."}]...
|
Title: resea by @jithesh_sarvin | Stardance
Devlo Title: resea by @jithesh_sarvin | Stardance
Devlogs:
This is like Netflix, but for research papers. It crawls the internet to index research papers and classifies them by topic. Then, a feed-based ML algorithm filters and displays a personalized list based on the user’s activity.
I have updated the program and intereface to look better, it now has custom themes better crawler and more
Smarter Fallback: If you have seen absolutely every paper in the catalog, the algorithm will now smoothly fall back to showing you the best papers you’ve already seen rather than giving you a completely blank screen. Clearer UI & Reset Button: I updated the frontend so if you ever somehow run out of papers again, it will proudly tell you “You’re all caught up!” and give you a button to Clear your read history so you can start over while the crawlers hunt for more.
devlog-4 • Crawlers: OpenAlex and arXiv jobs pull open-access papers (min 5 citations) while offsets are persisted in crawler_offsets.json so each topic resumes where it left off. • Canonical catalog: All crawled papers land in data/papers.db, ensuring every service references the same SQLite store even when multiple components run concurrently. • Enrichment: Each new row undergoes OpenAlex metadata backfill, DOI/arXiv linking, and topic/authorship tagging so everything downstream sees complete content. • Metrics + embeddings: classification.metrics computes trending/hybrid scores and embeddings.pipeline generates vector representations that let the feed rank novelty and relevance. • Purifier: db_purifier.py runs after enrichment, removing paywalled, duplicate, or incomplete papers while keeping PDF/ArXiv URLs up to date. • Feed cache: Once the catalog is clean, FeedCache stores session rows and shown IDs so the API can quickly respond without re-running heavy scoring on every request. • API: FastAPI’s /feed handler calls build_feed(db, refresh?, client_seen_ids) which builds a FeedContext containing seen IDs, soft/hard exclusions, and user-interest signals. • Feed logic: The engine pulls candidates via _select_from_query, applies feedback-weighted scores, injects high jitter on refresh, and enforces seen-paper penalties so every refresh reshuffles without repeating the exact same order. • Frontend: The YouTube-style carousel shows hero/trending/high-impact rows, pulls seen IDs from localStorage, calls api.getFeed(refresh, seenIds), and records events (click/save/dismiss) to teach the feed what must never reappear. • Feedback loop: User events plus the refresh button feed back into feed.build_feed() via soft/hard exclusions, ensuring fresh papers are promoted while clicked/saved items stay hidden forever.
added a new cashing system which helps save data locally in the browser so that each person gets a individualized feed in the demo website.
thank you for using this website. I updated the architecture for better recommendation
Ships:
What did you make? Research Feed — a personalized research paper discovery app. FastAPI backend + Next.js frontend, lightweight crawler pipeline (arXiv + OpenAlex) that populates a SQLite DB, a recommender/feed engine, and a demo deployment so people can try the site. What was challenging? Making the whole pipeline robust end-to-end: deduplication, citation backfill, handling OpenAlex/semantic‑scholar rate limits, purifier rules so we don’t delete useful papers, and getting Next.js + API routing right behind nginx on the Nest host. Deployment constraints (Nest environment, no Docker initially) added friction too. What are you proud of? A working interactive demo with a live crawler and ≈570 papers, a usable frontend (feed, search, paper pages), an automated demo deploy flow (Docker/demo scripts + non‑Docker bootstrap), and fixes for tricky issues (routing, citation backfill, offsets, and safer purifier logic). What should people know so they can test your project? Open the demo: https://jithesh.hackclub.app Try these flows: browse Home feed, click Search, open a paper, open the PDF (external), save a paper to Library, and use the refresh button on the feed. API checks: /api/stats (paper count), /api/feed, /api/papers/:id return JSON. If the UI shows JSON, hard-refresh (Ctrl+Shift+R) — nginx was fixed so UI routes should render HTML. To repro crawler/DB behavior (server access): tail logs at /root/research-feed/logs and manage services with systemctl (research-feed-api, research-feed-frontend). Report any broken link, missing PDF, or pages that show raw JSON and I’ll fix it quickly. Want me to craft a one‑paragraph summary for the project page or the “What did you make” field?...
|
1793091172.2641804
|
1793177572.2641804
|
|
19264
|
meowOS by @arman | Stardance
|
arman
|
1
|
9.0
|
164
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-24T12:38:21Z", "hours": 9.0, "multiplier": 17.32, "payout": 164, "blessing": "neutral", "text": "What did I make? A browser based desktop OS. It has a boot screen, a window manager, a taskbar, desktop widgets, and seven apps and its all cat themed. You can open and drag windows around, change your wallpaper, use a terminal, write notes, check the time. It actually feels like an OS, which was the whole point. Live at https://meowos-web.vercel.app What was challenging? SSR kept biting me. Next.js renders on the server first, so anything touching localStorage or window would crash on Vercel even when it worked fine locally. Took a while to track down every spot that needed a guard. The window maximize animation also gave me grief windows would snap and drag at the same time in this weird magnet effect. Fixed it by separating animation state from logical state so the transition only fires during the toggle, not while dragging. I also tried adding route transition fades between boot, shutdown, and desktop. Spent a few hours on it, kept breaking things, eventually just cut it. What am I proud of? The boot screen. Kernel text prints line by line, fades into a paw icon, then routes to the desktop. It’s a small thing but it makes the whole OS feel real. How to test it? Go to https://meowos-web.vercel.app you’ll land on the shutdown screen, click to boot.", "repo": "https://github.com/armansinghh/WebOS", "demo": "https://meowos-web.vercel.app/"}]...
|
[{"post_id": 15021, "ts": "202 [{"post_id": 15021, "ts": "2026-06-24T12:26:06Z", "hours": 3.1114, "text": "well its done guys what i built? i actually had no idea what to start with, i saw a webOS listed, thought it was pretty cool… i love cats, so why not build a cat-styled OS? u guys can check it out here: https://meowos-web.vercel.app/ whats next? just check it out guys (pls 🙏) note i wrote a highly technical long dev log but it all vanished when i closed the tab accidently, i dont have energy left to write all over again 😔😔 also follow me on github https://github.com/armansinghh thanks y’all"}, {"post_id": 14184, "ts": "2026-06-23T05:35:23Z", "hours": 5.0883, "text": "Spent a lot of time this session just making things feel right 😮💨 Added boot screen and the best part… Rebuilt most of the apps from scratch basically. PawWatch now has an actual analog clock face with cat ears on top and a digital readout next to it. MeowPad got autosave, word count and char limit. PawShell now remembers your command history and arrow keys work just like a real terminal. The settings app (PawNel) got a full sidebar layout, a live desktop preview when picking wallpapers, and an About page showing the stack. Also added two new apps: File Cat-alog is a file explorer with a fake filesystem you can navigate. Also added PrrSurf, it is a browser with a cat themed homepage with shortcuts to Wikipedia, AccuWeather, and Excalidraw. Taskbar got cleaned up too, the paw menu and control center both feel much more polished now. Honestly meowOS is starting to look like something I’d actually want to use. Next up is some final polish and getting it ready to ship 😝"}, {"post_id": 11296, "ts": "2026-06-18T14:09:31Z", "hours": 1.2869, "text": "Built the core of meowOS today!!! A fully working window manager in the browser. Windows are draggable, resizable, and stack correctly when focused. 4 apps so far: Clock - live time and date Text Editor - write and save notes, persists with localStorage Terminal - commands like help, meow, echo, date Settings - pick from 4 cat wallpapers, choice saves across sessions Stack: Next.js, Tailwind, Zustand, react-rnd, react-icons. Next up: File Explorer and Browser app."}]...
|
Title: meowOS by @arman | Stardance
Devlogs:
Buil Title: meowOS by @arman | Stardance
Devlogs:
Built the core of meowOS today!!! A fully working window manager in the browser. Windows are draggable, resizable, and stack correctly when focused. 4 apps so far: Clock - live time and date Text Editor - write and save notes, persists with localStorage Terminal - commands like help, meow, echo, date Settings - pick from 4 cat wallpapers, choice saves across sessions Stack: Next.js, Tailwind, Zustand, react-rnd, react-icons. Next up: File Explorer and Browser app.
Spent a lot of time this session just making things feel right 😮💨 Added boot screen and the best part… Rebuilt most of the apps from scratch basically. PawWatch now has an actual analog clock face with cat ears on top and a digital readout next to it. MeowPad got autosave, word count and char limit. PawShell now remembers your command history and arrow keys work just like a real terminal. The settings app (PawNel) got a full sidebar layout, a live desktop preview when picking wallpapers, and an About page showing the stack. Also added two new apps: File Cat-alog is a file explorer with a fake filesystem you can navigate. Also added PrrSurf, it is a browser with a cat themed homepage with shortcuts to Wikipedia, AccuWeather, and Excalidraw. Taskbar got cleaned up too, the paw menu and control center both feel much more polished now. Honestly meowOS is starting to look like something I’d actually want to use. Next up is some final polish and getting it ready to ship 😝
well its done guys what i built? i actually had no idea what to start with, i saw a webOS listed, thought it was pretty cool… i love cats, so why not build a cat-styled OS? u guys can check it out here: https://meowos-web.vercel.app/ whats next? just check it out guys (pls 🙏) note i wrote a highly technical long dev log but it all vanished when i closed the tab accidently, i dont have energy left to write all over again 😔😔 also follow me on github https://github.com/armansinghh thanks y’all
Ships:
What did I make? A browser based desktop OS. It has a boot screen, a window manager, a taskbar, desktop widgets, and seven apps and its all cat themed. You can open and drag windows around, change your wallpaper, use a terminal, write notes, check the time. It actually feels like an OS, which was the whole point. Live at https://meowos-web.vercel.app What was challenging? SSR kept biting me. Next.js renders on the server first, so anything touching localStorage or window would crash on Vercel even when it worked fine locally. Took a while to track down every spot that needed a guard. The window maximize animation also gave me grief windows would snap and drag at the same time in this weird magnet effect. Fixed it by separating animation state from logical state so the transition only fires during the toggle, not while dragging. I also tried adding route transition fades between boot, shutdown, and desktop. Spent a few hours on it, kept breaking things, eventually just cut it. What am I proud of? The boot screen. Kernel text prints line by line, fades into a paw icon, then routes to the desktop. It’s a small thing but it makes the whole OS feel real. How to test it? Go to https://meowos-web.vercel.app you’ll land on the shutdown screen, click to boot....
|
1793054878.292974
|
1793141278.292974
|
|
43947
|
scout by @ingvard | Stardance
|
ingvard
|
1
|
13.0
|
164
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T21:36:20Z", "hours": 13.0, "multiplier": 12.89, "payout": 164, "blessing": "neutral", "text": "Scout is a program that analyzes files by doing pattern matching of strings in the file with strings defined by the user, and doing entropy analysis on all strings to find low and high entropy strings. Its primary use case is reverse engineering and forensics CTF challenges. Things i found difficult were getting the taylor series right in the mathyy library. If i had too few iterations the result would be innacurate for high numbers, but if it had to many iterations it would overflow to infinity. Reading the patterns from the user was also difficult, as it was my first time using the cJSON library, and i had problems with memmory leaks for a while. If you’re planning on using it, make sure to read the readme, especially the Usage section, and dont forget that the config file must be in the working directory. I was going to publish this to the AUR, but to create an account with their gitlab, you have to send an email to the maintainers, and they have not gotten back to me on that. Will update when its availible. In the meantime follow the installation instructions in the readme.", "repo": "https://github.com/hyphen-hyphen-hyphen-hyphen/scout", "demo": "https://github.com/hyphen-hyphen-hyphen-hyphen/scout/releases"}]...
|
[{"post_id": 49209, "ts": "202 [{"post_id": 49209, "ts": "2026-08-17T21:20:56Z", "hours": 0.6981, "text": "More finishing touches. I have added: Install script Install section in README A PKGBUILD file (am planning on publishing to AUR) No real issues this time around, everything mostly worked first (or second) try."}, {"post_id": 49119, "ts": "2026-08-17T19:02:08Z", "hours": 1.7019, "text": "Unfortunately there are no new features, but, i have managed to remove all memory leaks and (almost all) segfaults, as well as (tried to) prevent command injection. some things ive done are: Removed command injection through filename Even though it would technically still be possible, i have blocked it heavily and i can not provide any examples of it, as i have not managed to exploit it. No more errors, warnings or memory leaks! Valgrind doesn’t complain anymore. Using the --help flag no longer messes everything up No segfault if there isn’t a second argument This wasnt a super smooth process, as you can se in the screenshot i managed to make it even worse while trying to fix it, but i eventually figured it out."}, {"post_id": 48399, "ts": "2026-08-16T18:47:21Z", "hours": 2.9214, "text": "Scout now has a readme and a security policy(SECURITY.md). Along with that scout now also has these additional features: (Shannon)Entropy calculation Automatic extraction of high and low entropy strings The --report flag automatically generates a comprehensive malware analysis report and prints it to the terminal. There is now a --help flag, but it is very unstable at the moment, and the help message is, not very helpful Scout is now gcc only. Compiling with other compilers will not work due to certain GNU extensions used in the code. The new tokenize function has a memory leak for every token it generates, but fixing that would mean having to figure out where to put the free() calls. The program also segfaults if the second argument is blank."}, {"post_id": 47066, "ts": "2026-08-14T18:05:36Z", "hours": 3.3597, "text": "Some of the things ive done since the last devlog are: refactoring the code moved some functions to separate module mathyy read json files and use for pattern matching(no more hard-coded patterns) Taylor series to approximate e and the natural logarithm simpler math implementations like factorials and powers New lnsha feature, calculates the natural log of the sha256 hash of the prorgam(completely useless) The taylor series were quite problematic, as the more iterations i had, the higher the values in the factorial and power functions got, so sometimes they would overflow to infinity based on the start value, so i had to find a middle ground where the risc of overflowing was low, but it still had resonable precision. Especially for the natural log, which for higher numbers basically just returns a constant of about 10.48. Ive also discovered some memmory leaks through valgrind, but as i discovered, fixing them breaks everything else, and i dont have the energy to fix it, so i left a comment and moved on"}, {"post_id": 44245, "ts": "2026-08-09T21:28:27Z", "hours": 1.7197, "text": "Scout can now read and parse json files(with the library cjson) and it also now contains a function that returns other functions! Why cJSON? It was easily availible with my package manager, and it looked the simplest out of all the json libraries. how does higher-order functions benefit this project? It dosent, the code is definitely less readable aand its completely unnecessary, but its fun! While implementing this, i have started beef with gcc, as you can see in the attached screenshot, i have absolutely no idea what its talking about or what i did wrong and im pretty certain the compiler had a stroke, but i switched to clang for a while and when i switched back it was working again. As far as ive checked, the code is valid C, it compiled perfectly with clang, so i have no idea what happend, maybe gcc uses another C standard, or thers some weird macro in cjson that fucks things up. The json reading will be used for pattern matching in the file with the patterns in the json file (similar to YARA, but simpler)."}, {"post_id": 41439, "ts": "2026-08-05T17:31:01Z", "hours": 2.3297, "text": "Scout is a CTF tool written in C that does quick analysis on files, mainly for reverse engineering and forensics CTF:s. It’s designed to be the first thing you run on a file, and it gives basic information like any potential flags and any interesting strings in the file. So far the program is able to run strings on a file, and extract potential flags and interesting strings. In the attached screenshot you can see it being run on a file called “chall”, and then underneath the contents of that file are printed out."}]...
|
Title: scout by @ingvard | Stardance
Devlogs:
Sco Title: scout by @ingvard | Stardance
Devlogs:
Scout is a CTF tool written in C that does quick analysis on files, mainly for reverse engineering and forensics CTF:s. It’s designed to be the first thing you run on a file, and it gives basic information like any potential flags and any interesting strings in the file. So far the program is able to run strings on a file, and extract potential flags and interesting strings. In the attached screenshot you can see it being run on a file called “chall”, and then underneath the contents of that file are printed out.
Scout can now read and parse json files(with the library cjson) and it also now contains a function that returns other functions! Why cJSON? It was easily availible with my package manager, and it looked the simplest out of all the json libraries. how does higher-order functions benefit this project? It dosent, the code is definitely less readable aand its completely unnecessary, but its fun! While implementing this, i have started beef with gcc, as you can see in the attached screenshot, i have absolutely no idea what its talking about or what i did wrong and im pretty certain the compiler had a stroke, but i switched to clang for a while and when i switched back it was working again. As far as ive checked, the code is valid C, it compiled perfectly with clang, so i have no idea what happend, maybe gcc uses another C standard, or thers some weird macro in cjson that fucks things up. The json reading will be used for pattern matching in the file with the patterns in the json file (similar to YARA, but simpler).
Some of the things ive done since the last devlog are: refactoring the code moved some functions to separate module mathyy read json files and use for pattern matching(no more hard-coded patterns) Taylor series to approximate e and the natural logarithm simpler math implementations like factorials and powers New lnsha feature, calculates the natural log of the sha256 hash of the prorgam(completely useless) The taylor series were quite problematic, as the more iterations i had, the higher the values in the factorial and power functions got, so sometimes they would overflow to infinity based on the start value, so i had to find a middle ground where the risc of overflowing was low, but it still had resonable precision. Especially for the natural log, which for higher numbers basically just returns a constant of about 10.48. Ive also discovered some memmory leaks through valgrind, but as i discovered, fixing them breaks everything else, and i dont have the energy to fix it, so i left a comment and moved on
Scout now has a readme and a security policy(SECURITY.md). Along with that scout now also has these additional features: (Shannon)Entropy calculation Automatic extraction of high and low entropy strings The --report flag automatically generates a comprehensive malware analysis report and prints it to the terminal. There is now a --help flag, but it is very unstable at the moment, and the help message is, not very helpful Scout is now gcc only. Compiling with other compilers will not work due to certain GNU extensions used in the code. The new tokenize function has a memory leak for every token it generates, but fixing that would mean having to figure out where to put the free() calls. The program also segfaults if the second argument is blank.
Unfortunately there are no new features, but, i have managed to remove all memory leaks and (almost all) segfaults, as well as (tried to) prevent command injection. some things ive done are: Removed command injection through filename Even though it would technically still be possible, i have blocked it heavily and i can not provide any examples of it, as i have not managed to exploit it. No more errors, warnings or memory leaks! Valgrind doesn’t complain anymore. Using the --help flag no longer messes everything up No segfault if there isn’t a second argument This wasnt a super smooth process, as you can se in the screenshot i managed to make it even worse while trying to fix it, but i eventually figured it out.
More finishing touches. I have added: Install script Install section in README A PKGBUILD file (am planning on publishing to AUR) No real issues this time around, everything mostly worked first (or second) try.
Ships:
Scout is a program that analyzes files by doing pattern matching of strings in the file with strings defined by the user, and doing entropy analysis on all strings to find low and high entropy strings. Its primary use case is reverse engineering and forensics CTF challenges. Things i found difficult were getting the taylor series right in the mathyy library. If i had too few iterations the result would be innacurate for high numbers, but if it had to many iterations it would overflow to infinity. Reading the patterns from the user was also difficult, as it was my first time using the cJSON library, and i had problems with memmory leaks for a while. If you’re planning on using it, make sure to read the readme, especially the Usage section, and dont forget that the config file must be in the working directory. I was going to publish this to the AUR, but to create an account with their gitlab, you have to send an email to the maintainers, and they have not gotten back to me on that. Will update when its availible. In the meantime follow the installation instructions in the readme....
|
1793098330.3396044
|
1793184730.3396044
|
|
50910
|
NET GROUND BOOKING by @Tallurisaikumar | Stardance
|
Tallurisaikumar
|
1
|
29.0
|
164
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-20T18:24:52Z", "hours": 29.0, "multiplier": 5.63, "payout": 164, "blessing": "neutral", "text": "complete my project NET GROUND BOOKING", "repo": "https://github.com/tallurisai9346-beep/NET-GROUNDS-BOOKING-", "demo": "https://net-grounds-booking.vercel.app/"}]...
|
[{"post_id": 51193, "ts": "202 [{"post_id": 51193, "ts": "2026-08-20T18:18:09Z", "hours": 2.6253, "text": "finally my net ground booking complete☺️"}, {"post_id": 51073, "ts": "2026-08-20T15:38:02Z", "hours": 1.3367, "text": "adding person ditals page and time slotes"}, {"post_id": 50740, "ts": "2026-08-20T02:52:55Z", "hours": 6.6217, "text": "iam add daily mini challengs"}, {"post_id": 50536, "ts": "2026-08-19T18:42:04Z", "hours": 4.7219, "text": "iam adding new features like pick your game"}, {"post_id": 50293, "ts": "2026-08-19T13:26:09Z", "hours": 2.8, "text": "my net ground booking main page is just now complete"}, {"post_id": 50042, "ts": "2026-08-19T02:22:07Z", "hours": 7.3147, "text": "after some hours iam add the login page and background image in only frountend it work"}, {"post_id": 49797, "ts": "2026-08-18T18:51:34Z", "hours": 1.4839, "text": "just now add background colour and some founts"}, {"post_id": 49725, "ts": "2026-08-18T17:10:31Z", "hours": 2.0003, "text": "sum more basic HTML coading is complete some more is left"}, {"post_id": 49623, "ts": "2026-08-18T14:45:04Z", "hours": 0.2694, "text": "just few min back iam start the creat web sit"}]...
|
Title: NET GROUND BOOKING by @Tallurisaikumar | St Title: NET GROUND BOOKING by @Tallurisaikumar | Stardance
Devlogs:
just few min back iam start the creat web sit
sum more basic HTML coading is complete some more is left
just now add background colour and some founts
after some hours iam add the login page and background image in only frountend it work
my net ground booking main page is just now complete
iam adding new features like pick your game
iam add daily mini challengs
adding person ditals page and time slotes
finally my net ground booking complete☺️
Ships:
complete my project NET GROUND BOOKING...
|
1792875194.8440971
|
1793739194.8440971
|
|
54561
|
Blackhole New Tab [BHNT] by @THEbluefirestudios | Blackhole New Tab [BHNT] by @THEbluefirestudios | Stardance...
|
THEbluefirestudios
|
1
|
13.0
|
164
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T10:20:12Z", "hours": 13.0, "multiplier": 10.9, "payout": 164, "blessing": "neutral", "text": "Well its been a ride, my last ship on Stradnace! Blackhole New Tab What Have I made? This is Blackhole New Tab, a simple yet very nice new tab extension for Chromium based browsers, it has features like: A very close (in my opinion) recreation of the “mica” effect from Windows 11 Nice blackhole background Ability to pin apps on the Windhawk-luminosity inspired taskbar Basic settings menu with settings for theme and time format What was challenging? Honestly the entire project, the Blackhole video was made by me and very hard to perfect, i was touching HTML after a very long time, and had no experience with javascript itself (though it is very similar to other languages i have used) and it is also the reason why I didn’t apply it to the “Give your website a Pulse” mission, because I knew i would take more than 3 hours on this. What am I proud of? Well, the background! This background video was made by me, not in adobe AfterEffects, not in Blender, not in Maya, but in GEOMETRY DASH, yes GEOMETRY DASH, the cube game. It took me 3 hours alone to perfect and it is documented on Lapse, the result? A very clean, Interstellar style Blackhole! I love it! What do people need to know before testing? Nothing! Project has no dependencies, and all info is in the README, also you can also download this extension from the Microsoft Edge Addons store.", "repo": "https://github.com/THEbluefirestudios/Blackhole-New-Tab", "demo": "https://github.com/THEbluefirestudios/Blackhole-New-Tab/releases/tag/v1.1"}]...
|
[{"post_id": 71718, "ts": "202 [{"post_id": 71718, "ts": "2026-09-21T11:28:22Z", "hours": 1.6269, "text": "OOOHH YES, I finished the update, and fixed the icons issue by adding MORE icon providers (namely Icon horse , AND Unavatar , beside from the google favicon) I also added some more QOL features: You can MOVE ICONS ON THE TASKBAR NOW (very quick implementation, so kinda animationless and basic, just drag it!) A “Show Seconds” setting. Well now i SHIP"}, {"post_id": 71125, "ts": "2026-09-20T10:19:57Z", "hours": 3.7447, "text": "Uhh ok, so I finished the javascript and thus the project. I submitted it to ms edge addons ofr review. Went on 3 day trip Came back, it got approved! Tried it myself Bugs :( (see how the extension failed to grab an icon for instagram, so its just a gray box with the letter I in it, my designed fallback, and the youtube logo is like, rlly low res?) I need to push v 1.1"}, {"post_id": 67321, "ts": "2026-09-13T12:00:28Z", "hours": 3.8992, "text": "HOLY WORK I spent 4 hours on the HTML and CSS of this thing. I made a class for the windows mica look (ik it looks viecoded but trust), I just used my desktop as inspo for this + Win 11 lockscreen. I am planning on adding a blue version of this ud idk how i havent even egun with the .js baiiiiiiiiiiiiiiiiiii"}, {"post_id": 62849, "ts": "2026-09-06T11:39:02Z", "hours": 2.2425, "text": "ABSOLUTELY WORTH IT!! So I decided to redo the entire blackhole video… and oh boy, this looks AMAZING!! I’m happy with this and it is final!! Watch the Lapse Recording to see how I did it! baiiiiiiiiiiiii"}, {"post_id": 56392, "ts": "2026-08-28T04:41:05Z", "hours": 1.0694, "text": "Well, lapse wasn’t working yesterday so it is working now, so I am writing my 1st devlog for this project today, So i needed a good looping video of a blackhole, i didnt want to go to stockfootage and I can’t use blender….. So I made it in Geometry Dash . Not gonna lie tho, it looks PEAK See the Lapse Recording here baiiiiiiiiiiiiiiiii"}]...
|
Title: Blackhole New Tab [BHNT] by @THEbluefirestu Title: Blackhole New Tab [BHNT] by @THEbluefirestudios | Stardance
Devlogs:
Well, lapse wasn’t working yesterday so it is working now, so I am writing my 1st devlog for this project today, So i needed a good looping video of a blackhole, i didnt want to go to stockfootage and I can’t use blender….. So I made it in Geometry Dash . Not gonna lie tho, it looks PEAK See the Lapse Recording here baiiiiiiiiiiiiiiiii
ABSOLUTELY WORTH IT!! So I decided to redo the entire blackhole video… and oh boy, this looks AMAZING!! I’m happy with this and it is final!! Watch the Lapse Recording to see how I did it! baiiiiiiiiiiiii
HOLY WORK I spent 4 hours on the HTML and CSS of this thing. I made a class for the windows mica look (ik it looks viecoded but trust), I just used my desktop as inspo for this + Win 11 lockscreen. I am planning on adding a blue version of this ud idk how i havent even egun with the .js baiiiiiiiiiiiiiiiiiii
Uhh ok, so I finished the javascript and thus the project. I submitted it to ms edge addons ofr review. Went on 3 day trip Came back, it got approved! Tried it myself Bugs :( (see how the extension failed to grab an icon for instagram, so its just a gray box with the letter I in it, my designed fallback, and the youtube logo is like, rlly low res?) I need to push v 1.1
OOOHH YES, I finished the update, and fixed the icons issue by adding MORE icon providers (namely Icon horse , AND Unavatar , beside from the google favicon) I also added some more QOL features: You can MOVE ICONS ON THE TASKBAR NOW (very quick implementation, so kinda animationless and basic, just drag it!) A “Show Seconds” setting. Well now i SHIP
Ships:
Well its been a ride, my last ship on Stradnace! Blackhole New Tab What Have I made? This is Blackhole New Tab, a simple yet very nice new tab extension for Chromium based browsers, it has features like: A very close (in my opinion) recreation of the “mica” effect from Windows 11 Nice blackhole background Ability to pin apps on the Windhawk-luminosity inspired taskbar Basic settings menu with settings for theme and time format What was challenging? Honestly the entire project, the Blackhole video was made by me and very hard to perfect, i was touching HTML after a very long time, and had no experience with javascript itself (though it is very similar to other languages i have used) and it is also the reason why I didn’t apply it to the “Give your website a Pulse” mission, because I knew i would take more than 3 hours on this. What am I proud of? Well, the background! This background video was made by me, not in adobe AfterEffects, not in Blender, not in Maya, but in GEOMETRY DASH, yes GEOMETRY DASH, the cube game. It took me 3 hours alone to perfect and it is documented on Lapse, the result? A very clean, Interstellar style Blackhole! I love it! What do people need to know before testing? Nothing! Project has no dependencies, and all info is in the README, also you can also download this extension from the Microsoft Edge Addons store....
|
1793008198.7745533
|
1793094598.7745533
|
|
60014
|
Personal Site by @polycarbohydrate | Stardance
|
polycarbohydrate
|
1
|
12.0
|
164
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-12T16:01:02Z", "hours": 12.0, "multiplier": 11.29, "payout": 164, "blessing": "neutral", "text": "I created my personal website using the Rust Programming Langauge. Traditionally websites use HTML, CSS, and/or Javascript. I decided down a more questionable route… I am using the egui Rust crate for the GUI library. The GUI framework is eframe. In order to bundle all of the Rust code into something a browser can render, I use trunk, which compiles my code and assets into a WebAssembly binary (.wasm). When the site first launches, there is a loading screen which is HTML and CSS. Javascript loads the WASM. Everything you see is rendered using textured triangles. There is no HTML, CSS, JS, or DOM. WebGL and WebGPU do the rendering. Every movement of the mouse causes the entire frame to be redrawn. This is not the most optimal way for a personal static site, but allows me to create fast interactive portions of my site in the future. The majority of my time was spent in compilation and reading documentation. Compiling takes over 5 minutes for me (for a full rebuild). I hope you enjoy!", "repo": "https://codeberg.org/polycarbohydrate/personal-website", "demo": "https://my-site-bnr.pages.dev/"}]...
|
[{"post_id": 66694, "ts": "202 [{"post_id": 66694, "ts": "2026-09-12T15:55:07Z", "hours": 2.2492, "text": "I think I am done with the first version of the site. It obviously can have some additional features and polishing but for the most part, it doens’t look bad. I added 2 sections in the middle that reflect my personal interests. I fixed a typo in the about website section and also added a version and time changed text at the bottom of the site. Today’s challenge was layouting again. As you may tell, the last section has misalignment (as well as the top right section)… Next time I work on this, I am probably going to work on code restructuring and implementing functions to get rid of many lines of code. Currently it takes me over 5 minutes to compile the 273 dependencies. The Cargo.lock file has over 5500+ lines of dependencies 💀. I am going to read trunk ’s (the wasm packager I use) documentation to see if I can optimize my dev and release builds more. The .wasm size is 12MB. The HTML is only 107 lines. I added both horizontal and verticle scrolling just in case someone viewed the page on a small screen. In the future I plan to add text wrapping on window resizing. Currently it just disappears and the scroll bars appear. As simple as it may appear, this took way too long. I assume if one used html and css to do this would take maybe a quarter of the time I spent on this."}, {"post_id": 66301, "ts": "2026-09-12T01:57:42Z", "hours": 1.6789, "text": "Today I added a horizontal seciton with a GitHub button and started on my own activities section. As shown in the image, I am having trouble load an external .png to the site. Maybe I need to configure my image loaders differently. That is what I will figure out tommarrow. Hopefully I will finish the site this weekend. I spent many minutes compiling additional dependencies due to the svg in the GitHub button needed to be loaded. These sections will be most of the site and then in the empty space in the top section I will put something fun/interactive. In the about site section, I may change the formatting or add some additional details. Next steps are to finish the 2 columns."}, {"post_id": 64542, "ts": "2026-09-09T01:08:41Z", "hours": 8.1681, "text": "Most sites use HTML, CSS, and/or JavaScript. However most people don’t even realize our browsers can run also run WebAssemby (wasm). I decided to create my personal website in pure Rust. This is a difficult endeavour as Rust is typically used for backend, not frontend. I am using egui for the GUI library. I use trunk to bundle my application into a .wasm file along with bare html and js (to load wasm into the browser). I have spent countless hours reading documentation and experimenting with layouts (egui is wonky with this), and have successfully done the layout to my liking. Currently, my site is looking half-finished. I am going to add a few more sections and some fun simulations that will render in the browser. Everything you see is textured triangles. There is no HTML, CSS, JS, or DOM. Everytime the cursor is moved the page is redrawn. Rendering is done with WebGL or WGPU. JavaScript is required for the site to work (in order to load WebAssembly)."}]...
|
Title: Personal Site by @polycarbohydrate | Starda Title: Personal Site by @polycarbohydrate | Stardance
Devlogs:
Most sites use HTML, CSS, and/or JavaScript. However most people don’t even realize our browsers can run also run WebAssemby (wasm). I decided to create my personal website in pure Rust. This is a difficult endeavour as Rust is typically used for backend, not frontend. I am using egui for the GUI library. I use trunk to bundle my application into a .wasm file along with bare html and js (to load wasm into the browser). I have spent countless hours reading documentation and experimenting with layouts (egui is wonky with this), and have successfully done the layout to my liking. Currently, my site is looking half-finished. I am going to add a few more sections and some fun simulations that will render in the browser. Everything you see is textured triangles. There is no HTML, CSS, JS, or DOM. Everytime the cursor is moved the page is redrawn. Rendering is done with WebGL or WGPU. JavaScript is required for the site to work (in order to load WebAssembly).
Today I added a horizontal seciton with a GitHub button and started on my own activities section. As shown in the image, I am having trouble load an external .png to the site. Maybe I need to configure my image loaders differently. That is what I will figure out tommarrow. Hopefully I will finish the site this weekend. I spent many minutes compiling additional dependencies due to the svg in the GitHub button needed to be loaded. These sections will be most of the site and then in the empty space in the top section I will put something fun/interactive. In the about site section, I may change the formatting or add some additional details. Next steps are to finish the 2 columns.
I think I am done with the first version of the site. It obviously can have some additional features and polishing but for the most part, it doens’t look bad. I added 2 sections in the middle that reflect my personal interests. I fixed a typo in the about website section and also added a version and time changed text at the bottom of the site. Today’s challenge was layouting again. As you may tell, the last section has misalignment (as well as the top right section)… Next time I work on this, I am probably going to work on code restructuring and implementing functions to get rid of many lines of code. Currently it takes me over 5 minutes to compile the 273 dependencies. The Cargo.lock file has over 5500+ lines of dependencies 💀. I am going to read trunk ’s (the wasm packager I use) documentation to see if I can optimize my dev and release builds more. The .wasm size is 12MB. The HTML is only 107 lines. I added both horizontal and verticle scrolling just in case someone viewed the page on a small screen. In the future I plan to add text wrapping on window resizing. Currently it just disappears and the scroll bars appear. As simple as it may appear, this took way too long. I assume if one used html and css to do this would take maybe a quarter of the time I spent on this.
Ships:
I created my personal website using the Rust Programming Langauge. Traditionally websites use HTML, CSS, and/or Javascript. I decided down a more questionable route… I am using the egui Rust crate for the GUI library. The GUI framework is eframe. In order to bundle all of the Rust code into something a browser can render, I use trunk, which compiles my code and assets into a WebAssembly binary (.wasm). When the site first launches, there is a loading screen which is HTML and CSS. Javascript loads the WASM. Everything you see is rendered using textured triangles. There is no HTML, CSS, JS, or DOM. WebGL and WebGPU do the rendering. Every movement of the mouse causes the entire frame to be redrawn. This is not the most optimal way for a personal static site, but allows me to create fast interactive portions of my site in the future. The majority of my time was spent in compilation and reading documentation. Compiling takes over 5 minutes for me (for a full rebuild). I hope you enjoy!...
|
1793055114.8245032
|
1793141514.8245032
|
|
50089
|
space-war by @dineshkarthik | Stardance
|
dineshkarthik
|
1
|
23.0
|
163
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T05:14:05Z", "hours": 13.0, "multiplier": 12.87, "payout": 163, "blessing": "neutral", "text": "🚀 Space War - Shipping Description I made a browser-based space shooter where the player has options to determine a certain way of playing and getting better at the game. In the project, I implemented different war zones, from 180 ° and 360 °, and added a variety of gameplays. The game allows battling enemy waves, collecting resources, upgrading the player’s ship, and being able to set and beat your own personal records. I also added a menu where you can choose a certain game mode and the system to store records to keep track of your stats accurately and have a reference of the best results. I aimed for variety in gameplay and for the player to feel like they are part of a bigger system, not just a simple space shooter, which is why I focused on adding content that would give them a reason to keep playing.", "repo": "https://github.com/Karthik-854321/space-war", "demo": "https://space-war-beta.vercel.app/"}]...
|
[{"post_id": 58217, "ts": "202 [{"post_id": 58217, "ts": "2026-08-30T16:00:53Z", "hours": 1.5722, "text": "improving from the feedback and suggestion i got from the first ship some formaulas or modified and some changes in js is taking apart soon you will see a complete game hsing everything suggested and this is the highest score i got make a try to break it"}, {"post_id": 54345, "ts": "2026-08-25T09:29:23Z", "hours": 4.3333, "text": "FINAL DEVLOG finally completed by project by adding a selection page that display the game highest records and give options to selct gaem mode with my custom arcrade retro style theme literally it takes a lot of time to arrange the background frame with the button trapezium shapes and with that and it is looking really great . i designed it by my thoughts if any suggestions are improvements are accepted and i will try to implement it later TRY IT NOW: https://space-war-beta.vercel.app/"}, {"post_id": 53794, "ts": "2026-08-24T14:31:51Z", "hours": 3.2506, "text": "a long time taken to refine complete css after getting too many resubmits for using ai in it actually i built the whole game from scratch from choosing the enimies their characters their shapes and in auto shoot game i revised my old mathematics textbook for shortest distance formulas and point of contact formulas that makes me learn my 11th textbook again i learned a lot from this finally i am about to complete the css part a few modifications are apart"}, {"post_id": 52155, "ts": "2026-08-22T07:50:40Z", "hours": 0.8447, "text": "forgot to write a devlog lost 10h of time but yet my GAME is making a clean 3d visuals"}, {"post_id": 50101, "ts": "2026-08-19T05:08:24Z", "hours": 2.0697, "text": "Space War - Final Devlog Space War’s development iteration has been completed in time for the next step. The current gameplay hub offers a pure mode-based experience. The following features have been added: 180° and 360° War Zone selection Both games are now separated as individual modes A 360° exclusive records panel has been added Highest Score, Best Survival Time, Missions and Coins are now available for tracking Everything is persistent via localStorage The whole UI is now organized into two sections: the game itself on the left and the records panel on the right Added responsive behavior so that the game area is always fully playable Original systems, upgrades, enemies, effects and controls are preserved From selecting a battlefield to challenging oneself to a new record, the Space War gameplay hub is now a truly comprehensive mode-based system."}, {"post_id": 48820, "ts": "2026-08-17T11:11:00Z", "hours": 1.79, "text": "Devlog 03, Hyperion: Space Defender The third update involved a significant redesign rather than just adding new features. I renamed the experience Hyperion: Space Defender and reworked the interface with a dedicated command system. The battlefield now takes up 75% of the screen , while the remaining 25% serves as a Command & Telemetry sidebar . The sidebar shows live information such as ship tier, hull integrity, system level, XP, coins, gems, score, and flight time . I also created a proper start screen and gameplay guide so players can learn the controls before they enter combat. Previous records like best score, best flight time, and most coins are displayed as well. The progression system became richer with different enemy classes and a boss system , which includes a dedicated boss health display. Players now have extra progression statistics such as tier, coins, score, and improved combat attributes. Persistence has also improved. High score, best survival time, and maximum coins are saved using localStorage , allowing records to persist between sessions. Finally, I upgraded the audio system from simple oscillator effects to a more advanced Web Audio setup, which uses oscillators, gain nodes, filters, and generated noise for better laser and explosion sounds. This update turned the project from a basic browser shooter into a more complete space-survival game system with progression, persistence, telemetry, mobile controls, bosses, audio, and a stronger interface ."}, {"post_id": 48699, "ts": "2026-08-17T06:37:05Z", "hours": 0.3347, "text": "Devlog 02 - Expanding the Gameplay SystemsThe second update went from a bare-bones prototype to a more fleshed-out survival gameI added progression and level-up systems for the player, which let him upgrade his laser size, movement speed, collection radius, fire rate, max HP, and special attack cooldown.The game now has XP, levels, gems, particles, damage numbers, screen effects, and a proper HUD that displays the level, time, HP, and XP.The most important addition, however, was mobile support - the game now has a virtual joystick that appears on touchscreens and turns swipes into directional inputI also added synthesized sound effects for lasers, hits, gems, slashes, and explosions using the Web Audio API.The game now has a proper survival loop - the player gathers XP and resources, levels up, buys upgrades, and fights off hordes of enemies that get progressively stronger.This iteration marked the first true step away from the technical experimentation of the early prototype toward an actual game with content and depth."}, {"post_id": 48688, "ts": "2026-08-17T06:09:50Z", "hours": 8.4686, "text": "Devlog 01 — Building the Core Combat PrototypeThe first update was about getting the basic game loop working before adding complicated systems.I built the initial Bullet Haven Game as a Canvas-based space shooter. The player can move using WASD, aim toward the mouse, and automatically fire bullets. The game includes three basic enemy types — Swarmer, Basic, and Tank — each with different speed, size, and HP values.I also added sprite loading with fallback shapes, so the game can continue running even if the image assets are unavailable. Enemy spawning happens from outside the screen and enemies move toward the player.For combat feedback, I implemented bullet-enemy collision, particle effects when enemies are destroyed, score tracking, and screen shake. The rendering system draws bullets, particles, enemies, the player, and the score every frame.This update gave me the foundation: movement → shooting → enemies → collision → destruction → score → game loop.The main goal was not to make the game complete yet, but to prove that the core gameplay system worked."}]...
|
Title: space-war by @dineshkarthik | Stardance
De Title: space-war by @dineshkarthik | Stardance
Devlogs:
Devlog 01 — Building the Core Combat PrototypeThe first update was about getting the basic game loop working before adding complicated systems.I built the initial Bullet Haven Game as a Canvas-based space shooter. The player can move using WASD, aim toward the mouse, and automatically fire bullets. The game includes three basic enemy types — Swarmer, Basic, and Tank — each with different speed, size, and HP values.I also added sprite loading with fallback shapes, so the game can continue running even if the image assets are unavailable. Enemy spawning happens from outside the screen and enemies move toward the player.For combat feedback, I implemented bullet-enemy collision, particle effects when enemies are destroyed, score tracking, and screen shake. The rendering system draws bullets, particles, enemies, the player, and the score every frame.This update gave me the foundation: movement → shooting → enemies → collision → destruction → score → game loop.The main goal was not to make the game complete yet, but to prove that the core gameplay system worked.
Devlog 02 - Expanding the Gameplay SystemsThe second update went from a bare-bones prototype to a more fleshed-out survival gameI added progression and level-up systems for the player, which let him upgrade his laser size, movement speed, collection radius, fire rate, max HP, and special attack cooldown.The game now has XP, levels, gems, particles, damage numbers, screen effects, and a proper HUD that displays the level, time, HP, and XP.The most important addition, however, was mobile support - the game now has a virtual joystick that appears on touchscreens and turns swipes into directional inputI also added synthesized sound effects for lasers, hits, gems, slashes, and explosions using the Web Audio API.The game now has a proper survival loop - the player gathers XP and resources, levels up, buys upgrades, and fights off hordes of enemies that get progressively stronger.This iteration marked the first true step away from the technical experimentation of the early prototype toward an actual game with content and depth.
Devlog 03, Hyperion: Space Defender The third update involved a significant redesign rather than just adding new features. I renamed the experience Hyperion: Space Defender and reworked the interface with a dedicated command system. The battlefield now takes up 75% of the screen , while the remaining 25% serves as a Command & Telemetry sidebar . The sidebar shows live information such as ship tier, hull integrity, system level, XP, coins, gems, score, and flight time . I also created a proper start screen and gameplay guide so players can learn the controls before they enter combat. Previous records like best score, best flight time, and most coins are displayed as well. The progression system became richer with different enemy classes and a boss system , which includes a dedicated boss health display. Players now have extra progression statistics such as tier, coins, score, and improved combat attributes. Persistence has also improved. High score, best survival time, and maximum coins are saved using localStorage , allowing records to persist between sessions. Finally, I upgraded the audio system from simple oscillator effects to a more advanced Web Audio setup, which uses oscillators, gain nodes, filters, and generated noise for better laser and explosion sounds. This update turned the project from a basic browser shooter into a more complete space-survival game system with progression, persistence, telemetry, mobile controls, bosses, audio, and a stronger interface .
Space War - Final Devlog Space War’s development iteration has been completed in time for the next step. The current gameplay hub offers a pure mode-based experience. The following features have been added: 180° and 360° War Zone selection Both games are now separated as individual modes A 360° exclusive records panel has been added Highest Score, Best Survival Time, Missions and Coins are now available for tracking Everything is persistent via localStorage The whole UI is now organized into two sections: the game itself on the left and the records panel on the right Added responsive behavior so that the game area is always fully playable Original systems, upgrades, enemies, effects and controls are preserved From selecting a battlefield to challenging oneself to a new record, the Space War gameplay hub is now a truly comprehensive mode-based system.
forgot to write a devlog lost 10h of time but yet my GAME is making a clean 3d visuals
a long time taken to refine complete css after getting too many resubmits for using ai in it actually i built the whole game from scratch from choosing the enimies their characters their shapes and in auto shoot game i revised my old mathematics textbook for shortest distance formulas and point of contact formulas that makes me learn my 11th textbook again i learned a lot from this finally i am about to complete the css part a few modifications are apart
FINAL DEVLOG finally completed by project by adding a selection page that display the game highest records and give options to selct gaem mode with my custom arcrade retro style theme literally it takes a lot of time to arrange the background frame with the button trapezium shapes and with that and it is looking really great . i designed it by my thoughts if any suggestions are improvements are accepted and i will try to implement it later TRY IT NOW: https://space-war-beta.vercel.app/
improving from the feedback and suggestion i got from the first ship some formaulas or modified and some changes in js is taking apart soon you will see a complete game hsing everything suggested and this is the highest score i got make a try to break it
Ships:
🚀 Space War - Shipping Description I made a browser-based space shooter where the player has options to determine a certain way of playing and getting better at the game. In the project, I implemented different war zones, from 180 ° and 360 °, and added a variety of gameplays. The game allows battling enemy waves, collecting resources, upgrading the player’s ship, and being able to set and beat your own personal records. I also added a menu where you can choose a certain game mode and the system to store records to keep track of your stats accurately and have a reference of the best results. I aimed for variety in gameplay and for the player to feel like they are part of a bigger system, not just a simple space shooter, which is why I focused on adding content that would give them a reason to keep playing....
|
1792878469.4185536
|
1793742469.4185536
|
|
50559
|
AmateurWare by @amateur_tech_guy | Stardance
|
amateur_tech_guy
|
3
|
32.0
|
163
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-31T19:58:15Z", "hours": 12.0, "multiplier": 9.05, "payout": 110, "blessing": "neutral", "text": "AmateurWare(once again) PLEASE READ!! If you get an error saying WEBGL is not working, or something along those lines, that is NOT from me, its from your browser, I’m no expert so I don’t know the fix to that unfortunetly:( Anyways I listened to the reviews and fixed everything asked of me, except for the animation part, i drew 3 frames of my sprite but i just couldnt animate it for some reason, im sorry for disappointing yall at that part. But the good news is I added a score system just like requested, someone said let the score change on every run and i made that! finish 20 minigames or more and get the win screen, finish less than 20 minigames and get the losers screen:P GOODLUCK AND THANKS FOR TUNING IN", "repo": "https://github.com/amateurtechguy/AmateurWare", "demo": "https://amateurtechguy.itch.io/amateurware"}, {"ship_num": 2, "ts": "2026-08-27T17:43:40Z", "hours": 8.0, "multiplier": 8.98, "payout": 53, "blessing": "neutral", "text": "AmateurWare AmateurWare’s new update contains 4 new minigames made entirely from brainstorming and implying the previously learnt skills into this game, I really was having fun until lapse and hackatime started tweaking, it wasn’t fun losing all of those hours of work, but at last I’m done, I know the games aren’t really creative but it’s the best I could do as a beginner forgive me y’all. I’m really proud of how the game turned out tho, it had a lot of bugs that pissed me off, but I ended up debugging them SOMEHOW I myself don’t even know how I managed but either way, thanks to anyone and everyone who were invested in the making of this game, safe to say might add more minigames in the future:)", "repo": "https://github.com/amateurtechguy/AmateurWare", "demo": "https://amateurtechguy.itch.io/amateurware"}, {"ship_num": 3, "ts": "2026-08-24T15:40:13Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "** AmateurWare ** This is genuinely the most fun thing I ever had to make, I enjoyed playing it as well even if it only had 2 minigames, it falls in the requirements which is neat, planning to make more minigames on my second ship. I’m really proud of myself for not giving up at this point and I’m really proud of my pixel art, that took me HOURS to make each, I have no experience or interest in it but I figured it would look good in my game!", "repo": "https://github.com/amateurtechguy/AmateurWare", "demo": "https://amateurtechguy.itch.io/amateurware"}]...
|
[{"post_id": 59157, "ts": "202 [{"post_id": 59157, "ts": "2026-08-31T19:45:53Z", "hours": 2.7789, "text": "devlog #21: I added miningame 7, idk why the shooting sound effect plays whenever it wants to and the animation doesnt work but ill be completely honest. Animating is NOT my thing and if i have to spend another hour trying to animation something, shoot me anyways time to ship AND i also enhanced the buttons cause someone said it looks too bland so, i changed it to my color scheme:)"}, {"post_id": 58963, "ts": "2026-08-31T15:10:12Z", "hours": 0.3206, "text": "devlog #20: for some reason, the animation won’t work, I might ship this with no animation and keep it just like that, time wasted on the sprite design but it’s whatever i guess it doesnt want to align for some reason, either way atleast I tried, ill make minigame 7 and then ill ship it, and for the record i did NOT only spend 19 minutes on this i have no idea why it says that"}, {"post_id": 58619, "ts": "2026-08-31T03:13:55Z", "hours": 2.2336, "text": "devlog #19: i finished drawing the walk animation and now im just trying to apply it to godot, as you can tell im no expert at this haha"}, {"post_id": 58471, "ts": "2026-08-30T21:46:55Z", "hours": 0.6211, "text": "devlog #18: got the score system working, now if you finish under 20 minigames before losing all your lives you get the first screen, if you get 20 or more you get the second screen, thats your score!! also, forgot to mention someone complained about minigame 3 and told me that the stardust only falls on the right side so i fixed that too, might add minigame 7 next and then ill look through the reviews and see more recommendations"}, {"post_id": 58423, "ts": "2026-08-30T20:38:59Z", "hours": 2.2503, "text": "devlog #17: worked on my second frame of the walk animation, just as i was asked. all i need is a third one and the walk animation will be done, but ill focus on that later, rn i still have to debug the game because the levels arent working anymore due to some issues in the code"}, {"post_id": 58309, "ts": "2026-08-30T18:00:37Z", "hours": 1.8167, "text": "devlog #16: taking the reviwer’s advices and makiing an animation that way the character isnt so bland, I made frame 1/3 ima finish all of them tonight tho. heres the left and right frame i just made it and reverted the duplicate cause im not that dedicated on animating each frame"}, {"post_id": 57731, "ts": "2026-08-30T00:08:22Z", "hours": 1.8525, "text": "devlog #15: okay so i read the reviews and a lot of people recommended that i should add a score system instead of winning after level 5, but i spent a long time on my pixel art so heres the plan, if a player has less than 10 minigames beat they get the lose scene however if they have more they get the win scene with the celebrations and everything, and the amount of minigames played will depend more on the player rather than the code"}, {"post_id": 55753, "ts": "2026-08-27T18:53:24Z", "hours": 0.2639, "text": "I accidentally shiped it without connecting the mission to it bruhhhhhh what do i do i thought i did"}, {"post_id": 55691, "ts": "2026-08-27T17:36:08Z", "hours": 0.6239, "text": "devlog #13: finally done with this, maybe in the future ill add some but im really mad at lapse and for not logging 90% of my time either way minigame 6/6 DONE, the target disappears and appears randomly and you have to click it before the timer ends"}, {"post_id": 55546, "ts": "2026-08-27T13:58:04Z", "hours": 2.9961, "text": "devlog #12: I have no idea whats going on with my lapse because it won’t let me log my hours in and its frustrating it keeps saying cannot calculate hours and i have no idea what all that is about but its whatever, 4 hours wasted, anyways minigame 5/6 done"}, {"post_id": 55187, "ts": "2026-08-26T18:09:52Z", "hours": 1.6167, "text": "devlog # 11: I have been working on minigame 4, which is stop the needle i know the needle looks kind of ugly but its the best I could do with how frustrating it was to even make this game, either way game 4/6 done :D THIS IS AN EDIT so im editing this the same day i posted it i logged 4 hours on lapse, i made minigame 5 and 6 and now im done, but it says cannot caluclate hours so i have to disclose it here!!"}, {"post_id": 54710, "ts": "2026-08-25T19:43:35Z", "hours": 1.5814, "text": "devlog #10: game 3/6 completed and i also debugged the game randomization algorithm that way you can’t play the same game twice in a row!"}, {"post_id": 54572, "ts": "2026-08-25T16:23:42Z", "hours": 1.2572, "text": "devlog #9: I’m adding minigame n3 and I’m sure everyone is familiar with this minigame, I decided to make a different minigame each day until i reach 5 or 6 minigames and then i’ll ship it for the second time!"}, {"post_id": 53819, "ts": "2026-08-24T14:52:26Z", "hours": 2.0883, "text": "devlog #8: I officially debugged minigame 2 and it works just fine now, I also had to figure out how to keep the music running throughtout the main screen and the settings scene, and i finished designing the sprite for it now the settings screen is fully functional and designed, ill prob be adding more minigames on my second ship, wish me luck:)"}, {"post_id": 53232, "ts": "2026-08-23T17:50:17Z", "hours": 1.1306, "text": "devlog #7: Well, gotta say I’m completely done with minigame n1 the only thing that bothers me is the fact that my sprite has no animation but its fully functional, now i’m on minigame 2 and im struggling a bit because of the code, however I am enjoying this"}, {"post_id": 53057, "ts": "2026-08-23T13:37:02Z", "hours": 0.4231, "text": "devlog #6: gave the character a glow up and I debugged the game, now it works perfectly, the only thing that bothers me about it is the fact that my character has no animation but i spent hours and i mean HOURS making the character alone i cant be asked to animate him it would be so hard, anyways minigame 1 done, now all we need is one more or maybe two more minigames and then were done for our first ship!"}, {"post_id": 52644, "ts": "2026-08-22T21:39:33Z", "hours": 1.6458, "text": "devlog #5: redesigned the ugly green platforms and made them brick, also did some backend coding and i might redesign my character, i stilll have abit of debugging but im almost finished with minigame n1!"}, {"post_id": 52291, "ts": "2026-08-22T12:27:30Z", "hours": 1.7856, "text": "devlog #4: Today I started working on the backend of my minigame, i added stardust as collectibles but im kind og trying to debug stuff cause the timer scene doesnt want to appear on the corner for some reason, either way i debugged the animation so the stardust are actually floating up and down now! either way I’m almost done"}, {"post_id": 51912, "ts": "2026-08-21T20:24:04Z", "hours": 1.8633, "text": "devlog #3: I finally made my loading screen functional and I made my character all that’s left for me now are the mini games, pic n2 is a sneak peak of my first minigame’s background:D"}, {"post_id": 51801, "ts": "2026-08-21T17:18:34Z", "hours": 1.8147, "text": "devlog #2: Hey guys so I know I didnt do much on this project earlier but now i added a level scene, gonna make the game have like 2 or 3 minigames cause I’m not really feeling well, i would make more but i cant unfortunately :( but its really fun making this game im not gonna lie im learning a new programming language while making this game so its really fun!"}, {"post_id": 51626, "ts": "2026-08-21T12:26:17Z", "hours": 0.7833, "text": "devlog #1: Hi guys, I’m sick so I’m sorry for the lack of effort in my projects lately, but anyways I have started on a game called AmateurWare and I don’t have much rn but we’ll see how this goes"}]...
|
Title: AmateurWare by @amateur_tech_guy | Stardanc Title: AmateurWare by @amateur_tech_guy | Stardance
Devlogs:
devlog #1: Hi guys, I’m sick so I’m sorry for the lack of effort in my projects lately, but anyways I have started on a game called AmateurWare and I don’t have much rn but we’ll see how this goes
devlog #2: Hey guys so I know I didnt do much on this project earlier but now i added a level scene, gonna make the game have like 2 or 3 minigames cause I’m not really feeling well, i would make more but i cant unfortunately :( but its really fun making this game im not gonna lie im learning a new programming language while making this game so its really fun!
devlog #3: I finally made my loading screen functional and I made my character all that’s left for me now are the mini games, pic n2 is a sneak peak of my first minigame’s background:D
devlog #4: Today I started working on the backend of my minigame, i added stardust as collectibles but im kind og trying to debug stuff cause the timer scene doesnt want to appear on the corner for some reason, either way i debugged the animation so the stardust are actually floating up and down now! either way I’m almost done
devlog #5: redesigned the ugly green platforms and made them brick, also did some backend coding and i might redesign my character, i stilll have abit of debugging but im almost finished with minigame n1!
devlog #6: gave the character a glow up and I debugged the game, now it works perfectly, the only thing that bothers me about it is the fact that my character has no animation but i spent hours and i mean HOURS making the character alone i cant be asked to animate him it would be so hard, anyways minigame 1 done, now all we need is one more or maybe two more minigames and then were done for our first ship!
devlog #7: Well, gotta say I’m completely done with minigame n1 the only thing that bothers me is the fact that my sprite has no animation but its fully functional, now i’m on minigame 2 and im struggling a bit because of the code, however I am enjoying this
devlog #8: I officially debugged minigame 2 and it works just fine now, I also had to figure out how to keep the music running throughtout the main screen and the settings scene, and i finished designing the sprite for it now the settings screen is fully functional and designed, ill prob be adding more minigames on my second ship, wish me luck:)
devlog #9: I’m adding minigame n3 and I’m sure everyone is familiar with this minigame, I decided to make a different minigame each day until i reach 5 or 6 minigames and then i’ll ship it for the second time!
devlog #10: game 3/6 completed and i also debugged the game randomization algorithm that way you can’t play the same game twice in a row!
devlog # 11: I have been working on minigame 4, which is stop the needle i know the needle looks kind of ugly but its the best I could do with how frustrating it was to even make this game, either way game 4/6 done :D THIS IS AN EDIT so im editing this the same day i posted it i logged 4 hours on lapse, i made minigame 5 and 6 and now im done, but it says cannot caluclate hours so i have to disclose it here!!
devlog #12: I have no idea whats going on with my lapse because it won’t let me log my hours in and its frustrating it keeps saying cannot calculate hours and i have no idea what all that is about but its whatever, 4 hours wasted, anyways minigame 5/6 done
devlog #13: finally done with this, maybe in the future ill add some but im really mad at lapse and for not logging 90% of my time either way minigame 6/6 DONE, the target disappears and appears randomly and you have to click it before the timer ends
I accidentally shiped it without connecting the mission to it bruhhhhhh what do i do i thought i did
devlog #15: okay so i read the reviews and a lot of people recommended that i should add a score system instead of winning after level 5, but i spent a long time on my pixel art so heres the plan, if a player has less than 10 minigames beat they get the lose scene however if they have more they get the win scene with the celebrations and everything, and the amount of minigames played will depend more on the player rather than the code
devlog #16: taking the reviwer’s advices and makiing an animation that way the character isnt so bland, I made frame 1/3 ima finish all of them tonight tho. heres the left and right frame i just made it and reverted the duplicate cause im not that dedicated on animating each frame
devlog #17: worked on my second frame of the walk animation, just as i was asked. all i need is a third one and the walk animation will be done, but ill focus on that later, rn i still have to debug the game because the levels arent working anymore due to some issues in the code
devlog #18: got the score system working, now if you finish under 20 minigames before losing all your lives you get the first screen, if you get 20 or more you get the second screen, thats your score!! also, forgot to mention someone complained about minigame 3 and told me that the stardust only falls on the right side so i fixed that too, might add minigame 7 next and then ill look through the reviews and see more recommendations
devlog #19: i finished drawing the walk animation and now im just trying to apply it to godot, as you can tell im no expert at this haha
devlog #20: for some reason, the animation won’t work, I might ship this with no animation and keep it just like that, time wasted on the sprite design but it’s whatever i guess it doesnt want to align for some reason, either way atleast I tried, ill make minigame 7 and then ill ship it, and for the record i did NOT only spend 19 minutes on this i have no idea why it says that
devlog #21: I added miningame 7, idk why the shooting sound effect plays whenever it wants to and the animation doesnt work but ill be completely honest. Animating is NOT my thing and if i have to spend another hour trying to animation something, shoot me anyways time to ship AND i also enhanced the buttons cause someone said it looks too bland so, i changed it to my color scheme:)
Ships:
** AmateurWare ** This is genuinely the most fun thing I ever had to make, I enjoyed playing it as well even if it only had 2 minigames, it falls in the requirements which is neat, planning to make more minigames on my second ship. I’m really proud of myself for not giving up at this point and I’m really proud of my pixel art, that took me HOURS to make each, I have no experience or interest in it but I figured it would look good in my game!
AmateurWare AmateurWare’s new update contains 4 new minigames made entirely from brainstorming and implying the previously learnt skills into this game, I really was having fun until lapse and hackatime started tweaking, it wasn’t fun losing all of those hours of work, but at last I’m done, I know the games aren’t really creative but it’s the best I could do as a beginner forgive me y’all. I’m really proud of how the game turned out tho, it had a lot of bugs that pissed me off, but I ended up debugging them SOMEHOW I myself don’t even know how I managed but either way, thanks to anyone and everyone who were invested in the making of this game, safe to say might add more minigames in the future:)
AmateurWare(once again) PLEASE READ!! If you get an error saying WEBGL is not working, or something along those lines, that is NOT from me, its from your browser, I’m no expert so I don’t know the fix to that unfortunetly:( Anyways I listened to the reviews and fixed everything asked of me, except for the animation part, i drew 3 frames of my sprite but i just couldnt animate it for some reason, im sorry for disappointing yall at that part. But the good news is I added a score system just like requested, someone said let the score change on every run and i made that! finish 20 minigames or more and get the win screen, finish less than 20 minigames and get the losers screen:P GOODLUCK AND THANKS FOR TUNING IN...
|
1793000986.531382
|
1793087386.531382
|
|
33617
|
OutreachOS by @Athan | Stardance
|
Athan
|
2
|
16.0
|
162
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T06:46:41Z", "hours": 13.0, "multiplier": 9.84, "payout": 126, "blessing": "neutral", "text": "Shipping OutreachOS again after ship #1. I ripped the dark teal “ops console” look and rebuilt the whole app as a sketchbook (paper, doodles, sticky notes) based on my old high-school notebook portfolio. added sticky call scripts, status chips, optional weekly quests, and a one-click Try Demo so nobody hunts for passwords. You can upload the excel sheets and it automatically registers any niches or countries you target +_+ Since then it’s been on a real domain ( https://outreachos.techxtreme.me ) , Premium works via email request (no KYC rabbit hole), and people actually used it. biggest bug from that: Excel import was picky about headers. a sheet with Number instead of Phone Number imported with empty phones and no warning. fixed that — messy labels map now, phones/addresses/maps links get cleaned, and you get a warning if something still looks wrong. UI Was laggy, compressed it and made it still retain the good UI :) Also fixed some bugs in UX experience. What it is (for those who are seeing it first time): Basically its a personal lead vault for cold outreach. dump an Excel sheet, filter by niche/country/status, dial with a sticky script, keep track of who you already hit. You go from bunch of excel rows and columns to a Full Lead manager (as one of the reviewers said :D) how to test (2 min): open https://outreachos.techxtreme.me hit Peek the demo / Sign in as demo Poke the table, flip a status, open the sticky script, try vector view if you have a messy .xlsx, import it (or check /import-guide ) repo: https://github.com/its-techxtreme/OutreachOS", "repo": "https://github.com/its-techxtreme/OutreachOS", "demo": "https://outreachos.techxtreme.me"}, {"ship_num": 2, "ts": "2026-07-15T15:49:31Z", "hours": 3.0, "multiplier": 14.69, "payout": 36, "blessing": "neutral", "text": "This project is called OutreachOS, if you have every tried starting your business or freelancing, there’s always this major question: So how are we going to get clients? Most of the people stumble upon the same idea, which is Cold Calling, Cold messaging or something on the similar side. This is because its the most common way to ACTUALLY get clients without spending funds on running ads, etc. This method, though it works, requires lots of effort. You have to find contact information of people that might me interested in your services, save the numbers, call them, shoot your shot, and much more. But to make it actually feasible, you have to manage a lot of contact and potential client information. I was dealing with the same issue. So, I came up with this Idea, What if I could just feed my excel sheets (like many due to separate batches of calls) have one place to easily search up some client’s info when i need it (like in case of a callback), also be able to export my complete database in Just ONE CLICK to my scraper & Wallah ! there you have it, that’s Exactly what OutreachOS is. Tho I went ahead and added more features to proper categorize each lead based on country, niche, date, etc as well as added to vector view to easily visualise what categories we have been targeting and where we can focus more. Since OutreachOS involves importing contact information, I have made it so that it has a built in authentication system, so only you can log into your database. But if you want to test it out I have created a demo account (it has some restrictions unlike the admin/owner account to prevent destructive use) with some of my old lead contact data, Please use the following credentials to log in : Email: [email protected] Password:OutreachOS@13 Thank you for checking out my project, I am really glad you did ;)", "repo": "https://github.com/its-techxtreme/OutreachOS", "demo": "https://outreachos.techxtreme.me"}]...
|
[{"post_id": 43779, "ts": "202 [{"post_id": 43779, "ts": "2026-08-09T06:37:04Z", "hours": 1.6928, "text": "DEVLOG 6 — small fixes that impacted lags in some devices +_= after some people’s reviews i sat with the real feedback. sketchbook looked cool but felt laggy on some devices. login was annoying. filters were confusing. tutorial glitched on phones. and yeah — a security issue popped up that i had to actually fix, not shrug off. this update is the cleanup after that. what reviews complained about the UI felt heavy (scroll lag, blurry glass, doodles that somehow made the page wheeze) password managers / paste on login were janky niche + country filters felt empty or unclear until you’d imported something demo tutorial broke on mobile / pointed at nothing sometimes security issue found in review — patched and scrubbed what i changed :) speed without killing the vibe. ripped expensive paper grain / blur, dialed back idle vector vault work, kept the margin doodles with cheap CSS bobbing instead of Framer looping forever. doodles stay. lag mostly doesn’t. auth that behaves. forms play nicer with autofill. signup/reset don’t overshare. login + username checks got rate limits. admin denials stay generic. security + small UX. fixed the issue, cleaned public templates, tightened gates. logo in the header finally goes home when you click it. filters + tutorial. niche/country lists make more sense post-import (searchable when long). demo tutorial doesn’t trap you on phones anymore. still sketchbook didn’t “simplify into a boring dashboard.” paper, doodles, sticky scripts — still there. just less of the stuff that made a laptop cry :D"}, {"post_id": 37766, "ts": "2026-07-30T18:01:23Z", "hours": 0.8275, "text": "DEVLOG #5 — messy sheets, finally cleaned I got some real feedback after people poked OutreachOS. Many people loved the Tutorial feature :D one stuck tho: import was too picky about column names. someone uploaded a normal lead sheet with Number instead of Phone Number , and we silently imported leads with empty phones. that’s the opposite of “we clean your messy list.” so #5 is basically: a bug fix where we stop being precious about headers, and actually clean the sheet. flexible headers import now treats common scrapes / hand labels as the same field: phone: Number, Mob, Ph No, Contact, WhatsApp, Cell, Landline… name: Shop, Firm, Brand, Client, Restaurant, Company… maps: Gmaps, Maps Link, Place URL, Source URL, bare goo.gl… address bits: City / State / PIN / Zip get merged when the sheet splits them house / plot / GST “number” columns stay ignored so we don’t invent fake phones. cleaning that actually helps phones: scientific notation from Excel, leading 0 / 91 , multi-value cells ( a / b → first good one) maps: HYPERLINK() formulas and scheme-less short links junk cells: N/A , NULL , blanks stripped if a column still looks like phones but didn’t map, the import result warns instead of pretending everything’s fine other polish since #4 Premium email fallback when no mail app (“copy the draft”) admin can disable accounts with a reason OG preview image fixed + sized to 1200×630 try it- live: https://outreachos.techxtreme.me import guide: import-guide repo: github.com/its-techxtreme/OutreachOS if your sheet still confuses the mapper, send me the header row — that’s how this list grows."}, {"post_id": 33507, "ts": "2026-07-23T14:48:22Z", "hours": 4.0389, "text": "DEVLOG #4 — custom domain, premium, and the boring-but-necessary stuff ig after #3 i thought i was mostly done. then reality showed up with a checklist: put it on a real domain, try to make money somehow without blowing up KYC 😅, stop looking sketchy to Google, and clean the security alerts GitHub kept waving at me =_+ so this update is less “new shiny feature” and more “make it feel like an actual product.” domain OutreachOS now lives at https://outreachos.techxtreme.me (not just the random vercel.app link). feels way better saying that out loud. premium (without card chaos) I wanted paid plans but razorpay needs PAN/KYC and i wasn’t doing that yet. so /pricing is live (₹1499 / $15) and “buy” just opens an email request with your username filled in. i grant Premium from an admin dashboard after payment. not fancy but works i hope so. admin + SEO + accessibility Built a small Google-only admin console for managing users / Premium. submitted the sitemap in Search Console. added an accessibility notice in the footer because i had heard that not inlcuding one can get you sued 😭 😭 security Dependabot was yelling about Next.js (and some other packages). upgraded properly and fixed it :) also tightened a few CodeQL things (sanitization, api key hashing, logging). npm audit is clean on my end now. chatgpt agent the old Custom GPT → API intake isn’t a product feature anymore. excel import is the real path. i left the agent code in the repo as scaffolding if i bring GPT intake back in v2. tiny personal note the sketchbook UI idea didn’t come from a template. i found my 10th-grade japanese paper notebook portfolio while cleaning my laptop files, and it finally clicked — paper notes for contacts just fits outreach :D try it- live: https://outreachos.techxtreme.me demo: peek the demo / sign in as demo (no password typing) repo: github.com/its-techxtreme/OutreachOS if something’s weird, tell me. i’m still polishing the edges, but the core is solid. ready to ship? yeah. for real this time ig. the app is on a proper domain, signup/demo/login work, excel import + vault features are live, Premium has a path that doesn’t depend on unfinished KYC, admin can actually manage accounts, SEO/accessibility aren’t invisible, and the scary dependency alerts got patched instead of shrugged off. not claiming it’s perfect forever — just that OutreachOS is in a state where i’m comfortable saying: ship it. poke holes if you find them."}, {"post_id": 31263, "ts": "2026-07-19T15:13:01Z", "hours": 6.2803, "text": "DEVLOG #3 — ship got rejected so i rebuilt the vibe ok so after #2 i actually shipped OutreachOS and got changes requested pretty fast. shipwrights said: ➤ the css looked like every other ai-made site ➤ add a couple features i came up with to make it more fun ➤ stop making people use demo creds that stung a little but they were right. this whole stretch was just me answering those instead of pretending it was finished :-D the ui glowup :) the biggest thing was the ui. before it was this dark teal ops console look. clean but soulless, like a saas template trying too hard. I tried to think of a idea, then I remembered my high school portfolio, I based in on a notebook pages style ppt theme. i ripped that dead ui out and went sketchbook / doodle for basically the whole app. Now its paper backgrounds, doodle borders, sticky note energy, little hand-drawn characters hanging around. landing is brand first with the constellation field and doodles floating so it feels like mine instead of a product pitch. login and signup match that vibe now too, same paper/doodle language instead of looking bolted on. dashboard feels like a notebook you actually use on call days instead of glass cards stacked forever. lead table is still built for real work but the chrome around it looks hand drawn. vector view (the niche/country constellation graph) is still there, it just fits better now. settings and account got the same treatment so flipping between pages doesnt feel like you teleported into a different app. Basically whole point was stop looking generated. the fun features then the fun features. sticky call scripts were the one i wanted most. you get a general sticky plus niche ones, with placeholders like business, niche, location, phone that you speak through live. edit, save, reset. no ai writing your pitch. just a note that stays while you dial, which sounds small until youre mid call and dont want to lose your place. call statuses got real too: New, Called, No Answer, Callback, Replied, Converted, Archived, and theyre one click chips so youre not hunting a dropdown mid call. also built a quest board (To gamify cold-calling). optional on purpose. opt in when you set a username or later in account, get 3 random quests a week, progress when you move lead statuses. kinda dumb, kinda motivating, weirdly keeps me dialing cuz its easy to get discouraged while cold-calling T_T import path got better too. any niche/country still works, clearer row errors when excel is messy, filters refresh after import, PLUS an import guide page and an excel template so people stop guessing columns. signup / demo (no cred treasure hunt) for the demo creds complaint i added a Try Demo button that just signs you in. shipwrights and anyone bored can open the site and click once. no more copying email/password out of a post. you can also signup normally or continue with google if you want your own vault. also pushed google oauth out of testing only so random google accounts actually work now, which took longer than it should have because google cloud is annoying. tiny invisible stuff nobody screenshots: passwords still go through supabase auth hashed, secrets stay in env, mfa secrets encrypted at rest. boring but i slept better after doing it ^_^ try it site is https://outreachos-online.vercel.app if you try it: open it, hit Try Demo or signup, pick a lead, flip a status chip, open the sticky script, peek at quests. tell me if anything feels weird or still looks template-y. im trying to catch that before i reship. im hyped to ship again. still got a few final polish bits (maybe a student .me domain, google brand verification for the logo, tiny ui cleanup) then im hitting request re-certification. if youre free break it before then. i actually want the feedback this time tbh."}, {"post_id": 26658, "ts": "2026-07-11T16:28:34Z", "hours": 2.3753, "text": "DEVLOG #2 — Almost done + please break it for me Ok so OutreachOS is basically complete. like the main stuff actually works now and im not waking up scared that login or imports are gonna explode. this session was mostly cleanup + making it safe enough to show people: ➤ fixed the admin side so the dashboard shows my username instead of dumping my email on screen (that was lowkey embarrassing) ➤ admin can import excel sheets kinda aggressively (up to 200/min) which is what i needed for bulk lead dumps ➤ added a public demo account so yall can poke around without me handing out admin access ➤ demo is locked down on purpose: 1 upload per hour, and you only see 100 contacts (mixed niches + countries so it still feels real) ➤ also shipped a cleaner url finally site: https://outreachos-online.vercel.app Demo login (pls use this one):–> • email✉️: [email protected] • password: OutreachOS@13 if you try it, tell me what feels weird. broken filters, confusing UI, import failing, whatever. i want people to actually click around and roast it a bit before i call this fully finished. anyway yeah. core app is mostly done. next stuff is just polish from real feedback. go test it if you’re bored."}, {"post_id": 26463, "ts": "2026-07-11T08:40:04Z", "hours": 0.8275, "text": "What is OutreachOS? OutreachOS is a B2B lead management platform for cold outreach. ChatGPT agents collect business data from Google Maps and submit it through a secure API. The system deduplicates leads, stores them in Supabase, and provides a real-time dashboard for filtering, searching, and CSV export. Stack: Next.js 16 · React 19 · Supabase PostgreSQL · Tailwind CSS · shadcn/ui · Vercel Development Timeline Phase 0 — Foundation ✅ Bootstrapped the Next.js project, testing toolchain (Jest + Playwright), Cursor rules, and phase-based workflow. Phase 1 — Database & Agent API ✅ Built the leads schema with maps_url deduplication, pg_trgm fuzzy search, and the first /api/agent/leads endpoint with X-Agent-Secret auth. Phase 2 — Dashboard UI ✅ Shipped the dashboard: filter toolbar, prospect matrix table, metrics panel, pagination, and Stitch-aligned design components. Phase 3 — Data Management✅ Connected the UI to live data — debounced search, multi-filter state, CSV export, URL-synced filters. Hit 85%+ test coverage. Phase 4 — API Integration & ChatGPT Setup ✅ Multi-strategy auth (agent secret + Bearer API keys) Tiered rate limiting, structured logging, Prometheus metrics /api/health and /api/metrics endpoints OpenAPI spec + ChatGPT Custom GPT documentation 190 tests passing · repo published publicly on GitHub Links:- Repo: https://github.com/its-techxtreme/OutreachOS README: https://github.com/its-techxtreme/OutreachOS/blob/develop/README.md Devlog file: https://github.com/its-techxtreme/OutreachOS/blob/develop/docs/DEVLOG.md"}]...
|
Title: OutreachOS by @Athan | Stardance
Devlogs:
Title: OutreachOS by @Athan | Stardance
Devlogs:
What is OutreachOS? OutreachOS is a B2B lead management platform for cold outreach. ChatGPT agents collect business data from Google Maps and submit it through a secure API. The system deduplicates leads, stores them in Supabase, and provides a real-time dashboard for filtering, searching, and CSV export. Stack: Next.js 16 · React 19 · Supabase PostgreSQL · Tailwind CSS · shadcn/ui · Vercel Development Timeline Phase 0 — Foundation ✅ Bootstrapped the Next.js project, testing toolchain (Jest + Playwright), Cursor rules, and phase-based workflow. Phase 1 — Database & Agent API ✅ Built the leads schema with maps_url deduplication, pg_trgm fuzzy search, and the first /api/agent/leads endpoint with X-Agent-Secret auth. Phase 2 — Dashboard UI ✅ Shipped the dashboard: filter toolbar, prospect matrix table, metrics panel, pagination, and Stitch-aligned design components. Phase 3 — Data Management✅ Connected the UI to live data — debounced search, multi-filter state, CSV export, URL-synced filters. Hit 85%+ test coverage. Phase 4 — API Integration & ChatGPT Setup ✅ Multi-strategy auth (agent secret + Bearer API keys) Tiered rate limiting, structured logging, Prometheus metrics /api/health and /api/metrics endpoints OpenAPI spec + ChatGPT Custom GPT documentation 190 tests passing · repo published publicly on GitHub Links:- Repo: https://github.com/its-techxtreme/OutreachOS README: https://github.com/its-techxtreme/OutreachOS/blob/develop/README.md Devlog file: https://github.com/its-techxtreme/OutreachOS/blob/develop/docs/DEVLOG.md
DEVLOG #2 — Almost done + please break it for me Ok so OutreachOS is basically complete. like the main stuff actually works now and im not waking up scared that login or imports are gonna explode. this session was mostly cleanup + making it safe enough to show people: ➤ fixed the admin side so the dashboard shows my username instead of dumping my email on screen (that was lowkey embarrassing) ➤ admin can import excel sheets kinda aggressively (up to 200/min) which is what i needed for bulk lead dumps ➤ added a public demo account so yall can poke around without me handing out admin access ➤ demo is locked down on purpose: 1 upload per hour, and you only see 100 contacts (mixed niches + countries so it still feels real) ➤ also shipped a cleaner url finally site: https://outreachos-online.vercel.app Demo login (pls use this one):–> • email✉️: [email protected] • password: OutreachOS@13 if you try it, tell me what feels weird. broken filters, confusing UI, import failing, whatever. i want people to actually click around and roast it a bit before i call this fully finished. anyway yeah. core app is mostly done. next stuff is just polish from real feedback. go test it if you’re bored.
DEVLOG #3 — ship got rejected so i rebuilt the vibe ok so after #2 i actually shipped OutreachOS and got changes requested pretty fast. shipwrights said: ➤ the css looked like every other ai-made site ➤ add a couple features i came up with to make it more fun ➤ stop making people use demo creds that stung a little but they were right. this whole stretch was just me answering those instead of pretending it was finished :-D the ui glowup :) the biggest thing was the ui. before it was this dark teal ops console look. clean but soulless, like a saas template trying too hard. I tried to think of a idea, then I remembered my high school portfolio, I based in on a notebook pages style ppt theme. i ripped that dead ui out and went sketchbook / doodle for basically the whole app. Now its paper backgrounds, doodle borders, sticky note energy, little hand-drawn characters hanging around. landing is brand first with the constellation field and doodles floating so it feels like mine instead of a product pitch. login and signup match that vibe now too, same paper/doodle language instead of looking bolted on. dashboard feels like a notebook you actually use on call days instead of glass cards stacked forever. lead table is still built for real work but the chrome around it looks hand drawn. vector view (the niche/country constellation graph) is still there, it just fits better now. settings and account got the same treatment so flipping between pages doesnt feel like you teleported into a different app. Basically whole point was stop looking generated. the fun features then the fun features. sticky call scripts were the one i wanted most. you get a general sticky plus niche ones, with placeholders like business, niche, location, phone that you speak through live. edit, save, reset. no ai writing your pitch. just a note that stays while you dial, which sounds small until youre mid call and dont want to lose your place. call statuses got real too: New, Called, No Answer, Callback, Replied, Converted, Archived, and theyre one click chips so youre not hunting a dropdown mid call. also built a quest board (To gamify cold-calling). optional on purpose. opt in when you set a username or later in account, get 3 random quests a week, progress when you move lead statuses. kinda dumb, kinda motivating, weirdly keeps me dialing cuz its easy to get discouraged while cold-calling T_T import path got better too. any niche/country still works, clearer row errors when excel is messy, filters refresh after import, PLUS an import guide page and an excel template so people stop guessing columns. signup / demo (no cred treasure hunt) for the demo creds complaint i added a Try Demo button that just signs you in. shipwrights and anyone bored can open the site and click once. no more copying email/password out of a post. you can also signup normally or continue with google if you want your own vault. also pushed google oauth out of testing only so random google accounts actually work now, which took longer than it should have because google cloud is annoying. tiny invisible stuff nobody screenshots: passwords still go through supabase auth hashed, secrets stay in env, mfa secrets encrypted at rest. boring but i slept better after doing it ^_^ try it site is https://outreachos-online.vercel.app if you try it: open it, hit Try Demo or signup, pick a lead, flip a status chip, open the sticky script, peek at quests. tell me if anything feels weird or still looks template-y. im trying to catch that before i reship. im hyped to ship again. still got a few final polish bits (maybe a student .me domain, google brand verification for the logo, tiny ui cleanup) then im hitting request re-certification. if youre free break it before then. i actually want the feedback this time tbh.
DEVLOG #4 — custom domain, premium, and the boring-but-necessary stuff ig after #3 i thought i was mostly done. then reality showed up with a checklist: put it on a real domain, try to make money somehow without blowing up KYC 😅, stop looking sketchy to Google, and clean the security alerts GitHub kept waving at me =_+ so this update is less “new shiny feature” and more “make it feel like an actual product.” domain OutreachOS now lives at https://outreachos.techxtreme.me (not just the random vercel.app link). feels way better saying that out loud. premium (without card chaos) I wanted paid plans but razorpay needs PAN/KYC and i wasn’t doing that yet. so /pricing is live (₹1499 / $15) and “buy” just opens an email request with your username filled in. i grant Premium from an admin dashboard after payment. not fancy but works i hope so. admin + SEO + accessibility Built a small Google-only admin console for managing users / Premium. submitted the sitemap in Search Console. added an accessibility notice in the footer because i had heard that not inlcuding one can get you sued 😭 😭 security Dependabot was yelling about Next.js (and some other packages). upgraded properly and fixed it :) also tightened a few CodeQL things (sanitization, api key hashing, logging). npm audit is clean on my end now. chatgpt agent the old Custom GPT → API intake isn’t a product feature anymore. excel import is the real path. i left the agent code in the repo as scaffolding if i bring GPT intake back in v2. tiny personal note the sketchbook UI idea didn’t come from a template. i found my 10th-grade japanese paper notebook portfolio while cleaning my laptop files, and it finally clicked — paper notes for contacts just fits outreach :D try it- live: https://outreachos.techxtreme.me demo: peek the demo / sign in as demo (no password typing) repo: github.com/its-techxtreme/OutreachOS if something’s weird, tell me. i’m still polishing the edges, but the core is solid. ready to ship? yeah. for real this time ig. the app is on a proper domain, signup/demo/login work, excel import + vault features are live, Premium has a path that doesn’t depend on unfinished KYC, admin can actually manage accounts, SEO/accessibility aren’t invisible, and the scary dependency alerts got patched instead of shrugged off. not claiming it’s perfect forever — just that OutreachOS is in a state where i’m comfortable saying: ship it. poke holes if you find them.
DEVLOG #5 — messy sheets, finally cleaned I got some real feedback after people poked OutreachOS. Many people loved the Tutorial feature :D one stuck tho: import was too picky about column names. someone uploaded a normal lead sheet with Number instead of Phone Number , and we silently imported leads with empty phones. that’s the opposite of “we clean your messy list.” so #5 is basically: a bug fix where we stop being precious about headers, and actually clean the sheet. flexible headers import now treats common scrapes / hand labels as the same field: phone: Number, Mob, Ph No, Contact, WhatsApp, Cell, Landline… name: Shop, Firm, Brand, Client, Restaurant, Company… maps: Gmaps, Maps Link, Place URL, Source URL, bare goo.gl… address bits: City / State / PIN / Zip get merged when the sheet splits them house / plot / GST “number” columns stay ignored so we don’t invent fake phones. cleaning that actually helps phones: scientific notation from Excel, leading 0 / 91 , multi-value cells ( a / b → first good one) maps: HYPERLINK() formulas and scheme-less short links junk cells: N/A , NULL , blanks stripped if a column still looks like phones but didn’t map, the import result warns instead of pretending everything’s fine other polish since #4 Premium email fallback when no mail app (“copy the draft”) admin can disable accounts with a reason OG preview image fixed + sized to 1200×630 try it- live: https://outreachos.techxtreme.me import guide: import-guide repo: github.com/its-techxtreme/OutreachOS if your sheet still confuses the mapper, send me the header row — that’s how this list grows.
DEVLOG 6 — small fixes that impacted lags in some devices +_= after some people’s reviews i sat with the real feedback. sketchbook looked cool but felt laggy on some devices. login was annoying. filters were confusing. tutorial glitched on phones. and yeah — a security issue popped up that i had to actually fix, not shrug off. this update is the cleanup after that. what reviews complained about the UI felt heavy (scroll lag, blurry glass, doodles that somehow made the page wheeze) password managers / paste on login were janky niche + country filters felt empty or unclear until you’d imported something demo tutorial broke on mobile / pointed at nothing sometimes security issue found in review — patched and scrubbed what i changed :) speed without killing the vibe. ripped expensive paper grain / blur, dialed back idle vector vault work, kept the margin doodles with cheap CSS bobbing instead of Framer looping forever. doodles stay. lag mostly doesn’t. auth that behaves. forms play nicer with autofill. signup/reset don’t overshare. login + username checks got rate limits. admin denials stay generic. security + small UX. fixed the issue, cleaned public templates, tightened gates. logo in the header finally goes home when you click it. filters + tutorial. niche/country lists make more sense post-import (searchable when long). demo tutorial doesn’t trap you on phones anymore. still sketchbook didn’t “simplify into a boring dashboard.” paper, doodles, sticky scripts — still there. just less of the stuff that made a laptop cry :D
Ships:
This project is called OutreachOS, if you have every tried starting your business or freelancing, there’s always this major question: So how are we going to get clients? Most of the people stumble upon the same idea, which is Cold Calling, Cold messaging or something on the similar side. This is because its the most common way to ACTUALLY get clients without spending funds on running ads, etc. This method, though it works, requires lots of effort. You have to find contact information of people that might me interested in your services, save the numbers, call them, shoot your shot, and much more. But to make it actually feasible, you have to manage a lot of contact and potential client information. I was dealing with the same issue. So, I came up with this Idea, What if I could just feed my excel sheets (like many due to separate batches of calls) have one place to easily search up some client’s info when i need it (like in case of a callback), also be able to export my complete database in Just ONE CLICK to my scraper & Wallah ! there you have it, that’s Exactly what OutreachOS is. Tho I went ahead and added more features to proper categorize each lead based on country, niche, date, etc as well as added to vector view to easily visualise what categories we have been targeting and where we can focus more. Since OutreachOS involves importing contact information, I have made it so that it has a built in authentication system, so only you can log into your database. But if you want to test it out I have created a demo account (it has some restrictions unlike the admin/owner account to prevent destructive use) with some of my old lead contact data, Please use the following credentials to log in : Email: [email protected] Password:OutreachOS@13 Thank you for checking out my project, I am really glad you did ;)
Shipping OutreachOS again after ship #1. I ripped the dark teal “ops console” look and rebuilt the whole app as a sketchbook (paper, doodles, sticky notes) based on my old high-school notebook portfolio. added sticky call scripts, status chips, optional weekly quests, and a one-click Try Demo so nobody hunts for passwords. You can upload the excel sheets and it automatically registers any niches or countries you target +_+ Since then it’s been on a real domain ( https://outreachos.techxtreme.me ) , Premium works via email request (no KYC rabbit hole), and people actually used it. biggest bug from that: Excel import was picky about headers. a sheet with Number instead of Phone Number imported with empty phones and no warning. fixed that — messy labels map now, phones/addresses/maps links get cleaned, and you get a warning if something still looks wrong. UI Was laggy, compressed it and made it still retain the good UI :) Also fixed some bugs in UX experience. What it is (for those who are seeing it first time): Basically its a personal lead vault for cold outreach. dump an Excel sheet, filter by niche/country/status, dial with a sticky script, keep track of who you already hit. You go from bunch of excel rows and columns to a Full Lead manager (as one of the reviewers said :D) how to test (2 min): open https://outreachos.techxtreme.me hit Peek the demo / Sign in as demo Poke the table, flip a status, open the sticky script, try vector view if you have a messy .xlsx, import it (or check /import-guide ) repo: https://github.com/its-techxtreme/OutreachOS...
|
1792875210.0856667
|
1793739210.0856667
|
|
40318
|
Scalify by @manayp | Stardance
|
manayp
|
2
|
10.0
|
162
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-06T13:46:58Z", "hours": 1.0, "multiplier": 13.75, "payout": 11, "blessing": "neutral", "text": "Scalify is an app that uses real signal processing to detect musical scale by analyzing either your voice or audio from an uploaded file. It creates a chromagram, matches it to Krumhansl-Schmuckler profiles, detects the tonic and finds the most fitting scale; then it locks the result and allows you to hear the tonic drone, play the scale and see its sargam notation in the Hindustani style, along with a built-in tuner, tap-tempo and local storage. The most difficult part was achieving stable detection, i.e., filtering real peaks not the raw bins, creating a lock mechanism, and fixing dozens of small yet destructive bugs like a misnamed function or a typo in HTML IDs and other return statements. I’m really happy about finishing the entire audio pipeline as real, full and complete, as now there are ~900 lines of pure JS that work from start to finish, and any song may be uploaded for analysis. For trying the application you will need a server, as Google Chrome blocks microphone access on file:// protocol, however all buttons and audio upload features work perfectly fine; for live detection any 2-3 second clean melodic sample is suitable. Moreover, I’ve completely redesigned the entire ui and I hope you guys enjoy it. and this was all based on recent suggestions", "repo": "https://github.com/manayparikh1/scalify", "demo": "https://heroic-empanada-9d4b31.netlify.app/"}, {"ship_num": 2, "ts": "2026-07-31T18:55:31Z", "hours": 9.0, "multiplier": 17.24, "payout": 151, "blessing": "neutral", "text": "What did you make? Scalify is a web app that analyses your voice or uploads audio to determine the musical scale. This app uses actual signal processing in pure JavaScript. It makes a chromagram, matches it to Krumhansl–Schmuckler scales, finds the tonic, and detects what scale sounds better. After it locks on something, you can listen to the tonic drone, play the scale, and see its sargam in Hindustani notation. There is also a built-in tuner, tap-tempo function, and local storage of previously detected scales. What was difficult? Making detection work steadily was the most difficult thing – to filter real peaks, not bins, and create a lock mechanism so it wouldn’t change constantly. The second thing was debugging many small, yet deadly bugs – from renaming functions without updating them at call sites to accidentally breaking the code with a return statement, and incorrectly specifying an HTML element ID so that no button listeners worked. Fixing all those bugs took way more time than implementing new features. What are you proud of? The entire audio pipeline is real and complete – Web Audio API and ~900 lines of JS. It progressed from a completely broken state to being fully operational end-to-end, and an additional functionality that allows uploading any song for analysis instead of a fixed result. What do people need to know in order to try it? It requires a server because Chrome restricts microphone access when loaded from file://. In case you don’t want access to a microphone, there are demo buttons and you can upload your own audio. For live detection, provide clear 2-3 seconds sample of a melody – chords or noisy background tracks might fool pitch detection. The demo audio files are pinned to their respective correct answer, while the uploaded ones will return an unpinned answer. Overall this is actually useful to me personally because I am professional flutist and that when I am performing with my bansuri (flute) in a orchestral layout to figure out the scale this will work very well offline too. Overall I hope yall like it thank you.", "repo": "https://github.com/manayparikh1/scalify", "demo": "https://heroic-empanada-9d4b31.netlify.app/"}]...
|
[{"post_id": 39593, "ts": "202 [{"post_id": 39593, "ts": "2026-08-02T17:57:51Z", "hours": 0.7878, "text": "It loooked ai meaning that I used a lot so in these past 40 min I redid the css and added something unique which is the confetti button in the top with the emoji of a confetti which actually works and looks pretty good and honestly I like this version wayy better than the old one because its a bit more unique. I also added a small css script that when you hover on something it moves bit which gives a interactive buttony type of representation. I also switched up the metronome a bit and made it look better BUT there was an issue with the the button as you can see in the picture (bottom left) so after like 10 ish minutes I figured out how to fix it and that the .metro-beats isn’t actually flexing, so I fixed it and now its a bunch of shapes which looks greeatttt."}, {"post_id": 38388, "ts": "2026-07-31T18:49:47Z", "hours": 0.4419, "text": "Though I have said in my last devlog that it would be my last one, my friend gave me an awesome suggestion that I could not overlook. He mentioned that there may be cases where someone does not have a mic or even they might like to upload their audio in MP3 format rather than recording the live sound. Therefore, I have added another feature for the project, which allows me to add MP3 files. The new system allows the user to upload their own music/audio files and works well with the existing features of the application. I have tested the system with any random song just to check the functionality of the system, and as you can observe in the screenshot below, the system is working perfectly fine. The addition of this feature will allow those users to use this system in case they do not have a microphone or prefer to use their pre-recorded audio file."}, {"post_id": 38354, "ts": "2026-07-31T18:12:21Z", "hours": 3.2772, "text": "This is my official last devlog on this project, and I want to go over all the details behind finishing this project. Within the past few days, I have been working on cleaning up the layout as much as possible so that it would look better. The most important thing is that the JavaScript coding for this entire project has been completed – through lots and lots of debugging and tweaking. Some nice tips came in from Claude, and VS Code’s auto-suggestions sped things up nicely. At first, there was a problem with the script. It did not function correctly and some functions were causing problems to the flow. However, after a series of off-line testing, identifying and solving of problems everything began to work perfectly fine. In addition, I made some changes in HTML. Some new lines were introduced to support the new functions in JS while some other lines were deleted to clean the code. So, overall, this revision finalized everything — from layout to logic and from structure to build. I also removed dark mode because it was not needed. And then I pushed it to github later one and hosted it on netlify. Overall everything works well lemme know if yall like it."}, {"post_id": 37334, "ts": "2026-07-29T23:58:22Z", "hours": 0.885, "text": "BELOW I ATTACHED MY VID WHICH IS A SAMPLE ITS GONNA BE TURNED INTO AN MP3 BTW. So currently I am pretty much working on this project nonstop. I’ve completed about 490 lines of JavaScript code, but considering the spacing and formatting of the code, it’s closer to 350 lines. It’s still a lot, still burned some of my brain cells, but I am doing fine. I also attached a video – not sure if you can even see it – but it’s my first sample song for the website. Once the website starts detecting, the detection process should go smoothly and display “Detected in C‑Sharp.” At least that’s the goal. Currently I am working on the JavaScript logic of this function and would say that I have completed 67% of this function. So in other words I’m already halfway there and on my way to the finishing line. It’s been a lot of trial and error, bug fixations, adjustments of the detection accuracy and not breaking the interface, but let me tell you – it’s going quite smoothly. Once I complete the rest of the logic, I will be able to show you the full demo version of the site and you will be able to try out the song detection yourselves. Good luck to me lol im almost there anyway see u in the next log adios."}, {"post_id": 37186, "ts": "2026-07-29T18:21:52Z", "hours": 1.3864, "text": "First of all these are the scales I picked based on my JS: const SCALES = [ { name: ‘Major’, set: [0, 2, 4, 5, 7, 9, 11] }, { name: ‘Natural Minor’, set: [0, 2, 3, 5, 7, 8, 10] }, { name: ‘Harmonic Minor’, set: [0, 2, 3, 5, 7, 8, 11] }, { name: ‘Dorian’, set: [0, 2, 3, 5, 7, 9, 10] }, { name: ‘Mixolydian’, set: [0, 2, 4, 5, 7, 9, 10] }, { name: ‘Phrygian’, set: [0, 1, 3, 5, 7, 8, 10] },]; And so, I officially started working with the JavaScript, and it feels very real. By now, I have about 270 lines of code, which is quite an achievement, considering how much I have already done. With this part of the project, I am relying on my logic, a bit of help from AI, and a great deal of researching musical scales. I am not a great musical individual, so I needed to get into this subject, and while doing this, I discovered that there are monophonic scales. They sounded cool, and thus, I am going to implement them in the program as well. because why not lol? While the JS gets more and more complicated by including pitch-detection logic and scale mapping into it, it is really exciting to see how this whole system gradually starts coming together. As soon as the detection algorithm is finished, the next step for me will be the implementation of the local history system, which will allow the users to keep track of the past detected scales on their computers. So, there is still a lot to do, but the progress is going good ig so far. atleast its funn."}, {"post_id": 36220, "ts": "2026-07-28T04:59:50Z", "hours": 0.2925, "text": "I have just finished the color update, and the entire interface now feels much more alive than it did before. The new color palette has made Scale Spot have some personality, unlike its previously dull default one. Moreover, I have added demo music, which includes the recordings that I have created MYSELF using my flutes, and it feels so cool that now they have been incorporated into the project. You will listen to them later, and I hope that you will enjoy them since I have put in a lot of effort while recording them. As for the programming part, I have started coding the JavaScript but now I am only a bit into it. However, I already feel that this step is going to be tough, as the logic of pitch detection, audio processing, and scale identification is crazy. I might need some help when I get to the point where things become really difficult, but I know that it is normal at this stage. For now, everything has been set up, the visuals have been improved, and the audio demo has been added – now I need to deal with JS logic. Also dark mode looked trash so I changed some colours in it which I will show you guys later so stay tuned and adios."}, {"post_id": 36210, "ts": "2026-07-28T04:33:06Z", "hours": 0.6361, "text": "Finally, I finished all the CSS, and to be honest, although the functionality is good, I do not think that the visual side of this project is quite satisfactory yet. In its current form, it looks quite simple and not particularly appealing, definitely not as stylish as I thought. It works well enough, but at the same time, it does not have that specific personality, that style that it should have. Thus, I can safely say that creating visually appealing CSS style from what I have now is going to be my next task. I really want to make the interface vibrant and stylish. Although it may seem like an aesthetic problem, the layout itself is perfect – it is structured, organized and placed in a way that I wanted. So overall ima change it to a blue and green theme because their is a god in my culture called Krishna and He plays the flute and his favourite animal is a peacock soo ima change it to a blue and greenish layout with better fontss and stuff."}, {"post_id": 35565, "ts": "2026-07-27T02:58:15Z", "hours": 1.1744, "text": "SO heres how its goingg: At the current moment I am deep in the process of CSS development and, needless to say, it has not been an easy thing. To be precise, I would say that about 70-85% of the work is done, which means that most of the basic aspects of design have already been made including layout, color schemes, spacing, etc. However, as always happens when working on the detailed aspects of the design, some errors emerge. So far I have faced a number of problems that are quite persistent. Elements do not align properly, there are some problems with animation and, besides, certain styles do not match each other although everything should go smoothly. Needless to say, at the moment things are not going great, but that is quite normal. These errors are quite persistent, but I will manage to solve them eventually. Despite the difficulties mentioned above, the CSS is being developed quite well. It seems that my application starts to acquire an interface, and, after sorting out the existing errors, I can proceed to such aspects as audio processing and scale detection. So overall ig its going well but it can gooo betterrr"}, {"post_id": 35473, "ts": "2026-07-26T22:41:00Z", "hours": 0.4756, "text": "And so, I’ve written around 90 lines of HTML code in around 45 ish minutes with some prior planning and stuff, and surprisingly enough, the basic structure of the interface is starting to look very good. In general, I’ve managed to outline all major parts of the interface, organize the containers, and even prepare a base layout that shows how Scale Spot should look upon its loading. It might be a bit early to say something about this, but the foundation seems solid enough, and now I can imagine how the interface will end up looking. In the process, there was one pretty annoying problem with the implementation of the light/dark theme switching functionality. In particular, the styles of certain elements were not changing at all and kept remaining within the incorrect theme. By investigating the CSS and how classes were applied, I managed to discover the cause of the problem and fix it. Now the theme switcher works perfectly fine and it is nice to see how all the interface switches between themes correctly. Now that everything is done, the HTML layout is ready, the theme system works, and it is time to implement the input audio and the logic of the pitch detection itself."}, {"post_id": 35444, "ts": "2026-07-26T21:13:55Z", "hours": 0.2908, "text": "First of all the name of the website is scalify. To sum up, my project is the development of an innovative software called Scale Spot which is aimed at automatic detection of the musical scale being played by the user on his or her bansuri. Namely, while playing the melody, the Scale Spot will recognize its pitch and determine the scale being performed on the bansuri in real time. This is a solution to one of the main problems of bansuri players and now I can adjust Sa, keep the pitch and be perfectly in line with the key I should play in. The most important thing about my project is that Scale Spot will be able to work not only with bansuri but with any other musical instruments (harmonium, violin, guitar, keyboard) and even with vocals. This way the whole band, ensemble or classical orchestra will have the opportunity to be in the same key and not to be confused by it. I have already started developing my project from HTML construction for the web interface of the program. Now I am around twenty lines into the process of developing the user interface. I also pasted a pic of a bansuri for those wondering what it is"}]...
|
Title: Scalify by @manayp | Stardance
Devlogs:
Fi Title: Scalify by @manayp | Stardance
Devlogs:
First of all the name of the website is scalify. To sum up, my project is the development of an innovative software called Scale Spot which is aimed at automatic detection of the musical scale being played by the user on his or her bansuri. Namely, while playing the melody, the Scale Spot will recognize its pitch and determine the scale being performed on the bansuri in real time. This is a solution to one of the main problems of bansuri players and now I can adjust Sa, keep the pitch and be perfectly in line with the key I should play in. The most important thing about my project is that Scale Spot will be able to work not only with bansuri but with any other musical instruments (harmonium, violin, guitar, keyboard) and even with vocals. This way the whole band, ensemble or classical orchestra will have the opportunity to be in the same key and not to be confused by it. I have already started developing my project from HTML construction for the web interface of the program. Now I am around twenty lines into the process of developing the user interface. I also pasted a pic of a bansuri for those wondering what it is
And so, I’ve written around 90 lines of HTML code in around 45 ish minutes with some prior planning and stuff, and surprisingly enough, the basic structure of the interface is starting to look very good. In general, I’ve managed to outline all major parts of the interface, organize the containers, and even prepare a base layout that shows how Scale Spot should look upon its loading. It might be a bit early to say something about this, but the foundation seems solid enough, and now I can imagine how the interface will end up looking. In the process, there was one pretty annoying problem with the implementation of the light/dark theme switching functionality. In particular, the styles of certain elements were not changing at all and kept remaining within the incorrect theme. By investigating the CSS and how classes were applied, I managed to discover the cause of the problem and fix it. Now the theme switcher works perfectly fine and it is nice to see how all the interface switches between themes correctly. Now that everything is done, the HTML layout is ready, the theme system works, and it is time to implement the input audio and the logic of the pitch detection itself.
SO heres how its goingg: At the current moment I am deep in the process of CSS development and, needless to say, it has not been an easy thing. To be precise, I would say that about 70-85% of the work is done, which means that most of the basic aspects of design have already been made including layout, color schemes, spacing, etc. However, as always happens when working on the detailed aspects of the design, some errors emerge. So far I have faced a number of problems that are quite persistent. Elements do not align properly, there are some problems with animation and, besides, certain styles do not match each other although everything should go smoothly. Needless to say, at the moment things are not going great, but that is quite normal. These errors are quite persistent, but I will manage to solve them eventually. Despite the difficulties mentioned above, the CSS is being developed quite well. It seems that my application starts to acquire an interface, and, after sorting out the existing errors, I can proceed to such aspects as audio processing and scale detection. So overall ig its going well but it can gooo betterrr
Finally, I finished all the CSS, and to be honest, although the functionality is good, I do not think that the visual side of this project is quite satisfactory yet. In its current form, it looks quite simple and not particularly appealing, definitely not as stylish as I thought. It works well enough, but at the same time, it does not have that specific personality, that style that it should have. Thus, I can safely say that creating visually appealing CSS style from what I have now is going to be my next task. I really want to make the interface vibrant and stylish. Although it may seem like an aesthetic problem, the layout itself is perfect – it is structured, organized and placed in a way that I wanted. So overall ima change it to a blue and green theme because their is a god in my culture called Krishna and He plays the flute and his favourite animal is a peacock soo ima change it to a blue and greenish layout with better fontss and stuff.
I have just finished the color update, and the entire interface now feels much more alive than it did before. The new color palette has made Scale Spot have some personality, unlike its previously dull default one. Moreover, I have added demo music, which includes the recordings that I have created MYSELF using my flutes, and it feels so cool that now they have been incorporated into the project. You will listen to them later, and I hope that you will enjoy them since I have put in a lot of effort while recording them. As for the programming part, I have started coding the JavaScript but now I am only a bit into it. However, I already feel that this step is going to be tough, as the logic of pitch detection, audio processing, and scale identification is crazy. I might need some help when I get to the point where things become really difficult, but I know that it is normal at this stage. For now, everything has been set up, the visuals have been improved, and the audio demo has been added – now I need to deal with JS logic. Also dark mode looked trash so I changed some colours in it which I will show you guys later so stay tuned and adios.
First of all these are the scales I picked based on my JS: const SCALES = [ { name: ‘Major’, set: [0, 2, 4, 5, 7, 9, 11] }, { name: ‘Natural Minor’, set: [0, 2, 3, 5, 7, 8, 10] }, { name: ‘Harmonic Minor’, set: [0, 2, 3, 5, 7, 8, 11] }, { name: ‘Dorian’, set: [0, 2, 3, 5, 7, 9, 10] }, { name: ‘Mixolydian’, set: [0, 2, 4, 5, 7, 9, 10] }, { name: ‘Phrygian’, set: [0, 1, 3, 5, 7, 8, 10] },]; And so, I officially started working with the JavaScript, and it feels very real. By now, I have about 270 lines of code, which is quite an achievement, considering how much I have already done. With this part of the project, I am relying on my logic, a bit of help from AI, and a great deal of researching musical scales. I am not a great musical individual, so I needed to get into this subject, and while doing this, I discovered that there are monophonic scales. They sounded cool, and thus, I am going to implement them in the program as well. because why not lol? While the JS gets more and more complicated by including pitch-detection logic and scale mapping into it, it is really exciting to see how this whole system gradually starts coming together. As soon as the detection algorithm is finished, the next step for me will be the implementation of the local history system, which will allow the users to keep track of the past detected scales on their computers. So, there is still a lot to do, but the progress is going good ig so far. atleast its funn.
BELOW I ATTACHED MY VID WHICH IS A SAMPLE ITS GONNA BE TURNED INTO AN MP3 BTW. So currently I am pretty much working on this project nonstop. I’ve completed about 490 lines of JavaScript code, but considering the spacing and formatting of the code, it’s closer to 350 lines. It’s still a lot, still burned some of my brain cells, but I am doing fine. I also attached a video – not sure if you can even see it – but it’s my first sample song for the website. Once the website starts detecting, the detection process should go smoothly and display “Detected in C‑Sharp.” At least that’s the goal. Currently I am working on the JavaScript logic of this function and would say that I have completed 67% of this function. So in other words I’m already halfway there and on my way to the finishing line. It’s been a lot of trial and error, bug fixations, adjustments of the detection accuracy and not breaking the interface, but let me tell you – it’s going quite smoothly. Once I complete the rest of the logic, I will be able to show you the full demo version of the site and you will be able to try out the song detection yourselves. Good luck to me lol im almost there anyway see u in the next log adios.
This is my official last devlog on this project, and I want to go over all the details behind finishing this project. Within the past few days, I have been working on cleaning up the layout as much as possible so that it would look better. The most important thing is that the JavaScript coding for this entire project has been completed – through lots and lots of debugging and tweaking. Some nice tips came in from Claude, and VS Code’s auto-suggestions sped things up nicely. At first, there was a problem with the script. It did not function correctly and some functions were causing problems to the flow. However, after a series of off-line testing, identifying and solving of problems everything began to work perfectly fine. In addition, I made some changes in HTML. Some new lines were introduced to support the new functions in JS while some other lines were deleted to clean the code. So, overall, this revision finalized everything — from layout to logic and from structure to build. I also removed dark mode because it was not needed. And then I pushed it to github later one and hosted it on netlify. Overall everything works well lemme know if yall like it.
Though I have said in my last devlog that it would be my last one, my friend gave me an awesome suggestion that I could not overlook. He mentioned that there may be cases where someone does not have a mic or even they might like to upload their audio in MP3 format rather than recording the live sound. Therefore, I have added another feature for the project, which allows me to add MP3 files. The new system allows the user to upload their own music/audio files and works well with the existing features of the application. I have tested the system with any random song just to check the functionality of the system, and as you can observe in the screenshot below, the system is working perfectly fine. The addition of this feature will allow those users to use this system in case they do not have a microphone or prefer to use their pre-recorded audio file.
It loooked ai meaning that I used a lot so in these past 40 min I redid the css and added something unique which is the confetti button in the top with the emoji of a confetti which actually works and looks pretty good and honestly I like this version wayy better than the old one because its a bit more unique. I also added a small css script that when you hover on something it moves bit which gives a interactive buttony type of representation. I also switched up the metronome a bit and made it look better BUT there was an issue with the the button as you can see in the picture (bottom left) so after like 10 ish minutes I figured out how to fix it and that the .metro-beats isn’t actually flexing, so I fixed it and now its a bunch of shapes which looks greeatttt.
Ships:
What did you make? Scalify is a web app that analyses your voice or uploads audio to determine the musical scale. This app uses actual signal processing in pure JavaScript. It makes a chromagram, matches it to Krumhansl–Schmuckler scales, finds the tonic, and detects what scale sounds better. After it locks on something, you can listen to the tonic drone, play the scale, and see its sargam in Hindustani notation. There is also a built-in tuner, tap-tempo function, and local storage of previously detected scales. What was difficult? Making detection work steadily was the most difficult thing – to filter real peaks, not bins, and create a lock mechanism so it wouldn’t change constantly. The second thing was debugging many small, yet deadly bugs – from renaming functions without updating them at call sites to accidentally breaking the code with a return statement, and incorrectly specifying an HTML element ID so that no button listeners worked. Fixing all those bugs took way more time than implementing new features. What are you proud of? The entire audio pipeline is real and complete – Web Audio API and ~900 lines of JS. It progressed from a completely broken state to being fully operational end-to-end, and an additional functionality that allows uploading any song for analysis instead of a fixed result. What do people need to know in order to try it? It requires a server because Chrome restricts microphone access when loaded from file://. In case you don’t want access to a microphone, there are demo buttons and you can upload your own audio. For live detection, provide clear 2-3 seconds sample of a melody – chords or noisy background tracks might fool pitch detection. The demo audio files are pinned to their respective correct answer, while the uploaded ones will return an unpinned answer. Overall this is actually useful to me personally because I am professional flutist and that when I am performing with my bansuri (flute) in a orchestral layout to figure out the scale this will work very well offline too. Overall I hope yall like it thank you.
Scalify is an app that uses real signal processing to detect musical scale by analyzing either your voice or audio from an uploaded file. It creates a chromagram, matches it to Krumhansl-Schmuckler profiles, detects the tonic and finds the most fitting scale; then it locks the result and allows you to hear the tonic drone, play the scale and see its sargam notation in the Hindustani style, along with a built-in tuner, tap-tempo and local storage. The most difficult part was achieving stable detection, i.e., filtering real peaks not the raw bins, creating a lock mechanism, and fixing dozens of small yet destructive bugs like a misnamed function or a typo in HTML IDs and other return statements. I’m really happy about finishing the entire audio pipeline as real, full and complete, as now there are ~900 lines of pure JS that work from start to finish, and any song may be uploaded for analysis. For trying the application you will need a server, as Google Chrome blocks microphone access on file:// protocol, however all buttons and audio upload features work perfectly fine; for live detection any 2-3 second clean melodic sample is suitable. Moreover, I’ve completely redesigned the entire ui and I hope you guys enjoy it. and this was all based on recent suggestions...
|
1793091267.27489
|
1793177667.27489
|
|
45974
|
space by @rizz | Stardance
|
rizz
|
3
|
11.0
|
162
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-31T05:05:30Z", "hours": 4.0, "multiplier": 18.21, "payout": 69, "blessing": "neutral", "text": "YEA SO IN THIS SHIP I HAVE FIXED SOME MAJOR BUGS AND ADDED NEW THINGS AND THE HARD PART WAS THAT I HAD DELETED MOST OF MY FILES AND I HAD TO PULL THEM AND CODE AGAIN AND THE FUN PART WAS THAT IT TURNED OUT TO BE GOOD..HEY THAT’S WHAT I THINK…AND YEA FOR THE REVIEWERS PLEASWEEEEEEE RATE ME WELL I REAAAAAAALLLYYYYY TRIED MY BEST", "repo": "https://github.com/STEVEALEX-source/space", "demo": "https://stevealex-source.github.io/space/"}, {"ship_num": 2, "ts": "2026-08-28T15:14:57Z", "hours": 5.0, "multiplier": 16.87, "payout": 87, "blessing": "neutral", "text": "so i made a 3d website that shows details about our solar system..So it was quite fun to make but i faced a lot of errors while making it ahhh i was a misery and the hard things was to make the actual planets and the moons it took a long time over all i think it turned out to be pretty good..i hope it gets rated well :>", "repo": "https://github.com/STEVEALEX-source/space", "demo": "https://stevealex-source.github.io/space/"}, {"ship_num": 3, "ts": "2026-08-11T11:08:16Z", "hours": 2.0, "multiplier": 3.28, "payout": 6, "blessing": "neutral", "text": "I built Poly Calendar, a fast, dark-mode calendar web app and browser extension designed to strip away the clunkiness of traditional scheduling software so you can time-block your day in seconds. The hardest part was building a reliable natural language parser that could cleanly extract times and tags from plain text without butchering event titles, alongside navigating Chrome’s strict Manifest V3 rules to sync extension data seamlessly. The most fun part was seeing the live preview badges dynamically light up as you type and watching a single-tab web project turn into a native, spring-animated browser utility you can trigger from anywhere.", "repo": "https://github.com/STEVEALEX-source/space", "demo": "https://stevealex-source.github.io/space/"}]...
|
[{"post_id": 58663, "ts": "202 [{"post_id": 58663, "ts": "2026-08-31T05:01:47Z", "hours": 1.7511, "text": "SOO AHEM AHEM AGAIN I HAVE ADDED NEW GALAXIES AND SOME DWARF PLANETS AND MOONS AND THERE WERE SOME BUGS LIKE SOMETHINGS WERE JUMBLED..AND I FIXED THEM AND I RAN INTO SOME PROBLEMS LIKE THE JS WASN’T LOADING AND AHHH EVERYTHING GOT DELETED AND MANNN ANYWAYS THE PROJECT IS READY TO SHIP"}, {"post_id": 58223, "ts": "2026-08-30T16:06:55Z", "hours": 1.085, "text": "soooooooooo i have fixed some issues with the UI and also the bloom cuz it was terrible yayaya and yea i accidentally deleted my files so i ahd to pull from github..that’s a whole another story anyways i have to work on new galaxies and i am thinking about adding dwarf planets too cuz why not.."}, {"post_id": 58022, "ts": "2026-08-30T11:18:31Z", "hours": 0.9808, "text": "So ahem ahemm i been working on some issues related the website and I am reducing the bloom and adding more things like new galaxies it can take more time to add those things anyways i have fixed the bloom rn and made the Ui/Ux a little better."}, {"post_id": 56674, "ts": "2026-08-28T15:08:42Z", "hours": 2.1661, "text": "ahemmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm soooo 2 hours in and i have fixed some several bugs in main.js and css and i have made the website from a slide show to 3D website and made it quite interactive and improved the graphics and added a starting screen that was an another headache cuz it wasn’t loading properly any ways i have fixed and it’s quite ready to ship…."}, {"post_id": 56549, "ts": "2026-08-28T10:55:46Z", "hours": 2.9992, "text": "so i am working on a project that is a 3d map of our solar system and i have made it like a 3d slide show so now i have to work on the css and Ui and add the details about the planets and yea i should add moons too cuz yea that little detail can elevate it….i hope the project turns out to be good cuz its been like 4 hours and my hands hurt and i wanna touch some grass :)"}, {"post_id": 45082, "ts": "2026-08-11T11:01:35Z", "hours": 0.3939, "text": "Devlog 03……. Poly Extension & Real-World Utility In this session, I shifted Poly from a neat single-page experiment into something you can actually use throughout your workday without getting in your own way.The big focus was simple: reduce friction. If adding a meeting or checking what’s next takes more than two seconds or requires navigating through three menus, nobody’s going to use it. Here’s what got built, refined, and stripped back.What’s New1. The Chrome / Brave Extension Instead of keeping Poly trapped in a single pinned tab, we built a lightweight Manifest V3 browser extension.Instant popup: Hit your shortcut, check today’s timeline, or type Deploy site at 4pm [Work], hit Enter, and get back to what you were doing.Chrome Storage sync: Keeps your extension popup and main workspace reading from the same data, so nothing drops out of sync.2. A Modal for Structured InputThe command-line natural language parser is great for fast typing, but sometimes you just want a standard form.Added a dedicated “+ Add Work” button in the sidebar that opens a clean modal.Pick your start time, set your duration, type the title, and hit submit. No parsing guesswork when you’re in a rush.3. Cleaner Visuals & Physics-Based MotionStripped the fluff: Removed the random emojis and decorative clutter for a sharp, high-contrast dark theme (#09090b base) inspired by modern developer tools.Spring physics: Added spring transition curves (cubic-bezier(0.16, 1, 0.3, 1)) so event cards, modals, and hover states feel snappy rather than sluggish.Non-intrusive feedback: Built a floating toast notification system to confirm actions like export, delete, and view switches without blocking the UI.Core System ArchitecturePlaintextpoly-workspace/ ├── index.html # Main Split-View Dashboard ├── styles.css # Swiss Dark System + Spring Physics ├── app.js # Main Logic, Storage & View Switcher └── poly-extension/ ├── manifest.json # Chrome Manifest V3 Spec ├── popup.html # Extension UI ├── popup.css # Compact Extension Styling └── popup.js # Sync Logic & Quick Add Where We’re Heading NextPoly is now fully usable offline with local storage, sports a browser extension, and handles daily scheduling smoothly. The next big steps will focus on making time-blocking interactive:Native Drag & Drop: Dragging event cards vertically to shift time slots or stretching their edges to adjust duration.Global Command Palette (Cmd + K / Ctrl + K): Triggering quick actions, date jumps, and category switches from anywhere on your keyboard.Google Calendar Sync: Two-way integration so external calendar invites show up inside Poly automatically."}, {"post_id": 45067, "ts": "2026-08-11T10:24:01Z", "hours": 0.6031, "text": "Devlog 02: Poly (25 Min In)Spent another 25 minutes polishing up Poly and fixing a few things that were bugging me from the first build.What I worked on• UI tweaks: Cleaned up the layout, fixed the dark mode colors, and added better visual cues for when meetings overlap. • User profile switcher: Added a small name field at the top so you can switch between user profiles on the fly. • Manual fallback modal: Sometimes natural language typing gets annoying, so I added a simple form modal for when you just want to pick a time manually. • Instant demo button: Added a button that dumps a bunch of fake overlapping meetings onto the calendar so you can test the conflict resolver without typing a dozen events.Still keeping it strictly zero dependencies just raw HTML, CSS, and JS.More updates coming as I keep building!"}, {"post_id": 44053, "ts": "2026-08-09T15:57:39Z", "hours": 0.6922, "text": "Devlog 01………. Poly (40 Min In) Got annoyed with calendar apps requiring five clicks just to add one meeting, so I sat down for 40 minutes to build a quick alternative using plain web tech. What I built so far• Command Bar: Type naturally like “Team sync tomorrow at 3pm” to drop events on the grid. • Voice Input: Hooked up the native Web Speech API to add meetings by speaking aloud. • Conflict Detector: Flags double-booked slots and shifts overlapping events to open times."}]...
|
Title: space by @rizz | Stardance
Devlogs:
Devlog Title: space by @rizz | Stardance
Devlogs:
Devlog 01………. Poly (40 Min In) Got annoyed with calendar apps requiring five clicks just to add one meeting, so I sat down for 40 minutes to build a quick alternative using plain web tech. What I built so far• Command Bar: Type naturally like “Team sync tomorrow at 3pm” to drop events on the grid. • Voice Input: Hooked up the native Web Speech API to add meetings by speaking aloud. • Conflict Detector: Flags double-booked slots and shifts overlapping events to open times.
Devlog 02: Poly (25 Min In)Spent another 25 minutes polishing up Poly and fixing a few things that were bugging me from the first build.What I worked on• UI tweaks: Cleaned up the layout, fixed the dark mode colors, and added better visual cues for when meetings overlap. • User profile switcher: Added a small name field at the top so you can switch between user profiles on the fly. • Manual fallback modal: Sometimes natural language typing gets annoying, so I added a simple form modal for when you just want to pick a time manually. • Instant demo button: Added a button that dumps a bunch of fake overlapping meetings onto the calendar so you can test the conflict resolver without typing a dozen events.Still keeping it strictly zero dependencies just raw HTML, CSS, and JS.More updates coming as I keep building!
Devlog 03……. Poly Extension & Real-World Utility In this session, I shifted Poly from a neat single-page experiment into something you can actually use throughout your workday without getting in your own way.The big focus was simple: reduce friction. If adding a meeting or checking what’s next takes more than two seconds or requires navigating through three menus, nobody’s going to use it. Here’s what got built, refined, and stripped back.What’s New1. The Chrome / Brave Extension Instead of keeping Poly trapped in a single pinned tab, we built a lightweight Manifest V3 browser extension.Instant popup: Hit your shortcut, check today’s timeline, or type Deploy site at 4pm [Work], hit Enter, and get back to what you were doing.Chrome Storage sync: Keeps your extension popup and main workspace reading from the same data, so nothing drops out of sync.2. A Modal for Structured InputThe command-line natural language parser is great for fast typing, but sometimes you just want a standard form.Added a dedicated “+ Add Work” button in the sidebar that opens a clean modal.Pick your start time, set your duration, type the title, and hit submit. No parsing guesswork when you’re in a rush.3. Cleaner Visuals & Physics-Based MotionStripped the fluff: Removed the random emojis and decorative clutter for a sharp, high-contrast dark theme (#09090b base) inspired by modern developer tools.Spring physics: Added spring transition curves (cubic-bezier(0.16, 1, 0.3, 1)) so event cards, modals, and hover states feel snappy rather than sluggish.Non-intrusive feedback: Built a floating toast notification system to confirm actions like export, delete, and view switches without blocking the UI.Core System ArchitecturePlaintextpoly-workspace/ ├── index.html # Main Split-View Dashboard ├── styles.css # Swiss Dark System + Spring Physics ├── app.js # Main Logic, Storage & View Switcher └── poly-extension/ ├── manifest.json # Chrome Manifest V3 Spec ├── popup.html # Extension UI ├── popup.css # Compact Extension Styling └── popup.js # Sync Logic & Quick Add Where We’re Heading NextPoly is now fully usable offline with local storage, sports a browser extension, and handles daily scheduling smoothly. The next big steps will focus on making time-blocking interactive:Native Drag & Drop: Dragging event cards vertically to shift time slots or stretching their edges to adjust duration.Global Command Palette (Cmd + K / Ctrl + K): Triggering quick actions, date jumps, and category switches from anywhere on your keyboard.Google Calendar Sync: Two-way integration so external calendar invites show up inside Poly automatically.
so i am working on a project that is a 3d map of our solar system and i have made it like a 3d slide show so now i have to work on the css and Ui and add the details about the planets and yea i should add moons too cuz yea that little detail can elevate it….i hope the project turns out to be good cuz its been like 4 hours and my hands hurt and i wanna touch some grass :)
ahemmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm soooo 2 hours in and i have fixed some several bugs in main.js and css and i have made the website from a slide show to 3D website and made it quite interactive and improved the graphics and added a starting screen that was an another headache cuz it wasn’t loading properly any ways i have fixed and it’s quite ready to ship….
So ahem ahemm i been working on some issues related the website and I am reducing the bloom and adding more things like new galaxies it can take more time to add those things anyways i have fixed the bloom rn and made the Ui/Ux a little better.
soooooooooo i have fixed some issues with the UI and also the bloom cuz it was terrible yayaya and yea i accidentally deleted my files so i ahd to pull from github..that’s a whole another story anyways i have to work on new galaxies and i am thinking about adding dwarf planets too cuz why not..
SOO AHEM AHEM AGAIN I HAVE ADDED NEW GALAXIES AND SOME DWARF PLANETS AND MOONS AND THERE WERE SOME BUGS LIKE SOMETHINGS WERE JUMBLED..AND I FIXED THEM AND I RAN INTO SOME PROBLEMS LIKE THE JS WASN’T LOADING AND AHHH EVERYTHING GOT DELETED AND MANNN ANYWAYS THE PROJECT IS READY TO SHIP
Ships:
I built Poly Calendar, a fast, dark-mode calendar web app and browser extension designed to strip away the clunkiness of traditional scheduling software so you can time-block your day in seconds. The hardest part was building a reliable natural language parser that could cleanly extract times and tags from plain text without butchering event titles, alongside navigating Chrome’s strict Manifest V3 rules to sync extension data seamlessly. The most fun part was seeing the live preview badges dynamically light up as you type and watching a single-tab web project turn into a native, spring-animated browser utility you can trigger from anywhere.
so i made a 3d website that shows details about our solar system..So it was quite fun to make but i faced a lot of errors while making it ahhh i was a misery and the hard things was to make the actual planets and the moons it took a long time over all i think it turned out to be pretty good..i hope it gets rated well :>
YEA SO IN THIS SHIP I HAVE FIXED SOME MAJOR BUGS AND ADDED NEW THINGS AND THE HARD PART WAS THAT I HAD DELETED MOST OF MY FILES AND I HAD TO PULL THEM AND CODE AGAIN AND THE FUN PART WAS THAT IT TURNED OUT TO BE GOOD..HEY THAT’S WHAT I THINK…AND YEA FOR THE REVIEWERS PLEASWEEEEEEE RATE ME WELL I REAAAAAAALLLYYYYY TRIED MY BEST...
|
1793094523.7775476
|
1793180923.7775476
|
|
1793
|
GetToSpace - A new Beginning by @theskriptkid | St GetToSpace - A new Beginning by @theskriptkid | Stardance...
|
theskriptkid
|
1
|
22.61
|
161
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-02T22:05:02Z", "hours": 20.0, "multiplier": 8.7, "payout": 161, "blessing": "neutral", "text": "This was an cool Projekt, I had really fun working on it and Im proud of what this became! I didnt thought I would invest so many houres into it, but now, as the foundation lays, I can easily add more levels, bosses and more fun! I already have plans for it like more and new levels! These 5 Levels are more of an introduktion to the mechanics, so the next levels will get bigger and more challenging, dont worry! Also cool was that this is my first real projekt with an Game engine!", "repo": "https://github.com/TherealONE12/GetToSpace-NewBeginning", "demo": "https://therealallinone.itch.io/gettospace-remake"}]...
|
[{"post_id": 52614, "ts": "202 [{"post_id": 52614, "ts": "2026-08-22T20:32:26Z", "hours": 1.395, "text": "Hey There! I added finally afther a way too long pause a new level, introduced in stage 2 a completly new camerasystem/worlddesign, and tried new graphics, though rn they look completly dead. But will fix them tomorrow in the morning."}, {"post_id": 43521, "ts": "2026-08-08T20:49:57Z", "hours": 1.2111, "text": "Added Settings screen and a Useless test setting, modified a Level for bug remving and added missing textures"}, {"post_id": 39738, "ts": "2026-08-02T21:58:43Z", "hours": 3.6292, "text": "Finally finished everything, im Proud how It turned out! Hope you will have fun and please report bugs/ Tell me what you want improved. I added Music, SFX, Animations (sadly no secrets, yet) Lets see where this goes…"}, {"post_id": 31980, "ts": "2026-07-20T20:18:46Z", "hours": 2.4208, "text": "Did some work oday and yesterday, really happy how it turned out :) On the 2. Picture you see my Animation chart for the 2cnd phase of the 1. boss"}, {"post_id": 30094, "ts": "2026-07-17T12:23:26Z", "hours": 1.6667, "text": "I have worked a bit and managed to get back to the Version bevore the mayor Code refactoring. However, now still a few stuf f is needed like SFX (Very important!), Music (also important) And Animations for the boss/Level transfer (Nice to have). Oh, and also I need a banner… But I cant draw… well, how bad can it be, right???"}, {"post_id": 19509, "ts": "2026-06-30T20:41:25Z", "hours": 1.3411, "text": "I made an new base_level_komplex wich is able to add buttons/change animations/stuff while only editing 1 fle instead of many. This change adds way easier of adding an back button, reset button or/and home button (and maybe even more!) Also all variables can be overridden with just $path/to/node.myvariable = 0 The Nect tim I need still to add the Boss 1 level the Signals back and then I will ad an Back button to stop a level! (without the need of relaunching the game)"}, {"post_id": 13736, "ts": "2026-06-22T15:00:26Z", "hours": 6.5106, "text": "I have made mayor Progress on the Bossfight and added some more phases. On the 1. Picture, you see how the fun looks for me on the dev side. On the 2. Picture, It is the current Boss-level. I have added some Boster Pads, wich boosts you up a bit, and the Holes the boss is making (Once the animation is done) I still have to do the Following: A) Make the holes dissapear if they are not there B) Add the Boss in an Spaceship spritesheet and when he is hurt (last phase) C) Make animations for the phases and when he is spawning/ Defeated etc. But thats for the next Time ;) Until then!"}, {"post_id": 5845, "ts": "2026-06-09T19:50:31Z", "hours": 1.7231, "text": "Added some new Leves and a Level Selector :)"}, {"post_id": 2218, "ts": "2026-06-04T16:29:28Z", "hours": 2.7411, "text": "I made the first level of my Game GetToSpace, wich I started in Flavortown in pure C but couldn’t finish. So im remaking it now “professionally” with Godot!"}]...
|
Title: GetToSpace - A new Beginning by @theskriptk Title: GetToSpace - A new Beginning by @theskriptkid | Stardance
Devlogs:
I made the first level of my Game GetToSpace, wich I started in Flavortown in pure C but couldn’t finish. So im remaking it now “professionally” with Godot!
Added some new Leves and a Level Selector :)
I have made mayor Progress on the Bossfight and added some more phases. On the 1. Picture, you see how the fun looks for me on the dev side. On the 2. Picture, It is the current Boss-level. I have added some Boster Pads, wich boosts you up a bit, and the Holes the boss is making (Once the animation is done) I still have to do the Following: A) Make the holes dissapear if they are not there B) Add the Boss in an Spaceship spritesheet and when he is hurt (last phase) C) Make animations for the phases and when he is spawning/ Defeated etc. But thats for the next Time ;) Until then!
I made an new base_level_komplex wich is able to add buttons/change animations/stuff while only editing 1 fle instead of many. This change adds way easier of adding an back button, reset button or/and home button (and maybe even more!) Also all variables can be overridden with just $path/to/node.myvariable = 0 The Nect tim I need still to add the Boss 1 level the Signals back and then I will ad an Back button to stop a level! (without the need of relaunching the game)
I have worked a bit and managed to get back to the Version bevore the mayor Code refactoring. However, now still a few stuf f is needed like SFX (Very important!), Music (also important) And Animations for the boss/Level transfer (Nice to have). Oh, and also I need a banner… But I cant draw… well, how bad can it be, right???
Did some work oday and yesterday, really happy how it turned out :) On the 2. Picture you see my Animation chart for the 2cnd phase of the 1. boss
Finally finished everything, im Proud how It turned out! Hope you will have fun and please report bugs/ Tell me what you want improved. I added Music, SFX, Animations (sadly no secrets, yet) Lets see where this goes…
Added Settings screen and a Useless test setting, modified a Level for bug remving and added missing textures
Hey There! I added finally afther a way too long pause a new level, introduced in stage 2 a completly new camerasystem/worlddesign, and tried new graphics, though rn they look completly dead. But will fix them tomorrow in the morning.
Ships:
This was an cool Projekt, I had really fun working on it and Im proud of what this became! I didnt thought I would invest so many houres into it, but now, as the foundation lays, I can easily add more levels, bosses and more fun! I already have plans for it like more and new levels! These 5 Levels are more of an introduktion to the mechanics, so the next levels will get bigger and more challenging, dont worry! Also cool was that this is my first real projekt with an Game engine!...
|
1793116502.1920466
|
1793202902.1920466
|
|
4146
|
Hand Wave by @asanghvi | Stardance
|
asanghvi
|
1
|
12.0
|
161
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-17T23:25:58Z", "hours": 12.0, "multiplier": 17.07, "payout": 161, "blessing": "neutral", "text": "I made Hand Wave, an app that turns ASL fingerspelling into spoken words using an iPhone camera or Meta glasses. Cross-platform, too. Featured on NBC. It’s still early, so expect rough edges!", "repo": "https://github.com/aadisang/hand-wave", "demo": "https://handwave.sh"}]...
|
[{"post_id": 30430, "ts": "202 [{"post_id": 30430, "ts": "2026-07-17T23:24:11Z", "hours": 7.0147, "text": "The last few weeks have mostly been me fixing all the unglamorous stuff like code quality and performance. I rebuilt a good chunk of the recognition pipeline, improved accuracy, fixed camera and streaming issues, added better logging, and spent way too much time getting CI and TestFlight releases working. But, Hand Wave is finally on TestFlight now! Unfortunately Meta’s SDK prevents me from shipping to the App Store just yet, but this is as close to ‘shipped’ as I can get. Just gotta record a demo now."}, {"post_id": 22687, "ts": "2026-07-05T07:42:42Z", "hours": 1.2294, "text": "Finished! Sat Codex on a 16hr goal loop to try and optimize the CTC beam, fixed the harness, got the mobile app looking great. Ready to ship :)"}, {"post_id": 11110, "ts": "2026-06-18T05:27:14Z", "hours": 3.735, "text": "Finally got a working version (pictured here is the result after fingerspelling machine learning properly, with <100ms latency!). Almost finished with the mobile app bridge that will let me connect the Meta AI glasses I have to the inference server I’m hosting on Modal, that’s running locally here. Got featured on NBC as well a few weeks ago – https://go.aadisanghvi.com/nbc Soon will have the entire thing launched. The idea is to have a fully closed loop with just wearable smart glasses, which are, hopefully, gonna be huge tech in the near future. So in theory, I could look at someone that’s hearing impaired, watch them sign, and hear translations in my ear! Currently limited by compute capacity on Modal (my inference provider), and my own machine learning model. Unfortunately wasn’t able to track the time I spent training the model, but I used the dataset from Google’s fingerspelling Kaggle competition. An early version is already shipped! Almost ready to record a launch vid."}]...
|
Title: Hand Wave by @asanghvi | Stardance
Devlogs Title: Hand Wave by @asanghvi | Stardance
Devlogs:
Finally got a working version (pictured here is the result after fingerspelling machine learning properly, with <100ms latency!). Almost finished with the mobile app bridge that will let me connect the Meta AI glasses I have to the inference server I’m hosting on Modal, that’s running locally here. Got featured on NBC as well a few weeks ago – https://go.aadisanghvi.com/nbc Soon will have the entire thing launched. The idea is to have a fully closed loop with just wearable smart glasses, which are, hopefully, gonna be huge tech in the near future. So in theory, I could look at someone that’s hearing impaired, watch them sign, and hear translations in my ear! Currently limited by compute capacity on Modal (my inference provider), and my own machine learning model. Unfortunately wasn’t able to track the time I spent training the model, but I used the dataset from Google’s fingerspelling Kaggle competition. An early version is already shipped! Almost ready to record a launch vid.
Finished! Sat Codex on a 16hr goal loop to try and optimize the CTC beam, fixed the harness, got the mobile app looking great. Ready to ship :)
The last few weeks have mostly been me fixing all the unglamorous stuff like code quality and performance. I rebuilt a good chunk of the recognition pipeline, improved accuracy, fixed camera and streaming issues, added better logging, and spent way too much time getting CI and TestFlight releases working. But, Hand Wave is finally on TestFlight now! Unfortunately Meta’s SDK prevents me from shipping to the App Store just yet, but this is as close to ‘shipped’ as I can get. Just gotta record a demo now.
Ships:
I made Hand Wave, an app that turns ASL fingerspelling into spoken words using an iPhone camera or Meta glasses. Cross-platform, too. Featured on NBC. It’s still early, so expect rough edges!...
|
1793062500.9827929
|
1793148900.9827929
|
|
27793
|
playing chess through a CNN by @advay_awesomer | S playing chess through a CNN by @advay_awesomer | Stardance...
|
advay_awesomer
|
1
|
76.0
|
161
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T18:32:11Z", "hours": 55.0, "multiplier": 16.14, "payout": 161, "blessing": "neutral", "text": "Made chesscnn — a chess engine that picks its moves from a convolutional neural network instead of hand-written rules, AlphaZero-style. The net (PyTorch, a residual tower with two heads) looks at the board as a stack of 19 image-like planes and outputs both a move-probability map and a single “who’s winning” score. A PUCT Monte-Carlo Tree Search then uses those to actually play. There’s a CLI and a Streamlit web app where you can play it and watch its eval bar, its predicted line, and a heatmap of where it wants to move. Challenging: encoding chess moves for the network was the rabbit hole — every possible move has to map to one of 4,672 output slots (the 8×8×73 scheme), and promotions/castling/en-passant all have edge cases. I round-tripped 219k moves to prove the mapping never collides. The other hard part was getting it to play well without a giant training run — a freshly-initialized net plays nonsense, so I blend the network’s evaluation with a classical hand-crafted one and let the search do the heavy lifting. Proud of: it plays real openings out of the box (it’ll walk into a Ruy Lopez or a Pirc), it found a tactic in testing (won a hanging queen), and it went 0 losses across 14 games vs a random-mover. ~9,000 lines of Python with 53 passing tests, and a full training stack (self-play → replay buffer → trainer → arena/Elo) if you want to make it stronger. To test it: clone github.com/advaycode/CNN1, pip install -r requirements-app.txt, then streamlit run chesscnn/app.py and play it in your browser.", "repo": "https://github.com/advaycode/CNN1", "demo": "https://advaycode.github.io/CNN1/"}]...
|
[{"post_id": 39672, "ts": "202 [{"post_id": 39672, "ts": "2026-08-02T20:02:37Z", "hours": 21.0, "text": "designing some more model architecture"}, {"post_id": 17779, "ts": "2026-06-28T18:29:53Z", "hours": 55.0, "text": "The entire architecture for the machine learning model"}]...
|
Title: playing chess through a CNN by @advay_aweso Title: playing chess through a CNN by @advay_awesomer | Stardance
Devlogs:
The entire architecture for the machine learning model
designing some more model architecture
Ships:
Made chesscnn — a chess engine that picks its moves from a convolutional neural network instead of hand-written rules, AlphaZero-style. The net (PyTorch, a residual tower with two heads) looks at the board as a stack of 19 image-like planes and outputs both a move-probability map and a single “who’s winning” score. A PUCT Monte-Carlo Tree Search then uses those to actually play. There’s a CLI and a Streamlit web app where you can play it and watch its eval bar, its predicted line, and a heatmap of where it wants to move. Challenging: encoding chess moves for the network was the rabbit hole — every possible move has to map to one of 4,672 output slots (the 8×8×73 scheme), and promotions/castling/en-passant all have edge cases. I round-tripped 219k moves to prove the mapping never collides. The other hard part was getting it to play well without a giant training run — a freshly-initialized net plays nonsense, so I blend the network’s evaluation with a classical hand-crafted one and let the search do the heavy lifting. Proud of: it plays real openings out of the box (it’ll walk into a Ruy Lopez or a Pirc), it found a tactic in testing (won a hanging queen), and it went 0 losses across 14 games vs a random-mover. ~9,000 lines of Python with 53 passing tests, and a full training stack (self-play → replay buffer → trainer → arena/Elo) if you want to make it stronger. To test it: clone github.com/advaycode/CNN1, pip install -r requirements-app.txt, then streamlit run chesscnn/app.py and play it in your browser....
|
1792882076.1522121
|
1793746076.1522121
|
|
35799
|
TurboNinja by @TheGeekachu | Stardance
|
TheGeekachu
|
1
|
15.0
|
161
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T01:34:28Z", "hours": 15.0, "multiplier": 10.89, "payout": 161, "blessing": "neutral", "text": "I made this. TurboNinja. Yes, I suck at naming stuff. But this game taught me more about gamedev than any game I’ve made, mostly because I didn’t use an engine. Nope. This is all pure code, written by yours truly. Thanks for being here! BTW, arrow keys to move and X to dash attack.", "repo": "https://github.com/vijayakasee-debug/TurboNinja", "demo": "https://thegeekachu.itch.io/turboninja-preview"}]...
|
[{"post_id": 73383, "ts": "202 [{"post_id": 73383, "ts": "2026-09-25T01:30:42Z", "hours": 0.6725, "text": "I’m done. I’m finally done. The game is now on Itch.io and available to play! THE GAME DOES NOT WORK ON SAFARI BECAUSE APPLE IS STUPID. I just discovered this after the ship, so I came back to edit. Please play on Chrome or Firefox."}, {"post_id": 72905, "ts": "2026-09-24T00:16:24Z", "hours": 0.6064, "text": "IM DONE!!!! All that’s left is making an exec and putting it on Itch.io!!!! THE GRAPHICS ARE AMAZING!!!"}, {"post_id": 72893, "ts": "2026-09-23T23:40:35Z", "hours": 0.3989, "text": "I’m currently working on silhouettes for the game and all characters, but I’m having just a teensy bit of layering issues… Only the silhouettes are visible and literally nothing else…"}, {"post_id": 72377, "ts": "2026-09-22T19:48:13Z", "hours": 0.7825, "text": "SO, I added level transitions. You can now beat a level and go to the next one. I also just realised that the levels I’ve been designing are insanely hard, so good luck playing them all the way through!"}, {"post_id": 71984, "ts": "2026-09-21T22:13:01Z", "hours": 2.9931, "text": "AAaaaaahhhh!!! I finally implemented a particle system for sparks that uses advanced trigonometry, and I added enemy and player death, the animations for which are completely written without any assets using only trigonometry, pygame.polygon() and the math module. PAINNN!!!"}, {"post_id": 70824, "ts": "2026-09-19T20:39:05Z", "hours": 0.6794, "text": "I added a Dash mechanic. After much pain in the arse, I realised that the reason he was shooting leaves when dashing was I forgot to import the Ninja dash effect, so VS Code for some reason decided to import leaves instead. He no longer spews leaves when dashing, which I consider a win!"}, {"post_id": 70408, "ts": "2026-09-19T04:04:20Z", "hours": 0.4569, "text": "He no longer can jump to the high heavens to meet Jesus. He gets one jump, and I’ve added some really nice walljumps, yippee!"}, {"post_id": 70402, "ts": "2026-09-19T03:29:51Z", "hours": 1.0106, "text": "So, I really didn’t need to do this, but the tutorial I’m following for the base functionality because it comes with the assets I’m using said I can add a particle system for leaves, so I thought, why not? The results look beautiful and I’m glad I did it. Also, check out the new levels, made by yours truly with the new level editor!"}, {"post_id": 66847, "ts": "2026-09-12T19:25:12Z", "hours": 0.5358, "text": "After much pain and annoyance, I got fed up with coding my own level editor, and got a pre-made Python file for one, then modified it to the controls I like, which took longer than I appreciate. Unfortunately, some editing work was done on a different computer, so Hackatime didn’t track it. Not much though, so no biggie."}, {"post_id": 40830, "ts": "2026-08-04T16:27:24Z", "hours": 1.3808, "text": "I added animations. I realised that you wouldn’t be able to tell there were animations if I just took a photo of the idle one, so I locked in and took a screenshot while he was in midair, in the jumping animation. Next step is gonna be cooked. I have to write a level editor from scratch!"}, {"post_id": 37756, "ts": "2026-07-30T17:47:05Z", "hours": 0.8744, "text": "I added clouds. Exciting, I know. But this took a lot more work than I care to admit. At first the clouds were going diagonal. I spent half an hour fixing it, and succeeded in making them go the other way, still diagonal. Then I realised that in my endless wisdom, I’d updated the y-axis with the values meant for the x-axis. Now it’s fixed."}, {"post_id": 31022, "ts": "2026-07-19T02:35:16Z", "hours": 0.5706, "text": "I added a camera that follows the player, so you can watch him infinitely jump across the heavens. Bro’s on his god tier loadout."}, {"post_id": 29739, "ts": "2026-07-16T20:40:52Z", "hours": 1.5772, "text": "Added collisions and jumping so he doesn’t fall endlessly. I have the opposite problem now. He isn’t restricted to double jumps. Either my ninja knows how to fly or air is solid. Pick one, beats me!"}, {"post_id": 29196, "ts": "2026-07-15T22:41:02Z", "hours": 2.2247, "text": "Added gravity, tilemaps, and a ninja. You can’t see him in the photo because I’v added gravity, but, er, not collisions as of yet, so he’s infinitely falling through space, poor guy."}]...
|
Title: TurboNinja by @TheGeekachu | Stardance
Dev Title: TurboNinja by @TheGeekachu | Stardance
Devlogs:
Added gravity, tilemaps, and a ninja. You can’t see him in the photo because I’v added gravity, but, er, not collisions as of yet, so he’s infinitely falling through space, poor guy.
Added collisions and jumping so he doesn’t fall endlessly. I have the opposite problem now. He isn’t restricted to double jumps. Either my ninja knows how to fly or air is solid. Pick one, beats me!
I added a camera that follows the player, so you can watch him infinitely jump across the heavens. Bro’s on his god tier loadout.
I added clouds. Exciting, I know. But this took a lot more work than I care to admit. At first the clouds were going diagonal. I spent half an hour fixing it, and succeeded in making them go the other way, still diagonal. Then I realised that in my endless wisdom, I’d updated the y-axis with the values meant for the x-axis. Now it’s fixed.
I added animations. I realised that you wouldn’t be able to tell there were animations if I just took a photo of the idle one, so I locked in and took a screenshot while he was in midair, in the jumping animation. Next step is gonna be cooked. I have to write a level editor from scratch!
After much pain and annoyance, I got fed up with coding my own level editor, and got a pre-made Python file for one, then modified it to the controls I like, which took longer than I appreciate. Unfortunately, some editing work was done on a different computer, so Hackatime didn’t track it. Not much though, so no biggie.
So, I really didn’t need to do this, but the tutorial I’m following for the base functionality because it comes with the assets I’m using said I can add a particle system for leaves, so I thought, why not? The results look beautiful and I’m glad I did it. Also, check out the new levels, made by yours truly with the new level editor!
He no longer can jump to the high heavens to meet Jesus. He gets one jump, and I’ve added some really nice walljumps, yippee!
I added a Dash mechanic. After much pain in the arse, I realised that the reason he was shooting leaves when dashing was I forgot to import the Ninja dash effect, so VS Code for some reason decided to import leaves instead. He no longer spews leaves when dashing, which I consider a win!
AAaaaaahhhh!!! I finally implemented a particle system for sparks that uses advanced trigonometry, and I added enemy and player death, the animations for which are completely written without any assets using only trigonometry, pygame.polygon() and the math module. PAINNN!!!
SO, I added level transitions. You can now beat a level and go to the next one. I also just realised that the levels I’ve been designing are insanely hard, so good luck playing them all the way through!
I’m currently working on silhouettes for the game and all characters, but I’m having just a teensy bit of layering issues… Only the silhouettes are visible and literally nothing else…
IM DONE!!!! All that’s left is making an exec and putting it on Itch.io!!!! THE GRAPHICS ARE AMAZING!!!
I’m done. I’m finally done. The game is now on Itch.io and available to play! THE GAME DOES NOT WORK ON SAFARI BECAUSE APPLE IS STUPID. I just discovered this after the ship, so I came back to edit. Please play on Chrome or Firefox.
Ships:
I made this. TurboNinja. Yes, I suck at naming stuff. But this game taught me more about gamedev than any game I’ve made, mostly because I didn’t use an engine. Nope. This is all pure code, written by yours truly. Thanks for being here! BTW, arrow keys to move and X to dash attack....
|
1793004974.6227162
|
1793091374.6227162
|
|
23596
|
Chess.com Style Game Reviewer by @cziwu2010 | Star Chess.com Style Game Reviewer by @cziwu2010 | Stardance...
|
cziwu2010
|
1
|
30.32
|
159
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-19T10:24:39Z", "hours": 30.0, "multiplier": 6.32, "payout": 159, "blessing": "neutral", "text": "My attempt at building a chess.com style reviewer. It uses python for the backend and pyside6 for the frontend and Stockfish for the engine. The hardest part was learning the chess concepts and understanding chess computation. Also this is my first project with a frontend so I’m also looking forward to programme more apps with frontend. Just download and extract the zip file to run the application (Note that windows will pop up the “Windows protected your PC” window bcs I dont have a Code Signing Certificate, if that happens just click “Run Anyway”. Msg me on slack if you have feedback! (this is the only screenshot i have, so sry it looks all the same)", "repo": "https://github.com/cziwu12/chess.com-style-reviewer", "demo": "https://github.com/cziwu12/chess.com-style-reviewer/releases/tag/v1.0.0"}]...
|
[{"post_id": 31175, "ts": "202 [{"post_id": 31175, "ts": "2026-07-19T11:20:37Z", "hours": 0.3222, "text": "Ok so apparently I have to write a final devlog before shipping so here’s what my next steps for the reviewer. 1. Improve the Game Accuracy and Classification function. 2. Find critical moments/moves where it heavily affected the game’s outcome. As for the frontend: Add next and previous move buttons. Add an interactable chess board where the player can change a move to see the different outcome. Obviously there’s more but these are the step ill prob take next."}, {"post_id": 31153, "ts": "2026-07-19T10:13:41Z", "hours": 3.2336, "text": "Almost done! My attempt to program a chess.com style reviewer. It has the basic stats like evaluation, Classification, WDL and move accuracy. It also contains game accuracy and a SVG board where you can see your moves. It’s currently in its rawest form and I’ll improve the accuracy of the reviewer and add more useful feature to it."}, {"post_id": 29393, "ts": "2026-07-16T10:06:34Z", "hours": 2.7267, "text": "Frontend 90% done. Using PySide6"}, {"post_id": 28350, "ts": "2026-07-14T15:42:45Z", "hours": 1.0925, "text": "Last but not least, the UI. I’ll be coding it using PySide6. Im currently still learning how to use the language."}, {"post_id": 27660, "ts": "2026-07-13T12:59:03Z", "hours": 8.1008, "text": "Ok i dont really have a photo rn (using phone to type the devlog) but i’ve formatted, simplified and and created files to store all of the functions. All that’s left to do is add GUI. Ill prob add a photo tmr"}, {"post_id": 24450, "ts": "2026-07-08T00:38:44Z", "hours": 13.8867, "text": "I would say I’m 85% done with the backend of the chess reviewer. I added move and game accuracy, WDL (Win/Draw/Loss) probability and some tactics detection like hanging pieces, loose pieces, and pieces en prise. I even managed to find publicly available equations that yield results similar to Chess.com. My next steps would be adding the basic classifications and tactics detection before adding gui."}, {"post_id": 16315, "ts": "2026-06-26T15:29:56Z", "hours": 0.5181, "text": "in progress. Aiming to build a chess.com style reviewer. Using python-chess and stockfish to build this. Also any tutorials on the python chess lib other than the documentation? thanks"}]...
|
Title: Chess.com Style Game Reviewer by @cziwu2010 Title: Chess.com Style Game Reviewer by @cziwu2010 | Stardance
Devlogs:
in progress. Aiming to build a chess.com style reviewer. Using python-chess and stockfish to build this. Also any tutorials on the python chess lib other than the documentation? thanks
I would say I’m 85% done with the backend of the chess reviewer. I added move and game accuracy, WDL (Win/Draw/Loss) probability and some tactics detection like hanging pieces, loose pieces, and pieces en prise. I even managed to find publicly available equations that yield results similar to Chess.com. My next steps would be adding the basic classifications and tactics detection before adding gui.
Ok i dont really have a photo rn (using phone to type the devlog) but i’ve formatted, simplified and and created files to store all of the functions. All that’s left to do is add GUI. Ill prob add a photo tmr
Last but not least, the UI. I’ll be coding it using PySide6. Im currently still learning how to use the language.
Frontend 90% done. Using PySide6
Almost done! My attempt to program a chess.com style reviewer. It has the basic stats like evaluation, Classification, WDL and move accuracy. It also contains game accuracy and a SVG board where you can see your moves. It’s currently in its rawest form and I’ll improve the accuracy of the reviewer and add more useful feature to it.
Ok so apparently I have to write a final devlog before shipping so here’s what my next steps for the reviewer. 1. Improve the Game Accuracy and Classification function. 2. Find critical moments/moves where it heavily affected the game’s outcome. As for the frontend: Add next and previous move buttons. Add an interactable chess board where the player can change a move to see the different outcome. Obviously there’s more but these are the step ill prob take next.
Ships:
My attempt at building a chess.com style reviewer. It uses python for the backend and pyside6 for the frontend and Stockfish for the engine. The hardest part was learning the chess concepts and understanding chess computation. Also this is my first project with a frontend so I’m also looking forward to programme more apps with frontend. Just download and extract the zip file to run the application (Note that windows will pop up the “Windows protected your PC” window bcs I dont have a Code Signing Certificate, if that happens just click “Run Anyway”. Msg me on slack if you have feedback! (this is the only screenshot i have, so sry it looks all the same)...
|
1793065750.1891046
|
1793152150.1891046
|
|
24004
|
Anna's Desk by @anna1 | Stardance
|
anna1
|
1
|
18.0
|
159
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T14:25:37Z", "hours": 18.0, "multiplier": 15.91, "payout": 159, "blessing": "neutral", "text": "I made an all in one web app with mini sub apps: classes, habits, workouts, recipes, notes, and key dates! I made this to organize all my thoughts and todos in one place. It took a while for me to finalize designs because my ultimate goal was to make this as scrapbook and fun looking as possible. It was also important to make it functional across devices: phone, ipad, laptop… Overall, im super happy w/ the end result! Its functional and something I truly have started using for myself. Especially the packing list for uni is the most relevant for me right now :)", "repo": "https://github.com/dnsva/anna-s-desk", "demo": "https://dnsva.github.io/anna-s-desk/"}]...
|
[{"post_id": 45771, "ts": "202 [{"post_id": 45771, "ts": "2026-08-12T14:04:08Z", "hours": 17.5544, "text": "Currenly working on making demos for the readme. I want to record some gifs using Playwright for Python!"}]...
|
Title: Anna's Desk by @anna1 | Stardance
Devl Title: Anna's Desk by @anna1 | Stardance
Devlogs:
Currenly working on making demos for the readme. I want to record some gifs using Playwright for Python!
Ships:
I made an all in one web app with mini sub apps: classes, habits, workouts, recipes, notes, and key dates! I made this to organize all my thoughts and todos in one place. It took a while for me to finalize designs because my ultimate goal was to make this as scrapbook and fun looking as possible. It was also important to make it functional across devices: phone, ipad, laptop… Overall, im super happy w/ the end result! Its functional and something I truly have started using for myself. Especially the packing list for uni is the most relevant for me right now :)...
|
1793127282.7061648
|
1793213682.7061648
|
|
37502
|
bestspark.org by @BestSpark687090 | Stardance
|
BestSpark687090
|
2
|
26.34
|
159
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-11T20:33:11Z", "hours": 10.0, "multiplier": 7.21, "payout": 70, "blessing": "neutral", "text": "This is my second ship of my unblocked games site. It’s named “BestSpark’s Site” but i named the project bestspark.org because why not. This first image you see? That’s the “cloak” of the site, making it appear harmless at first. Second image is the actual site, by the way. Kinda weird I can’t add more than 2 images… oh well. I do have a bunch of games on it, so why not try it? The link to my discord server is… here if i did that right. I… don’t know and I forget how to actually do it sometimes. I’m shipping now because my school starts in 2 days… and I 100% won’t have time to code and have the time show up here. I think. I hope you have a great rest of your day/night!", "repo": "https://github.com/BestSpark687090/BestSpark687090", "demo": "https://bestspark.org"}, {"ship_num": 2, "ts": "2026-07-30T02:08:13Z", "hours": 9.0, "multiplier": 9.89, "payout": 89, "blessing": "neutral", "text": "Have you ever wanted a game website for school that would… hopefully- be unblocked? well look no further than bestspark.org! this is my personal site, and you can experience it yourself today. it’s not really a… personal site, but I’d call it close enough. there are a BUNCH of games, with a built in cloaking feature (it does it on open, or you can press escape 3 times!) i’ve been working on this project for a while now… and i kinda hope you enjoy it. if you uhh- really want to- you can join my discord at discord.gg/bestspark i guess. (PS: this wasnt started during stardance… but it’s my site. what can you really do about it :P) anyways have fun and uhhh- enjoy the rest of your day/night, person who’s reading this :)", "repo": "https://github.com/BestSpark687090/BestSpark687090", "demo": "https://bestspark.org"}]...
|
[{"post_id": 52503, "ts": "202 [{"post_id": 52503, "ts": "2026-08-22T17:22:43Z", "hours": 7.34, "text": "so i set up sparky ai the walmart ai. yeah. its avaliable at any of my links. Username and password is “sparky” it has access to my cart. it can add. people have already added too many things. please just dont add anything for the time being if you jailbreak it please contact me i want to use it okay thank you so much you have a great day"}, {"post_id": 45006, "ts": "2026-08-11T04:26:17Z", "hours": 1.4878, "text": "well i did it! the singlefile has been made successfully ! yippee! i did a cool thing i guess! i also made a wisp server changing thingy as well but its not visible in the screenshot the “wisp server” is to proxy requests to my server even if it’s blocked in your school example, my school has my website blocked (it got too popular, it was actually unblocked before) so i’d use a different link of mine to view it instead! (the links are in my discord server right here !) have a great morning/evening/night depending on the time you read this"}, {"post_id": 44871, "ts": "2026-08-10T22:11:29Z", "hours": 1.9111, "text": "nevermind its not going so good anymore this bug is plaguing the singlefile pieces at least i have an svg maker for it so i can use it like that buuuuuuuuut i gotta fix these bugs first."}, {"post_id": 44779, "ts": "2026-08-10T19:45:56Z", "hours": 3.6083, "text": "I’m SingleFiling now! this is genuinely going so good!!!!! games even work now! i’m finalizing everything up and will be out soon!!!!"}, {"post_id": 44420, "ts": "2026-08-10T05:18:01Z", "hours": 0.6111, "text": "devlog #i have no idea what number this is i’ve been asking ais i have access to (gpt, claude, (i even decided to ask deepseek too, made an account rq)) about what i could fix on my site. image 1: gpt telling me about the games section image 2: gpt - summary of what ive said to it or whatever image 3: deepseek telling me what i should change i could ask more ais but im already wasting enough water as is. thank you for reading"}, {"post_id": 43616, "ts": "2026-08-08T23:55:33Z", "hours": 1.4714, "text": "I’ve been making a settings page! It’s linked on a gear icon in the bottom right. All colors automatically change when you change them, too! ok byeeee :P"}, {"post_id": 43530, "ts": "2026-08-08T21:03:21Z", "hours": 0.5617, "text": "i made https://bestspark.hackclub.app a valid link! i forgot why i have these 17 minutes of time but im using them now ok bye"}, {"post_id": 36842, "ts": "2026-07-29T05:00:54Z", "hours": 1.1319, "text": "the egg in between. (deltarune reference) https://egg.bestspark.org (i’ve been seeing this EVERYWHERE on my tiktok feed so i decided to do a little funny with it)"}, {"post_id": 36201, "ts": "2026-07-28T04:08:59Z", "hours": 2.4175, "text": "so turns out its devlog 8 time ive been trying so hard to get this singlefile working im gonna be so honest though has anyone asked if i should…? I’m just kidding. This might be useful for later techniques though! Right now, it’s in the linking phase, where all the scripts are linked via actual external JS files. Also, I removed the images that are grabbed weirdly (aka, not from gn-math) and just slapped a image i made in like a minute about how to remove that. in my opinion though… i’m not even sure if i should’ve made this. You gotta do it just because though. Goodnight. (Or whatever, depending on timezones and other things)"}, {"post_id": 35622, "ts": "2026-07-27T05:18:58Z", "hours": 0.3764, "text": "devlog 6 i believe? I did it. It is currently 12:17 AM and I have stuff to do tomorrow. The singlefile has been made successfully. Unfortunately, it only shows one game section because I can’t get the others to show. That will HOPEFULLY be fixed up soon when I get the courage to! Anyways, this was kinda exhausting to make. Goodnight. Here’s the file link. Download it and open it up! https://github.com/BestSpark687090/stupid_singlefile/blob/main/single-min.html"}, {"post_id": 35615, "ts": "2026-07-27T04:36:23Z", "hours": 1.7222, "text": "devlog numero cinco (5) im making a singlefile. the biggest problem with it’s gonna be that it’s gotta be updated manually and… that’s kinda tough. i could probably make a script that does it for me… to be honest. Problem is, i’ve changed so much that it literally needs to be an EXTREMELY goofy script and would need to figure out how to get all the css and js in there properly. for now, im not even singlefiling it fully. The CSS and JS are in separate files… for now. wish me luck, i guess."}, {"post_id": 35506, "ts": "2026-07-26T23:56:02Z", "hours": 0.7431, "text": "devlog number 4 i guess? im gonna be so honest i didnt even KNOW i had 25 minutes logged - im gonna use them tho! so ive added a couple games- probably mostly just 15% in the top left. i found it here, so i thought i might as well use it heres what my current “web ports” section looks like! of course, there’s a whole lot more games actually there, but these are ones ive ported myself. anyways uhhh you people enjoy the rest of your day and thanks for reading this"}, {"post_id": 32445, "ts": "2026-07-21T17:16:47Z", "hours": 0.9, "text": "i guess devlog number four so i webported a game i managed to figure out how to get actual time on it it was one of those baldi “numberslop” mods its called hydrogen and yes its on my games section now ok bye"}, {"post_id": 32084, "ts": "2026-07-21T00:23:50Z", "hours": 0.7664, "text": "devlog number 3 perchance so first things first ive been verified so people can see these goofy ahh posts? yay. so uhhhhhh there aren’t really any visible changes however i did re-format most of the code using prettier the other thing i did was actually change some of the links that were blocked to actual unblocked links. probably gonna try to add some games and figure out how in the world i can classify that as time on here okay thats all goobbye"}, {"post_id": 31925, "ts": "2026-07-20T18:32:38Z", "hours": 0.995, "text": "devlog number 2 i guess? literally the only new visible thing is the about:blank warning and you can press a to toggle on and off the about:blank cloaking (aka hiding the website in a lil secret-ish window) theres probably gonna be more today but that might be it for now"}, {"post_id": 31623, "ts": "2026-07-20T05:35:44Z", "hours": 0.3933, "text": "okay uhhh devlog number one as they say so basically for some actual context ive been making an unblocked games site for a while now- i decided to post it here because i saw this on a discord and… well yeah im here now today i uhhh basically made some slight tweaks to the code, moved a section from the index to a different part of the page, and made it better to not be seen by the filter scanners. lil anti-climactic for the first one but oh well."}]...
|
Title: bestspark.org by @BestSpark687090 | Stardan Title: bestspark.org by @BestSpark687090 | Stardance
Devlogs:
okay uhhh devlog number one as they say so basically for some actual context ive been making an unblocked games site for a while now- i decided to post it here because i saw this on a discord and… well yeah im here now today i uhhh basically made some slight tweaks to the code, moved a section from the index to a different part of the page, and made it better to not be seen by the filter scanners. lil anti-climactic for the first one but oh well.
devlog number 2 i guess? literally the only new visible thing is the about:blank warning and you can press a to toggle on and off the about:blank cloaking (aka hiding the website in a lil secret-ish window) theres probably gonna be more today but that might be it for now
devlog number 3 perchance so first things first ive been verified so people can see these goofy ahh posts? yay. so uhhhhhh there aren’t really any visible changes however i did re-format most of the code using prettier the other thing i did was actually change some of the links that were blocked to actual unblocked links. probably gonna try to add some games and figure out how in the world i can classify that as time on here okay thats all goobbye
i guess devlog number four so i webported a game i managed to figure out how to get actual time on it it was one of those baldi “numberslop” mods its called hydrogen and yes its on my games section now ok bye
devlog number 4 i guess? im gonna be so honest i didnt even KNOW i had 25 minutes logged - im gonna use them tho! so ive added a couple games- probably mostly just 15% in the top left. i found it here, so i thought i might as well use it heres what my current “web ports” section looks like! of course, there’s a whole lot more games actually there, but these are ones ive ported myself. anyways uhhh you people enjoy the rest of your day and thanks for reading this
devlog numero cinco (5) im making a singlefile. the biggest problem with it’s gonna be that it’s gotta be updated manually and… that’s kinda tough. i could probably make a script that does it for me… to be honest. Problem is, i’ve changed so much that it literally needs to be an EXTREMELY goofy script and would need to figure out how to get all the css and js in there properly. for now, im not even singlefiling it fully. The CSS and JS are in separate files… for now. wish me luck, i guess.
devlog 6 i believe? I did it. It is currently 12:17 AM and I have stuff to do tomorrow. The singlefile has been made successfully. Unfortunately, it only shows one game section because I can’t get the others to show. That will HOPEFULLY be fixed up soon when I get the courage to! Anyways, this was kinda exhausting to make. Goodnight. Here’s the file link. Download it and open it up! https://github.com/BestSpark687090/stupid_singlefile/blob/main/single-min.html
so turns out its devlog 8 time ive been trying so hard to get this singlefile working im gonna be so honest though has anyone asked if i should…? I’m just kidding. This might be useful for later techniques though! Right now, it’s in the linking phase, where all the scripts are linked via actual external JS files. Also, I removed the images that are grabbed weirdly (aka, not from gn-math) and just slapped a image i made in like a minute about how to remove that. in my opinion though… i’m not even sure if i should’ve made this. You gotta do it just because though. Goodnight. (Or whatever, depending on timezones and other things)
the egg in between. (deltarune reference) https://egg.bestspark.org (i’ve been seeing this EVERYWHERE on my tiktok feed so i decided to do a little funny with it)
i made https://bestspark.hackclub.app a valid link! i forgot why i have these 17 minutes of time but im using them now ok bye
I’ve been making a settings page! It’s linked on a gear icon in the bottom right. All colors automatically change when you change them, too! ok byeeee :P
devlog #i have no idea what number this is i’ve been asking ais i have access to (gpt, claude, (i even decided to ask deepseek too, made an account rq)) about what i could fix on my site. image 1: gpt telling me about the games section image 2: gpt - summary of what ive said to it or whatever image 3: deepseek telling me what i should change i could ask more ais but im already wasting enough water as is. thank you for reading
I’m SingleFiling now! this is genuinely going so good!!!!! games even work now! i’m finalizing everything up and will be out soon!!!!
nevermind its not going so good anymore this bug is plaguing the singlefile pieces at least i have an svg maker for it so i can use it like that buuuuuuuuut i gotta fix these bugs first.
well i did it! the singlefile has been made successfully ! yippee! i did a cool thing i guess! i also made a wisp server changing thingy as well but its not visible in the screenshot the “wisp server” is to proxy requests to my server even if it’s blocked in your school example, my school has my website blocked (it got too popular, it was actually unblocked before) so i’d use a different link of mine to view it instead! (the links are in my discord server right here !) have a great morning/evening/night depending on the time you read this
so i set up sparky ai the walmart ai. yeah. its avaliable at any of my links. Username and password is “sparky” it has access to my cart. it can add. people have already added too many things. please just dont add anything for the time being if you jailbreak it please contact me i want to use it okay thank you so much you have a great day
Ships:
Have you ever wanted a game website for school that would… hopefully- be unblocked? well look no further than bestspark.org! this is my personal site, and you can experience it yourself today. it’s not really a… personal site, but I’d call it close enough. there are a BUNCH of games, with a built in cloaking feature (it does it on open, or you can press escape 3 times!) i’ve been working on this project for a while now… and i kinda hope you enjoy it. if you uhh- really want to- you can join my discord at discord.gg/bestspark i guess. (PS: this wasnt started during stardance… but it’s my site. what can you really do about it :P) anyways have fun and uhhh- enjoy the rest of your day/night, person who’s reading this :)
This is my second ship of my unblocked games site. It’s named “BestSpark’s Site” but i named the project bestspark.org because why not. This first image you see? That’s the “cloak” of the site, making it appear harmless at first. Second image is the actual site, by the way. Kinda weird I can’t add more than 2 images… oh well. I do have a bunch of games on it, so why not try it? The link to my discord server is… here if i did that right. I… don’t know and I forget how to actually do it sometimes. I’m shipping now because my school starts in 2 days… and I 100% won’t have time to code and have the time show up here. I think. I hope you have a great rest of your day/night!...
|
1793116138.3989697
|
1793202538.3989697
|
|
38176
|
Backwash by @simonhacker | Stardance
|
simonhacker
|
1
|
11.0
|
159
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-01T14:57:24Z", "hours": 11.0, "multiplier": 14.57, "payout": 159, "blessing": "neutral", "text": "I made an interpreted esoteric coding language, called Backwash. It is a language with just 4 variables and every operator is a single character. When coding, you have to plan your project design because of the many constraints implemented in the language. When developing this project (along with @Cesium72 on GitHub), we ran into many challenges. In addition to having challenges when writing the interpreter, writing the code in my language was even harder. You can try the project by using the online interpreter, install the npm package or use npx to run code on your machine. More information is detailed on the website’s readme popup and the full syntax is detailed on GitHub.", "repo": "https://github.com/sevinatenine/Backwash", "demo": "https://backwash.netlify.app/"}]...
|
[{"post_id": 38920, "ts": "202 [{"post_id": 38920, "ts": "2026-08-01T14:46:47Z", "hours": 1.1792, "text": "Added a number guessing game example for my esoteric coding language!"}, {"post_id": 33104, "ts": "2026-07-22T18:39:15Z", "hours": 0.5258, "text": "Added a README popup for the online interpreter of my language!"}, {"post_id": 33072, "ts": "2026-07-22T17:26:06Z", "hours": 2.8325, "text": "I almost finished making the UI for my web port of my esoteric coding language! I’m using Monaco editor for the code editing and Xterm.js for the terminal."}, {"post_id": 32749, "ts": "2026-07-22T03:03:33Z", "hours": 6.4078, "text": "This is my first devlog for my esoteric coding language - Backwash. I completed the design and finished coding the first version of the project. The syntax is complete and I have coded a few demos, including rock paper scissors."}]...
|
Title: Backwash by @simonhacker | Stardance
Devlo Title: Backwash by @simonhacker | Stardance
Devlogs:
This is my first devlog for my esoteric coding language - Backwash. I completed the design and finished coding the first version of the project. The syntax is complete and I have coded a few demos, including rock paper scissors.
I almost finished making the UI for my web port of my esoteric coding language! I’m using Monaco editor for the code editing and Xterm.js for the terminal.
Added a README popup for the online interpreter of my language!
Added a number guessing game example for my esoteric coding language!
Ships:
I made an interpreted esoteric coding language, called Backwash. It is a language with just 4 variables and every operator is a single character. When coding, you have to plan your project design because of the many constraints implemented in the language. When developing this project (along with @Cesium72 on GitHub), we ran into many challenges. In addition to having challenges when writing the interpreter, writing the code in my language was even harder. You can try the project by using the online interpreter, install the npm package or use npx to run code on your machine. More information is detailed on the website’s readme popup and the full syntax is detailed on GitHub....
|
1793126951.8029249
|
1793213351.8029249
|
|
63423
|
Article Of The Day by @Visott | Stardance
|
Visott
|
1
|
15.0
|
159
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T13:01:52Z", "hours": 15.0, "multiplier": 10.87, "payout": 159, "blessing": "neutral", "text": "Article Of The Day V1.0 This website generates one random article a day! You can re-roll for another article if you don’t like the current one. You can also select different topics based on your interests. Features: Custom Coffee Bean Cursor Satisfying Buttons Topic/Category Selectors Randomly Generated Article Implementing RSS feeds in order to parse the articles onto the site was quiet challenging, but I learned a lot about Javascript, RSS Parser, and RSS Feeds in the process. This website works on all devices; just click on the link and you should be good to go! Link", "repo": "https://github.com/VITNT/Article-of-The-Day", "demo": "https://article-of-the-day.vercel.app/"}]...
|
[{"post_id": 80367, "ts": "202 [{"post_id": 80367, "ts": "2026-10-17T12:49:58Z", "hours": 2.1789, "text": "Devlog 4 The README is complete! I’ve rewritten some of the JS to simplify it, and I’ve added some more sources to the backend. There is also a source code button now that links to the project’s github repo."}, {"post_id": 79293, "ts": "2026-10-13T11:07:23Z", "hours": 8.0583, "text": "Devlog 3 I have expanded support from Wikipedia to more sources like Wired, BBC, The Verge, etc… It took a while because I had to learn how to use npm and the rss-parser library. Bugs 🐛 Confused between which variable to use for selecting the articles (i.e. sources vs feed vs article in article.js) Changes I added rss links for each source Drafted a README file Learned how to use async functions to reduce load times Learned how to use Vercel CLI to test backend api code. Learned type module for Javascript. Also learned that I need to use `` instead of “” when using/embedding variables like response.status . Also spent a lot of time trying to make the category feature work where users can which categories they want for the random articles. Choosing which CSS selectors to use so that the category buttons have the proper hover and active transitions Future Plans Add a link to the project’s github. More sources/categories!"}, {"post_id": 72642, "ts": "2026-09-23T12:38:21Z", "hours": 1.1822, "text": "Devlog #2 I added an open article button which opens the random article on click. I learned how to implement this through Javascript by using article.content_urls.desktop.page; to get the article url and then open the article on click using window.open(url, \"_blank\"); , and an event listener on the open article button. I also added the current date at the top of the title using date.toLocaleDateString . I styled the buttons to slightly glow on hover and sink into the screen (inset box-shadow) on click."}, {"post_id": 72209, "ts": "2026-09-22T13:35:29Z", "hours": 3.1767, "text": "Devlog #1 I started with Astro but after learning astro for about 1 hour, I realized that it was overkill for what I was trying to do. So instead I swapped to HTML, CSS, and JS (although, I’ll probably try programming it in Astro when I get the html/css/js version to work). I spent around 15 minutes looking for colors, fonts, and a custom cursor icon for the site. I settled with the cute coffee bean icon which you can see in the image! The rest of the time was spent adding the styles to styles.css, setting up the HTML to work with the Javascript code, and implementing API fetch functions. The Javascript kinda works, but I haven’t linked it with the button yet, so it only loads the article on page refresh. Also, the JS only works with Wikipedia API for now, but more sites are going to be added very soon."}]...
|
Title: Article Of The Day by @Visott | Stardance
Title: Article Of The Day by @Visott | Stardance
Devlogs:
Devlog #1 I started with Astro but after learning astro for about 1 hour, I realized that it was overkill for what I was trying to do. So instead I swapped to HTML, CSS, and JS (although, I’ll probably try programming it in Astro when I get the html/css/js version to work). I spent around 15 minutes looking for colors, fonts, and a custom cursor icon for the site. I settled with the cute coffee bean icon which you can see in the image! The rest of the time was spent adding the styles to styles.css, setting up the HTML to work with the Javascript code, and implementing API fetch functions. The Javascript kinda works, but I haven’t linked it with the button yet, so it only loads the article on page refresh. Also, the JS only works with Wikipedia API for now, but more sites are going to be added very soon.
Devlog #2 I added an open article button which opens the random article on click. I learned how to implement this through Javascript by using article.content_urls.desktop.page; to get the article url and then open the article on click using window.open(url, "_blank"); , and an event listener on the open article button. I also added the current date at the top of the title using date.toLocaleDateString . I styled the buttons to slightly glow on hover and sink into the screen (inset box-shadow) on click.
Devlog 3 I have expanded support from Wikipedia to more sources like Wired, BBC, The Verge, etc… It took a while because I had to learn how to use npm and the rss-parser library. Bugs 🐛 Confused between which variable to use for selecting the articles (i.e. sources vs feed vs article in article.js) Changes I added rss links for each source Drafted a README file Learned how to use async functions to reduce load times Learned how to use Vercel CLI to test backend api code. Learned type module for Javascript. Also learned that I need to use `` instead of “” when using/embedding variables like response.status . Also spent a lot of time trying to make the category feature work where users can which categories they want for the random articles. Choosing which CSS selectors to use so that the category buttons have the proper hover and active transitions Future Plans Add a link to the project’s github. More sources/categories!
Devlog 4 The README is complete! I’ve rewritten some of the JS to simplify it, and I’ve added some more sources to the backend. There is also a source code button now that links to the project’s github repo.
Ships:
Article Of The Day V1.0 This website generates one random article a day! You can re-roll for another article if you don’t like the current one. You can also select different topics based on your interests. Features: Custom Coffee Bean Cursor Satisfying Buttons Topic/Category Selectors Randomly Generated Article Implementing RSS feeds in order to parse the articles onto the site was quiet challenging, but I learned a lot about Javascript, RSS Parser, and RSS Feeds in the process. This website works on all devices; just click on the link and you should be good to go! Link...
|
1793008252.4859054
|
1793094652.4859054
|
|
20497
|
ScreenExtend by @epiccodewizard | Stardance
|
epiccodewizard
|
1
|
129.27
|
158
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-01T23:47:06Z", "hours": 55.0, "multiplier": 15.76, "payout": 158, "blessing": "neutral", "text": "Initial release for ScreenExtend! Please give feedback and read the initial devlog (shorter one here, longer one at https://github.com/ScreenExtend/ScreenExtend/blob/main/DEVLOG.md ) for detailed information.", "repo": "https://github.com/ScreenExtend/ScreenExtend", "demo": "https://screenextend.app/"}]...
|
[{"post_id": 60703, "ts": "202 [{"post_id": 60703, "ts": "2026-09-03T08:05:38Z", "hours": 9.5622, "text": "One step closer to finally shipping…or so I hope. I speedran shipping this next feature, so it took a lot of time. This feature is mainly for myself. I have an old Mac (running 10.13 from 2017, really old I get itttt). I want my app to run on there, but it currently only supports 10.15+. Hence, I went down a funny rabbit hole in an attempt to add support. 33. Cleaning up dylib signature lookups at run time One of the key challenges I faced throughout development was how to have a unified codebase for multiple API versions. I decided that instead of version-gating APIs and guessing which beta/normal versions they would be accessible on, I’d test for APIs at run time. I changed VideoToolbox to use this logic: it would attempt to set/use APIs and variables available at higher runtimes, but would work fine without them and have fallbacks. This ensured both legacy and modern systems functioned well. 34. Airplay automations…? As I was doing competitor research, I noticed many of the other apps supported Mac 10.13-10.15 as well as 10.15+, while mainly only supported 10.15+. Essentially, they started a fake Airplay server, had the Mac connect it, and set the display mode to “Use as separate display”. This would create a virtual display that the app would then use for its own functions. As ScreenExtend requires its own display on older machines, similar to this, where CGVirtualDisplay isn’t an option, I decided to use this method. I had my app automate opening the Airplay menu and connecting as well, in addition to running the fake server. Most of the process was straightforward, especially due to the abundance of fake Airplay server implementations online and my own experience with apps like LonelyScreen. The one issue of this approach is that only one display can be connected at a time, so any tertiary devices wanting to connect have to wait their turn. I guess the only option is to by a new mac then… 35. Client UI update cleanliness fixes Due to the one device restriction, I implemented a separate page that would be served if the display slot was being used up. It would be coupled with a short message explaining the consequences of the older Mac version. There were also bugs related to session teardown (keyboard still being locked, video stream still active in the background, etc) that I quickly squashed after finding them. Soooo in hindsight, I prolly should’ve bumped this up to 0.6.0, but I left it at 0.5.4. Oh well, I’ll increment the version by next release. Only a few more features to go on the feature list before hitting v1 and shipping!!!"}, {"post_id": 58576, "ts": "2026-08-31T01:22:07Z", "hours": 12.0222, "text": "Oh my lord, I keep forgetting to write devlogs every 10 hours and am losing hours on each one. Nevertheless, I finally finished audio work! Plus some other things like running claude security agents on the code base and patching stupid vulnerabilities. Here’s how the week went: 28. HiDPI and Mac Issues Whenever I use my Mac with ScreenExtend, the stream looks blurry due to Macs having HiDPI screens. I fixed this by adding basic HiDPI scaling on Windows. The UI has a DPR slider based on autodetected values. This DPR is multiplied by the screen resolution for a shaper display. One issue that arose with the new displays was the fact that the display would randomly not scale properly, so the task bar and apps would appear tiny. To mitigate this, I reapplied all display settings after resolution changes and a timeout. 29. AUDIO WORKS!!!! For the longest time, I tried getting audio to work. On Windows, the process was straightforward: a WASAPI loopback system audio capture session. I wanted to build my own custom driver to capture audio faster, but this would be too expensive to deploy. I read other Rust implementations and quickly wrote the code. On the other hand, Mac was a whole different issue. On older versions of Mac, system audio recording is not supported. Hence, for Macs below 13.0, I wrote a custom audio driver. I didn’t have a clue about implementing an AudioServerPlugIn on Mac, but worked out the specifics by looking at the Blackhole audio driver. I did have to proxy physical volume buttons to work (i.e. I listen for taps and change the audio level within the driver). For older Macs, I used ScreenCaptureKit with an extra audio flag. This was a simple fix to capture audio. On even newer Macs, there’s a Process Tap API to record system audio with low latency. Once again, I didn’t have much difficulties implementing these due to the abundance of documentation. 30. Streaming Audio over WebRTC (with A/V sync) When sending video and audio separately, the two are prone to fall out of sync, so watching movies or videos is difficult. To mitigate these issues, I wrote an A/V sync host clock. This packages the time on the host clock to audio samples and video frames, such that they can be reconstructed and coupled on the receiving end. On the browser side, I began by implementing a basic audio streamer with an audio element. However, similar to video, there’s always a faster method possible. I used the AudioDecoder class from WebCodecs to implement a worklet class and jitterbuffer. In simple terms, this would decode audio on a separate thread, like WebCodecs prefers, and send the audio back to be played to the user. 31. Windows Video Encoding Speedups I made a few encoding speedups on Windows targets: The NVENC capture encode system uses a texture ring implementation: a pool of 3-5 encoder instances paired with a frame queue, allowing multiple frames to be encoded concurrently BGRA encoding is done directly in the library instead of using a third-party implementation Unchanged frames in DXGI capture are not encoded again, reducing CPU load 32. Mac Video Encoding Speedups I made a few encoding speedups on Mac targets: Request LatencyCritical activity for the session to ensure App Nap and other sleep measures don’t affect the thread Analogous to DXGI, skip encoding when CGDisplayStream reports no dirty rects Not an encoding speedup, but preferring 5 GHz for Mac hosted networks to ensure higher speeds Lotta stuff done this week, am I right? I made lots of progress and finished the bulk of my features, although Linux support is still in the works. I’ll make the 1.0.0 release soon and start a Stardance ship as well. I’ll likely add Linux support after 1.0.0, as I need to research EVDI and the WSL display compositor, as well as other minor tweaks for Windows/Mac. See y’all in the next devlog!"}, {"post_id": 54119, "ts": "2026-08-24T22:53:29Z", "hours": 12.6531, "text": "I speedran shipping a buncha features…in the span of a few days. I logged a copious amount of hours on Hackatime building random stuff. I tried some things with recording system audio and building a driver…those didn’t go the best, but I’ll cover that in the next devlog. Here are the main changes this week: 24. Even more quality of life changes Compared to last time, I wanted the user experience to improve even more. Specifically, for the Windows client, a custom display driver is required. On Macs, the functionality I need is built in, so none is required. However, uninstalling this display driver used to be a pain for users. Now, I bundled it as part of the uninstall script. I wasn’t sure how to do this, but Tauri has many useful guides and issues opened regarding custom WiX/NSIS code. When the window isn’t focused, join and leave notifications are toasted. This allows the user to stay informed even when the app isn’t open. Basic feature but very useful. I’d often get annoyed that I needed to keep re-entering the password to log in to a previously connected device. Hence, I added auto-join for devices based on their IP. This ensures that commonly connected devices can save time when reconnecting. 25. Onboarding screens The app is intuitive to use…or so I thought? Some of my beta testers were confused as to the various features and how to use the interface. Hence, I used NextStepjs to add onboarding components. This would dim the UI and only highlight the component being displayed, along with a message next to it. I liked the styles of NextStepjs a lot, so I chose it. There were some issues regarding window resize, so I made the onboarding exit and reopen to the last step when the window is resized. This way, the positioning of elements was forcefully recalculated. 26. Random security fixes My app had various vulnerabilities scattered throughout, so I ran a vulnerability Claude skill and patched some holes. The main issues fixed were: Checksums of bundled DLLs and resources are checked before being pushed to GitHub Actions Tauri CSP and allow list are actually enforced instead of being set to allow all TLS cert used for hosting the HTTPS domain has more secure file system permissions to reduce unwanted tampering of files Devices are trusted by a uniquely generated token, not by IP, to decrease the chance of impersonators 27. Command-line interface A majority of the time on this devlog was spent on the CLI. It wasn’t that hard (from a technical perspective), mainly just translating a lot of the UI code into Tauri CLI commands and mapping them correctly in the generated JSON file. One of the harder things to figure out was setting up cross-thread AppState, when the app wasn’t exactly running…turned out I just had to move the initialization command to before the window is created, so it would run inside both CLI and GUI modes. To present the QR codes better. I used qr2term to display the QR codes. By default, all logging is hidden. This turns ScreenExtend into a clean CLI mimicking the GUI. Hoorah! That’s it for this devlog. Not much to conclude, but plenty more features coming. Stay tuned!"}, {"post_id": 51902, "ts": "2026-08-21T20:12:46Z", "hours": 10.3639, "text": "Oh my lord…I crammed a lot of features into this week. I have yet to do proper audits of the codebase as a whole, specifically related to latency optimizations. I added a lot more code that affects the WebRTC pipeline, but I at least got the core features working. 20. Automatic updates For a while, the app relied on manual updating. It would check the latest version on Github, but users would have to go to the website, download the installer, uninstall the current version, and reinstall the newer version. This also messed up config and was a huge pain. Hence, I generated my own signing keys and used the Tauri updater plugin to automatically update apps. When the app is first launched and if an update is available, it automatically downloads and installs it without any user action. To make this more robust, I added a progress bar while downloading the update. On Windows specifically, the app must be shut down and restarted, so a blocking modal prevents devices from joining till this is done. I originally made this modal manually, but switched to using AlertDialog from ShadCN. Another issue I faced was the latest.json manifest. As I used custom filenames when downloading and installing updates, I had to manually patch the JSON. I learned a lot about the Tauri updater Github action through this, as I had to figure out how Tauri generated build filenames and how I could safely update them. 21. Quality of life for client devices I finished QOL fixes on the client side: Remember past devices to quickly import preferences or ban devices (all config saving is IP-based) Warn if the user is attempting to connect from the same device (this app is a remote control tool, but you can’t exactly remote control yourself) If the screen orientation changes, the virtual display is updated accordingly using CSS media queries to ensure a seamless experience A no fullscreen mode was added so users could quickly switch apps and maintain productivity 22. Quality of life for host devices I converted all in-app modals and error messages to JSON. This allowed me to add i18n language support, so I could easily translate my app to other languages. To detect and ensure only a single instance of the app was running, I previously used a file lock. However, there was an issue with MSI builds falsely detecting a file lock and not opening. I switched to a basic TCP model for IPC so that multiple processes running can figure out which was there first and shut down the others. 23. More more more Mac features! I’ve always felt a bit sad for my Mac users. I don’t have a Mac to test on, so I keep borrowing my dad’s Mac, which results in insanely slow development times. Nevertheless, I made some serious progress this week. The biggest thing was a simpler installation process. Many users would complain that they didn’t remember if they’re on Intel or Apple Silicon, so I now distribute a universal DMG. In terms of the app itself, I added a permissions check for screen recording and input injection. It would run a live test of screen capture or key input to see if the app actually had permissions; therefore, down the road it wouldn’t cause issues. I initially tried to do a soft check without an actual test (i.e., read the settings app), but this didn’t work. The only foolproof way was to call the API itself. The biggest feature by far was adding Mac input injection. Using accessibility APIs and a charmap similar to Windows, it would inject input onto the Mac screen. I could remotely log in from my Chromebook and get a lot of work done. I mirrored the structure and code on the Windows input injection pipeline, so no major difficulties here. That’s it for this week! Lotta stuff added, especially for the Mac users. I have a long list of features to continue building, specifically regarding easier Windows uninstall processes, onboarding, and an overall better UX. See you soon!"}, {"post_id": 39065, "ts": "2026-08-01T19:07:47Z", "hours": 9.8208, "text": "I had so much fun at the conference in San Francisco! I met a lot of cool people who gave me advice on the app, although I didn’t see the downloads spike 😭. I primarily began working on a SW encoder and other miscellaneous changes: 17. Remote control toggle Sometimes, the user doesn’t want a client to have remote control access. Although the purpose of the app is to have remote control, it is useful to disable this feature. On the frontend, I added a toggle switch that enables or disables the remote control backend. I was debating whether WebRTC negotiation was required as well, but decided to do so in the end. The remote control used data channels, so an unused data channel would result in slightly lower latency. Renegotiation ensured the stream stayed as efficient as possible without sending redundant data. 18. Update checking In order for current users to access newer versions, I wanted to add an update functionality. I’m not using Tauri’s update plugin just yet, so I run a simple check. The app, on startup, checks the latest release tag on GitHub. If it’s not equal to the current version (rollback or higher version), the user is prompted to download the newer version. Automatic updates will come next. 19. The big boy: software encoding This one’s been a long time coming. A lot of machines like VMs or computers with a weird setup just don’t have a working hardware encoder (Intel/AMD/Nvidia), and until now that meant the app straight up didn’t work there. So I built a full CPU-only x264 fallback. For the pipeline, the frames come as raw BGRA bytes that the other supporters already encoded. They must be converted to I420 before going to libx264, whose build I pulled from OBS. As a side note, the DLL is bundled with the app at runtime to ensure no missing dependencies. As with any encoder, the rate control is ABR with a tight VBV, as well as an infinite GOP. Besides the technical jargon, this just means latency is the north star and nothing else matters. The whole software variant is added to the encoder vendor enum, and wired into the fallback chain: if NVENC fails, try Intel; if Intel fails, fall back to software before giving up entirely. There’s also a manual override if someone really prefers software encoding, but this is not the default. There’s a big CPU cost compared to hardware encoding, so it’s very much a last resort and only kicks in if absolutely no GPU encoders are available. But “last resort that works” beats “doesn’t work at all.” That’s it for this week! I plan to have some smaller quality-of-life changes and better updates coming soon…"}, {"post_id": 34237, "ts": "2026-07-24T19:29:18Z", "hours": 9.1139, "text": "Sooooo this devlog is mostly comprised of website changes. I have a conference in San Francisco and wanted to polish up the app before publishing. Here are the main changes I made: 13. Random chores and updating the website I absolutely love shadcn-ui, but so do AI models. In past reviews by stardance raters, as well as family and friends, they pointed out the website looked AI-generated. Hence, I decreased the number of gradients and added basic animations to make the site feel more alive. This was a first for me to implement animations, but the Tailwind docs made it quite simple. I used a specific code-like font instead of the generic fonts I had and tidied up CSS classes. The biggest change was adding a blurred-geometric background for a nicer feel. 14. Redesigning the website completely I felt it was better to update the website as a whole, so I changed up the user interface. When I tested the app with real users, they complained that they didn’t know how to actually use the app. I changed the hero design to have clearer text and added an SVG-animation component showing how the site actually works. The feature section stayed the same, but there was a highlights grid (inspo https://cider.sh/ ) to highlight the main features. The FAQ was shortened to my liking, and I pulled some utilities from Tailwind for animations. In terms of images, I updated the images of the app featured on the website and cleaned up some of the dimensions related to that CSS. The old homepage still lives inside OldHome() but isn’t used anymore. 15. Tidying up the README and build workflows I edited the README to remove redundant information and make it more developer-focused. I also updated some information regarding GPU builds. For the build workflow, I ensured it would only run if the commit ended in “rebuild”. This ensures unnecessary build minutes are not spent on small changes not requiring a full rebuild. 16. Wake lock API fallback This app aims to support all devices, but older devices have…funny APIs to say the least. For WebRTC, I implemented the legacy encoded streams API. However, the device would still turn off for seemingly no reason while the video was playing. On older devices, the wake lock API is not supported. However, there’s a unique workaround for this: any video element playing on the webpage will keep the screen from dimming. Hence, I used the NoSleep library to create an off-screen 1-second video element that keeps looping, ensuring the display doesn’t go dark. Some very fun stuff with browsers. That’s it for this devlog! Mostly minor changes, but the next one will have better SW encoding support among other changes. Stay tuned…"}, {"post_id": 28772, "ts": "2026-07-15T08:02:33Z", "hours": 10.7358, "text": "I met with some friends to discuss my app…and realized I gotta lock in with the features. Among the various topics we discussed like the difficult UI or lack of automatic updates, they really wanted remote control features. So, I set out to make the remote display something I can actually touch, click, and type into. And patching some other bugs along the way. 9. Remote input This is the main headline feature. Streaming pixels one way was solved; now the client had to send input back up the wire and have the host replay it as if it came from real hardware. Host side (Windows). A new input backend injects events through a synthetic pointer device , so mouse, touch, and pen all seem real as opposed to faked mouse moves. The synthetic device can execute touch or mouse movements from the tablet client. macOS and Linux backends are stubbed and will come later (trust me bro). The wire. This side had to be optimized for dead-low latency like the rest of the project. Instead of passing strings or using some wrapper library, I made my own binary protocol (a dedicated protocol module) serialized over WebRTC data channels , not the media path. Client-side input.js captures keyboard, mouse, pointer (touch/pen), wheel, clipboard, and drag-drop and ships them across. The code basically catches every single frontend input event and forwards all those events (20+)! The routing is latency-first, same as everything else, with three different paths. fast-path events (pointer moves, wheel) take an unreliable channel , where a dropped packet is cheaper than a late one, while clicks, keys, and clipboard take the reliable channel where every event must land exactly once. It’s not that big of a deal if one small mouse delta doesn’t go through, but it definitely is a big deal if a click doesn’t go through. 10. Browser compatibility detections Not every browser can do WebCodecs, secure contexts, or the input paths above. Rather than fail silently, I added a compatibility check on both the browser and client up front. It shows compatibility modals with per-feature lists to ensure the user knows what’s going on. 11. Some more small fixes I added two quality-of-life additions: avatars (upload custom profile pictures) and zoom controls (ctrl/cmd +/-). 12. Encoders that don’t explode when funny stuff happens Oh my god…one of the biggest issues by far. When I ran the NVIDIA encoder at high FPS, it didn’t crash. However, the Intel Quick Sync encoder would arbitrarily crash at high FPS and wouldn’t give a reason why. I audited a buncha different parts of my code and eventually found that FPS was the issue, not resolution or low-latency flags. Hence, I added a binary search that probes the hardware for its true maximum supported fps and clamps to it before the encoder can choke. Essentially, I ask the encoder “can you do 1920x1080 at 240 fps?” –> “no” –> “what about 120 fps?” –> “yes” –> “what about 180 fps?”. This keeps repeating till the max FPS is found and streamed to the client. Rounding out the release, I made a variety of different UI fixes like the modal fixes , backdrop overlap, a stray uninstall-modal backdrop, and cloud reconfig errors . More progress to come!"}, {"post_id": 20389, "ts": "2026-07-01T23:35:58Z", "hours": 54.7942, "text": "ScreenExtend Devlog: Building the Rust Engine Under a Wireless Second Monitor TL;DR ScreenExtend turns any device with a browser into a real, wireless extended monitor for a Windows host, no client app and no cables (it began so my brother could use his iPad for notes at debate tournaments). Scan a QR code and the host spins up a real virtual display, streamed over WebRTC with hardware H.264. The React/TS control UI existed before; everything else (Rust core, GPU pipeline, WebCodecs client, cloud relay) was built from scratch , always latency-first, quality-second. 1. The spine: Tauri + a typed Rust↔TS bridge tauri-specta exports a fully-typed src/lib/bindings.ts for commands (TS→Rust) plus typed events (Rust→TS): devices, network, cloud status, logs. A code-generated bridge beats maintaining one by hand. Let the code write itself! 2. Virtual displays: faking a real monitor Each client gets its own virtual display the OS treats as real hardware, a true second screen, not mirroring. On join the host creates one sized to the client , forces extend topology, then captures it once attached. On Windows a signed IDD driver installs at runtime (via nefconc + certutil ), and it tears down cleanly on leave. 3. First light: WebRTC + WHEP + H.264 The media path is WebRTC (real-time, in every browser). Signaling is WHEP : the client POSTs an SDP offer, the host answers in-response, no signaling server. Codec is H.264 , universal hardware decode on clients and encode (NVENC/QSV/AMF) on hosts. The first release streamed NVENC to a plain <video> ; it worked but was laggy. It binds HTTP + HTTPS (self-signed via rcgen ) , since WebCodecs needs a secure context. 4. The pipeline: capture → encode → broadcast Capture is Windows Graphics Capture (later a custom fork; DXGI Desktop Duplication fallback), with a repeater thread for idle keepalive/IDRs and transient-stall tolerance. 5. Going vendor-specific: the part that made it fast Generic capture→CPU-copy→encode is slow everywhere; the win: keep the frame on the GPU from capture to bitstream. Per vendor: NVENC (NVIDIA): no SDK linked (API dynamically loaded ); zero-copy writes capture into a shared D3D11 texture behind a keyed mutex, else a CPU bridge. Intel QSV/oneVPL: same-adapter capture+encode fuses the downscale into the VPP pass (BGRA→NV12 + resize in one shot). macOS (VideoToolbox): ScreenCaptureKit (12.3+, CGDisplayStream fallback) via objc2 runtime interop only , so one binary loads on every macOS version, same IOSurface zero-copy. 6. The client: WebCodecs over <video> Fast path: an RTCRtpScriptTransform feeds a worker VideoDecoder ( optimizeForLatency: true ) onto an OffscreenCanvas , latency hints zeroed. A <video> fallback covers missing WebCodecs or stalls. It also feels like a monitor: fullscreen + input/wake locks, /leave beacon on exit. 7. Adaptive bitrate, sessions & security A BWE driver reads getStats every 250ms, pushing a smoothed bitrate into the encoder. Changing settings triggers in-place renegotiation (a reconfig/kick epoch the client polls) with no display teardown. Each host is gated by a session ID + 6-digit OTP ( OtpLimiter lockout); every device is isolated, over HTTPS + DTLS/SRTP. 8. Networking + status (v0.2.3) Same-network is direct, no servers. Offline mode stands up an ad-hoc hosted network , no infrastructure needed. Cross-network adds a cloud relay (WebSocket to session.screenextend.app ) tunneling signaling while media stays P2P; a self-hosted TURN server covers hard NATs. A logbus feeds an in-app terminal. Working today: Windows/macOS hosts, per-vendor GPU encode, per-device displays, adaptive bitrate, OTP sessions, offline mode, and cloud relay."}]...
|
Title: ScreenExtend by @epiccodewizard | Stardance Title: ScreenExtend by @epiccodewizard | Stardance
Devlogs:
ScreenExtend Devlog: Building the Rust Engine Under a Wireless Second Monitor TL;DR ScreenExtend turns any device with a browser into a real, wireless extended monitor for a Windows host, no client app and no cables (it began so my brother could use his iPad for notes at debate tournaments). Scan a QR code and the host spins up a real virtual display, streamed over WebRTC with hardware H.264. The React/TS control UI existed before; everything else (Rust core, GPU pipeline, WebCodecs client, cloud relay) was built from scratch , always latency-first, quality-second. 1. The spine: Tauri + a typed Rust↔TS bridge tauri-specta exports a fully-typed src/lib/bindings.ts for commands (TS→Rust) plus typed events (Rust→TS): devices, network, cloud status, logs. A code-generated bridge beats maintaining one by hand. Let the code write itself! 2. Virtual displays: faking a real monitor Each client gets its own virtual display the OS treats as real hardware, a true second screen, not mirroring. On join the host creates one sized to the client , forces extend topology, then captures it once attached. On Windows a signed IDD driver installs at runtime (via nefconc + certutil ), and it tears down cleanly on leave. 3. First light: WebRTC + WHEP + H.264 The media path is WebRTC (real-time, in every browser). Signaling is WHEP : the client POSTs an SDP offer, the host answers in-response, no signaling server. Codec is H.264 , universal hardware decode on clients and encode (NVENC/QSV/AMF) on hosts. The first release streamed NVENC to a plain <video> ; it worked but was laggy. It binds HTTP + HTTPS (self-signed via rcgen ) , since WebCodecs needs a secure context. 4. The pipeline: capture → encode → broadcast Capture is Windows Graphics Capture (later a custom fork; DXGI Desktop Duplication fallback), with a repeater thread for idle keepalive/IDRs and transient-stall tolerance. 5. Going vendor-specific: the part that made it fast Generic capture→CPU-copy→encode is slow everywhere; the win: keep the frame on the GPU from capture to bitstream. Per vendor: NVENC (NVIDIA): no SDK linked (API dynamically loaded ); zero-copy writes capture into a shared D3D11 texture behind a keyed mutex, else a CPU bridge. Intel QSV/oneVPL: same-adapter capture+encode fuses the downscale into the VPP pass (BGRA→NV12 + resize in one shot). macOS (VideoToolbox): ScreenCaptureKit (12.3+, CGDisplayStream fallback) via objc2 runtime interop only , so one binary loads on every macOS version, same IOSurface zero-copy. 6. The client: WebCodecs over <video> Fast path: an RTCRtpScriptTransform feeds a worker VideoDecoder ( optimizeForLatency: true ) onto an OffscreenCanvas , latency hints zeroed. A <video> fallback covers missing WebCodecs or stalls. It also feels like a monitor: fullscreen + input/wake locks, /leave beacon on exit. 7. Adaptive bitrate, sessions & security A BWE driver reads getStats every 250ms, pushing a smoothed bitrate into the encoder. Changing settings triggers in-place renegotiation (a reconfig/kick epoch the client polls) with no display teardown. Each host is gated by a session ID + 6-digit OTP ( OtpLimiter lockout); every device is isolated, over HTTPS + DTLS/SRTP. 8. Networking + status (v0.2.3) Same-network is direct, no servers. Offline mode stands up an ad-hoc hosted network , no infrastructure needed. Cross-network adds a cloud relay (WebSocket to session.screenextend.app ) tunneling signaling while media stays P2P; a self-hosted TURN server covers hard NATs. A logbus feeds an in-app terminal. Working today: Windows/macOS hosts, per-vendor GPU encode, per-device displays, adaptive bitrate, OTP sessions, offline mode, and cloud relay.
I met with some friends to discuss my app…and realized I gotta lock in with the features. Among the various topics we discussed like the difficult UI or lack of automatic updates, they really wanted remote control features. So, I set out to make the remote display something I can actually touch, click, and type into. And patching some other bugs along the way. 9. Remote input This is the main headline feature. Streaming pixels one way was solved; now the client had to send input back up the wire and have the host replay it as if it came from real hardware. Host side (Windows). A new input backend injects events through a synthetic pointer device , so mouse, touch, and pen all seem real as opposed to faked mouse moves. The synthetic device can execute touch or mouse movements from the tablet client. macOS and Linux backends are stubbed and will come later (trust me bro). The wire. This side had to be optimized for dead-low latency like the rest of the project. Instead of passing strings or using some wrapper library, I made my own binary protocol (a dedicated protocol module) serialized over WebRTC data channels , not the media path. Client-side input.js captures keyboard, mouse, pointer (touch/pen), wheel, clipboard, and drag-drop and ships them across. The code basically catches every single frontend input event and forwards all those events (20+)! The routing is latency-first, same as everything else, with three different paths. fast-path events (pointer moves, wheel) take an unreliable channel , where a dropped packet is cheaper than a late one, while clicks, keys, and clipboard take the reliable channel where every event must land exactly once. It’s not that big of a deal if one small mouse delta doesn’t go through, but it definitely is a big deal if a click doesn’t go through. 10. Browser compatibility detections Not every browser can do WebCodecs, secure contexts, or the input paths above. Rather than fail silently, I added a compatibility check on both the browser and client up front. It shows compatibility modals with per-feature lists to ensure the user knows what’s going on. 11. Some more small fixes I added two quality-of-life additions: avatars (upload custom profile pictures) and zoom controls (ctrl/cmd +/-). 12. Encoders that don’t explode when funny stuff happens Oh my god…one of the biggest issues by far. When I ran the NVIDIA encoder at high FPS, it didn’t crash. However, the Intel Quick Sync encoder would arbitrarily crash at high FPS and wouldn’t give a reason why. I audited a buncha different parts of my code and eventually found that FPS was the issue, not resolution or low-latency flags. Hence, I added a binary search that probes the hardware for its true maximum supported fps and clamps to it before the encoder can choke. Essentially, I ask the encoder “can you do 1920x1080 at 240 fps?” –> “no” –> “what about 120 fps?” –> “yes” –> “what about 180 fps?”. This keeps repeating till the max FPS is found and streamed to the client. Rounding out the release, I made a variety of different UI fixes like the modal fixes , backdrop overlap, a stray uninstall-modal backdrop, and cloud reconfig errors . More progress to come!
Sooooo this devlog is mostly comprised of website changes. I have a conference in San Francisco and wanted to polish up the app before publishing. Here are the main changes I made: 13. Random chores and updating the website I absolutely love shadcn-ui, but so do AI models. In past reviews by stardance raters, as well as family and friends, they pointed out the website looked AI-generated. Hence, I decreased the number of gradients and added basic animations to make the site feel more alive. This was a first for me to implement animations, but the Tailwind docs made it quite simple. I used a specific code-like font instead of the generic fonts I had and tidied up CSS classes. The biggest change was adding a blurred-geometric background for a nicer feel. 14. Redesigning the website completely I felt it was better to update the website as a whole, so I changed up the user interface. When I tested the app with real users, they complained that they didn’t know how to actually use the app. I changed the hero design to have clearer text and added an SVG-animation component showing how the site actually works. The feature section stayed the same, but there was a highlights grid (inspo https://cider.sh/ ) to highlight the main features. The FAQ was shortened to my liking, and I pulled some utilities from Tailwind for animations. In terms of images, I updated the images of the app featured on the website and cleaned up some of the dimensions related to that CSS. The old homepage still lives inside OldHome() but isn’t used anymore. 15. Tidying up the README and build workflows I edited the README to remove redundant information and make it more developer-focused. I also updated some information regarding GPU builds. For the build workflow, I ensured it would only run if the commit ended in “rebuild”. This ensures unnecessary build minutes are not spent on small changes not requiring a full rebuild. 16. Wake lock API fallback This app aims to support all devices, but older devices have…funny APIs to say the least. For WebRTC, I implemented the legacy encoded streams API. However, the device would still turn off for seemingly no reason while the video was playing. On older devices, the wake lock API is not supported. However, there’s a unique workaround for this: any video element playing on the webpage will keep the screen from dimming. Hence, I used the NoSleep library to create an off-screen 1-second video element that keeps looping, ensuring the display doesn’t go dark. Some very fun stuff with browsers. That’s it for this devlog! Mostly minor changes, but the next one will have better SW encoding support among other changes. Stay tuned…
I had so much fun at the conference in San Francisco! I met a lot of cool people who gave me advice on the app, although I didn’t see the downloads spike 😭. I primarily began working on a SW encoder and other miscellaneous changes: 17. Remote control toggle Sometimes, the user doesn’t want a client to have remote control access. Although the purpose of the app is to have remote control, it is useful to disable this feature. On the frontend, I added a toggle switch that enables or disables the remote control backend. I was debating whether WebRTC negotiation was required as well, but decided to do so in the end. The remote control used data channels, so an unused data channel would result in slightly lower latency. Renegotiation ensured the stream stayed as efficient as possible without sending redundant data. 18. Update checking In order for current users to access newer versions, I wanted to add an update functionality. I’m not using Tauri’s update plugin just yet, so I run a simple check. The app, on startup, checks the latest release tag on GitHub. If it’s not equal to the current version (rollback or higher version), the user is prompted to download the newer version. Automatic updates will come next. 19. The big boy: software encoding This one’s been a long time coming. A lot of machines like VMs or computers with a weird setup just don’t have a working hardware encoder (Intel/AMD/Nvidia), and until now that meant the app straight up didn’t work there. So I built a full CPU-only x264 fallback. For the pipeline, the frames come as raw BGRA bytes that the other supporters already encoded. They must be converted to I420 before going to libx264, whose build I pulled from OBS. As a side note, the DLL is bundled with the app at runtime to ensure no missing dependencies. As with any encoder, the rate control is ABR with a tight VBV, as well as an infinite GOP. Besides the technical jargon, this just means latency is the north star and nothing else matters. The whole software variant is added to the encoder vendor enum, and wired into the fallback chain: if NVENC fails, try Intel; if Intel fails, fall back to software before giving up entirely. There’s also a manual override if someone really prefers software encoding, but this is not the default. There’s a big CPU cost compared to hardware encoding, so it’s very much a last resort and only kicks in if absolutely no GPU encoders are available. But “last resort that works” beats “doesn’t work at all.” That’s it for this week! I plan to have some smaller quality-of-life changes and better updates coming soon…
Oh my lord…I crammed a lot of features into this week. I have yet to do proper audits of the codebase as a whole, specifically related to latency optimizations. I added a lot more code that affects the WebRTC pipeline, but I at least got the core features working. 20. Automatic updates For a while, the app relied on manual updating. It would check the latest version on Github, but users would have to go to the website, download the installer, uninstall the current version, and reinstall the newer version. This also messed up config and was a huge pain. Hence, I generated my own signing keys and used the Tauri updater plugin to automatically update apps. When the app is first launched and if an update is available, it automatically downloads and installs it without any user action. To make this more robust, I added a progress bar while downloading the update. On Windows specifically, the app must be shut down and restarted, so a blocking modal prevents devices from joining till this is done. I originally made this modal manually, but switched to using AlertDialog from ShadCN. Another issue I faced was the latest.json manifest. As I used custom filenames when downloading and installing updates, I had to manually patch the JSON. I learned a lot about the Tauri updater Github action through this, as I had to figure out how Tauri generated build filenames and how I could safely update them. 21. Quality of life for client devices I finished QOL fixes on the client side: Remember past devices to quickly import preferences or ban devices (all config saving is IP-based) Warn if the user is attempting to connect from the same device (this app is a remote control tool, but you can’t exactly remote control yourself) If the screen orientation changes, the virtual display is updated accordingly using CSS media queries to ensure a seamless experience A no fullscreen mode was added so users could quickly switch apps and maintain productivity 22. Quality of life for host devices I converted all in-app modals and error messages to JSON. This allowed me to add i18n language support, so I could easily translate my app to other languages. To detect and ensure only a single instance of the app was running, I previously used a file lock. However, there was an issue with MSI builds falsely detecting a file lock and not opening. I switched to a basic TCP model for IPC so that multiple processes running can figure out which was there first and shut down the others. 23. More more more Mac features! I’ve always felt a bit sad for my Mac users. I don’t have a Mac to test on, so I keep borrowing my dad’s Mac, which results in insanely slow development times. Nevertheless, I made some serious progress this week. The biggest thing was a simpler installation process. Many users would complain that they didn’t remember if they’re on Intel or Apple Silicon, so I now distribute a universal DMG. In terms of the app itself, I added a permissions check for screen recording and input injection. It would run a live test of screen capture or key input to see if the app actually had permissions; therefore, down the road it wouldn’t cause issues. I initially tried to do a soft check without an actual test (i.e., read the settings app), but this didn’t work. The only foolproof way was to call the API itself. The biggest feature by far was adding Mac input injection. Using accessibility APIs and a charmap similar to Windows, it would inject input onto the Mac screen. I could remotely log in from my Chromebook and get a lot of work done. I mirrored the structure and code on the Windows input injection pipeline, so no major difficulties here. That’s it for this week! Lotta stuff added, especially for the Mac users. I have a long list of features to continue building, specifically regarding easier Windows uninstall processes, onboarding, and an overall better UX. See you soon!
I speedran shipping a buncha features…in the span of a few days. I logged a copious amount of hours on Hackatime building random stuff. I tried some things with recording system audio and building a driver…those didn’t go the best, but I’ll cover that in the next devlog. Here are the main changes this week: 24. Even more quality of life changes Compared to last time, I wanted the user experience to improve even more. Specifically, for the Windows client, a custom display driver is required. On Macs, the functionality I need is built in, so none is required. However, uninstalling this display driver used to be a pain for users. Now, I bundled it as part of the uninstall script. I wasn’t sure how to do this, but Tauri has many useful guides and issues opened regarding custom WiX/NSIS code. When the window isn’t focused, join and leave notifications are toasted. This allows the user to stay informed even when the app isn’t open. Basic feature but very useful. I’d often get annoyed that I needed to keep re-entering the password to log in to a previously connected device. Hence, I added auto-join for devices based on their IP. This ensures that commonly connected devices can save time when reconnecting. 25. Onboarding screens The app is intuitive to use…or so I thought? Some of my beta testers were confused as to the various features and how to use the interface. Hence, I used NextStepjs to add onboarding components. This would dim the UI and only highlight the component being displayed, along with a message next to it. I liked the styles of NextStepjs a lot, so I chose it. There were some issues regarding window resize, so I made the onboarding exit and reopen to the last step when the window is resized. This way, the positioning of elements was forcefully recalculated. 26. Random security fixes My app had various vulnerabilities scattered throughout, so I ran a vulnerability Claude skill and patched some holes. The main issues fixed were: Checksums of bundled DLLs and resources are checked before being pushed to GitHub Actions Tauri CSP and allow list are actually enforced instead of being set to allow all TLS cert used for hosting the HTTPS domain has more secure file system permissions to reduce unwanted tampering of files Devices are trusted by a uniquely generated token, not by IP, to decrease the chance of impersonators 27. Command-line interface A majority of the time on this devlog was spent on the CLI. It wasn’t that hard (from a technical perspective), mainly just translating a lot of the UI code into Tauri CLI commands and mapping them correctly in the generated JSON file. One of the harder things to figure out was setting up cross-thread AppState, when the app wasn’t exactly running…turned out I just had to move the initialization command to before the window is created, so it would run inside both CLI and GUI modes. To present the QR codes better. I used qr2term to display the QR codes. By default, all logging is hidden. This turns ScreenExtend into a clean CLI mimicking the GUI. Hoorah! That’s it for this devlog. Not much to conclude, but plenty more features coming. Stay tuned!
Oh my lord, I keep forgetting to write devlogs every 10 hours and am losing hours on each one. Nevertheless, I finally finished audio work! Plus some other things like running claude security agents on the code base and patching stupid vulnerabilities. Here’s how the week went: 28. HiDPI and Mac Issues Whenever I use my Mac with ScreenExtend, the stream looks blurry due to Macs having HiDPI screens. I fixed this by adding basic HiDPI scaling on Windows. The UI has a DPR slider based on autodetected values. This DPR is multiplied by the screen resolution for a shaper display. One issue that arose with the new displays was the fact that the display would randomly not scale properly, so the task bar and apps would appear tiny. To mitigate this, I reapplied all display settings after resolution changes and a timeout. 29. AUDIO WORKS!!!! For the longest time, I tried getting audio to work. On Windows, the process was straightforward: a WASAPI loopback system audio capture session. I wanted to build my own custom driver to capture audio faster, but this would be too expensive to deploy. I read other Rust implementations and quickly wrote the code. On the other hand, Mac was a whole different issue. On older versions of Mac, system audio recording is not supported. Hence, for Macs below 13.0, I wrote a custom audio driver. I didn’t have a clue about implementing an AudioServerPlugIn on Mac, but worked out the specifics by looking at the Blackhole audio driver. I did have to proxy physical volume buttons to work (i.e. I listen for taps and change the audio level within the driver). For older Macs, I used ScreenCaptureKit with an extra audio flag. This was a simple fix to capture audio. On even newer Macs, there’s a Process Tap API to record system audio with low latency. Once again, I didn’t have much difficulties implementing these due to the abundance of documentation. 30. Streaming Audio over WebRTC (with A/V sync) When sending video and audio separately, the two are prone to fall out of sync, so watching movies or videos is difficult. To mitigate these issues, I wrote an A/V sync host clock. This packages the time on the host clock to audio samples and video frames, such that they can be reconstructed and coupled on the receiving end. On the browser side, I began by implementing a basic audio streamer with an audio element. However, similar to video, there’s always a faster method possible. I used the AudioDecoder class from WebCodecs to implement a worklet class and jitterbuffer. In simple terms, this would decode audio on a separate thread, like WebCodecs prefers, and send the audio back to be played to the user. 31. Windows Video Encoding Speedups I made a few encoding speedups on Windows targets: The NVENC capture encode system uses a texture ring implementation: a pool of 3-5 encoder instances paired with a frame queue, allowing multiple frames to be encoded concurrently BGRA encoding is done directly in the library instead of using a third-party implementation Unchanged frames in DXGI capture are not encoded again, reducing CPU load 32. Mac Video Encoding Speedups I made a few encoding speedups on Mac targets: Request LatencyCritical activity for the session to ensure App Nap and other sleep measures don’t affect the thread Analogous to DXGI, skip encoding when CGDisplayStream reports no dirty rects Not an encoding speedup, but preferring 5 GHz for Mac hosted networks to ensure higher speeds Lotta stuff done this week, am I right? I made lots of progress and finished the bulk of my features, although Linux support is still in the works. I’ll make the 1.0.0 release soon and start a Stardance ship as well. I’ll likely add Linux support after 1.0.0, as I need to research EVDI and the WSL display compositor, as well as other minor tweaks for Windows/Mac. See y’all in the next devlog!
One step closer to finally shipping…or so I hope. I speedran shipping this next feature, so it took a lot of time. This feature is mainly for myself. I have an old Mac (running 10.13 from 2017, really old I get itttt). I want my app to run on there, but it currently only supports 10.15+. Hence, I went down a funny rabbit hole in an attempt to add support. 33. Cleaning up dylib signature lookups at run time One of the key challenges I faced throughout development was how to have a unified codebase for multiple API versions. I decided that instead of version-gating APIs and guessing which beta/normal versions they would be accessible on, I’d test for APIs at run time. I changed VideoToolbox to use this logic: it would attempt to set/use APIs and variables available at higher runtimes, but would work fine without them and have fallbacks. This ensured both legacy and modern systems functioned well. 34. Airplay automations…? As I was doing competitor research, I noticed many of the other apps supported Mac 10.13-10.15 as well as 10.15+, while mainly only supported 10.15+. Essentially, they started a fake Airplay server, had the Mac connect it, and set the display mode to “Use as separate display”. This would create a virtual display that the app would then use for its own functions. As ScreenExtend requires its own display on older machines, similar to this, where CGVirtualDisplay isn’t an option, I decided to use this method. I had my app automate opening the Airplay menu and connecting as well, in addition to running the fake server. Most of the process was straightforward, especially due to the abundance of fake Airplay server implementations online and my own experience with apps like LonelyScreen. The one issue of this approach is that only one display can be connected at a time, so any tertiary devices wanting to connect have to wait their turn. I guess the only option is to by a new mac then… 35. Client UI update cleanliness fixes Due to the one device restriction, I implemented a separate page that would be served if the display slot was being used up. It would be coupled with a short message explaining the consequences of the older Mac version. There were also bugs related to session teardown (keyboard still being locked, video stream still active in the background, etc) that I quickly squashed after finding them. Soooo in hindsight, I prolly should’ve bumped this up to 0.6.0, but I left it at 0.5.4. Oh well, I’ll increment the version by next release. Only a few more features to go on the feature list before hitting v1 and shipping!!!
Ships:
Initial release for ScreenExtend! Please give feedback and read the initial devlog (shorter one here, longer one at https://github.com/ScreenExtend/ScreenExtend/blob/main/DEVLOG.md ) for detailed information....
|
1793127274.2323256
|
1793213674.2323256
|
|
50475
|
AeroBoard by @zubair | Stardance
|
zubair
|
1
|
12.4
|
158
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-25T16:34:17Z", "hours": 12.0, "multiplier": 12.81, "payout": 158, "blessing": "neutral", "text": "I made an OpenCV based, finger tracking digital whiteboard.", "repo": "https://github.com/skzubairahmed/aeroboard", "demo": "https://github.com/skzubairahmed/aeroboard/releases/tag/v0.1-alpha"}]...
|
[{"post_id": 55207, "ts": "202 [{"post_id": 55207, "ts": "2026-08-26T19:14:11Z", "hours": 0.4033, "text": "Converted the application to a windows application(.exe) using pyinstaller. Changelog e16d378 6ab1958 8e565aa b6590c9"}, {"post_id": 53927, "ts": "2026-08-24T17:03:47Z", "hours": 1.1917, "text": "FINISHED!! Firstly here’s what i used: tracking - mediapipe(through cvzone) gestures - own class drawing - using cv2.line MORE DEATILS IN THE README"}, {"post_id": 53320, "ts": "2026-08-23T19:54:24Z", "hours": 3.5608, "text": "BIG UPDATES!! Added a color menu for selecting between Red, Green and Blue and a button to clear the screen. I made my own AirButtons class for the buttons. Next Up: Using dqeues to draw. Changelog 96c0761 84f8bd5 Changelog f1ba61e 96c0761 84f8bd5"}, {"post_id": 52561, "ts": "2026-08-22T18:54:00Z", "hours": 2.6561, "text": "ADDED TRACKING AND FILTERING So I added the finger tracking using mediapipe(through cvzone) and also added a Kalman filter to remove micro jitters in the finger tracking. Changelog f07975c a14c5f1"}, {"post_id": 51896, "ts": "2026-08-21T19:56:07Z", "hours": 1.8303, "text": "I tested a freeze and restart feature where the webcam can be freezed if its unplugged mid-use and then the program restarts if any other video in is plugged in/available (I have not added it to the main class, just tested it on a test file, will add it to the main file tomorrow :> ) Changelog aa8d61f Changelog aa8d61f"}, {"post_id": 49189, "ts": "2026-08-17T20:35:25Z", "hours": 0.7961, "text": "Tried adding hand processing. I tried to add hand processing using mediapipe but ran into a version conflict, its late tonight so I’ll fix it tomorrow. Changelog 40768b3 f353b08"}, {"post_id": 49124, "ts": "2026-08-17T19:16:26Z", "hours": 2.3122, "text": "Made the basic functions for getting frames and showing the original video feed"}]...
|
Title: AeroBoard by @zubair | Stardance
Devlogs:
Title: AeroBoard by @zubair | Stardance
Devlogs:
Made the basic functions for getting frames and showing the original video feed
Tried adding hand processing. I tried to add hand processing using mediapipe but ran into a version conflict, its late tonight so I’ll fix it tomorrow. Changelog 40768b3 f353b08
I tested a freeze and restart feature where the webcam can be freezed if its unplugged mid-use and then the program restarts if any other video in is plugged in/available (I have not added it to the main class, just tested it on a test file, will add it to the main file tomorrow :> ) Changelog aa8d61f Changelog aa8d61f
ADDED TRACKING AND FILTERING So I added the finger tracking using mediapipe(through cvzone) and also added a Kalman filter to remove micro jitters in the finger tracking. Changelog f07975c a14c5f1
BIG UPDATES!! Added a color menu for selecting between Red, Green and Blue and a button to clear the screen. I made my own AirButtons class for the buttons. Next Up: Using dqeues to draw. Changelog 96c0761 84f8bd5 Changelog f1ba61e 96c0761 84f8bd5
FINISHED!! Firstly here’s what i used: tracking - mediapipe(through cvzone) gestures - own class drawing - using cv2.line MORE DEATILS IN THE README
Converted the application to a windows application(.exe) using pyinstaller. Changelog e16d378 6ab1958 8e565aa b6590c9
Ships:
I made an OpenCV based, finger tracking digital whiteboard....
|
1792997635.3454945
|
1793084035.3454945
|
|
17294
|
traewelltui by @Tuxilio | Stardance
|
Tuxilio
|
2
|
15.45
|
157
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-10T09:44:26Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made traewelltui, which is a TUI (terminal ui) client for Traewelling, a free public transport checkin service to record your travels and share it with your friends. It was a bit difficult to get into, because I never used Ratatui before. I have rewritten the dashboard multiple times and I am now somthing happy with it :) If you test the project, you should know that it uses vim keybinds: Use :q to quit. New Fetures are that you can paste the token now directly from your clipboard, you can like checkins interactively using a popup select and using an index, and a bugfix that the dashboard isn’t loading! (some licensing things: The background image in my terminal which is only partially visible is the KDE Plasma workspace wallpaper “Scarlet tree” made by axo1otl [email protected] and licensed CC-BY-SA 4.0. Repo: https://invent.kde.org/plasma/plasma-workspace-wallpapers/-/tree/master/ScarletTree My screenshot is licensed CC-BY-SA 4.0)", "repo": "https://codeberg.org/Tuxilio/traewelltui/", "demo": "https://crates.io/crates/traewelltui"}, {"ship_num": 2, "ts": "2026-06-17T19:45:08Z", "hours": 10.0, "multiplier": 15.88, "payout": 157, "blessing": "neutral", "text": "I made traewelltui, which is a TUI (terminal ui) client for Traewelling, a free public transport checkin service to record your travels and share it with your friends. It was a bit difficult to get into, because I never used Ratatui before. I have rewritten the dashboard multiple times and I am now somthing happy with it :) If you test the project, you should know that it uses vim keybinds: Use :q to quit. Pasting the token could take some seconds, this is not because something bad implemented but instead the token is really long and each character gets inserted sepeartely by ratatui.", "repo": "https://codeberg.org/Tuxilio/traewelltui/", "demo": "https://crates.io/crates/traewelltui"}]...
|
[{"post_id": 77504, "ts": "202 [{"post_id": 77504, "ts": "2026-10-07T08:24:45Z", "hours": 0.4453, "text": "I fixed one bug where the travel mode is not added in the enum so I added a default field “Other” to show this instead of crashing the app. I also added a bit more docs where to get the token :)"}, {"post_id": 65276, "ts": "2026-09-10T08:50:49Z", "hours": 1.4053, "text": "I fixed the error reported by @pauljako that the login is not working anymore which is likely caused because of recent api changed by traewelling. The travel mode (bus, train …) and the source/license of the checkin are now not always included so I set them to optional. It was really difficult to debug because I couldn’t get serde to show the full problem … but it worked after some tries 🎉 (some licensing things: The background image in my terminal is the KDE Plasma workspace wallpaper “Scarlet tree” made by axo1otl [email protected] and licensed CC-BY-SA 4.0. Repo: https://invent.kde.org/plasma/plasma-workspace-wallpapers/-/tree/master/ScarletTree My screenshot is licensed CC-BY-SA 4.0)"}, {"post_id": 25237, "ts": "2026-07-09T11:21:45Z", "hours": 0.8522, "text": "You can now type :like without arguments and find a popup to select which checkin you want to like!"}, {"post_id": 24735, "ts": "2026-07-08T14:43:20Z", "hours": 0.3311, "text": "The message is now shown in a popup instead the bottom line, which looks much nicer :)"}, {"post_id": 24716, "ts": "2026-07-08T14:15:47Z", "hours": 1.3469, "text": "I added a :like command! You can now like checkins using :like <index> , where you can find the index beside the username in the checkin header!"}, {"post_id": 24665, "ts": "2026-07-08T12:15:55Z", "hours": 1.3956, "text": "I added an option to get the token from your clipboard instead of only relying only on pasting, because that pasted every single character and took some time :)"}, {"post_id": 10836, "ts": "2026-06-17T19:37:51Z", "hours": 1.1611, "text": "I added a lot documentation and an asciinema video: https://asciinema.org/a/BytB6HM8kpoXtlLC"}, {"post_id": 10736, "ts": "2026-06-17T16:56:50Z", "hours": 0.7561, "text": "There is now an option to save the api token and auto-login with it! The login prompt also shows now automatically when you’re not logged in, making it easier to get a start :) The token save prompt only shows after a successful use of the token, so you can’t really save a wrong token."}, {"post_id": 10712, "ts": "2026-06-17T16:01:24Z", "hours": 1.1061, "text": "I completely redesigned the dashboard! It now looks more like “normal” Traewelling clients and in my opinion much nicer :)"}, {"post_id": 10597, "ts": "2026-06-17T12:50:29Z", "hours": 0.6261, "text": "I added symbols for the travelling mode (e.g. suburban, regional rail, tram bus) and you can now also see the status message another one has posted together with the checkin!"}, {"post_id": 10581, "ts": "2026-06-17T11:59:07Z", "hours": 4.3208, "text": "I just finished a big feature in my project! The login now works perfectly, and after successfully logging in, you’ll see your dashboard displaying check-ins from people you follow (plus your own, of course). The dashboard isn’t complete yet - I plan to add status messages and a progress bar showing if someone is currently traveling."}, {"post_id": 9336, "ts": "2026-06-15T17:42:53Z", "hours": 1.9603, "text": "I’m building a terminal user interface for Traewelling ( https://traewelling.de/ ) using Ratatui in Rust, with Vim-style keybindings (: for command mode, q to quit, :login for token-based authentication). The basic UI is working well with a header, dashboard body, and mode-specific footer, but still needs polish before the next iteration."}]...
|
Title: traewelltui by @Tuxilio | Stardance
Devlog Title: traewelltui by @Tuxilio | Stardance
Devlogs:
I’m building a terminal user interface for Traewelling ( https://traewelling.de/ ) using Ratatui in Rust, with Vim-style keybindings (: for command mode, q to quit, :login for token-based authentication). The basic UI is working well with a header, dashboard body, and mode-specific footer, but still needs polish before the next iteration.
I just finished a big feature in my project! The login now works perfectly, and after successfully logging in, you’ll see your dashboard displaying check-ins from people you follow (plus your own, of course). The dashboard isn’t complete yet - I plan to add status messages and a progress bar showing if someone is currently traveling.
I added symbols for the travelling mode (e.g. suburban, regional rail, tram bus) and you can now also see the status message another one has posted together with the checkin!
I completely redesigned the dashboard! It now looks more like “normal” Traewelling clients and in my opinion much nicer :)
There is now an option to save the api token and auto-login with it! The login prompt also shows now automatically when you’re not logged in, making it easier to get a start :) The token save prompt only shows after a successful use of the token, so you can’t really save a wrong token.
I added a lot documentation and an asciinema video: https://asciinema.org/a/BytB6HM8kpoXtlLC
I added an option to get the token from your clipboard instead of only relying only on pasting, because that pasted every single character and took some time :)
I added a :like command! You can now like checkins using :like <index> , where you can find the index beside the username in the checkin header!
The message is now shown in a popup instead the bottom line, which looks much nicer :)
You can now type :like without arguments and find a popup to select which checkin you want to like!
I fixed the error reported by @pauljako that the login is not working anymore which is likely caused because of recent api changed by traewelling. The travel mode (bus, train …) and the source/license of the checkin are now not always included so I set them to optional. It was really difficult to debug because I couldn’t get serde to show the full problem … but it worked after some tries 🎉 (some licensing things: The background image in my terminal is the KDE Plasma workspace wallpaper “Scarlet tree” made by axo1otl [email protected] and licensed CC-BY-SA 4.0. Repo: https://invent.kde.org/plasma/plasma-workspace-wallpapers/-/tree/master/ScarletTree My screenshot is licensed CC-BY-SA 4.0)
I fixed one bug where the travel mode is not added in the enum so I added a default field “Other” to show this instead of crashing the app. I also added a bit more docs where to get the token :)
Ships:
I made traewelltui, which is a TUI (terminal ui) client for Traewelling, a free public transport checkin service to record your travels and share it with your friends. It was a bit difficult to get into, because I never used Ratatui before. I have rewritten the dashboard multiple times and I am now somthing happy with it :) If you test the project, you should know that it uses vim keybinds: Use :q to quit. Pasting the token could take some seconds, this is not because something bad implemented but instead the token is really long and each character gets inserted sepeartely by ratatui.
I made traewelltui, which is a TUI (terminal ui) client for Traewelling, a free public transport checkin service to record your travels and share it with your friends. It was a bit difficult to get into, because I never used Ratatui before. I have rewritten the dashboard multiple times and I am now somthing happy with it :) If you test the project, you should know that it uses vim keybinds: Use :q to quit. New Fetures are that you can paste the token now directly from your clipboard, you can like checkins interactively using a popup select and using an index, and a bugfix that the dashboard isn’t loading! (some licensing things: The background image in my terminal which is only partially visible is the KDE Plasma workspace wallpaper “Scarlet tree” made by axo1otl [email protected] and licensed CC-BY-SA 4.0. Repo: https://invent.kde.org/plasma/plasma-workspace-wallpapers/-/tree/master/ScarletTree My screenshot is licensed CC-BY-SA 4.0)...
|
1793112768.423352
|
1793199168.423352
|
|
38768
|
Stardew calc by @hrushal | Stardance
|
hrushal
|
1
|
18.29
|
157
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T16:31:39Z", "hours": 18.0, "multiplier": 8.57, "payout": 157, "blessing": "neutral", "text": "Starcalc YES THIS IS ANOTHER STARDEW CALCULATOR The problem i wanted to solve w this was making important information thats slighly harder to find on the wiki and requires a lot of clicks like gold/day for each crop, which monster drops what and how to make some artisanal goods be shown upfront so instead of just going down rabbit holes of reddit and wiki i could just open the website and check what things i can do w a specific item and which equipment to use The website has 4 core functions rn which are Crops Monsters Artisanal goods Animals The information is laid in simple to read cards with a image and clear description and the important numbers are highlighted and to avoid clutter produce etc is grouped under a dropdown so you arent bombarded with information you dont need I had a lot of trouble w finalizing the design AND WORST OF ALL TSPARTICLES and then making card components for every page cuz the data is diff for everything and i decided individual components would speed it up", "repo": "https://github.com/Hrushal-Nikhare/star", "demo": "https://star-xi-seven.vercel.app/"}]...
|
[{"post_id": 72637, "ts": "202 [{"post_id": 72637, "ts": "2026-09-23T12:29:59Z", "hours": 0.2906, "text": "Fixed readme with images and website had no title 😭"}, {"post_id": 71390, "ts": "2026-09-20T18:52:44Z", "hours": 3.7192, "text": "WE ARE BACK W IT AND WE FINSIHED THE PROJECT ported the card component to every single sub page and made sure it works shifted sm styles into global.css removed the search route and slug to make it static render able also cuz i didnt find a use for it l8r DEPOLYED ON VERCEL https://star-xi-seven.vercel.app/ added back to home button and mobile compatibility THANK YOU EVERYONE"}, {"post_id": 70150, "ts": "2026-09-18T15:46:19Z", "hours": 1.6047, "text": "DONE W CARD COMPONENT THEY LOOK SO GOOD took 1.5hrs but it looks good atleast 😭"}, {"post_id": 69233, "ts": "2026-09-16T16:57:19Z", "hours": 3.8619, "text": "New homepage and then made a card component for showing the animals (for now) Learnt about how logic in svelte is done w {#} and {/} and then also components and nested objects were pmo i have to make the cards pretty and then if conditionals on prices and dropdown for the produce and tags and then layout too so thanks for reading"}, {"post_id": 60396, "ts": "2026-09-02T18:13:51Z", "hours": 3.5, "text": "NEW NOT SO PLAIN BACKDROP tldr: basically i gave up so i wanted the plans and the wine bottle to have this cute colored circles to ‘splash’ out when you click it But then i look for svelte particle libraries and its only tsparticles which is FINE BUT HOLY DEBUGGING so i went on a side quest to learn it DECENTLY and thats how we have a background ik its not fancy or anything or a lot of added code but the debugging uh let not also shifted to bun for everything and had some issues w vite asw also bun has great support for this stuff crazy"}, {"post_id": 40874, "ts": "2026-08-04T17:53:29Z", "hours": 2.5747, "text": "Redeigned the home page cuz it looked really boring and life less and nothing like stardew spent an hr making the ui and then aft clg started has a urge to redesign the ui so um here we are (feedback and logo help appreciated) Tried three diff styles to see which one i like some of them were: Notebook flipping ish Purple heatmap ahh Cool png animation stuff ( gave up before trying bc couldnt find assets) THE title above is currently in the works of making the A a Star cuz hehe stardew starcalc The Pngs will hopefully have a transition animation where the coffee plant sheds the berries and it swoops to the crops page animals has egg particles artisanal has a foam jet or smth and the slime for moster loses his color and becomes the resource now ill have to ditch all of my programming of the previous ui and start all over again but lowk worth it i need it to be pretty cuz i said so. added both old and new ui for yall to rate and tell pls help me i suck at ui"}, {"post_id": 36960, "ts": "2026-07-29T11:48:44Z", "hours": 3.1017, "text": "Season and Professions Mocked up in Figma purple color scheme Handmade font/icons 2.Chose svelte for no reason (other than to learn) 3. Made Gemni write a data.json to Prototype w (eventually will nosql/sqllite it) 4. Season Select using radios that look like buttons w functioning hover and select colors ( took alot of time and help NO AI THO ALL DOCS) 5. Profession Select drafted but need to Read and add the perks to the data/process in js"}]...
|
Title: Stardew calc by @hrushal | Stardance
Devlo Title: Stardew calc by @hrushal | Stardance
Devlogs:
Season and Professions Mocked up in Figma purple color scheme Handmade font/icons 2.Chose svelte for no reason (other than to learn) 3. Made Gemni write a data.json to Prototype w (eventually will nosql/sqllite it) 4. Season Select using radios that look like buttons w functioning hover and select colors ( took alot of time and help NO AI THO ALL DOCS) 5. Profession Select drafted but need to Read and add the perks to the data/process in js
Redeigned the home page cuz it looked really boring and life less and nothing like stardew spent an hr making the ui and then aft clg started has a urge to redesign the ui so um here we are (feedback and logo help appreciated) Tried three diff styles to see which one i like some of them were: Notebook flipping ish Purple heatmap ahh Cool png animation stuff ( gave up before trying bc couldnt find assets) THE title above is currently in the works of making the A a Star cuz hehe stardew starcalc The Pngs will hopefully have a transition animation where the coffee plant sheds the berries and it swoops to the crops page animals has egg particles artisanal has a foam jet or smth and the slime for moster loses his color and becomes the resource now ill have to ditch all of my programming of the previous ui and start all over again but lowk worth it i need it to be pretty cuz i said so. added both old and new ui for yall to rate and tell pls help me i suck at ui
NEW NOT SO PLAIN BACKDROP tldr: basically i gave up so i wanted the plans and the wine bottle to have this cute colored circles to ‘splash’ out when you click it But then i look for svelte particle libraries and its only tsparticles which is FINE BUT HOLY DEBUGGING so i went on a side quest to learn it DECENTLY and thats how we have a background ik its not fancy or anything or a lot of added code but the debugging uh let not also shifted to bun for everything and had some issues w vite asw also bun has great support for this stuff crazy
New homepage and then made a card component for showing the animals (for now) Learnt about how logic in svelte is done w {#} and {/} and then also components and nested objects were pmo i have to make the cards pretty and then if conditionals on prices and dropdown for the produce and tags and then layout too so thanks for reading
DONE W CARD COMPONENT THEY LOOK SO GOOD took 1.5hrs but it looks good atleast 😭
WE ARE BACK W IT AND WE FINSIHED THE PROJECT ported the card component to every single sub page and made sure it works shifted sm styles into global.css removed the search route and slug to make it static render able also cuz i didnt find a use for it l8r DEPOLYED ON VERCEL https://star-xi-seven.vercel.app/ added back to home button and mobile compatibility THANK YOU EVERYONE
Fixed readme with images and website had no title 😭
Ships:
Starcalc YES THIS IS ANOTHER STARDEW CALCULATOR The problem i wanted to solve w this was making important information thats slighly harder to find on the wiki and requires a lot of clicks like gold/day for each crop, which monster drops what and how to make some artisanal goods be shown upfront so instead of just going down rabbit holes of reddit and wiki i could just open the website and check what things i can do w a specific item and which equipment to use The website has 4 core functions rn which are Crops Monsters Artisanal goods Animals The information is laid in simple to read cards with a image and clear description and the important numbers are highlighted and to avoid clutter produce etc is grouped under a dropdown so you arent bombarded with information you dont need I had a lot of trouble w finalizing the design AND WORST OF ALL TSPARTICLES and then making card components for every page cuz the data is diff for everything and i decided individual components would speed it up...
|
1793004998.4800441
|
1793091398.4800441
|
|
67934
|
Pip The Mouse: Desktop Edition by @j4y_boi | Stard Pip The Mouse: Desktop Edition by @j4y_boi | Stardance...
|
j4y_boi
|
1
|
14.0
|
157
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-11T18:23:54Z", "hours": 14.0, "multiplier": 10.93, "payout": 157, "blessing": "neutral", "text": "I made Pip the Mouse as a Desktop pet! Pip the Mouse was originally one of my first game projects ever, and to celebrate it’s one year anniversary (and to participate in this challange) I turned him into a pet that wanders around on your desktop! You can feed him, play with him and throw him around! You can download him from the itch.io page: https://j4y-boi.itch.io/pip-the-mouse-desktop-edition (Link to message in #playground-ships: https://hackclub.slack.com/archives/C0C51NCK1DG/p1791742520319769 )", "repo": "https://github.com/j4y-boi/pip-the-mouse-desktop-pet/", "demo": "https://j4y-boi.itch.io/pip-the-mouse-desktop-edition"}]...
|
[{"post_id": 78822, "ts": "202 [{"post_id": 78822, "ts": "2026-10-11T18:08:37Z", "hours": 1.5486, "text": "What did I do? I made an itch.io page: https://j4y-boi.itch.io/pip-the-mouse-desktop-edition I made a trailer! (I had to compress the video to upload it here, it may have better quality on Youtube): https://www.youtube.com/watch?v=o3zFl_8S51Q What remains? Nothing, I’m shipping soon!"}, {"post_id": 78478, "ts": "2026-10-10T22:11:04Z", "hours": 3.6553, "text": "What did I do? Fixed a lot of physics related bugs (and probably also created a ton, but I don’t have the willpower to search for them) Pip turns a bit during dragging (such dramatic change) What remains? The itch.io page"}, {"post_id": 77947, "ts": "2026-10-08T22:21:28Z", "hours": 1.9022, "text": "What did I do? Improve Stats/Settings menu further Fixed misc. bugs related to food physics Added smoke to the items that dissapear from the clear button What remains? Fixing Pip’s physics bugs"}, {"post_id": 77700, "ts": "2026-10-07T23:44:59Z", "hours": 1.5503, "text": "What did I do? Added saving Updated Stats menu a bit Added clear button (not visible in screenshot) What remains? Fixing collision detection when somethings on top of Pip Particles General QOL and UX improvements"}, {"post_id": 77424, "ts": "2026-10-06T22:41:42Z", "hours": 0.9092, "text": "What did I do? Fixed Pip being an immovable object Added play and feed features Added extra animations What remains? Save files Clear screen button (to remove excess food and ball)"}, {"post_id": 77164, "ts": "2026-10-05T20:58:30Z", "hours": 1.7386, "text": "What did I do? GUI can now be enabled without game being active window Clickthrough What remains? Pip actually eating the food and interacting with the ball Save files extra idle animations fixing pip being immovable object"}, {"post_id": 76873, "ts": "2026-10-04T21:51:47Z", "hours": 0.275, "text": "What did I do? fixed some misc bugs related to dragging food around What remains? Check last devlog"}, {"post_id": 76858, "ts": "2026-10-04T20:49:58Z", "hours": 2.7461, "text": "What did I do? First gameplay elements implemented art added GUI largely functional What remains? Pip actually eating the food Play feature Save files Clickthrough (The game is currently running as a fullscreen application)"}]...
|
Title: Pip The Mouse: Desktop Edition by @j4y_boi Title: Pip The Mouse: Desktop Edition by @j4y_boi | Stardance
Devlogs:
What did I do? First gameplay elements implemented art added GUI largely functional What remains? Pip actually eating the food Play feature Save files Clickthrough (The game is currently running as a fullscreen application)
What did I do? fixed some misc bugs related to dragging food around What remains? Check last devlog
What did I do? GUI can now be enabled without game being active window Clickthrough What remains? Pip actually eating the food and interacting with the ball Save files extra idle animations fixing pip being immovable object
What did I do? Fixed Pip being an immovable object Added play and feed features Added extra animations What remains? Save files Clear screen button (to remove excess food and ball)
What did I do? Added saving Updated Stats menu a bit Added clear button (not visible in screenshot) What remains? Fixing collision detection when somethings on top of Pip Particles General QOL and UX improvements
What did I do? Improve Stats/Settings menu further Fixed misc. bugs related to food physics Added smoke to the items that dissapear from the clear button What remains? Fixing Pip’s physics bugs
What did I do? Fixed a lot of physics related bugs (and probably also created a ton, but I don’t have the willpower to search for them) Pip turns a bit during dragging (such dramatic change) What remains? The itch.io page
What did I do? I made an itch.io page: https://j4y-boi.itch.io/pip-the-mouse-desktop-edition I made a trailer! (I had to compress the video to upload it here, it may have better quality on Youtube): https://www.youtube.com/watch?v=o3zFl_8S51Q What remains? Nothing, I’m shipping soon!
Ships:
I made Pip the Mouse as a Desktop pet! Pip the Mouse was originally one of my first game projects ever, and to celebrate it’s one year anniversary (and to participate in this challange) I turned him into a pet that wanders around on your desktop! You can feed him, play with him and throw him around! You can download him from the itch.io page: https://j4y-boi.itch.io/pip-the-mouse-desktop-edition (Link to message in #playground-ships: https://hackclub.slack.com/archives/C0C51NCK1DG/p1791742520319769 )...
|
1793062291.0277936
|
1793148691.0277936
|
|
13625
|
OmarOS by @Omar4lifex | Stardance
|
Omar4lifex
|
4
|
20.0
|
156
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T16:58:59Z", "hours": 9.0, "multiplier": 10.62, "payout": 108, "blessing": "neutral", "text": "Massive update for OmarOS! I completely overhauled the UI across all mini-apps with modern rounded edges, crisp window icons, and smooth fullscreen + minimize button animations so windows glide fluidly instead of just snapping. I also added a “Save as PNG” export button to the pixel art app so you can download drawings straight to your device, built a custom wallpaper upload feature using FileReader and localStorage so your background sticks around across page reloads, added a full File Explorer mini-app to browse through “My Projects”, and coded a brand-new Decision Wheel random decision maker app with custom option tags and an animated spinning loop. (Took a ton of debugging to get the layouts and animations behaving properly, but it looks so clean now!) P.S: for the video test, see my latest devlog or try it out here: https://omar-web-os.vercel.app/", "repo": "https://github.com/Omar4life/OmarOS", "demo": "https://omar-web-os.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-02T15:04:16Z", "hours": 3.0, "multiplier": 14.71, "payout": 38, "blessing": "neutral", "text": "I added a new terminal app which has 9 commands (use -help to see them), this took me pretty long cuz I ran into a lot of errors, also changed the background cuz it looks better like this Ship 3: I added a new terminal app which has 9 commands (use -help to see them) and also changed the background", "repo": "https://github.com/Omar4life/OmarOS", "demo": "https://omar-web-os.vercel.app/"}, {"ship_num": 3, "ts": "2026-06-18T10:02:08Z", "hours": 4.0, "multiplier": 2.98, "payout": 10, "blessing": "neutral", "text": "This is version 2 of my OS: New features: Pixel art mini-app What it includes: Color picker, canvas, eraser, clear whole canvas, save your projects + access them", "repo": "https://github.com/Omar4life/OmarOS", "demo": "https://omar-web-os.vercel.app/"}, {"ship_num": 4, "ts": "2026-06-13T19:37:02Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is the first version of my OmarOS which includes these features Updating timer + date My social links Draggable window + close and open tab It was built using HTML/CSS and Javascript", "repo": "https://github.com/Omar4life/OmarOS", "demo": "https://omar-web-os.vercel.app/"}]...
|
[{"post_id": 48309, "ts": "202 [{"post_id": 48309, "ts": "2026-08-16T16:52:05Z", "hours": 8.5175, "text": "Massive update for OmarOS! I completely overhauled the UI across all mini-apps with modern rounded edges, crisp window icons, and smooth fullscreen + minimize button animations so windows glide fluidly instead of just snapping. I also added a “Save as PNG” export button to the pixel art app so you can download drawings straight to your device, built a custom wallpaper upload feature using FileReader and localStorage so your background sticks around across page reloads, added a full File Explorer mini-app to browse through “My Projects”, and coded a brand-new Decision Wheel random decision maker app with custom option tags and an animated spinning loop. (Took a ton of debugging to get the layouts and animations behaving properly, but it looks so clean now!)"}, {"post_id": 14321, "ts": "2026-06-23T12:31:19Z", "hours": 2.57, "text": "I added a new terminal app which has 9 commands (use -help to see them), this took me pretty long cuz I ran into a lot of errors, also changed the background cuz it looks better like this"}, {"post_id": 8887, "ts": "2026-06-14T20:01:10Z", "hours": 1.1519, "text": "I fixed the canvas grid cuz the lines were kinda rectangular and not square, I added a save button and a saved projects dropdown (using localStorage), also made the “clear canvas” text just “clear” because it was too long and went out of bounds (Spent some very long time to adjust the 4 buttons to be aligned like for example the whole pixel art tab was taking up the whole screen at one point just because I made the width from 540px to 600px, almost ragequit lol)"}, {"post_id": 8700, "ts": "2026-06-14T13:35:52Z", "hours": 0.9236, "text": "I am now about like 95% done with the pixel art, I added the canvas grid, clear canvas + eraser button, I’m just gonna fix a bit of spacing between the color picker, eraser and clear canvas and then we should be good for the pixel arts tab"}, {"post_id": 8419, "ts": "2026-06-14T00:08:40Z", "hours": 0.5981, "text": "I’m now working on a new mini-app which is gonna be a pixel art canvas, I currently just added the icon, changed the color and border type, gonna make the actual pixel canvas soon"}, {"post_id": 8369, "ts": "2026-06-13T22:19:49Z", "hours": 0.8744, "text": "I fixed the border because before that I could just drag the button out and I would need to refresh the page to move it, so now I added a border. I used the “moveElement” function to constantly check the window’s position against the screen’s size and lock it to the edges if it tries to slide out of bounds"}, {"post_id": 8049, "ts": "2026-06-13T12:57:36Z", "hours": 0.4614, "text": "I added a close button + a reopen button which is the OmarOS on the left hand side, I’m also gonna work soon on doing a barrier as for example if I drag the box to the bottom I gotta refresh the page to reset it as the button doesn’t work"}, {"post_id": 7752, "ts": "2026-06-12T23:02:42Z", "hours": 1.1736, "text": "I added a little bar on top where you can drag the page only in that bar, if you try to drag it from the middle or something it won’t work, I’m now working on the opening + closing tabs button"}, {"post_id": 6090, "ts": "2026-06-10T07:33:17Z", "hours": 0.6789, "text": "I’ve added a profile picture with a border around it, I also added a background, centered the border, and made sure that the background of the border is white so that it doesn’t fit with the background"}, {"post_id": 5920, "ts": "2026-06-09T22:00:17Z", "hours": 1.4347, "text": "I am trying to make my own WebOS, for now I’ve made just the base, I also added a pretty cool border and real time that updates every second, and last but not least, I added my github + linkedin account"}]...
|
Title: OmarOS by @Omar4lifex | Stardance
Devlogs: Title: OmarOS by @Omar4lifex | Stardance
Devlogs:
I am trying to make my own WebOS, for now I’ve made just the base, I also added a pretty cool border and real time that updates every second, and last but not least, I added my github + linkedin account
I’ve added a profile picture with a border around it, I also added a background, centered the border, and made sure that the background of the border is white so that it doesn’t fit with the background
I added a little bar on top where you can drag the page only in that bar, if you try to drag it from the middle or something it won’t work, I’m now working on the opening + closing tabs button
I added a close button + a reopen button which is the OmarOS on the left hand side, I’m also gonna work soon on doing a barrier as for example if I drag the box to the bottom I gotta refresh the page to reset it as the button doesn’t work
I fixed the border because before that I could just drag the button out and I would need to refresh the page to move it, so now I added a border. I used the “moveElement” function to constantly check the window’s position against the screen’s size and lock it to the edges if it tries to slide out of bounds
I’m now working on a new mini-app which is gonna be a pixel art canvas, I currently just added the icon, changed the color and border type, gonna make the actual pixel canvas soon
I am now about like 95% done with the pixel art, I added the canvas grid, clear canvas + eraser button, I’m just gonna fix a bit of spacing between the color picker, eraser and clear canvas and then we should be good for the pixel arts tab
I fixed the canvas grid cuz the lines were kinda rectangular and not square, I added a save button and a saved projects dropdown (using localStorage), also made the “clear canvas” text just “clear” because it was too long and went out of bounds (Spent some very long time to adjust the 4 buttons to be aligned like for example the whole pixel art tab was taking up the whole screen at one point just because I made the width from 540px to 600px, almost ragequit lol)
I added a new terminal app which has 9 commands (use -help to see them), this took me pretty long cuz I ran into a lot of errors, also changed the background cuz it looks better like this
Massive update for OmarOS! I completely overhauled the UI across all mini-apps with modern rounded edges, crisp window icons, and smooth fullscreen + minimize button animations so windows glide fluidly instead of just snapping. I also added a “Save as PNG” export button to the pixel art app so you can download drawings straight to your device, built a custom wallpaper upload feature using FileReader and localStorage so your background sticks around across page reloads, added a full File Explorer mini-app to browse through “My Projects”, and coded a brand-new Decision Wheel random decision maker app with custom option tags and an animated spinning loop. (Took a ton of debugging to get the layouts and animations behaving properly, but it looks so clean now!)
Ships:
This is the first version of my OmarOS which includes these features Updating timer + date My social links Draggable window + close and open tab It was built using HTML/CSS and Javascript
This is version 2 of my OS: New features: Pixel art mini-app What it includes: Color picker, canvas, eraser, clear whole canvas, save your projects + access them
I added a new terminal app which has 9 commands (use -help to see them), this took me pretty long cuz I ran into a lot of errors, also changed the background cuz it looks better like this Ship 3: I added a new terminal app which has 9 commands (use -help to see them) and also changed the background
Massive update for OmarOS! I completely overhauled the UI across all mini-apps with modern rounded edges, crisp window icons, and smooth fullscreen + minimize button animations so windows glide fluidly instead of just snapping. I also added a “Save as PNG” export button to the pixel art app so you can download drawings straight to your device, built a custom wallpaper upload feature using FileReader and localStorage so your background sticks around across page reloads, added a full File Explorer mini-app to browse through “My Projects”, and coded a brand-new Decision Wheel random decision maker app with custom option tags and an animated spinning loop. (Took a ton of debugging to get the layouts and animations behaving properly, but it looks so clean now!) P.S: for the video test, see my latest devlog or try it out here: https://omar-web-os.vercel.app/...
|
1792878665.395777
|
1793742665.395777
|
|
16100
|
Text Fill by @StarCoder | Stardance
|
StarCoder
|
1
|
9.0
|
156
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-29T04:35:47Z", "hours": 9.0, "multiplier": 17.96, "payout": 156, "blessing": "neutral", "text": "I made a project called TextFill. TextFill is a tool created in Python where users can create shortcuts that will automatically fill in with replacement text. For example, if a user creates a shortcut /email , and sets the replacement text to [email protected] , then whenever they type /email, it will automatically fill in as long as the app is running and replacing. There are two versions of the app. One is the UI version, that supports both Windows and Mac. The second is a menu bar version that only supports Mac. The UI version contains the base functionality of adding, removing, and clearing shortcuts, while also including modifying shortcuts and a settings page. The menubar version contains only the base functionality, as well as a button to show all shortcuts. The menu bar version is basically a streamlined version, for users who are on Mac, and don’t care too much about the settings. The menubar version is recommended for ease of use, as it lives on the Mac menubar, and won’t interfere with any work. You can also easily toggle the replacer on and off. This tool is best for people who type certain things repeatedly. For example, if a person has to fill in a sheet with either Accepted or Declined, then that person can easily create shortcuts like /a and /d, so it makes their job much easier. The main QoL improvements are Making repetitive tasks shorter and more efficient A settings panel where users can easily modify their preferences depending on their usual tasks An automatic save/load system that makes sure users never lose their shortcuts There were many challenges I faced while creating this project. I was still pretty new to Python when I started this project, and only knew basic things, like conditions or statements. Luckily, I’ve been coding in Unity (C#) for a long time, so it set a base that allowed me to learn the simple things like functions pretty easily. Many challenges I faced were with the UI, as in Unity, it is fairly easy to create basic UI without any code, but in Python, I had to use Tkinter for everything. It became even more difficult with making the menubar version, though I was able to figure them all out. I’m personally proud of the menu bar version, because I think it’s perfect for people who just want the main functionality, and don’t want to be bothered by a seperate window. To test my project, you can go to my GitHub release page which contains downloads for both versions. My README contains detailed instructions on how to download and run the app. (Below is a screenshot of my menu bar version) Thank you.", "repo": "https://github.com/StarCoder369/TextFill", "demo": "https://github.com/StarCoder369/TextFill/releases"}]...
|
[{"post_id": 18113, "ts": "202 [{"post_id": 18113, "ts": "2026-06-29T03:39:43Z", "hours": 3.1442, "text": "Text Fill Devlog 3 (Made in Python) It’s been more than a week since my last devlog. This is mostly because of me working on other projects, and also that there really wasn’t much to show. It was mostly just figuring out the syntax and bug fixing, so I decided to wait until I finished. This should be my last devlog before my ship, and I have added something which I think is a great improvement. Project Recap For those who don’t know my project, it’s called Text Fill, and it is a tool that I am making in Python, where you can define shortcuts and phrases, so when you type in the shortcut, it automatically replaces it with the phrase. For example, if you have set a shortcut to /email , and the phrase to [email protected] , when you type in /email anywhere with the program running in the background, it will automatically replace it with the phrase This is useful if you have to type a specific phrase very often. My Big Change ( I use a mac ) I had shown my project to my brother, and he liked the idea, but just randomly mentioned that it would be cool if it would show up on the menu bar, where things like the time and wifi are. I thought it would be cool and did some research, and realized that it was possible. I chose to use a package called Rumps, which allowed me to do this, and I basically made a completely new version of my app. Luckily, the old functionality code could be kept, I just had to change the UI. I also made this version much more simpler and streamlined you could say, mainly because I wasn’t able to add half of the functionality using Rumps(It’s probably possible, I just wasn’t able to), and it just didn’t feel right having something piled with unnecessary features in the menu bar. Two Versions So now, I have two versions of the app. One supports Windows + Mac, and has it’s own separate window. The second version is on the menu bar, and it’s much more streamlined, but also only for Mac. So I made both available on my Github page as a Github Release which you can try out using the demo link. Permissions Unfortunately, my project requires a lot of permissions that have to be manually enabled by the user, which makes the Quick Start, not very ‘Quick’. I tried to make the process simple, but I couldn’t really do anything since devices don’t just trust random apps. So it takes a few more minutes then it would have without permissions, but I made sure to include a detailed README so no one gets stuck. I’m going to ship my project probably by the end of the day, and hopefully it’ll get accepted. Thanks for reading until here! Belows a screenshot of how it looks in the menu bar!"}, {"post_id": 12062, "ts": "2026-06-19T17:48:55Z", "hours": 2.9614, "text": "Text Fill Devlog 2 (Made in Python) So it’s been a week since my last devlog since I was focusing on my main project, but I have made some good progress. For those who don’t know my project, it’s called Text Fill, and it is a tool that I am making in Python, where you can define shortcuts and phrases, so when you type in the shortcut, it automatically replaces it with the phrase. For example, if you have set a shortcut to /num , and the phrase to 123456789 , when you type in /num anywhere with the program running in the background, it will automatically replace it with 123456789 . This is useful if you have to type a specific phrase all the time like your email, so you can set a shortcut to /e or /email or anything else you want, to make it fill in the phrase. What I’ve added So since the last devlog, this is what I have added: UI for everything using Tkinter. Settings menu Now though this isn’t much, it took me a long time as I had to learn Python in the process. The UI is still quite basic and uses default colors, and I might make it look better later. The settings menu contains the following options: Backspace Delay Type Delay Delete Speed Type Speed More will be added in the future I decided not to make a website, as I felt like an app felt better. A demo will probably be coming in a week or two, and I would appreciate any suggestions or feedback. Below, there is a short video showing me using my tool. (It works everywhere, not only in a code editor, I just did it in the vscode since it was open)"}, {"post_id": 7767, "ts": "2026-06-12T23:52:39Z", "hours": 2.5881, "text": "Text Fill Made using Python I am making a text shortcut fill tool where users can set shortcuts which will automatically fill in when typed. This is for the Frictionless mission. Ex: user sets shortcut ‘/email’ with the value ‘ [email protected] ’. With this set, while the code is running in the background, if they type ‘/email’, then it will automatically fill in to ‘ [email protected] ’. I am using this project as an opportunity to get better at Python, as I am still a beginner, and am wanting to learn more. I have also made a GitHub repository, where the latest code has been published. What I already have Menu Manager Add Shortcuts Remove Shortcuts Modify Shortcuts Clear Shortcuts Show Shortcuts Basic save/load system using JSON file stored locally The actual text fill functionality What I plan to add Settings (A place where users can define certain values like filling speed, fill delay, etc.) UI (I want this to have UI, and I might even try to make a website) If you have any feedback or suggestions please let me know so I can improve. Thanks for reading!"}]...
|
Title: Text Fill by @StarCoder | Stardance
Devlog Title: Text Fill by @StarCoder | Stardance
Devlogs:
Text Fill Made using Python I am making a text shortcut fill tool where users can set shortcuts which will automatically fill in when typed. This is for the Frictionless mission. Ex: user sets shortcut ‘/email’ with the value ‘ [email protected] ’. With this set, while the code is running in the background, if they type ‘/email’, then it will automatically fill in to ‘ [email protected] ’. I am using this project as an opportunity to get better at Python, as I am still a beginner, and am wanting to learn more. I have also made a GitHub repository, where the latest code has been published. What I already have Menu Manager Add Shortcuts Remove Shortcuts Modify Shortcuts Clear Shortcuts Show Shortcuts Basic save/load system using JSON file stored locally The actual text fill functionality What I plan to add Settings (A place where users can define certain values like filling speed, fill delay, etc.) UI (I want this to have UI, and I might even try to make a website) If you have any feedback or suggestions please let me know so I can improve. Thanks for reading!
Text Fill Devlog 2 (Made in Python) So it’s been a week since my last devlog since I was focusing on my main project, but I have made some good progress. For those who don’t know my project, it’s called Text Fill, and it is a tool that I am making in Python, where you can define shortcuts and phrases, so when you type in the shortcut, it automatically replaces it with the phrase. For example, if you have set a shortcut to /num , and the phrase to 123456789 , when you type in /num anywhere with the program running in the background, it will automatically replace it with 123456789 . This is useful if you have to type a specific phrase all the time like your email, so you can set a shortcut to /e or /email or anything else you want, to make it fill in the phrase. What I’ve added So since the last devlog, this is what I have added: UI for everything using Tkinter. Settings menu Now though this isn’t much, it took me a long time as I had to learn Python in the process. The UI is still quite basic and uses default colors, and I might make it look better later. The settings menu contains the following options: Backspace Delay Type Delay Delete Speed Type Speed More will be added in the future I decided not to make a website, as I felt like an app felt better. A demo will probably be coming in a week or two, and I would appreciate any suggestions or feedback. Below, there is a short video showing me using my tool. (It works everywhere, not only in a code editor, I just did it in the vscode since it was open)
Text Fill Devlog 3 (Made in Python) It’s been more than a week since my last devlog. This is mostly because of me working on other projects, and also that there really wasn’t much to show. It was mostly just figuring out the syntax and bug fixing, so I decided to wait until I finished. This should be my last devlog before my ship, and I have added something which I think is a great improvement. Project Recap For those who don’t know my project, it’s called Text Fill, and it is a tool that I am making in Python, where you can define shortcuts and phrases, so when you type in the shortcut, it automatically replaces it with the phrase. For example, if you have set a shortcut to /email , and the phrase to [email protected] , when you type in /email anywhere with the program running in the background, it will automatically replace it with the phrase This is useful if you have to type a specific phrase very often. My Big Change ( I use a mac ) I had shown my project to my brother, and he liked the idea, but just randomly mentioned that it would be cool if it would show up on the menu bar, where things like the time and wifi are. I thought it would be cool and did some research, and realized that it was possible. I chose to use a package called Rumps, which allowed me to do this, and I basically made a completely new version of my app. Luckily, the old functionality code could be kept, I just had to change the UI. I also made this version much more simpler and streamlined you could say, mainly because I wasn’t able to add half of the functionality using Rumps(It’s probably possible, I just wasn’t able to), and it just didn’t feel right having something piled with unnecessary features in the menu bar. Two Versions So now, I have two versions of the app. One supports Windows + Mac, and has it’s own separate window. The second version is on the menu bar, and it’s much more streamlined, but also only for Mac. So I made both available on my Github page as a Github Release which you can try out using the demo link. Permissions Unfortunately, my project requires a lot of permissions that have to be manually enabled by the user, which makes the Quick Start, not very ‘Quick’. I tried to make the process simple, but I couldn’t really do anything since devices don’t just trust random apps. So it takes a few more minutes then it would have without permissions, but I made sure to include a detailed README so no one gets stuck. I’m going to ship my project probably by the end of the day, and hopefully it’ll get accepted. Thanks for reading until here! Belows a screenshot of how it looks in the menu bar!
Ships:
I made a project called TextFill. TextFill is a tool created in Python where users can create shortcuts that will automatically fill in with replacement text. For example, if a user creates a shortcut /email , and sets the replacement text to [email protected] , then whenever they type /email, it will automatically fill in as long as the app is running and replacing. There are two versions of the app. One is the UI version, that supports both Windows and Mac. The second is a menu bar version that only supports Mac. The UI version contains the base functionality of adding, removing, and clearing shortcuts, while also including modifying shortcuts and a settings page. The menubar version contains only the base functionality, as well as a button to show all shortcuts. The menu bar version is basically a streamlined version, for users who are on Mac, and don’t care too much about the settings. The menubar version is recommended for ease of use, as it lives on the Mac menubar, and won’t interfere with any work. You can also easily toggle the replacer on and off. This tool is best for people who type certain things repeatedly. For example, if a person has to fill in a sheet with either Accepted or Declined, then that person can easily create shortcuts like /a and /d, so it makes their job much easier. The main QoL improvements are Making repetitive tasks shorter and more efficient A settings panel where users can easily modify their preferences depending on their usual tasks An automatic save/load system that makes sure users never lose their shortcuts There were many challenges I faced while creating this project. I was still pretty new to Python when I started this project, and only knew basic things, like conditions or statements. Luckily, I’ve been coding in Unity (C#) for a long time, so it set a base that allowed me to learn the simple things like functions pretty easily. Many challenges I faced were with the UI, as in Unity, it is fairly easy to create basic UI without any code, but in Python, I had to use Tkinter for everything. It became even more difficult with making the menubar version, though I was able to figure them all out. I’m personally proud of the menu bar version, because I think it’s perfect for people who just want the main functionality, and don’t want to be bothered by a seperate window. To test my project, you can go to my GitHub release page which contains downloads for both versions. My README contains detailed instructions on how to download and run the app. (Below is a screenshot of my menu bar version) Thank you....
|
1793123307.0185616
|
1793209707.0185616
|