|
10328
|
Ampselector by @ravin_olivier | Stardance
|
ravin_olivier
|
1
|
5.19
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-20T08:00:32Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This project has been a crazy learning experience, from learning how to make a PCB to designing a case around it, to programming for it, it’s been an amazing learning experience and I’ve enjoyed all the hours I’ve spent on it! Hoping to enjoy getting the parts and putting it together!", "repo": "https://github.com/ravinder-Olivier/ampselector", "demo": ""}]...
|
[{"post_id": 67474, "ts": "202 [{"post_id": 67474, "ts": "2026-09-13T16:14:07Z", "hours": 1.6306, "text": "Soldered the hackpad! Soldering such a packed thing was new for me, as someone who solders guitar stuff. Was interesting experience, soldering the seeed uno was super easy (thought it would be pretty hard). Not sure how I’m gonna clip the diode wires short…"}, {"post_id": 43013, "ts": "2026-08-08T01:30:40Z", "hours": 0.5603, "text": "Project is finally polished up, added renders and made it real nice"}, {"post_id": 12403, "ts": "2026-06-20T07:33:20Z", "hours": 0.6686, "text": "Made it work with midi!"}, {"post_id": 10489, "ts": "2026-06-17T07:22:53Z", "hours": 1.0506, "text": "Finished setting up folder structure for submission (4 days in, 12+ hours in)"}, {"post_id": 8441, "ts": "2026-06-14T01:21:34Z", "hours": 1.0164, "text": "Fixing QMK Bugs"}]...
|
Title: Ampselector by @ravin_olivier | Stardance
Title: Ampselector by @ravin_olivier | Stardance
Devlogs:
Fixing QMK Bugs
Finished setting up folder structure for submission (4 days in, 12+ hours in)
Made it work with midi!
Project is finally polished up, added renders and made it real nice
Soldered the hackpad! Soldering such a packed thing was new for me, as someone who solders guitar stuff. Was interesting experience, soldering the seeed uno was super easy (thought it would be pretty hard). Not sure how I’m gonna clip the diode wires short…
Ships:
This project has been a crazy learning experience, from learning how to make a PCB to designing a case around it, to programming for it, it’s been an amazing learning experience and I’ve enjoyed all the hours I’ve spent on it! Hoping to enjoy getting the parts and putting it together!...
|
1793267556.2274618
|
1793353956.2274618
|
|
61838
|
python learning by @Noebal | Stardance
|
Noebal
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T17:42:43Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I am learning python. It is a completly new language for me. I made some mini projects and published them on github.", "repo": "https://github.com/noamopilo/python_learning", "demo": "https://github.com/noamopilo/python_learning/blob/main/README.md"}]...
|
[{"post_id": 67480, "ts": "202 [{"post_id": 67480, "ts": "2026-09-13T16:27:13Z", "hours": 0.5617, "text": "I learned to randomize things by making a random password generator."}]...
|
Title: python learning by @Noebal | Stardance
Dev Title: python learning by @Noebal | Stardance
Devlogs:
I learned to randomize things by making a random password generator.
Ships:
I am learning python. It is a completly new language for me. I made some mini projects and published them on github....
|
1793415161.5103893
|
1793501561.5103893
|
|
60686
|
CLOCKK by @anael | Stardance
|
anael
|
0
|
5.29
|
0
|
[]
|
[{"post_id": 67490, "ts": "202 [{"post_id": 67490, "ts": "2026-09-13T16:33:46Z", "hours": 3.0836, "text": "DEVLOG 2 I made the design which is kinda boring so in my next project i will try and improve my designs. I also wrote the firmware, but it was going over my head. That’s why I had to copy it from one of the other projects in this mission. Check my design out. (I named in slab clock cuz my design was like a solid box)"}, {"post_id": 65550, "ts": "2026-09-10T19:19:39Z", "hours": 2.2061, "text": "DEVLOG 1 Heyy! I just started the blare project and have done a decent amount of the work in just 2 hrs. I made the pcb which was kinda simple and also I started making the 3d model (I hate it). I kinda wish that there were a desk clock type of aesthetic screen in the component list, so that I could put it on my desk, but this works too. Check out the pcb design… (the yummers is a homelander ref btw)"}]...
|
Title: CLOCKK by @anael | Stardance
Devlogs:
DEVL Title: CLOCKK by @anael | Stardance
Devlogs:
DEVLOG 1 Heyy! I just started the blare project and have done a decent amount of the work in just 2 hrs. I made the pcb which was kinda simple and also I started making the 3d model (I hate it). I kinda wish that there were a desk clock type of aesthetic screen in the component list, so that I could put it on my desk, but this works too. Check out the pcb design… (the yummers is a homelander ref btw)
DEVLOG 2 I made the design which is kinda boring so in my next project i will try and improve my designs. I also wrote the firmware, but it was going over my head. That’s why I had to copy it from one of the other projects in this mission. Check my design out. (I named in slab clock cuz my design was like a solid box)...
|
1793036954.1576884
|
1793641754.1576884
|
|
47573
|
HabitiSync by @Yellow_Cat | Stardance
|
Yellow_Cat
|
1
|
18.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T16:53:34Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "HabitiSync is an unofficial app for Zepp OS that lets you interact with Habitica directly through your watch using the API Habitica provides to each user. HabitiSync has been my first project for my watch. Ever since I bought it, I thought I should make my own app, yet I never started it until I started HabitiSync. To create this app i had to learn how to use JavaScript to code a functional UI in my watch. I decided to make HabitiSync because I have used Habitica for a long time, and I decided it would save me time to use my watch to score my tasks once I completed them, instead of going through my phone. Once I started developing HabitiSync, I ran into many problems, but was able to solve them all without using AI at all, as AI tended not to understand fully how to make this kind of apps (although it helped me understand my own code and fix some small or repetitive bugs). How to try it: You will need a compatible watch (see README for compatible watches list), and go to the app store inside the Zepp App, look for HabitiSync (app ID: 1124182) and install it. Then, configure your account in the settings app, and open your watch to see the icon. OR You can watch a showcase video about how this app works entering this link (also found in README): https://www.dropbox.com/scl/fi/ksukgqrjfey43xg7uo7zt/HabitiSync-demo.mp4?rlkey=p4o0ug2u98sogcmch0iulq5r7&st=d3psn36v&dl=0", "repo": "https://github.com/YellowCat-Code/HabitiSync", "demo": "https://www.dropbox.com/scl/fi/ksukgqrjfey43xg7uo7zt/HabitiSync-demo.mp4?rlkey=p4o0ug2u98sogcmch0iulq5r7&st=d3psn36v&dl=0"}]...
|
[{"post_id": 67495, "ts": "202 [{"post_id": 67495, "ts": "2026-09-13T16:39:28Z", "hours": 0.9961, "text": "Finally, the app has been relased into the app store. To download it, you have to go to the app store inside the Zepp App, look for HabitiSync, and install it (app id: 1124182). Then, configure your account into the settings app, and open your watch to see the icon. In this last update, I updated the Readme file to also showcase a video for those who don’t own a compatible watch."}, {"post_id": 59566, "ts": "2026-09-01T13:41:06Z", "hours": 0.6, "text": "After the app had been rejected from the Zepp app store due to the previous name was trade marketed, I decided to change the name into HabitiSync. I expect the app to be released in the official app store in the next 2 weeks!"}, {"post_id": 51086, "ts": "2026-08-20T16:07:04Z", "hours": 2.8989, "text": "The app is now on GitHub! Now you can also try it yourself by using the watch app. It is also being reviewed to be published onto the official app store, so it will be accessible to everyone for free. Changes: I have changed the previous name (Zeppitica) to HabitiZepp to better comply with Habitica’s usage guidelines. I have added a reload function to load the page again if changes have been made by just pressing the banner for more than 700 ms, and I have better adjusted the UI, as well as fixing some minor bugs and permissions with the device."}, {"post_id": 50306, "ts": "2026-08-19T13:56:42Z", "hours": 7.1342, "text": "After fixing all previous bugs related to network issues and getting familiarized with JavaScript and Zepp OS development, I have started working on the UI, adding more colors to it and making more buttons functional, as well as adding new security features such as not having to use the user’s own API, and instead logging them in. Right now, I am taking suggestions on how to improve the UI design, or in adding new functionalities, so feel free to comment your ideas if you have some👍."}, {"post_id": 48450, "ts": "2026-08-16T20:01:28Z", "hours": 6.2189, "text": "These last few days I have been figuring out many of the problems I had while writing in JavaScript for watches with Zepp OS. As of now, I have resolved most of them, but I still have to design the UI and organize the answers from the Habitica API."}]...
|
Title: HabitiSync by @Yellow_Cat | Stardance
Devl Title: HabitiSync by @Yellow_Cat | Stardance
Devlogs:
These last few days I have been figuring out many of the problems I had while writing in JavaScript for watches with Zepp OS. As of now, I have resolved most of them, but I still have to design the UI and organize the answers from the Habitica API.
After fixing all previous bugs related to network issues and getting familiarized with JavaScript and Zepp OS development, I have started working on the UI, adding more colors to it and making more buttons functional, as well as adding new security features such as not having to use the user’s own API, and instead logging them in. Right now, I am taking suggestions on how to improve the UI design, or in adding new functionalities, so feel free to comment your ideas if you have some👍.
The app is now on GitHub! Now you can also try it yourself by using the watch app. It is also being reviewed to be published onto the official app store, so it will be accessible to everyone for free. Changes: I have changed the previous name (Zeppitica) to HabitiZepp to better comply with Habitica’s usage guidelines. I have added a reload function to load the page again if changes have been made by just pressing the banner for more than 700 ms, and I have better adjusted the UI, as well as fixing some minor bugs and permissions with the device.
After the app had been rejected from the Zepp app store due to the previous name was trade marketed, I decided to change the name into HabitiSync. I expect the app to be released in the official app store in the next 2 weeks!
Finally, the app has been relased into the app store. To download it, you have to go to the app store inside the Zepp App, look for HabitiSync, and install it (app id: 1124182). Then, configure your account into the settings app, and open your watch to see the icon. In this last update, I updated the Readme file to also showcase a video for those who don’t own a compatible watch.
Ships:
HabitiSync is an unofficial app for Zepp OS that lets you interact with Habitica directly through your watch using the API Habitica provides to each user. HabitiSync has been my first project for my watch. Ever since I bought it, I thought I should make my own app, yet I never started it until I started HabitiSync. To create this app i had to learn how to use JavaScript to code a functional UI in my watch. I decided to make HabitiSync because I have used Habitica for a long time, and I decided it would save me time to use my watch to score my tasks once I completed them, instead of going through my phone. Once I started developing HabitiSync, I ran into many problems, but was able to solve them all without using AI at all, as AI tended not to understand fully how to make this kind of apps (although it helped me understand my own code and fix some small or repetitive bugs). How to try it: You will need a compatible watch (see README for compatible watches list), and go to the app store inside the Zepp App, look for HabitiSync (app ID: 1124182) and install it. Then, configure your account in the settings app, and open your watch to see the icon. OR You can watch a showcase video about how this app works entering this link (also found in README): https://www.dropbox.com/scl/fi/ksukgqrjfey43xg7uo7zt/HabitiSync-demo.mp4?rlkey=p4o0ug2u98sogcmch0iulq5r7&st=d3psn36v&dl=0...
|
1793339331.6503687
|
1793425731.6503687
|
|
46133
|
Motivation Player by @gavinwu42711 | Stardance
|
gavinwu42711
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T17:12:46Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Often, I feel myself out of motivation and falling into doom scrolling. So, I built an MP3-like player where I can play motivational/funny quotes from my friends to help bring me up One of the main challenges I faced was not really being able to prototype and making my second PCB design ever. I was very anxious for when the PCB originally arrived since I had no way to test on the breadboard if the research I had done online was correct until after I ordered my PCB (I didn’t have the parts at the time and waiting until they came would have taken too long for the PCB). Luckily –and thankfully – the PCB worked out as intended. Overall, given this is my first time using an audio amplifier, working with SD cards, and not using a step-by-step tutorial for any of the parts, I’m really proud that the project works smoothly, with the audio being pretty decent.", "repo": "https://github.com/GavinWu42711/Motivation-Player", "demo": ""}]...
|
[{"post_id": 67498, "ts": "202 [{"post_id": 67498, "ts": "2026-09-13T16:43:00Z", "hours": 1.6131, "text": "Finished! After definitely not procrasinating for a week, I finished the Motivation Player! I soldered all the parts together and assembled it together. Very happy that the PCB worked first try. At this point, the project is done but there are some last things I’d like to say that happened (and I hope to be more careful about in future projects) Bad :C : The container is just a shy too short for the batteries, and almost can’t close (thankfully the plastic top can bend) The potentiometer is really annoying to use All the “controls” would’ve been easier to used if they were elevated from the top Basically, I should’ve put all the input on one side so it could be flush with the lid and every other component on the other side Good :D : The batteries provide more amps than my test set up, leading to a pretty decent volume (the connections are also much better) A weird hardware/software bug causes the buttons and potentiometer to create a spike in the sound, leading to a beeping noise whenever they are used (which actually sounds like it belongs – happy accident) Overall, pretty happy that it worked out. Just need to update the read me to ship!"}, {"post_id": 59955, "ts": "2026-09-02T00:56:22Z", "hours": 2.1642, "text": "Debugging Code Over the past week (on and off), I’ve been slowly assembling the motivation player on the breadboard. I soldered all the parts I could and debugged the code after uploading it to the Raspberry Pi. Can’t say it didn’t take awhile… Luckily, I got the code working and the speaker to function. Unluckily, I had a brain fart and decided minimum voltage = optimal voltage. The audio amplifier works but is kind of scuffed because there isn’t enough voltage and current. I think it works well enough that I won’t solder in an extra battery container to increase the voltage and current (especially because the PCB doesn’t have any regulators) Basically just waiting on the PCB at this point…"}, {"post_id": 49193, "ts": "2026-08-17T20:51:24Z", "hours": 1.32, "text": "Finished Programming :D I finished the firmware! I decided to move to Circuit Python since it works better with the Pi Pico. The project is almost done and ready to be reviewed. Some things I need to do before that: Create a BOM Add more info in the README Add a folder with all the files with the libraries"}, {"post_id": 48580, "ts": "2026-08-17T01:14:31Z", "hours": 0.7186, "text": "Finished CAD! I finished the CAD for the enclosure and got everything assembled in CAD. Luckily everything worked out! :D Might’ve put too much space for the SD card on the PCB… I also started working on the firmware. Originally, I wanted to use Arduino IDE but it might not be the friendliest for the Pi Pico. I plan on looking into circuit python to see if it is better for reading SD cards and playing audio."}, {"post_id": 47825, "ts": "2026-08-16T01:25:33Z", "hours": 1.1167, "text": "Cadding Enclosure (pt. 3) I finished adding the holes, fixed a few issues with not giving enough tolerence, and started adding the rest of the parts in an assembled CAD model to give an idea of the finished product and double check that everything will fit together. Some parts (currently the potentiometer) I couldn’t find the right model for so I’ll be using a stand in model for them. I used the “thread” feature in Fusion and I’m hoping the tolerence won’t be too tight for the screws I have… worst case hot glue will save me XD"}, {"post_id": 47240, "ts": "2026-08-15T01:06:58Z", "hours": 1.0806, "text": "Cadding the enclosure (cont.) I’m almost done with CAD!… at least I think so. I finished up the cutouts in the top and adjusted a few things for the bottom part to better sit the PCB. Decided to go with a 30 mm diameter Gikfun speaker and just have it at the very front. The last part I need to add are the holes for the screws to keep the top and bottom together. Not sure the size for that so I’ll need to do some more research. Hopefully I didn’t make the sides of the container too thin…"}, {"post_id": 46637, "ts": "2026-08-14T01:08:13Z", "hours": 1.0217, "text": "Cadding the enclosure Started using Fusion360 to CAD the enclosure for the project. I got the bottom part mostly done and got 2 of the holes needed for the lid done. I still need to do the holes for the other buttons, display, and screws to put together. At some point, I’ll also need to finalize the speaker I want to be able to decide where to have it in the CAD."}, {"post_id": 46603, "ts": "2026-08-13T23:17:58Z", "hours": 0.4333, "text": "PCB Finished (Actually) Turns out I forgot to do some steps… oops haha? Luckily it was just running the DRC, adding a few wires between the ground references and adding a rectangle in the cut layer. Onto making the CAD for the box!"}, {"post_id": 46082, "ts": "2026-08-13T01:13:11Z", "hours": 1.6508, "text": "PCB Finished! (I hope…) I finished the PCB design! For the most part, it was smooth sailing to rearrange all the components into a neat-ish rectangle and to wire everything up. There were a few issues with the parts being wired wrong in the schematic that I had to fix… Hopefully no more of that comes up. I’ll be doing final touches and double checking the PCB before moving on to making a 3d print for its case."}, {"post_id": 44822, "ts": "2026-08-10T20:56:00Z", "hours": 1.8167, "text": "PCB Design (2) I finished up the schematic for the PCB and assigned all the footprints for the parts I’m using. I decided to stick with the LM386 and to use 3 AA batteries to achieve the minimum voltage needed for the audio amplifier. For the power toggle switch and the speaker, I decided to just use connector wires as a comprise for not knowing which one I will be using (gives me more flexibility for where I want them to be on the final build) Next steps I need to do: Design the PCB Write the code/firmware Design the CAD model for the finished project and any 3D printed parts I need"}, {"post_id": 44264, "ts": "2026-08-09T22:01:22Z", "hours": 0.8, "text": "PCB Design Using KiCad, I wired together most of the components I plan on using. These include: A play button A random button (to give a random motivational audio) A rotary encoder (to scroll through all the available audios) A Raspberry Pi Pico (the microcontroller to read the SD card and do all the logic) SSD 1306 (oled display – 1.36 inch) SD card module (to hold the audio files) Some things that I still need to add: Audio amplifier Speaker Potentiometer (for volume adjustment) Battery container (idk what to call it) w/ a power switch I was originally going to use the LM386 for audio amplifying but it runs above 3.3V according to online research. If anyone has reccomendations, please let me know! (I have no idea what I’m doing to be honest)"}]...
|
Title: Motivation Player by @gavinwu42711 | Starda Title: Motivation Player by @gavinwu42711 | Stardance
Devlogs:
PCB Design Using KiCad, I wired together most of the components I plan on using. These include: A play button A random button (to give a random motivational audio) A rotary encoder (to scroll through all the available audios) A Raspberry Pi Pico (the microcontroller to read the SD card and do all the logic) SSD 1306 (oled display – 1.36 inch) SD card module (to hold the audio files) Some things that I still need to add: Audio amplifier Speaker Potentiometer (for volume adjustment) Battery container (idk what to call it) w/ a power switch I was originally going to use the LM386 for audio amplifying but it runs above 3.3V according to online research. If anyone has reccomendations, please let me know! (I have no idea what I’m doing to be honest)
PCB Design (2) I finished up the schematic for the PCB and assigned all the footprints for the parts I’m using. I decided to stick with the LM386 and to use 3 AA batteries to achieve the minimum voltage needed for the audio amplifier. For the power toggle switch and the speaker, I decided to just use connector wires as a comprise for not knowing which one I will be using (gives me more flexibility for where I want them to be on the final build) Next steps I need to do: Design the PCB Write the code/firmware Design the CAD model for the finished project and any 3D printed parts I need
PCB Finished! (I hope…) I finished the PCB design! For the most part, it was smooth sailing to rearrange all the components into a neat-ish rectangle and to wire everything up. There were a few issues with the parts being wired wrong in the schematic that I had to fix… Hopefully no more of that comes up. I’ll be doing final touches and double checking the PCB before moving on to making a 3d print for its case.
PCB Finished (Actually) Turns out I forgot to do some steps… oops haha? Luckily it was just running the DRC, adding a few wires between the ground references and adding a rectangle in the cut layer. Onto making the CAD for the box!
Cadding the enclosure Started using Fusion360 to CAD the enclosure for the project. I got the bottom part mostly done and got 2 of the holes needed for the lid done. I still need to do the holes for the other buttons, display, and screws to put together. At some point, I’ll also need to finalize the speaker I want to be able to decide where to have it in the CAD.
Cadding the enclosure (cont.) I’m almost done with CAD!… at least I think so. I finished up the cutouts in the top and adjusted a few things for the bottom part to better sit the PCB. Decided to go with a 30 mm diameter Gikfun speaker and just have it at the very front. The last part I need to add are the holes for the screws to keep the top and bottom together. Not sure the size for that so I’ll need to do some more research. Hopefully I didn’t make the sides of the container too thin…
Cadding Enclosure (pt. 3) I finished adding the holes, fixed a few issues with not giving enough tolerence, and started adding the rest of the parts in an assembled CAD model to give an idea of the finished product and double check that everything will fit together. Some parts (currently the potentiometer) I couldn’t find the right model for so I’ll be using a stand in model for them. I used the “thread” feature in Fusion and I’m hoping the tolerence won’t be too tight for the screws I have… worst case hot glue will save me XD
Finished CAD! I finished the CAD for the enclosure and got everything assembled in CAD. Luckily everything worked out! :D Might’ve put too much space for the SD card on the PCB… I also started working on the firmware. Originally, I wanted to use Arduino IDE but it might not be the friendliest for the Pi Pico. I plan on looking into circuit python to see if it is better for reading SD cards and playing audio.
Finished Programming :D I finished the firmware! I decided to move to Circuit Python since it works better with the Pi Pico. The project is almost done and ready to be reviewed. Some things I need to do before that: Create a BOM Add more info in the README Add a folder with all the files with the libraries
Debugging Code Over the past week (on and off), I’ve been slowly assembling the motivation player on the breadboard. I soldered all the parts I could and debugged the code after uploading it to the Raspberry Pi. Can’t say it didn’t take awhile… Luckily, I got the code working and the speaker to function. Unluckily, I had a brain fart and decided minimum voltage = optimal voltage. The audio amplifier works but is kind of scuffed because there isn’t enough voltage and current. I think it works well enough that I won’t solder in an extra battery container to increase the voltage and current (especially because the PCB doesn’t have any regulators) Basically just waiting on the PCB at this point…
Finished! After definitely not procrasinating for a week, I finished the Motivation Player! I soldered all the parts together and assembled it together. Very happy that the PCB worked first try. At this point, the project is done but there are some last things I’d like to say that happened (and I hope to be more careful about in future projects) Bad :C : The container is just a shy too short for the batteries, and almost can’t close (thankfully the plastic top can bend) The potentiometer is really annoying to use All the “controls” would’ve been easier to used if they were elevated from the top Basically, I should’ve put all the input on one side so it could be flush with the lid and every other component on the other side Good :D : The batteries provide more amps than my test set up, leading to a pretty decent volume (the connections are also much better) A weird hardware/software bug causes the buttons and potentiometer to create a spike in the sound, leading to a beeping noise whenever they are used (which actually sounds like it belongs – happy accident) Overall, pretty happy that it worked out. Just need to update the read me to ship!
Ships:
Often, I feel myself out of motivation and falling into doom scrolling. So, I built an MP3-like player where I can play motivational/funny quotes from my friends to help bring me up One of the main challenges I faced was not really being able to prototype and making my second PCB design ever. I was very anxious for when the PCB originally arrived since I had no way to test on the breadboard if the research I had done online was correct until after I ordered my PCB (I didn’t have the parts at the time and waiting until they came would have taken too long for the PCB). Luckily –and thankfully – the PCB worked out as intended. Overall, given this is my first time using an audio amplifier, working with SD cards, and not using a step-by-step tutorial for any of the parts, I’m really proud that the project works smoothly, with the audio being pretty decent....
|
1793346705.1635394
|
1793433105.1635394
|
|
3828
|
Flounder Valley by @Avin | Stardance
|
Avin
|
0
|
0.43
|
0
|
[]
|
[{"post_id": 675, "ts": "2026- [{"post_id": 675, "ts": "2026-06-02T07:15:02Z", "hours": 0.4261, "text": "The Basic map has been created"}]...
|
Title: Flounder Valley by @Avin | Stardance
Devlo Title: Flounder Valley by @Avin | Stardance
Devlogs:
The Basic map has been created...
|
1793137813.582279
|
1793742613.582279
|
|
56029
|
hop off bro by @sircheetodust | Stardance
|
sircheetodust
|
0
|
7.09
|
0
|
[]
|
[{"post_id": 67504, "ts": "202 [{"post_id": 67504, "ts": "2026-09-13T17:00:15Z", "hours": 1.0344, "text": "Firmware update! I set up platform io since arduino ide is very stinky. I wrote a controller for the screen and made those helper functions accessible to the main script."}, {"post_id": 63956, "ts": "2026-09-08T01:31:03Z", "hours": 2.05, "text": "CAD and PCB update! CAD(image 1) I finished basic cad of the case. Looks pretty good for like 2 hrs of inexperienced CADing ngl. PCB(image 2) Turns out i used the wrong footprint for the LED’s so i changed them to another wrong footprint and then changed it to the correct one. Also I changed silkscreen art to better reflect “hop off your computer bro” im so fancy with raytraced pic of pcb"}, {"post_id": 63353, "ts": "2026-09-07T04:19:15Z", "hours": 1.4189, "text": "CAD update: I started . I imported everything into fusion and started cadding the bottom part of the case. The difficult part was making the cuttout for the screen. I drew a sketch of the outline of the screen, exported it as a dxf and used that dxf to make the rest of the case."}, {"post_id": 62507, "ts": "2026-09-05T22:14:31Z", "hours": 1.5333, "text": "PCB done! This is very late news since I actually finished this 5 days ago, I just haven’t posted a devlog for it yet. I routed all traces on the PCB and made some silkscreen art. This was really easy because of my hackpad(im still waiting on 3d print for it). I plan to start CAD -ing everything today!"}, {"post_id": 57743, "ts": "2026-08-30T00:38:18Z", "hours": 1.0486, "text": "Designed PCB schematic, and set up github repo holy locked in kicad session I decided ill use up those LEDs from my hackpad kit since I didnt use them. They will illuminate the switches when the alarm goes off(if all goes to plan). Getting the boxes legit took me 10 minutes cuz I forgot everthing after making the gooberpad. This is gonna be all worth it(i hope)"}]...
|
Title: hop off bro by @sircheetodust | Stardance
Title: hop off bro by @sircheetodust | Stardance
Devlogs:
Designed PCB schematic, and set up github repo holy locked in kicad session I decided ill use up those LEDs from my hackpad kit since I didnt use them. They will illuminate the switches when the alarm goes off(if all goes to plan). Getting the boxes legit took me 10 minutes cuz I forgot everthing after making the gooberpad. This is gonna be all worth it(i hope)
PCB done! This is very late news since I actually finished this 5 days ago, I just haven’t posted a devlog for it yet. I routed all traces on the PCB and made some silkscreen art. This was really easy because of my hackpad(im still waiting on 3d print for it). I plan to start CAD -ing everything today!
CAD update: I started . I imported everything into fusion and started cadding the bottom part of the case. The difficult part was making the cuttout for the screen. I drew a sketch of the outline of the screen, exported it as a dxf and used that dxf to make the rest of the case.
CAD and PCB update! CAD(image 1) I finished basic cad of the case. Looks pretty good for like 2 hrs of inexperienced CADing ngl. PCB(image 2) Turns out i used the wrong footprint for the LED’s so i changed them to another wrong footprint and then changed it to the correct one. Also I changed silkscreen art to better reflect “hop off your computer bro” im so fancy with raytraced pic of pcb
Firmware update! I set up platform io since arduino ide is very stinky. I wrote a controller for the screen and made those helper functions accessible to the main script....
|
1793361242.323721
|
1793966042.323721
|
|
36112
|
WarioWare by @Mouna | Stardance
|
Mouna
|
0
|
2.16
|
0
|
[]
|
[{"post_id": 67511, "ts": "202 [{"post_id": 67511, "ts": "2026-09-13T17:06:54Z", "hours": 2.1556, "text": "working on a 2D GAME"}]...
|
Title: WarioWare by @Mouna | Stardance
Devlogs:
w Title: WarioWare by @Mouna | Stardance
Devlogs:
working on a 2D GAME...
|
1793339633.0279672
|
1793944433.0279672
|
|
54108
|
Pantry_Scanner by @theodora | Stardance
|
theodora
|
1
|
20.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T17:11:38Z", "hours": 20.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finally, I finished my first version of my pantry scanner. Due to camera quality, sometimes it can read the expiry date; sometimes it can’t, but I already tried my best to make it work What I actually built –Firmware on ESP32-CAM: press a button, it captures a photo and uploads it over WI-Fi – A local Python backend that reads the photo, tries OCR for the expiry date, attempts barcode decoding using an external API and saves everything to a database – A web dashboard showing every scanned item sorted by soonest-expiring first, with edit and remove buttons for fixing up anything the camera couldn’t capture The hard part The hardest part is to get the camera to read text and turn it into the dashboard. I went through extensive debugging, more than I have recorded in the devlog. Fixing the lens, dealing with blur, and looking at the barcode-decoding problem, it turned out the camera quality is the major issue. Next Step – Use a dedicated barcode scanner instead of relying on the camera –Create a fixed scanning stand using 3D printing for more consistent capture quality than hand positioning. – Attach a macro lens attachment for the camera to improve small print in OCR", "repo": "https://github.com/theodora-sin/pantry_scanner", "demo": ""}]...
|
[{"post_id": 67514, "ts": "202 [{"post_id": 67514, "ts": "2026-09-13T17:08:53Z", "hours": 3.7453, "text": "Devlog 5: Finally, I finish my first version of my pantry scanner, due to camera quality, sometime it can read the expiry date, sometime it can’t, but I already try my best to make it work. I can’t film the whole process, but I try to snip a bit of how this camera actually work in screenshot and a video"}, {"post_id": 65995, "ts": "2026-09-11T14:43:02Z", "hours": 1.2389, "text": "Devlog 4: Today, I connected the front and back end; however, the camera quality wasn’t as good as I expected, and it couldn’t scan the barcode to retrieve the data. Now, I am rethinking how to retrieve the data and what the next step should be."}, {"post_id": 64241, "ts": "2026-09-08T14:30:46Z", "hours": 9.4747, "text": "Devlog3: ##Working on front end My front end is using Python as the main language, alongside html and css, the website look plain as I just built the basic version Next step: connect front end and back end"}, {"post_id": 59594, "ts": "2026-09-01T14:40:45Z", "hours": 1.7883, "text": "Devlog 2: This devlog, it records how the front end works. I use arduino IDE with coding language C+ to make the ESP32 Camera work, It can capture 1600x1200px, which is useful for the backend. The backend is used to store the captured picture and analyse the expiry date of the food."}, {"post_id": 57898, "ts": "2026-08-30T07:12:02Z", "hours": 3.9806, "text": "#Devlog 1: Hi, welcome to a hardware project devlog. In this project, I am creating a pantry scanner. I have drawn my schematic board and am soldering the PCB. I forgot to record my soldering part, but here is the overview of the project."}]...
|
Title: Pantry_Scanner by @theodora | Stardance
De Title: Pantry_Scanner by @theodora | Stardance
Devlogs:
#Devlog 1: Hi, welcome to a hardware project devlog. In this project, I am creating a pantry scanner. I have drawn my schematic board and am soldering the PCB. I forgot to record my soldering part, but here is the overview of the project.
Devlog 2: This devlog, it records how the front end works. I use arduino IDE with coding language C+ to make the ESP32 Camera work, It can capture 1600x1200px, which is useful for the backend. The backend is used to store the captured picture and analyse the expiry date of the food.
Devlog3: ##Working on front end My front end is using Python as the main language, alongside html and css, the website look plain as I just built the basic version Next step: connect front end and back end
Devlog 4: Today, I connected the front and back end; however, the camera quality wasn’t as good as I expected, and it couldn’t scan the barcode to retrieve the data. Now, I am rethinking how to retrieve the data and what the next step should be.
Devlog 5: Finally, I finish my first version of my pantry scanner, due to camera quality, sometime it can read the expiry date, sometime it can’t, but I already try my best to make it work. I can’t film the whole process, but I try to snip a bit of how this camera actually work in screenshot and a video
Ships:
Finally, I finished my first version of my pantry scanner. Due to camera quality, sometimes it can read the expiry date; sometimes it can’t, but I already tried my best to make it work What I actually built –Firmware on ESP32-CAM: press a button, it captures a photo and uploads it over WI-Fi – A local Python backend that reads the photo, tries OCR for the expiry date, attempts barcode decoding using an external API and saves everything to a database – A web dashboard showing every scanned item sorted by soonest-expiring first, with edit and remove buttons for fixing up anything the camera couldn’t capture The hard part The hardest part is to get the camera to read text and turn it into the dashboard. I went through extensive debugging, more than I have recorded in the devlog. Fixing the lens, dealing with blur, and looking at the barcode-decoding problem, it turned out the camera quality is the major issue. Next Step – Use a dedicated barcode scanner instead of relying on the camera –Create a fixed scanning stand using 3D printing for more consistent capture quality than hand positioning. – Attach a macro lens attachment for the camera to improve small print in OCR...
|
1793350653.5898037
|
1793437053.5898037
|
|
17883
|
Utils by @denis | Stardance
|
denis
|
1
|
43.01
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-28T13:51:25Z", "hours": 35.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Shipping! After a lot of work on these, I want to ship: The bash scripts from the utils repo : db_manager - Simple PostgreSQL database manager. ue5_asset_downloader - Faster way to download and share UE5 asset files via Google Drive. lazyass - Lightweight app launcher script. proxyfix - Simplified configuration file management for proxychains. dchfc tool - Displays children files’ content ( Releases ). So now I will fully focus on astmn , as I’ll need it for my next projects.", "repo": "https://github.com/denis1836/utils", "demo": "https://github.com/denis1836/utils/releases/tag/collection-v1"}]...
|
[{"post_id": 67529, "ts": "202 [{"post_id": 67529, "ts": "2026-09-13T17:27:19Z", "hours": 4.5181, "text": "Utils - fixes and some updates A lot of bugs showed up in testing, so fixed them. I also tested my utils on several minimal Linux distributions to ensure they work with less dependencies. Check out the releases . For the UE5 asset downloader script, I added a testing file to demonstrate its work. Additionally, there have been some updates to astmn , including new commands (view, pack, and update) as well as upcoming features. You can check it out here ."}, {"post_id": 58786, "ts": "2026-08-31T11:12:54Z", "hours": 3.4875, "text": "Utils - releases and docs Made a lot of docs, fixes and releases in order to re-ship the project. Hope this time judges will like it. If you want to check them out check out, see releases , or a doc I made with references and descriptions to all the things I mention in my devlogs."}, {"post_id": 56443, "ts": "2026-08-28T06:37:05Z", "hours": 10.3883, "text": "lazyass Have you ever been too lazy to manually launch the same bunch of apps every day? Me too. So I built a minimal CLI tool that turns a 20-second job into a 3-second job. Check out the repo ."}, {"post_id": 51601, "ts": "2026-08-21T11:25:40Z", "hours": 8.6014, "text": "astmn In my previous devlog about the UE5 bash script, I mentioned the better version of this tool this time built with Golang. The idea of the tool is to make sharing large binary files (like 3D models) easier and to escape the “_v2_FINAL_UPDATE_SUPERFINAL” hell by using SemVer and Git to track manifest files. It’s especially useful for game dev because you don’t have to clog your repo with assets or pay for Git LFS. For now it only works for .zip files and Google Drive, but in the near future I am going to add many more features making it as easy to use as possible. I have no idea what to show yet, so I attach some screenshots of it working and an example manifest file for FreeCAD, I dunno."}, {"post_id": 45729, "ts": "2026-08-12T12:33:26Z", "hours": 5.3386, "text": "Asset Downloader/Manager When my friends and I were trying to make a game in Unreal Engine 5 we had a problem with version control (which is easily resolved by a good gitignore file) and asset sharing. Because actor and map files can grow rapidly I had an idea to use some kind of a cloud, the easiest thing I thought of was using Google Drive (mostly because of its free 15GB limit). As my friends worked on Windows and only had access to MSYS2, Git Bash, Cygwin and WSL I decided to do it in Bash using JSON files as the “registries”. The asset registry files were located in the repo and tracked by Git while the asset files were downloaded locally. Also you can add pre-commit hooks so there is a check if you have all the assets downloaded. After a few tweaks and fixes, it wasn’t too shabby. In fact the script did its job quite well. If you are interested in the code, you can find it here . I may add some small updates to it, but nothing special. The main limitation was that Bash is a scripting language and it has its own tweaks. And I wanted more functionality. So, I decided to rebuild the idea with a better architecture using Golang and YAML. Right now, I don’t have the funds or a way to host a server, so it’ll use regular archives for now. In the future, I want to use hashing for optimization (similar to how Git works). It’s still in early development, but you can find the repo here ."}, {"post_id": 41290, "ts": "2026-08-05T12:47:48Z", "hours": 3.3328, "text": "D.Ch.F.C. The abbreviation stands for Display Children Files Content . The purpose of this command is self-explanatory. It’s quite handy when, for example, you have a lot of files and an AI needs context to help you find a bug in your code. Originally, this was meant to be part of my utils repo, but as its functionality grew, I moved it to a dedicated repo especially since I plan to package and submit it to Linux distro’s mirrors."}, {"post_id": 40005, "ts": "2026-08-03T11:01:52Z", "hours": 7.755, "text": "utils/db_manager In my other projects i often have to deal with PostgresSQL databases, and I was annoyed with using psql or systemd to do basic stuff like managing the postgres daemon or running the set-up queries myself. So I made this. Feel free to add fork it to your project (see instalation ) for better db management. If you encounter any bugs/issues or want to request a feature, please create an issue on GitHub so it can be fixed."}]...
|
Title: Utils by @denis | Stardance
Devlogs:
utils Title: Utils by @denis | Stardance
Devlogs:
utils/db_manager In my other projects i often have to deal with PostgresSQL databases, and I was annoyed with using psql or systemd to do basic stuff like managing the postgres daemon or running the set-up queries myself. So I made this. Feel free to add fork it to your project (see instalation ) for better db management. If you encounter any bugs/issues or want to request a feature, please create an issue on GitHub so it can be fixed.
D.Ch.F.C. The abbreviation stands for Display Children Files Content . The purpose of this command is self-explanatory. It’s quite handy when, for example, you have a lot of files and an AI needs context to help you find a bug in your code. Originally, this was meant to be part of my utils repo, but as its functionality grew, I moved it to a dedicated repo especially since I plan to package and submit it to Linux distro’s mirrors.
Asset Downloader/Manager When my friends and I were trying to make a game in Unreal Engine 5 we had a problem with version control (which is easily resolved by a good gitignore file) and asset sharing. Because actor and map files can grow rapidly I had an idea to use some kind of a cloud, the easiest thing I thought of was using Google Drive (mostly because of its free 15GB limit). As my friends worked on Windows and only had access to MSYS2, Git Bash, Cygwin and WSL I decided to do it in Bash using JSON files as the “registries”. The asset registry files were located in the repo and tracked by Git while the asset files were downloaded locally. Also you can add pre-commit hooks so there is a check if you have all the assets downloaded. After a few tweaks and fixes, it wasn’t too shabby. In fact the script did its job quite well. If you are interested in the code, you can find it here . I may add some small updates to it, but nothing special. The main limitation was that Bash is a scripting language and it has its own tweaks. And I wanted more functionality. So, I decided to rebuild the idea with a better architecture using Golang and YAML. Right now, I don’t have the funds or a way to host a server, so it’ll use regular archives for now. In the future, I want to use hashing for optimization (similar to how Git works). It’s still in early development, but you can find the repo here .
astmn In my previous devlog about the UE5 bash script, I mentioned the better version of this tool this time built with Golang. The idea of the tool is to make sharing large binary files (like 3D models) easier and to escape the “_v2_FINAL_UPDATE_SUPERFINAL” hell by using SemVer and Git to track manifest files. It’s especially useful for game dev because you don’t have to clog your repo with assets or pay for Git LFS. For now it only works for .zip files and Google Drive, but in the near future I am going to add many more features making it as easy to use as possible. I have no idea what to show yet, so I attach some screenshots of it working and an example manifest file for FreeCAD, I dunno.
lazyass Have you ever been too lazy to manually launch the same bunch of apps every day? Me too. So I built a minimal CLI tool that turns a 20-second job into a 3-second job. Check out the repo .
Utils - releases and docs Made a lot of docs, fixes and releases in order to re-ship the project. Hope this time judges will like it. If you want to check them out check out, see releases , or a doc I made with references and descriptions to all the things I mention in my devlogs.
Utils - fixes and some updates A lot of bugs showed up in testing, so fixed them. I also tested my utils on several minimal Linux distributions to ensure they work with less dependencies. Check out the releases . For the UE5 asset downloader script, I added a testing file to demonstrate its work. Additionally, there have been some updates to astmn , including new commands (view, pack, and update) as well as upcoming features. You can check it out here .
Ships:
Shipping! After a lot of work on these, I want to ship: The bash scripts from the utils repo : db_manager - Simple PostgreSQL database manager. ue5_asset_downloader - Faster way to download and share UE5 asset files via Google Drive. lazyass - Lightweight app launcher script. proxyfix - Simplified configuration file management for proxychains. dchfc tool - Displays children files’ content ( Releases ). So now I will fully focus on astmn , as I’ll need it for my next projects....
|
1793288888.5127974
|
1793375288.5127974
|
|
59850
|
32-Bit CPU in Roblox by @XeroDay | Stardance
|
XeroDay
|
0
|
11.61
|
0
|
[]
|
[{"post_id": 67530, "ts": "202 [{"post_id": 67530, "ts": "2026-09-13T17:27:42Z", "hours": 1.4989, "text": "Devlog - 4 - Shipment! Shipping 32 CPU in Roblox now!! So I was working on the RootFS for a while, I was trying to make it better and more faster, I was also working on adding more syscalls so it can support many more custom compiled codes. Now I am finally. Done! I have successfully built a mini riscv cpu that you can actually use to run riscv instructions :3 Make sure to vote it if you get it !!! heheheh You can check it out! https://www.roblox.com/games/114068662906612/Real-Linux-Emulator"}, {"post_id": 67398, "ts": "2026-09-13T14:23:31Z", "hours": 6.5078, "text": "Devlog - 3 Finally, after HOURS. Now Roblox can run your C code. So I finally added custom program support!! Now you can write a code in C, Compile it and it will be saved in the /bin as executable. I wrote a custom FastFetch in C, compiled it on my machine for RISCV32 using qemu, and put the binary in roblox and I ran the fastfetch, and it worked! So now you can literally run your C code inside roblox 😭"}, {"post_id": 66851, "ts": "2026-09-12T19:36:11Z", "hours": 1.7161, "text": "Devlog 2: I finally built a file system inside roblox!! Now you can save your class notes inside roblox as a cloud storage This took quite a bit of time, but I added syscall support for Read ! Stay tuned to see a working linux inside roblox !"}, {"post_id": 64338, "ts": "2026-09-08T17:14:04Z", "hours": 1.8894, "text": "32-Bit CPU In Roblox So as you can read the title, I am making an 32-Bit CPU Inside roblox I’m building a RISC-V 32-bit CPU. The core is done enough to run real programs now. It implements the RV32IM instruction set, so the full base integer ISA plus the M extension for multiply and divide. Syscalls follow the Linux RISC-V ABI, so programs can do proper I/O instead of just computing in silence. Everything runs in an IDE I built, with a parser that handles the usual sections and pseudo instructions, and it already boots a small kernel that prints a banner and takes commands."}]...
|
Title: 32-Bit CPU in Roblox by @XeroDay | Stardanc Title: 32-Bit CPU in Roblox by @XeroDay | Stardance
Devlogs:
32-Bit CPU In Roblox So as you can read the title, I am making an 32-Bit CPU Inside roblox I’m building a RISC-V 32-bit CPU. The core is done enough to run real programs now. It implements the RV32IM instruction set, so the full base integer ISA plus the M extension for multiply and divide. Syscalls follow the Linux RISC-V ABI, so programs can do proper I/O instead of just computing in silence. Everything runs in an IDE I built, with a parser that handles the usual sections and pseudo instructions, and it already boots a small kernel that prints a banner and takes commands.
Devlog 2: I finally built a file system inside roblox!! Now you can save your class notes inside roblox as a cloud storage This took quite a bit of time, but I added syscall support for Read ! Stay tuned to see a working linux inside roblox !
Devlog - 3 Finally, after HOURS. Now Roblox can run your C code. So I finally added custom program support!! Now you can write a code in C, Compile it and it will be saved in the /bin as executable. I wrote a custom FastFetch in C, compiled it on my machine for RISCV32 using qemu, and put the binary in roblox and I ran the fastfetch, and it worked! So now you can literally run your C code inside roblox 😭
Devlog - 4 - Shipment! Shipping 32 CPU in Roblox now!! So I was working on the RootFS for a while, I was trying to make it better and more faster, I was also working on adding more syscalls so it can support many more custom compiled codes. Now I am finally. Done! I have successfully built a mini riscv cpu that you can actually use to run riscv instructions :3 Make sure to vote it if you get it !!! heheheh You can check it out! https://www.roblox.com/games/114068662906612/Real-Linux-Emulator...
|
1793029936.32464
|
1793634736.32464
|
|
61510
|
E.Y.N (Everything You Need) by @therealpedcrec456 E.Y.N (Everything You Need) by @therealpedcrec456 | Stardance...
|
therealpedcrec456
|
0
|
1.63
|
0
|
[]
|
[{"post_id": 67531, "ts": "202 [{"post_id": 67531, "ts": "2026-09-13T17:31:58Z", "hours": 1.6267, "text": "Everything You Need. My new small project. a collection of things you may need on a day to day basis. It now includes: Weather App Youtube video downloader Password Generator Background Remover (Still Testing) QrCode Generator"}]...
|
Title: E.Y.N (Everything You Need) by @therealpedc Title: E.Y.N (Everything You Need) by @therealpedcrec456 | Stardance
Devlogs:
Everything You Need. My new small project. a collection of things you may need on a day to day basis. It now includes: Weather App Youtube video downloader Password Generator Background Remover (Still Testing) QrCode Generator...
|
1793040656.44554
|
1793645456.44554
|
|
59860
|
Duckosaur by @Harupi | Stardance
|
Harupi
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T17:36:48Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "My girlfriend asked me to make a t-rex game with a duck she and her roommates had drawn, so I did it. This game features randomly spawning cactuses, score, and a beautiful duck. I’ll probably make a leaderboard and maybe add flying mobs in a future version. Hope you like it !", "repo": "https://github.com/Hvrnbi/duckosaur", "demo": "https://duckosaur.harupi.me"}]...
|
[{"post_id": 67532, "ts": "202 [{"post_id": 67532, "ts": "2026-09-13T17:31:59Z", "hours": 1.9417, "text": "Duckosaur devlog 3 - Ready to ship ! This time, I made the score system, the styling, the README, and the deployment ! Now the first version is ready to be shipped !"}, {"post_id": 65278, "ts": "2026-09-10T09:13:42Z", "hours": 2.0406, "text": "Duckosaur devlog 2 - Hellooooo The duck is not a yellow square anymore ! I also added randomly spawning cactus (I’ll have to draw a cactus by myself). They move and if they touch the player, the game is over. Have a nice day !"}, {"post_id": 64295, "ts": "2026-09-08T16:09:01Z", "hours": 0.395, "text": "Duckosaur devlog 1 - My girlfriend asked me to make a t-rex game with a duck she’d drawn, so I’m doing it. Hello ! I first tried to make it in Rust using Dioxus to publish it as a website, but after struggling for over 2 hours trying to remove the “jumping” class from the player after a certain amount of time, I decided to switch to javascript since this isn’t a serious project. Should I link the hackatime records of the 2 projects together ? I don’t really know. So I redid in js what I had done in Rust, and now the player can jump more than once ! She hasn’t sent me the drawing yet so for now the duck is a yellow square. See you soon !"}]...
|
Title: Duckosaur by @Harupi | Stardance
Devlogs:
Title: Duckosaur by @Harupi | Stardance
Devlogs:
Duckosaur devlog 1 - My girlfriend asked me to make a t-rex game with a duck she’d drawn, so I’m doing it. Hello ! I first tried to make it in Rust using Dioxus to publish it as a website, but after struggling for over 2 hours trying to remove the “jumping” class from the player after a certain amount of time, I decided to switch to javascript since this isn’t a serious project. Should I link the hackatime records of the 2 projects together ? I don’t really know. So I redid in js what I had done in Rust, and now the player can jump more than once ! She hasn’t sent me the drawing yet so for now the duck is a yellow square. See you soon !
Duckosaur devlog 2 - Hellooooo The duck is not a yellow square anymore ! I also added randomly spawning cactus (I’ll have to draw a cactus by myself). They move and if they touch the player, the game is over. Have a nice day !
Duckosaur devlog 3 - Ready to ship ! This time, I made the score system, the styling, the README, and the deployment ! Now the first version is ready to be shipped !
Ships:
My girlfriend asked me to make a t-rex game with a duck she and her roommates had drawn, so I did it. This game features randomly spawning cactuses, score, and a beautiful duck. I’ll probably make a leaderboard and maybe add flying mobs in a future version. Hope you like it !...
|
1793411370.1811578
|
1793497770.1811578
|
|
43869
|
The PoeS by @Hanako | Stardance
|
Hanako
|
0
|
4.62
|
0
|
[]
|
[{"post_id": 67540, "ts": "202 [{"post_id": 67540, "ts": "2026-09-13T17:50:41Z", "hours": 2.7561, "text": "2nd Devlog - more window functions, improved code efficiency Made classes and functions to organize code and improve efficiency (hadn’t bothered earlier because I wasn’t familiar with javascript enough yet) Implemented a second window with the same functionality as the welcome screen (opening/closing, dragging, moving to top when clickeda) and prevented users from dragging windows into the top bar. Hopefully, I’ll make this app into a text editor. By next devlog, I want to also add window resizing and borders for the other edges of the screen."}, {"post_id": 50020, "ts": "2026-08-19T01:31:46Z", "hours": 1.8681, "text": "First devlog - window manipulation Prior to me ditching this project for a few months, I had finished part 2 of the jam, so I continued from part 3. I’ve successfully added working window manipulation (opening, closing, moving), though my handle is kind of a placeholder for now. (if it shows that this text was copy-pasted, it’s because I had to refresh the page and I didn’t want to retype it all)"}]...
|
Title: The PoeS by @Hanako | Stardance
Devlogs:
F Title: The PoeS by @Hanako | Stardance
Devlogs:
First devlog - window manipulation Prior to me ditching this project for a few months, I had finished part 2 of the jam, so I continued from part 3. I’ve successfully added working window manipulation (opening, closing, moving), though my handle is kind of a placeholder for now. (if it shows that this text was copy-pasted, it’s because I had to refresh the page and I didn’t want to retype it all)
2nd Devlog - more window functions, improved code efficiency Made classes and functions to organize code and improve efficiency (hadn’t bothered earlier because I wasn’t familiar with javascript enough yet) Implemented a second window with the same functionality as the welcome screen (opening/closing, dragging, moving to top when clickeda) and prevented users from dragging windows into the top bar. Hopefully, I’ll make this app into a text editor. By next devlog, I want to also add window resizing and borders for the other edges of the screen....
|
1793242210.478713
|
1793847010.478713
|
|
58477
|
PawXygen Rush by @thapar_smayan | Stardance
|
thapar_smayan
|
2
|
17.0
|
213
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T17:57:19Z", "hours": 7.0, "multiplier": 15.67, "payout": 113, "blessing": "neutral", "text": "I made all of the changes that were requested in my previous ship! PawXygen Rush is a 2D turn based maze game in which you play as various characters and try to escape a decaying space station. I am proud of myself for stepping out of my comfort zone and learning new things. Creating new characters was difficult. If you’re gonn try the game remember to have fun! Its what I made it for.", "repo": "https://github.com/thaparsmayan2011-ctrl/PawXygen-Rush", "demo": "https://pawxygenrush.vercel.app/"}, {"ship_num": 2, "ts": "2026-09-09T13:46:02Z", "hours": 10.0, "multiplier": 10.11, "payout": 100, "blessing": "neutral", "text": "I have made a 2D space themed maze/ survival game in which you play as Laika the space dog from 1957. The HTML canvas part was difficult as it was my first experience with making html graphics. I am proud of pushing myself and stepping out of my comfort zone. Have fun!", "repo": "https://github.com/thaparsmayan2011-ctrl/PawXygen-Rush", "demo": "https://pawxygenrush.vercel.app/"}]...
|
[{"post_id": 67541, "ts": "202 [{"post_id": 67541, "ts": "2026-09-13T17:51:45Z", "hours": 3.1944, "text": "I have finally made all the requested changes to PawXygen Rush. I have deployed it to vercel. I’m gonna ship now!"}, {"post_id": 66747, "ts": "2026-09-12T17:15:35Z", "hours": 4.0172, "text": "After the feedback I received on PawXygen Rush, I have resumed my work on this game. I have started by adding a menu, level selector, character selection and I have made the canvas scale with your window size."}, {"post_id": 64794, "ts": "2026-09-09T13:36:44Z", "hours": 2.0289, "text": "I have finally finished the project!!! After cleaning up the repo all that will be left is to SHIP!!!!"}, {"post_id": 64666, "ts": "2026-09-09T07:41:43Z", "hours": 2.9558, "text": "I have finished the graphics and coded the entire game, this took me like 2 hours but it was fun. All that is left to do is add a legend, level chooser and a soundtrack."}, {"post_id": 63693, "ts": "2026-09-07T17:04:00Z", "hours": 1.8672, "text": "I have finished cleaning up the game logic and added some of the graphics. Next I’ll add the rest of the graphics and a few more levels. Currently the player isn’t visible coz I haven’t added its graphics yet. Trust the Process!"}, {"post_id": 62908, "ts": "2026-09-06T13:20:20Z", "hours": 2.5056, "text": "I have added the core game logic along with the sound effects. I am facing some issues with particles but i’ll figure it out. I am left with clean up, particle debugging and graphics for now."}, {"post_id": 62035, "ts": "2026-09-05T08:00:55Z", "hours": 0.5442, "text": "I am creating a space themed game in which you play as Laika the dog and navigate through a decaying space station. I have coded the core game logic for now. Next I will work on the designs of the sprites."}]...
|
Title: PawXygen Rush by @thapar_smayan | Stardance Title: PawXygen Rush by @thapar_smayan | Stardance
Devlogs:
I am creating a space themed game in which you play as Laika the dog and navigate through a decaying space station. I have coded the core game logic for now. Next I will work on the designs of the sprites.
I have added the core game logic along with the sound effects. I am facing some issues with particles but i’ll figure it out. I am left with clean up, particle debugging and graphics for now.
I have finished cleaning up the game logic and added some of the graphics. Next I’ll add the rest of the graphics and a few more levels. Currently the player isn’t visible coz I haven’t added its graphics yet. Trust the Process!
I have finished the graphics and coded the entire game, this took me like 2 hours but it was fun. All that is left to do is add a legend, level chooser and a soundtrack.
I have finally finished the project!!! After cleaning up the repo all that will be left is to SHIP!!!!
After the feedback I received on PawXygen Rush, I have resumed my work on this game. I have started by adding a menu, level selector, character selection and I have made the canvas scale with your window size.
I have finally made all the requested changes to PawXygen Rush. I have deployed it to vercel. I’m gonna ship now!
Ships:
I have made a 2D space themed maze/ survival game in which you play as Laika the space dog from 1957. The HTML canvas part was difficult as it was my first experience with making html graphics. I am proud of pushing myself and stepping out of my comfort zone. Have fun!
I made all of the changes that were requested in my previous ship! PawXygen Rush is a 2D turn based maze game in which you play as various characters and try to escape a decaying space station. I am proud of myself for stepping out of my comfort zone and learning new things. Creating new characters was difficult. If you’re gonn try the game remember to have fun! Its what I made it for....
|
1793249333.776872
|
1793335733.776872
|
|
55732
|
metropolis technologies! by @tanzeemrockz | Starda metropolis technologies! by @tanzeemrockz | Stardance...
|
tanzeemrockz
|
1
|
9.5
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-29T12:59:48Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Metropolis Technologies as my personal site and project hub under CyberSlayerCorpz. I built it with HTML5 and Tailwind CSS, with a dark grid background, custom Google Sans typography, cyan accents, and custom Neon Dragon cursors. The most annoying part was honestly Tailwind 😭. I spent way too long fighting with items-center, grid-cols-2, colours, and the Tailwind config. I also ran into issues with the Google Fonts / preconnect setup, which made debugging even more fun. I’m pretty happy with how the final site turned out, especially the project cards and overall dark/cyberpunk look. It’s deployed on GitHub Pages and has sections for my projects, about info, and links. This was made for the Hack Club Stardance Personal Site mission, and I tracked 2 hours and 2 minutes with Hackatime. The site is live, the repo is public, and after all that Tailwind pain, it finally works™ 💀", "repo": "https://github.com/tanzeemrockz/my-site-eh", "demo": "https://tanzeemrockz.github.io/my-site-eh/"}]...
|
[{"post_id": 67544, "ts": "202 [{"post_id": 67544, "ts": "2026-09-13T17:55:35Z", "hours": 1.4894, "text": "Yo guys, I just added an f1 score tracker that says what position Max Verstappen got in the last race and his total championship points this season. But OpanF1 was a pain to configure damn cuz a race just ended and it doesn’t like queries at this time lol. Anyways, this is the final project with the f1 tracker"}, {"post_id": 60228, "ts": "2026-09-02T13:49:14Z", "hours": 6.0083, "text": "I just built this site and i had LOTS of issues and all i wanted to do was add a favicon, bg-image, etc. After a few youtube tutorials, reading the mdn docs and w3 schools page and ESPECIALLY STACK OVERFLOW for 67 million times (not quite but), I finally got it. After tinkering with the look for a million times, i settled on a single round ish? pattern bg image and after considering a grid backgrounf for the millionth time, i just settled on that picture. The hero section also has a bg-image of an F1 car and i tried making pills in the ui using s, i found out that i can never make it shorter horizontally and i finally switched to a and now, everything finally work™!"}, {"post_id": 57310, "ts": "2026-08-29T12:57:29Z", "hours": 2.2842, "text": "I spent 2 hours fighting Tailwind for a personal site This project was made for the Hack Club Stardance Personal Site mission. The mission is basically to build and deploy your own personal website, with stuff like HTML + CSS, a public repo with a README, a fully deployed site, and multiple sections/pages. So naturally I decided to make Metropolis Technologies, a personal hub for the projects and random stuff I build under CyberSlayerCorpz. The original idea was pretty simple: dark UI, grid background, cyan accents, project cards, links, done. Then Tailwind happened. I got stuck on the most stupid things 😭 For some reason, getting items-center to behave properly was way more annoying than it should’ve been. Then grid-cols-2 decided it didn’t want to cooperate either. I also spent way too long changing colours and trying to get everything set up properly with the Tailwind config. And then I had Google Fonts. The / preconnect stuff somehow ended up causing problems with the rest of my setup, which sent me down another rabbit hole of wondering why perfectly normal things weren’t behaving normally. Eventually I got everything working and ended up with this: dark grid background cyan accents responsive project cards custom Google Sans typography custom cursor setup sections for my projects, about, and links deployed with GitHub Pages The final result is pretty much what I originally wanted, and I’m actually pretty happy with how the project cards turned out. I tracked the whole thing with Hackatime and ended up spending 2 hours and 2 minutes on it. Honestly, a concerning amount of that time was probably just me staring at Tailwind classes and asking myself why grid-cols-2 wasn’t doing the ONE JOB I GAVE IT 💀 But yeah, it’s finally live and this is my submission for the Stardance Personal Site mission 🫡 Tech: HTML5 + Tailwind CSS + Google Fonts Time: 2h 02m Mission: Hack Club Stardance — Personal Site Status: finally works™"}]...
|
Title: metropolis technologies! by @tanzeemrockz | Title: metropolis technologies! by @tanzeemrockz | Stardance
Devlogs:
I spent 2 hours fighting Tailwind for a personal site This project was made for the Hack Club Stardance Personal Site mission. The mission is basically to build and deploy your own personal website, with stuff like HTML + CSS, a public repo with a README, a fully deployed site, and multiple sections/pages. So naturally I decided to make Metropolis Technologies, a personal hub for the projects and random stuff I build under CyberSlayerCorpz. The original idea was pretty simple: dark UI, grid background, cyan accents, project cards, links, done. Then Tailwind happened. I got stuck on the most stupid things 😭 For some reason, getting items-center to behave properly was way more annoying than it should’ve been. Then grid-cols-2 decided it didn’t want to cooperate either. I also spent way too long changing colours and trying to get everything set up properly with the Tailwind config. And then I had Google Fonts. The / preconnect stuff somehow ended up causing problems with the rest of my setup, which sent me down another rabbit hole of wondering why perfectly normal things weren’t behaving normally. Eventually I got everything working and ended up with this: dark grid background cyan accents responsive project cards custom Google Sans typography custom cursor setup sections for my projects, about, and links deployed with GitHub Pages The final result is pretty much what I originally wanted, and I’m actually pretty happy with how the project cards turned out. I tracked the whole thing with Hackatime and ended up spending 2 hours and 2 minutes on it. Honestly, a concerning amount of that time was probably just me staring at Tailwind classes and asking myself why grid-cols-2 wasn’t doing the ONE JOB I GAVE IT 💀 But yeah, it’s finally live and this is my submission for the Stardance Personal Site mission 🫡 Tech: HTML5 + Tailwind CSS + Google Fonts Time: 2h 02m Mission: Hack Club Stardance — Personal Site Status: finally works™
I just built this site and i had LOTS of issues and all i wanted to do was add a favicon, bg-image, etc. After a few youtube tutorials, reading the mdn docs and w3 schools page and ESPECIALLY STACK OVERFLOW for 67 million times (not quite but), I finally got it. After tinkering with the look for a million times, i settled on a single round ish? pattern bg image and after considering a grid backgrounf for the millionth time, i just settled on that picture. The hero section also has a bg-image of an F1 car and i tried making pills in the ui using s, i found out that i can never make it shorter horizontally and i finally switched to a and now, everything finally work™!
Yo guys, I just added an f1 score tracker that says what position Max Verstappen got in the last race and his total championship points this season. But OpanF1 was a pain to configure damn cuz a race just ended and it doesn’t like queries at this time lol. Anyways, this is the final project with the f1 tracker
Ships:
I made Metropolis Technologies as my personal site and project hub under CyberSlayerCorpz. I built it with HTML5 and Tailwind CSS, with a dark grid background, custom Google Sans typography, cyan accents, and custom Neon Dragon cursors. The most annoying part was honestly Tailwind 😭. I spent way too long fighting with items-center, grid-cols-2, colours, and the Tailwind config. I also ran into issues with the Google Fonts / preconnect setup, which made debugging even more fun. I’m pretty happy with how the final site turned out, especially the project cards and overall dark/cyberpunk look. It’s deployed on GitHub Pages and has sections for my projects, about info, and links. This was made for the Hack Club Stardance Personal Site mission, and I tracked 2 hours and 2 minutes with Hackatime. The site is live, the repo is public, and after all that Tailwind pain, it finally works™ 💀...
|
1793252908.7964246
|
1793339308.7964246
|
|
59461
|
Personal site! (woohoo!) by @nishy- | Stardance
|
nishy-
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T18:29:05Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What I have made is a website to show my portfolio! It has three sections, a welcome section (with a funny emoji guy who is welcoming) a section with my projects that i’ve made and an about me section! I struggled with thinking of good CSS to use so after scrolling on github and youtube + looking at other projects I found this really cool hover effect!", "repo": "https://github.com/nishyns/CoolWebsite3000", "demo": "https://nishyns.github.io/CoolWebsite3000/"}]...
|
[{"post_id": 67551, "ts": "202 [{"post_id": 67551, "ts": "2026-09-13T18:02:29Z", "hours": 0.8231, "text": "First maybe last devlog Okay so this is my portfolio website! Made for the Personal site mission! So far I added an about me, the project that I made, and a little picture of a emoji + a link to my github and a section that welcomes you! What I struggled with was CSS so i just scrolled on youtube and github till I found this cool hover effect!"}]...
|
Title: Personal site! (woohoo!) by @nishy- | Stard Title: Personal site! (woohoo!) by @nishy- | Stardance
Devlogs:
First maybe last devlog Okay so this is my portfolio website! Made for the Personal site mission! So far I added an about me, the project that I made, and a little picture of a emoji + a link to my github and a section that welcomes you! What I struggled with was CSS so i just scrolled on youtube and github till I found this cool hover effect!
Ships:
What I have made is a website to show my portfolio! It has three sections, a welcome section (with a funny emoji guy who is welcoming) a section with my projects that i’ve made and an about me section! I struggled with thinking of good CSS to use so after scrolling on github and youtube + looking at other projects I found this really cool hover effect!...
|
1793353702.7707624
|
1793440102.7707624
|
|
57300
|
Frictionless by @prada | Stardance
|
prada
|
1
|
12.73
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-12T22:01:32Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Last update was mostly optimizations and bug fixes, but this ship is all about new features, UI cleanups, and a big Stacklet overhaul. Main focus was making everything feel alive, fixing layout glitches, and giving better tab control without hogging memory. UI/UX Fixes: Fixed a splash screen rendering a ghost duplicate over onboarding Fixed tutorial highlights misaligning mid-scroll Added a scroll container so the accessories panel doesn’t get cut off by popup height limits Fixed Stacklet’s positioning so he actually stands on the logo instead of floating next to it Bug Fixes: Fixed a duplicate const declaration that silently crashed an entire script file Fixed typewriter animation where overlapping text streams canceled each other mid-sentence New Features: Stacklet overhaul: rebuilt him with a full animation rig (antenna lag, arm overshoots, squash jumps) Instant Undo: one-click undo if you accidentally sort or deduplicate tabs Tab suspension & Read Later: freezes idle tabs and saves week-old tabs automatically Quick Search: command palette style launcher to jump to any tab fast Spent ~28 hours (only 11 logged…) on this build getting the physics and UI quirks sorted out. Next up is polishing based on feedback. If you test it out and have ideas, drop a review or ping me on GitHub / Discord (fraghaft)!", "repo": "https://github.com/babaminghong/stax", "demo": "https://github.com/babaminghong/stax/releases/tag/v1.4.0"}]...
|
[{"post_id": 67553, "ts": "202 [{"post_id": 67553, "ts": "2026-09-13T18:09:55Z", "hours": 1.7322, "text": "Snooze lets you close a tab and pick when it comes back. In an hour, tonight, tomorrow morning, this weekend, next week. Tab disappears and reopens on its own. Timing was annoying to get right. First version just added hours, so “tomorrow morning” meant 24 hours from now, useless if you snooze at 11pm. Now it resolves against the actual clock. Also had to catch presets landing in the past, like asking for “this evening” at 9pm, because then the alarm fires instantly and the tab just blinks. Surviving a restart was the other problem. I went with setTimeout first which is completely wrong for MV3, the background worker gets killed and takes every timeout with it. Switched to chrome.alarms, which the browser re-delivers even after you quit Chrome. Added a startup check too since alarms can get missed if Chrome was closed when one was due. Small fix: Find only worked with the mouse before. Arrow keys move through results now, Enter opens, Escape clears. If nothing matches, Enter falls through to AI search."}, {"post_id": 65985, "ts": "2026-09-11T14:19:14Z", "hours": 8.5678, "text": "8+ Hours of Stax: Big Updates & Quality-of-Life Improvements! 🚀 What started as “Stax is working fine” quickly turned into an 8+ hour feature binge! Stax was doing its job, but I knew it could be even better. Here is a breakdown of the new features added to save memory, boost performance, and make your workflow smoother: Instant Undo Action: Accidentally sorted or deduplicated tabs? You can now undo your last action with a single click to restore your workspace immediately. Suspend Inactive Tabs: Free up memory and boost browser performance by freezing idle background tabs directly from the extension. Save & Restore Sessions: Working across multiple projects? Easily save your current session and reopen it anytime from the new Saved Sessions tab. Enhanced Smart Sort & AI Methods: Re-engineered category patterns and AI matching rules to deliver cleaner, faster, and far more accurate tab organization. Quick Switch Search: Easily find and jump to any tab or open website using the new search icon command palette."}, {"post_id": 63575, "ts": "2026-09-07T14:22:39Z", "hours": 0.5331, "text": "Stax Devlog 2!!! / What I did Before this update, Stax could only group a tab if I had explicitly hardcoded its exact domain into the background script. Anything else just got dumped into a generic grey group, which meant the extension barely worked unless I had manually added the site beforehand. I overhauled the classification logic so it looks for broader patterns instead of fixed domain lists. It now checks domain endings like .shop or .bank , path keywords like /cart or /checkout , platform routes like /pull/42 , and active page titles as a fallback so a tab named “Your boarding pass” gets caught under Travel even on a random airline site. I also cleaned up the codebase structure. popup.js and sidepanel.js were sharing a bunch of copy-pasted helper functions. I moved those out into a shared script file so I’m not maintaining the exact same logic in two places. Issues I ran into and fixed Keyword classifier false positives. The old string check was matching shop anywhere inside a URL string. That meant photoshop.adobe.com was getting sorted straight into Shopping. Switched it to match proper hostname boundaries so creative tools don’t end up in shopping groups. Code duplication across UI files. Having identical helper functions in both popup.js and sidepanel.js meant any bug fix had to be applied twice. Extracted them into a common utility script to keep both views in sync. What’s next Workspaces. Saving full tab group setups to chrome.storage.local so you can close an entire session and restore it later. Command Palette. Adding a Cmd+K / Ctrl+K search overlay to quickly search across all open tabs and jump to them instantly."}, {"post_id": 62573, "ts": "2026-09-06T01:04:11Z", "hours": 1.7619, "text": "Stax — hybrid sort, a real auto-sort toggle, and settings that finally live where they should Stax groups browser tabs into color-coded groups. Local domain rules by default, plus an optional AI pass (Claude or Gemini, your own key) for tabs that don’t match anything obvious. What I did Local rule matching and AI grouping used to be two separate paths. Smart Sort only ran local rules. A separate button re-ran AI on everything from scratch and ignored what local rules had already sorted, so tabs the local rules couldn’t place just sat there ungrouped even with an API key set. I merged these into one pipeline: local rules run first since they’re instant, free, and work offline, and only the leftover tabs get handed to AI. If the AI call fails, it now falls back to the local result instead of breaking the whole action. The auto-sort-on-new-tab toggle in Preferences used to be fake. It wrote a value to storage that nothing ever read, so flipping the switch did literally nothing. Wired it up for real, debounced per window so restoring a saved session doesn’t fire a sort for every single tab. Settings and the custom domain-rule editor used to live on a separate page you had to open in a new tab. Moved the whole thing into the popup as a second screen, and built a side panel that mirrors it with live updates as tabs and groups change, so you’re not stuck refreshing manually. Issues I ran into and fixed Keyword classifier false positives. The fallback classifier (kicks in when a domain isn’t in the built-in list) was doing plain substring matching on hostnames. “shop” was matching photoshop.adobe.com , “dev” was matching random domains that just happened to contain those letters. Switched it to match whole hostname tokens instead, which kills the false positives without losing the keyword coverage. Extension pages slipping through. chrome-extension:// pages weren’t excluded from sorting the way chrome:// pages were. The old regex only matched schemes ending right after the browser name, so extension pages like the built-in PDF viewer could end up grouped under a garbage name based on the extension ID. Fixed the exclusion list to cover that too. Silent save failures. Settings saves had zero error handling around chrome.storage.sync.set . That API has an 8KB-per-item quota, so enough custom rules could make a save fail silently while the UI still said “Saved.” Wrapped it in a try/catch so a failed save actually tells you it failed now. Dead options page. After moving settings into the popup, the old separate options.html / options.js page wasn’t wired to anything in the manifest anymore. It was just dead code sitting in the repo doing nothing. Deleted it instead of fixing a page nobody could ever reach. What’s next Nothing blocking, the extension works end to end. For later: popup.js and sidepanel.js currently duplicate a few small helper functions (glyph lookup, sending messages), so I’d like to pull those into one shared file so I’m not editing the same logic twice."}]...
|
Title: Frictionless by @prada | Stardance
Devlogs Title: Frictionless by @prada | Stardance
Devlogs:
Stax — hybrid sort, a real auto-sort toggle, and settings that finally live where they should Stax groups browser tabs into color-coded groups. Local domain rules by default, plus an optional AI pass (Claude or Gemini, your own key) for tabs that don’t match anything obvious. What I did Local rule matching and AI grouping used to be two separate paths. Smart Sort only ran local rules. A separate button re-ran AI on everything from scratch and ignored what local rules had already sorted, so tabs the local rules couldn’t place just sat there ungrouped even with an API key set. I merged these into one pipeline: local rules run first since they’re instant, free, and work offline, and only the leftover tabs get handed to AI. If the AI call fails, it now falls back to the local result instead of breaking the whole action. The auto-sort-on-new-tab toggle in Preferences used to be fake. It wrote a value to storage that nothing ever read, so flipping the switch did literally nothing. Wired it up for real, debounced per window so restoring a saved session doesn’t fire a sort for every single tab. Settings and the custom domain-rule editor used to live on a separate page you had to open in a new tab. Moved the whole thing into the popup as a second screen, and built a side panel that mirrors it with live updates as tabs and groups change, so you’re not stuck refreshing manually. Issues I ran into and fixed Keyword classifier false positives. The fallback classifier (kicks in when a domain isn’t in the built-in list) was doing plain substring matching on hostnames. “shop” was matching photoshop.adobe.com , “dev” was matching random domains that just happened to contain those letters. Switched it to match whole hostname tokens instead, which kills the false positives without losing the keyword coverage. Extension pages slipping through. chrome-extension:// pages weren’t excluded from sorting the way chrome:// pages were. The old regex only matched schemes ending right after the browser name, so extension pages like the built-in PDF viewer could end up grouped under a garbage name based on the extension ID. Fixed the exclusion list to cover that too. Silent save failures. Settings saves had zero error handling around chrome.storage.sync.set . That API has an 8KB-per-item quota, so enough custom rules could make a save fail silently while the UI still said “Saved.” Wrapped it in a try/catch so a failed save actually tells you it failed now. Dead options page. After moving settings into the popup, the old separate options.html / options.js page wasn’t wired to anything in the manifest anymore. It was just dead code sitting in the repo doing nothing. Deleted it instead of fixing a page nobody could ever reach. What’s next Nothing blocking, the extension works end to end. For later: popup.js and sidepanel.js currently duplicate a few small helper functions (glyph lookup, sending messages), so I’d like to pull those into one shared file so I’m not editing the same logic twice.
Stax Devlog 2!!! / What I did Before this update, Stax could only group a tab if I had explicitly hardcoded its exact domain into the background script. Anything else just got dumped into a generic grey group, which meant the extension barely worked unless I had manually added the site beforehand. I overhauled the classification logic so it looks for broader patterns instead of fixed domain lists. It now checks domain endings like .shop or .bank , path keywords like /cart or /checkout , platform routes like /pull/42 , and active page titles as a fallback so a tab named “Your boarding pass” gets caught under Travel even on a random airline site. I also cleaned up the codebase structure. popup.js and sidepanel.js were sharing a bunch of copy-pasted helper functions. I moved those out into a shared script file so I’m not maintaining the exact same logic in two places. Issues I ran into and fixed Keyword classifier false positives. The old string check was matching shop anywhere inside a URL string. That meant photoshop.adobe.com was getting sorted straight into Shopping. Switched it to match proper hostname boundaries so creative tools don’t end up in shopping groups. Code duplication across UI files. Having identical helper functions in both popup.js and sidepanel.js meant any bug fix had to be applied twice. Extracted them into a common utility script to keep both views in sync. What’s next Workspaces. Saving full tab group setups to chrome.storage.local so you can close an entire session and restore it later. Command Palette. Adding a Cmd+K / Ctrl+K search overlay to quickly search across all open tabs and jump to them instantly.
8+ Hours of Stax: Big Updates & Quality-of-Life Improvements! 🚀 What started as “Stax is working fine” quickly turned into an 8+ hour feature binge! Stax was doing its job, but I knew it could be even better. Here is a breakdown of the new features added to save memory, boost performance, and make your workflow smoother: Instant Undo Action: Accidentally sorted or deduplicated tabs? You can now undo your last action with a single click to restore your workspace immediately. Suspend Inactive Tabs: Free up memory and boost browser performance by freezing idle background tabs directly from the extension. Save & Restore Sessions: Working across multiple projects? Easily save your current session and reopen it anytime from the new Saved Sessions tab. Enhanced Smart Sort & AI Methods: Re-engineered category patterns and AI matching rules to deliver cleaner, faster, and far more accurate tab organization. Quick Switch Search: Easily find and jump to any tab or open website using the new search icon command palette.
Snooze lets you close a tab and pick when it comes back. In an hour, tonight, tomorrow morning, this weekend, next week. Tab disappears and reopens on its own. Timing was annoying to get right. First version just added hours, so “tomorrow morning” meant 24 hours from now, useless if you snooze at 11pm. Now it resolves against the actual clock. Also had to catch presets landing in the past, like asking for “this evening” at 9pm, because then the alarm fires instantly and the tab just blinks. Surviving a restart was the other problem. I went with setTimeout first which is completely wrong for MV3, the background worker gets killed and takes every timeout with it. Switched to chrome.alarms, which the browser re-delivers even after you quit Chrome. Added a startup check too since alarms can get missed if Chrome was closed when one was due. Small fix: Find only worked with the mouse before. Arrow keys move through results now, Enter opens, Escape clears. If nothing matches, Enter falls through to AI search.
Ships:
Last update was mostly optimizations and bug fixes, but this ship is all about new features, UI cleanups, and a big Stacklet overhaul. Main focus was making everything feel alive, fixing layout glitches, and giving better tab control without hogging memory. UI/UX Fixes: Fixed a splash screen rendering a ghost duplicate over onboarding Fixed tutorial highlights misaligning mid-scroll Added a scroll container so the accessories panel doesn’t get cut off by popup height limits Fixed Stacklet’s positioning so he actually stands on the logo instead of floating next to it Bug Fixes: Fixed a duplicate const declaration that silently crashed an entire script file Fixed typewriter animation where overlapping text streams canceled each other mid-sentence New Features: Stacklet overhaul: rebuilt him with a full animation rig (antenna lag, arm overshoots, squash jumps) Instant Undo: one-click undo if you accidentally sort or deduplicate tabs Tab suspension & Read Later: freezes idle tabs and saves week-old tabs automatically Quick Search: command palette style launcher to jump to any tab fast Spent ~28 hours (only 11 logged…) on this build getting the physics and UI quirks sorted out. Next up is polishing based on feedback. If you test it out and have ideas, drop a review or ping me on GitHub / Discord (fraghaft)!...
|
1793350099.9526653
|
1793436499.9526653
|
|
59123
|
PCB ruler for my electronics club by @Toma_Kuchta PCB ruler for my electronics club by @Toma_Kuchta | Stardance...
|
Toma_Kuchta
|
0
|
7.81
|
0
|
[]
|
[{"post_id": 67556, "ts": "202 [{"post_id": 67556, "ts": "2026-09-13T18:10:26Z", "hours": 0.9558, "text": "🐾 It’s looking like it’s finished! And I loooove the finished product! So this devlog is purely just about shipping. After completing it I’ve exported it using kicad pcb tools and threw it right onto the JLCPCB site to choose colors! And after discussing with my brother white seemed the sleakest. Also I know that HASL with lead is the cheapest surface finish, but I didn’t want to give the kiddows lead poisoning. Anyways super happy with this simple project."}, {"post_id": 66454, "ts": "2026-09-12T09:08:54Z", "hours": 2.3167, "text": "It’s almost finished After drafting up the back I’ve randomly scatered the components and it wasn’t looking all that exiting so I’ve thought about importing graphics And it was a good idea, but like now there is so much going on in the back that it’s crazy. Overall I love it so much!!! And can’t wait for the kidos in the club to have it in theirs hands. Next up is panelization to get the cost down. And can’t forget about shipping."}, {"post_id": 66122, "ts": "2026-09-11T18:49:20Z", "hours": 4.5361, "text": "So I’ve started making the ruler. And got carried away a bit. It’s turning out to be super coooooooooooooooooool. The front side should be simple electronic components and I haven’t really thought about the bottom all that much but I think it should be more advanced and with quick reference table. This one diferes from all of the other PCB rulers because this one should be a reference for begining collage students that doesn’t know all that much about electronics and this is like theire buddy that helps them with navigating in components, footprints and schematic symbols. I’ve taken inspiration from my brothers ruler and the trace ruler."}]...
|
Title: PCB ruler for my electronics club by @Toma_ Title: PCB ruler for my electronics club by @Toma_Kuchta | Stardance
Devlogs:
So I’ve started making the ruler. And got carried away a bit. It’s turning out to be super coooooooooooooooooool. The front side should be simple electronic components and I haven’t really thought about the bottom all that much but I think it should be more advanced and with quick reference table. This one diferes from all of the other PCB rulers because this one should be a reference for begining collage students that doesn’t know all that much about electronics and this is like theire buddy that helps them with navigating in components, footprints and schematic symbols. I’ve taken inspiration from my brothers ruler and the trace ruler.
It’s almost finished After drafting up the back I’ve randomly scatered the components and it wasn’t looking all that exiting so I’ve thought about importing graphics And it was a good idea, but like now there is so much going on in the back that it’s crazy. Overall I love it so much!!! And can’t wait for the kidos in the club to have it in theirs hands. Next up is panelization to get the cost down. And can’t forget about shipping.
🐾 It’s looking like it’s finished! And I loooove the finished product! So this devlog is purely just about shipping. After completing it I’ve exported it using kicad pcb tools and threw it right onto the JLCPCB site to choose colors! And after discussing with my brother white seemed the sleakest. Also I know that HASL with lead is the cheapest surface finish, but I didn’t want to give the kiddows lead poisoning. Anyways super happy with this simple project....
|
1792784958.9051092
|
1793389758.9051092
|
|
59284
|
Eaglescout by @maxicode | Stardance
|
maxicode
|
0
|
26.99
|
0
|
[]
|
[{"post_id": 67559, "ts": "202 [{"post_id": 67559, "ts": "2026-09-13T18:13:49Z", "hours": 9.095, "text": "i made the report submission menu"}, {"post_id": 64013, "ts": "2026-09-08T03:48:05Z", "hours": 17.8983, "text": "you’re probably wondering why the first devlog of this project is so long. it’s because i spent far too long wrangling typescript+cloudflare workers+openapi+dart+flutter into submission, not helped by the fact that i’ve never used flutter (oops). anyways i finally finished an initial api design for dynamic data definition and scouting reports. i also made form and competition editing menus in flutter, including a custom timezone picker that also took far too long :(."}]...
|
Title: Eaglescout by @maxicode | Stardance
Devlog Title: Eaglescout by @maxicode | Stardance
Devlogs:
you’re probably wondering why the first devlog of this project is so long. it’s because i spent far too long wrangling typescript+cloudflare workers+openapi+dart+flutter into submission, not helped by the fact that i’ve never used flutter (oops). anyways i finally finished an initial api design for dynamic data definition and scouting reports. i also made form and competition editing menus in flutter, including a custom timezone picker that also took far too long :(.
i made the report submission menu...
|
1792792227.4939973
|
1793397027.4939973
|
|
15828
|
speech to text by @faz | Stardance
|
faz
|
0
|
1.02
|
0
|
[]
|
[{"post_id": 6756, "ts": "2026 [{"post_id": 6756, "ts": "2026-06-11T09:45:29Z", "hours": 1.0222, "text": "Devlog 01 started my speech-to-text project today got microphone input working with SoundDevice and set it up so it constantly listens in small chunks. RMS volume to figure out whether I’m speaking or not, and then storing only the audio that actually contains speech i also added silence detection so when I stop talking for about half a second, it assumes I’ve finished a sentence and sends the audio off to Faster-Whisper for transcription. transcription runs in a separate thread so the microphone can keep listening while Whisper does its thing had to mess around with locks and a few state variables to stop duplicate transcriptions from happening, but it’s working pretty well now. right now it can listen, detect when I’m speaking, wait for me to finish, and then print the transcribed text automatically. still needs some tweaking though. the silence detection isn’t perfect and I’m creating a lot of threads right now, which probably isn’t the best approach long term start of the code is in the photo, i’m at like 102 lines"}]...
|
Title: speech to text by @faz | Stardance
Devlogs Title: speech to text by @faz | Stardance
Devlogs:
Devlog 01 started my speech-to-text project today got microphone input working with SoundDevice and set it up so it constantly listens in small chunks. RMS volume to figure out whether I’m speaking or not, and then storing only the audio that actually contains speech i also added silence detection so when I stop talking for about half a second, it assumes I’ve finished a sentence and sends the audio off to Faster-Whisper for transcription. transcription runs in a separate thread so the microphone can keep listening while Whisper does its thing had to mess around with locks and a few state variables to stop duplicate transcriptions from happening, but it’s working pretty well now. right now it can listen, detect when I’m speaking, wait for me to finish, and then print the transcribed text automatically. still needs some tweaking though. the silence detection isn’t perfect and I’m creating a lot of threads right now, which probably isn’t the best approach long term start of the code is in the photo, i’m at like 102 lines...
|
1793408017.761826
|
1794012817.761826
|
|
61608
|
Kibb Bot by @KibbTheFox | Stardance
|
KibbTheFox
|
0
|
1.18
|
0
|
[]
|
[{"post_id": 67568, "ts": "202 [{"post_id": 67568, "ts": "2026-09-13T18:26:19Z", "hours": 0.4211, "text": "Slack Bot Devlog 2 I added a few more commands: /kibb-aboutme (about my fursona) /kibb-aboutcreator (about me) /kibb-musicrec (the music I like) There are a few things I would do with this bot if I knew how to but google isn’t helping :( For some reason the pfp isn’t updating??"}, {"post_id": 67101, "ts": "2026-09-13T04:58:58Z", "hours": 0.76, "text": "Slack Bot Devlog 1 3 Commands so far: /kibb-meow - meows /kibb-help - help menu /kibb-foxpic - generates fox pic I had an unreasonable amount of trouble with github (accidentally created the same repo twice and broke it and I was creating and deleting repos trying to fix it for 20 minutes straight)"}]...
|
Title: Kibb Bot by @KibbTheFox | Stardance
Devlog Title: Kibb Bot by @KibbTheFox | Stardance
Devlogs:
Slack Bot Devlog 1 3 Commands so far: /kibb-meow - meows /kibb-help - help menu /kibb-foxpic - generates fox pic I had an unreasonable amount of trouble with github (accidentally created the same repo twice and broke it and I was creating and deleting repos trying to fix it for 20 minutes straight)
Slack Bot Devlog 2 I added a few more commands: /kibb-aboutme (about my fursona) /kibb-aboutcreator (about me) /kibb-musicrec (the music I like) There are a few things I would do with this bot if I knew how to but google isn’t helping :( For some reason the pfp isn’t updating??...
|
1793040727.2404768
|
1793645527.2404768
|
|
61785
|
NASA APOD Explorer by @ANX69 | Stardance
|
ANX69
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T07:10:52Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a NASA APOD Explorer that fetches NASA’s Astronomy Picture of the Day using the NASA API. It shows the daily image or video along with its title and explanation. The challenging part was getting the API connection working and making sure the API key stayed out of the public code. I also had to set up the project with Vite and deploy it through GitHub Pages. I’m proud that I was able to take the basic guide project and change the design to make it more colorful and my own. To test it, open the project using the Try project button. It will load NASA’s APOD and display the current picture or video and its information.", "repo": "https://github.com/anuragnimavat05/nasa-apod", "demo": "https://anuragnimavat05.github.io/nasa-apod/"}]...
|
[{"post_id": 67569, "ts": "202 [{"post_id": 67569, "ts": "2026-09-13T18:26:29Z", "hours": 1.0122, "text": "I built a NASA APOD Explorer that gets the Astronomy Picture of the Day from NASA’s API. I worked on the JavaScript API connection and then styled the page to make it more colorful and responsive. I also added my own design instead of keeping the basic guide styling."}]...
|
Title: NASA APOD Explorer by @ANX69 | Stardance
D Title: NASA APOD Explorer by @ANX69 | Stardance
Devlogs:
I built a NASA APOD Explorer that gets the Astronomy Picture of the Day from NASA’s API. I worked on the JavaScript API connection and then styled the page to make it more colorful and responsive. I also added my own design instead of keeping the basic guide styling.
Ships:
I made a NASA APOD Explorer that fetches NASA’s Astronomy Picture of the Day using the NASA API. It shows the daily image or video along with its title and explanation. The challenging part was getting the API connection working and making sure the API key stayed out of the public code. I also had to set up the project with Vite and deploy it through GitHub Pages. I’m proud that I was able to take the basic guide project and change the design to make it more colorful and my own. To test it, open the project using the Try project button. It will load NASA’s APOD and display the current picture or video and its information....
|
1793415103.178674
|
1793501503.178674
|
|
9942
|
ARES by @Ankit | Stardance
|
Ankit
|
0
|
2.22
|
0
|
[]
|
[{"post_id": 6757, "ts": "2026 [{"post_id": 6757, "ts": "2026-06-11T09:45:59Z", "hours": 2.2194, "text": "ARES Devlog — Virtual Mother Rover Online Today I completed the first end-to-end rover pipeline. Completed: ✅ Backend Ground Server ✅ WebSocket Communication ✅ Frontend Integration ✅ Virtual Mother Rover Simulator ✅ Mission Control Integration ✅ Live Map Integration ✅ Telemetry Integration The dashboard is now receiving live rover state packets from a simulated Mother Rover. Current metrics streamed: • Battery • Signal Strength • Temperature • Speed • Heading • Coordinates Current Architecture: Virtual Mother Rover ↓ FleetPacket ↓ Backend ↓ WebSocket ↓ Mission Control Live Map Telemetry Next Step: Create a hardware-compatible Mother Rover Adapter so a real ESP32 rover can replace the simulator without changing frontend code."}]...
|
Title: ARES by @Ankit | Stardance
Devlogs:
ARES D Title: ARES by @Ankit | Stardance
Devlogs:
ARES Devlog — Virtual Mother Rover Online Today I completed the first end-to-end rover pipeline. Completed: ✅ Backend Ground Server ✅ WebSocket Communication ✅ Frontend Integration ✅ Virtual Mother Rover Simulator ✅ Mission Control Integration ✅ Live Map Integration ✅ Telemetry Integration The dashboard is now receiving live rover state packets from a simulated Mother Rover. Current metrics streamed: • Battery • Signal Strength • Temperature • Speed • Heading • Coordinates Current Architecture: Virtual Mother Rover ↓ FleetPacket ↓ Backend ↓ WebSocket ↓ Mission Control Live Map Telemetry Next Step: Create a hardware-compatible Mother Rover Adapter so a real ESP32 rover can replace the simulator without changing frontend code....
|
1793418930.7982457
|
1794023730.7982457
|
|
61562
|
Pinkboard by @watermelonman | Stardance
|
watermelonman
|
0
|
3.28
|
0
|
[]
|
[{"post_id": 67572, "ts": "202 [{"post_id": 67572, "ts": "2026-09-13T18:27:00Z", "hours": 1.1275, "text": "Day 2 cont, still confused. Making progress tho! I currently have the base for my enclosure, but thats kinda it… Took me good hour to make this and I’m not quite sure if it’s right. Any help is greatly appreciated!"}, {"post_id": 67463, "ts": "2026-09-13T15:59:52Z", "hours": 0.9317, "text": "Day 2! Decided I wanted 4 buttons, and I spent some time trying to figure out to make the little face, lol. This is all super confusing, but I’m making progress. The whole 3d modeling things seems pretty daunting; I tried some yesterday but have not tried again. That might be a later today/later this week problem (·•᷄ࡇ•᷅ )"}, {"post_id": 67030, "ts": "2026-09-13T02:11:17Z", "hours": 1.2169, "text": "Starts on the pink board! I’ve mostly just been following the guide and getting used to the programs. Trying to use Fusion 360 has proven quite difficult, but I am learning!"}]...
|
Title: Pinkboard by @watermelonman | Stardance
De Title: Pinkboard by @watermelonman | Stardance
Devlogs:
Starts on the pink board! I’ve mostly just been following the guide and getting used to the programs. Trying to use Fusion 360 has proven quite difficult, but I am learning!
Day 2! Decided I wanted 4 buttons, and I spent some time trying to figure out to make the little face, lol. This is all super confusing, but I’m making progress. The whole 3d modeling things seems pretty daunting; I tried some yesterday but have not tried again. That might be a later today/later this week problem (·•᷄ࡇ•᷅ )
Day 2 cont, still confused. Making progress tho! I currently have the base for my enclosure, but thats kinda it… Took me good hour to make this and I’m not quite sure if it’s right. Any help is greatly appreciated!...
|
1793040695.5460188
|
1793645495.5460188
|
|
16571
|
mocha by @Glitchy | Stardance
|
Glitchy
|
1
|
101.0
|
1806
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T18:57:02Z", "hours": 101.0, "multiplier": 17.94, "payout": 1806, "blessing": "neutral", "text": "I made a package manager for Windows, which is somewhat backwards compatible with scoop packages. To be honest there’s still a lot of work that I want to do, but I have exams and college application coming up soon so I can’t. That’s not to say I’m not happy with the state of the ship. At the very least it has all the core features that a package manager should have, but there are still a lot of bugs which is why this is only v0.0.1. The biggest challenge by far was trying to figure out how Scoop does things internally. A lot of stuff just doesn’t have documentation, so you have to dig through the really messy PowerShell source code.", "repo": "https://github.com/Protract-123/mocha", "demo": "https://github.com/Protract-123/mocha/releases/latest"}]...
|
[{"post_id": 67579, "ts": "202 [{"post_id": 67579, "ts": "2026-09-13T18:33:17Z", "hours": 1.7761, "text": "So I wrote a README, added a license (MIT of course) and setup CI/CD so that releases are automatically built and deployed. Honestly I forgot how hard it is to write a good README. You need to get a lot of information through without it looking like a wall of text."}, {"post_id": 67267, "ts": "2026-09-13T10:36:48Z", "hours": 5.8047, "text": "I forgot to make a devlog in between so this will be like 2 bigger devlogs. I parallelized bucket updates, which speeds it up quite a bit. This also allowed me to try out parallelism even more, which I plan to apply throughout the CLI later on. I also added configuration options for the runners which mocha shim will use to run certain file types. For example, you can set the python-runner to select the python version that’ll be used to run python scripts that are shimmed. Downloads now have a progress bar, so you don’t need to wonder whether something is happening or not during a long download. Finally env_set is fully supported since I added the relevant variable parsing. This was pretty much just me cleaning out the TODO list before I ship. I also did a lot of smaller bug fixes and refactors as seen below. fix(commands): prevent app installation if already installed (cb27d07) fix(commands): fix config opening with “start” (74f3679) fix(commands): correctly handle non-apps when upgrading (f7419f6) fix: make LogOutput go to Stdout not Stderr (bc10357) fix: handle empty versions correctly (2287da9) fix(pkg): remove correct temp dir (33189b6) fix(shim): warn for unknown shim extension (622c2b4) fix: skip downloads with no hash by default (69d4e35) fix: use correct timeout for downloads (44e527b) fix: drop unnecessary return value from GetExecutableEntries (9fd845c) fix(config): remove unused option (1339971) fix(commands): don’t error for valid results (87c4d6c) refactor(config): rename variables/functions (f253d9d) fix: use unique temp directories (a159e23) refactor: use fmt.Fprintln directly (d2d54bf)"}, {"post_id": 65401, "ts": "2026-09-10T14:55:22Z", "hours": 2.5386, "text": "Lots of small bug fixes and changes, I’ll just list them out: feat(cmd): allow removal of multiple shims in one execution (f2fae3f) fix(manifest): correctly ignore invalid shortcut entries (6a08478) fix(fileops): use correct registry type (5d5d796) fix(config): seed config with defaults (9dfaaff) fix(cmd): use correct release sources (a2a9ba1) fix(cmd): use bucket from install info (5a9109b) I also added support for more file types being shimmed, which helps a lot with compatibility. The file types are .py , .bat , .cmd , .jar and .ps1 ."}, {"post_id": 52474, "ts": "2026-08-22T16:37:15Z", "hours": 4.6758, "text": "Lot of time going into this devlog, but it makes sense since I did do a lot. I did this sweeping refactor of the entire commands module which moved around a lot of code. Essentially each command now gets it’s own directory under the commands module that represents it’s children/parents. For example commands/shim/remove/cmd.go contains code for the mocha shim remove command. Each cmd.go contains a Command struct that has the relevant fields and functions attached to it. This structure just makes things more organized and also means adding test files will be a bit easier since functionality is now isolated. I also sorted out the shim binary. So essentially https://github.com/ScoopInstaller/Shim offers different version of the shim binary which can be installed. Previously I hard coded the code to install cpp v0.1.0 but now users can run mocha shim binary releases to see the options and mocha shim binary setup to install their chosen binary. This also means we actually get the latest releases from GitHub."}, {"post_id": 51141, "ts": "2026-08-20T17:11:51Z", "hours": 3.6722, "text": "Finally got a bit of time to do a bit of development. First thing I did was remove a field from install.json to match scoop . This means that mocha should be a drop in replacement for existing scoop installs. Then I added partial support for env_set and env_add_path . The main thing I need to do to complete the feature is parse variables and replace them with the appropriate paths. These 2 fields are some of the last manifest fields I need to support besides pre/post (un)install hooks."}, {"post_id": 34596, "ts": "2026-07-25T13:39:02Z", "hours": 2.5778, "text": "My summer break has ended so development is going to be a lot slower from now. I added mocha outdated so you can list outdated apps before upgrading them to a newer version. Besides that I tweaked a lot of stuff related to CLI output. For example I changed search to output one table, and simply outputting exact matches at the top of that table. I also changed a lot of messages which were using LogOutput to LogInfo so they use the correct color and output to stderr and not stdout ."}, {"post_id": 31801, "ts": "2026-07-20T14:04:04Z", "hours": 1.5481, "text": "Not sure why I didn’t do this earlier, but I’ve added success messages to commands where it makes sense. Also added a success color to the config so you can change what the success color is. I do still need to improve CLI output quite a bit, but it’s slowly getting there."}, {"post_id": 30693, "ts": "2026-07-18T14:02:54Z", "hours": 2.1922, "text": "I’m writing this one right before F1 Qualifying at Spa! Continuing with the trend of some of my recent work, I improved what table outputs look like to be a little bit more readable. We now use proper separators in the form of Unicode Box Drawing Characters . I also made column alignment configurable, which improves legibility for some commands like mocha bucket list and mocha cache show . I’ve attached an image of the scoop and mocha versions of bucket list so you can compare for yourself."}, {"post_id": 30286, "ts": "2026-07-17T18:51:34Z", "hours": 3.4797, "text": "I love refactoring!!!! I’ll probably end up spending another 20 hours just on refactoring because it’s so fun!!!! This time around I wanted to refactor the code so that our commands orchestrate stuff instead of the helper functions. For example, pkg.Install would first download a package, then install it, and then link it through shims and shortcuts all by itself. This causes issues because it means error messages become slightly worse, and it creates a class of bugs due to edge cases where we don’t necessarily want this order of orchestration. Hence I did a lot of refactoring in the pkg module. I also ended up adding a way to skip verification of downloads when downloading, installing or updating a package through --skip-verify . It’s a useful option in situations where there is a malformed manifest or simply no hash to begin with."}, {"post_id": 30054, "ts": "2026-07-17T10:28:53Z", "hours": 4.6269, "text": "mocha now supports a user defined theme for output colors. In the process I ended up doing a lot of stuff related to the config. First thing I did was swap to fatih/color for colored output, since it handles stuff like colors in command prompt and removing color when output is piped. Then I refactored the config module. Earlier I would pass around a MochaConfiguration object through every function. Now I use a config singleton that’s accessible from any function. Why? Because it means I don’t need to pass the object every time I want to log information. Also means I don’t need to pass mochaDir through almost every function in the codebase. Getting user defined themes was a bit complicated because I needed a good way to handle a default theme so output doesn’t look bad if parsing fails. I handled this by only using the configured theme if every color resolves properly. Otherwise output falls back to the already loaded default theme. Due to this you still get colored output even if there are errors or warning before the configuration and theme is loaded."}, {"post_id": 29066, "ts": "2026-07-15T18:30:47Z", "hours": 4.7214, "text": "So I’ve been doing a bit of refactoring, a bit of bug fixing and a bit of optimization. Essentially just polishing mocha before I work on the next feature. Here’s some of the stuff I did: created tests for ParseRefString to validate behavior cache manifest json between info calls since I/O is really slow bumped dependency versions refactored manifest/info.go Besides that I fixed the uninstall flow since it was really bugged after the latest changes. Essentially mocha would uninstall apps with incorrect info. It would also try to remove shims/shortcuts for apps which don’t have any active shims/shortcuts. I then added a bit of logging since the uninstall command didn’t give any user output for whatever reason (i forgot to earlier)."}, {"post_id": 27086, "ts": "2026-07-12T10:29:45Z", "hours": 6.4975, "text": "This is going to be the equivalent of 2 devlogs since I thought I made one earlier for persists but I didn’t. New feature! We now handle persist items in order to store data between versions. These are files which are persisted between versions of an app. Lets take git as an example to explain why persist exists. Say you want to make sure your git config isn’t deleted every time you update. The issue with this is that the config file is saved in the version specfic directory. To resolve this we can keep the config in $MOCHA_DIR/persist and then symlink the config to where it needs to be, which is essentially what persist tells us to do. Since we handled persist items last time we can now implement mocha upgrade to update apps. The way scoop handles updates is by first removing anything that references the app, like shortcuts or shims . Then we just follow the install process from scratch. This leaves the old version available in case a user wants to revert versions due to a bug, while also updating to the latest available version. This can be seen in the video below, which shows me updating llama.cpp-hip-radeon ."}, {"post_id": 23572, "ts": "2026-07-06T16:39:13Z", "hours": 3.53, "text": "We now create shortcuts! This means any GUI apps should show up properly in the start menu, just like they do when you install with scoop . All I really had to do was a bit of orchestration since I decided to vendor in an implementation from https://github.com/jxeng/shortcut Besides that I expanded the number of apps that are supported by implementing a bit of code that handle architecture specific bin fields, along with bin fields which store 2D arrays. I also cleared up some of the TODO items. I swapped the junction implementation to an implementation from https://github.com/nyaosorg/go-windows-junction since we were previously shelling out to CLI. That and I added a bit more zip bomb protection For the purposes of the video below I changed the location which shortcuts get put to my desktop. It’ll probably be configurable, and match scoop by putting shortcuts in the startup menu by default"}, {"post_id": 22839, "ts": "2026-07-05T13:36:18Z", "hours": 3.3089, "text": "As I mentioned in the previous devlog I added good help information to every bit of the CLI. It’s surprisingly difficult to write good help messages which explains everything to users in a few words I also changed the behaviour of the mocha cache clear command to not clear all cache by default. That’s now gated behind the --all flag in order to match scoop a bit more"}, {"post_id": 21420, "ts": "2026-07-03T11:02:24Z", "hours": 1.0722, "text": "Typically I don’t want to make devlogs for small stuff like this, but this is something I found really cool. So I was working on help messages for all the commands when I realized that mocha bucket list felt a bit slower than pretty much every other command. This is because we need to shell out to git 2 times per bucket, and I had 4 buckets added. While 8 git commands might not sound like a lot, it was enough to make mocha bucket list feel slow. So what I did is I parallelized the metadata fetching through an errgroup . Instead of fetching the metadata for each bucket in order, we fetch the metadata for all 4 buckets simultaneously. This led to a big performance uplift. About 3 times faster than the old version of mocha , and just over 12 times faster than scoop for this operation. See the video below."}, {"post_id": 21386, "ts": "2026-07-03T09:17:07Z", "hours": 2.2464, "text": "I finished up mocha uninstall and mocha list , which means you can actually manage installed apps instead of manually deleting them. There’s not much that goes into mocha uninstall . You just need to remove the relevant shims and app directories since the apps that mocha supports are all portable. mocha list is similarly simple. It’s just loops over the directories in $MOCHA_DIR/apps and looks for apps along with the versions installed for each app."}, {"post_id": 19910, "ts": "2026-07-01T10:53:02Z", "hours": 5.4625, "text": "So I added support for more apps by implementing more extractors. This means in theory any apps which don’t need a pre-install or post-install should work. To be more specific, I handle a few more properties on manifests. Those being extract_dir and innosetup , which inform how an app needs to be installed. I also implement 7zip and innounp as extractors to support more file formats which applications are distributed in. Of course there’s still a lot of work before I consider this ready for public use. I need to create commands for some basic operations like uninstalling, updating and listing apps. I also need to handle shortcuts otherwise GUI apps can’t be accessed from the start menu. Besides that I need to improve the user experience. As you can see in the video below mocha just sort of dumps everything to the console even if it’s not relevant. Help menus are also critical to get working properly."}, {"post_id": 18238, "ts": "2026-06-29T09:51:16Z", "hours": 3.7839, "text": "Finished up the code cleanup in commands , fileops and manifests . I did catch a few edge cases and some incorrect behavior in the process, which is why I always spend so much time reviewing code. I did use AI to assist with code review because I think it’s an area where AI shines. AI is really good at finding small errors or inconsistencies in the codebase which I probably wouldn’t notice. For example, it identified that the ManifestReferences argument was not a required argument for the download command, which meant no help message was displayed on incorrect usage like the other commands. One big thing I will work on eventually is console output. Right now errors are well formatted but a lot of the time commands just run stuff without providing a lot of insight into what actions they are taking which isn’t great. Even the help menu is pretty useless right now (see the image below). Extra context: A manifest reference is a pointer to an app (e.g. main/ [email protected] )"}, {"post_id": 17027, "ts": "2026-06-27T17:10:53Z", "hours": 5.3025, "text": "Before working on more features and expanding the amount of apps mocha actually supports I wanted to go through the codebase and do a lot of cleanup since the codebase is quite messy. There are silly mistakes in some files and bad implementations in others. Hence the time I spent during this period was focused on moving code to where it should be and cleaning up some edge cases, specifically related to the bucket , config and shim modules. A good example of this is moving the code to get the active config to the config module instead of leaving it in main.go . Next up will be refactoring the commands , fileops , and manifest modules. I don’t have much to show so I figured I would present a feature I added but didn’t show earlier: the ability to skip cache hits with the --force flag when installing or downloading an app. Some context I forgot to add initially: I renamed the app module to manifest since I felt it was more accurate to what it actually handles scope wise."}, {"post_id": 15814, "ts": "2026-06-25T18:17:50Z", "hours": 2.5558, "text": "Huge milestone!!! I’ve gotten mocha install working for very basic apps! This means the entire process of downloading a file, then extracting it, then creating a junction and finally creating a shim now works for basic pieces of software! So in terms of what I actually did this devlog, I added cache hits to the download command since it’s relevant to the install command. I then implemented the aforementioned .zip extraction and junction creation. Then all that was left was a bit of orchestration, getting everything to work together properly. See a working install of innounp using mocha install below!"}, {"post_id": 15668, "ts": "2026-06-25T14:03:10Z", "hours": 0.7572, "text": "mocha update is another command which does very little but is very important. All it does is update the known_buckets file, and run git pull on all added buckets to update them. It can also update just the buckets you specify if you pass in an argument. I do need to improve the output of the command since it outputs raw git right now, but at least it’s functional. See the demo below."}, {"post_id": 14392, "ts": "2026-06-23T14:41:51Z", "hours": 6.9436, "text": "Spent a bit longer between devlogs this time, but it was worth it. So I realized the error messages were really bad. I was pretty much just passing errors up the call stack without adding any context, which isn’t great since it means our error messages will be useless to people reading them I therefore went through every single file of the codebase and wrote good error messages which add a bit of context every time we pass it up the call stack. I also did a bit of refactoring where I thought it would be worth it. For example in the shim module I now set the PE subsystem of the shim binary while it’s in memory instead of writing to disk twice. A few good examples of what the new error messages look like can be seen in the video below."}, {"post_id": 13054, "ts": "2026-06-21T10:47:05Z", "hours": 3.4069, "text": "Shims are simple in concept, complicated in reality. So essentially a shim in mocha is just an executable which calls another executable. It’s similar to a shortcut in that sense, except it shows up in $PATH Thankfully the scoop project already has a repository with 4 different implementations for the shim binary, so I can just have mocha shim download one of those binaries. The complicated part was the PE Subsystem. The PE subsystem is basically a bit of info in each binary which tells Windows whether it’s a console application, or a GUI application. We need to set the PE subsystem of the shim exe to the PE subsystem of the binary we are calling for Windows to execute the binary properly. Hence I need to read and write raw binary data. All of this is just the implementation for exe shims. Scoop itself contains implementations for .bat/.cmd , .ps1 , .jar , .py and linux binaries , all of which have wildly different implementations compared to .exe shims. The video below shows the working set of mocha shim commands (those being add , remove and list )."}, {"post_id": 12032, "ts": "2026-06-19T16:57:37Z", "hours": 1.8778, "text": "mocha cache is a simple command. It shows you what files are currently in $MOCHA_DIR/cache directory and it clears them out. One thing I noticed was that scoop cache show actually displays raw bytes instead of human readable file sizes for each cache entry, which is a bit odd since the total they display is human readable. Therefore I made my implementation mocha cache list display human readable sizes since that’s a more reasonable default."}, {"post_id": 11234, "ts": "2026-06-18T11:50:44Z", "hours": 2.2589, "text": "Fuzzy search is really really good. While implementing mocha search I noticed the results returned by scoop search were in alphabetical order, which doesn’t make a lot of sense. If I do scoop search git the first result should probably be git As a result my implementation of search uses github.com/sahilm/fuzzy which is a small library which provides a fuzzy search implementation. Scoop also checks for binary name matches, e.g. package biodiff can provide a binary called git-biodiff and show up in search results. I decided to remove this for now, since I personally find it a bit unnecessary. scoop search also lists all search results, which is okay when results are sorted alphabetically but doesn’t make sense when searches are relevance based. Therefore, by default mocha search will list exact matches plus the 20 most relevant search results. This can be overridden by the --count argument, where setting it to 0 displays all results. A demonstration of mocha search vs scoop search can be seen in the video below."}, {"post_id": 10748, "ts": "2026-06-17T17:14:41Z", "hours": 2.1597, "text": "I finished up mocha download , which surprisingly does a bit more than simply downloading files. The first thing it does is well… download the file. This is a bit more complicated than it seems though, since we need to identify the right file to download based on cpu architecture. Hence the very cursed JSON parsing I had to create. After downloading a file, we also do a hash check. We support the 4 types of file hashes which scoop support, those being sha256 , sha512 , md5 and sha1 . Currently files get downloaded to the $MOCHA_DIR/cache directory like in scoop, however we don’t actually check if there’s anything cached which can lead to repeated downloads. That’s something I’ll need to fix later on"}, {"post_id": 10131, "ts": "2026-06-16T18:54:22Z", "hours": 1.4081, "text": "I was working on the mocha download command so I can sort out fetching files, and during it I realized my current app format makes things a bit weird. mocha cat previously took in a flag for bucket through -b and a name. Scoop on the other hand uses an application reference in the format bucket/name@version . Scoop’s format is really important for downloads and installs, so it didn’t make sense to not standardize it between mocha download and mocha cat . Hence this shorter devlog! See the video below for the new usage (version numbers are ignored for mocha cat )."}, {"post_id": 10004, "ts": "2026-06-16T15:21:57Z", "hours": 2.9753, "text": "I did a bit of refactoring to split the core functionality from the command files. This means that the code for downloading and deleting buckets is separated from the code for the various commands. I’m doing this primarily for better code organization, and also to prevent import cycles. I also finished up the config system I mentioned last time. It’ll be one of the bigger improvements over scoop, which has a basic set of configuration options. TOML was the obvious choice for the config format since it is really easy to read and write. I made sure that you can put it in any of the standard locations, such as %APPDATA% and .config or in $MOCHA_DIR . Running mocha config will open the configuration in your preferred app, and also generate the default config if a configuration hasn’t been detected in any of the valid locations. Currently the configuration can be used to make mocha cat run an external program for printing manifests to stdout . See the video below for an example using bat"}, {"post_id": 8826, "ts": "2026-06-14T17:52:54Z", "hours": 2.6147, "text": "So this is a spot where I think the improvements over scoop start becoming really apparent. The scoop cat command simply prints an app’s manifest to console. However due to the long startup time of PowerShell scripts (scoop is written in PowerShell) basic stuff like scoop cat takes a second. mocha cat on the other hand is nearly instantaneous since it’s a compiled binary with almost 0 startup time. You can see how this plays out in real usage in the video below. I also half baked a config system, but it’s not finished so I’ll talk about that in the next devlog."}, {"post_id": 8586, "ts": "2026-06-14T08:48:35Z", "hours": 2.85, "text": "I finished off the remaining mocha bucket subcommands, those being add , rm and list . These commands manage “buckets” which are pretty much just package sources. mocha bucket add uses git to clone the relevant bucket into the [MOCHA_DIR]/buckets directory. By default MOCHA_DIR is [USER]/mocha mocha bucket list simply loops over the [MOCHA_DIR]/buckets directory and gets relevant info for each bucket. mocha bucket rm removes a bucket by just deleting the folder containing the bucket. For example, removing the main bucket deletes [MOCHA_DIR]/buckets/main"}, {"post_id": 8208, "ts": "2026-06-13T17:32:25Z", "hours": 2.0261, "text": "I started off with something a bit simple: mocha bucket known The known bucket list in scoop is a list of buckets which are known by the package manager in advance. These buckets don’t require the full URL to be used when using scoop bucket sub-commands. For example instead of running scoop bucket add https://github.com/ScoopInstaller/Main you can instead run scoop bucket add main As seen in the video below, mocha bucket known doesn’t do much. First it downloads buckets.json if it doesn’t exist. Then it parses the json and outputs it to console."}]...
|
Title: mocha by @Glitchy | Stardance
Devlogs:
I s Title: mocha by @Glitchy | Stardance
Devlogs:
I started off with something a bit simple: mocha bucket known The known bucket list in scoop is a list of buckets which are known by the package manager in advance. These buckets don’t require the full URL to be used when using scoop bucket sub-commands. For example instead of running scoop bucket add https://github.com/ScoopInstaller/Main you can instead run scoop bucket add main As seen in the video below, mocha bucket known doesn’t do much. First it downloads buckets.json if it doesn’t exist. Then it parses the json and outputs it to console.
I finished off the remaining mocha bucket subcommands, those being add , rm and list . These commands manage “buckets” which are pretty much just package sources. mocha bucket add uses git to clone the relevant bucket into the [MOCHA_DIR]/buckets directory. By default MOCHA_DIR is [USER]/mocha mocha bucket list simply loops over the [MOCHA_DIR]/buckets directory and gets relevant info for each bucket. mocha bucket rm removes a bucket by just deleting the folder containing the bucket. For example, removing the main bucket deletes [MOCHA_DIR]/buckets/main
So this is a spot where I think the improvements over scoop start becoming really apparent. The scoop cat command simply prints an app’s manifest to console. However due to the long startup time of PowerShell scripts (scoop is written in PowerShell) basic stuff like scoop cat takes a second. mocha cat on the other hand is nearly instantaneous since it’s a compiled binary with almost 0 startup time. You can see how this plays out in real usage in the video below. I also half baked a config system, but it’s not finished so I’ll talk about that in the next devlog.
I did a bit of refactoring to split the core functionality from the command files. This means that the code for downloading and deleting buckets is separated from the code for the various commands. I’m doing this primarily for better code organization, and also to prevent import cycles. I also finished up the config system I mentioned last time. It’ll be one of the bigger improvements over scoop, which has a basic set of configuration options. TOML was the obvious choice for the config format since it is really easy to read and write. I made sure that you can put it in any of the standard locations, such as %APPDATA% and .config or in $MOCHA_DIR . Running mocha config will open the configuration in your preferred app, and also generate the default config if a configuration hasn’t been detected in any of the valid locations. Currently the configuration can be used to make mocha cat run an external program for printing manifests to stdout . See the video below for an example using bat
I was working on the mocha download command so I can sort out fetching files, and during it I realized my current app format makes things a bit weird. mocha cat previously took in a flag for bucket through -b and a name. Scoop on the other hand uses an application reference in the format bucket/name@version . Scoop’s format is really important for downloads and installs, so it didn’t make sense to not standardize it between mocha download and mocha cat . Hence this shorter devlog! See the video below for the new usage (version numbers are ignored for mocha cat ).
I finished up mocha download , which surprisingly does a bit more than simply downloading files. The first thing it does is well… download the file. This is a bit more complicated than it seems though, since we need to identify the right file to download based on cpu architecture. Hence the very cursed JSON parsing I had to create. After downloading a file, we also do a hash check. We support the 4 types of file hashes which scoop support, those being sha256 , sha512 , md5 and sha1 . Currently files get downloaded to the $MOCHA_DIR/cache directory like in scoop, however we don’t actually check if there’s anything cached which can lead to repeated downloads. That’s something I’ll need to fix later on
Fuzzy search is really really good. While implementing mocha search I noticed the results returned by scoop search were in alphabetical order, which doesn’t make a lot of sense. If I do scoop search git the first result should probably be git As a result my implementation of search uses github.com/sahilm/fuzzy which is a small library which provides a fuzzy search implementation. Scoop also checks for binary name matches, e.g. package biodiff can provide a binary called git-biodiff and show up in search results. I decided to remove this for now, since I personally find it a bit unnecessary. scoop search also lists all search results, which is okay when results are sorted alphabetically but doesn’t make sense when searches are relevance based. Therefore, by default mocha search will list exact matches plus the 20 most relevant search results. This can be overridden by the --count argument, where setting it to 0 displays all results. A demonstration of mocha search vs scoop search can be seen in the video below.
mocha cache is a simple command. It shows you what files are currently in $MOCHA_DIR/cache directory and it clears them out. One thing I noticed was that scoop cache show actually displays raw bytes instead of human readable file sizes for each cache entry, which is a bit odd since the total they display is human readable. Therefore I made my implementation mocha cache list display human readable sizes since that’s a more reasonable default.
Shims are simple in concept, complicated in reality. So essentially a shim in mocha is just an executable which calls another executable. It’s similar to a shortcut in that sense, except it shows up in $PATH Thankfully the scoop project already has a repository with 4 different implementations for the shim binary, so I can just have mocha shim download one of those binaries. The complicated part was the PE Subsystem. The PE subsystem is basically a bit of info in each binary which tells Windows whether it’s a console application, or a GUI application. We need to set the PE subsystem of the shim exe to the PE subsystem of the binary we are calling for Windows to execute the binary properly. Hence I need to read and write raw binary data. All of this is just the implementation for exe shims. Scoop itself contains implementations for .bat/.cmd , .ps1 , .jar , .py and linux binaries , all of which have wildly different implementations compared to .exe shims. The video below shows the working set of mocha shim commands (those being add , remove and list ).
Spent a bit longer between devlogs this time, but it was worth it. So I realized the error messages were really bad. I was pretty much just passing errors up the call stack without adding any context, which isn’t great since it means our error messages will be useless to people reading them I therefore went through every single file of the codebase and wrote good error messages which add a bit of context every time we pass it up the call stack. I also did a bit of refactoring where I thought it would be worth it. For example in the shim module I now set the PE subsystem of the shim binary while it’s in memory instead of writing to disk twice. A few good examples of what the new error messages look like can be seen in the video below.
mocha update is another command which does very little but is very important. All it does is update the known_buckets file, and run git pull on all added buckets to update them. It can also update just the buckets you specify if you pass in an argument. I do need to improve the output of the command since it outputs raw git right now, but at least it’s functional. See the demo below.
Huge milestone!!! I’ve gotten mocha install working for very basic apps! This means the entire process of downloading a file, then extracting it, then creating a junction and finally creating a shim now works for basic pieces of software! So in terms of what I actually did this devlog, I added cache hits to the download command since it’s relevant to the install command. I then implemented the aforementioned .zip extraction and junction creation. Then all that was left was a bit of orchestration, getting everything to work together properly. See a working install of innounp using mocha install below!
Before working on more features and expanding the amount of apps mocha actually supports I wanted to go through the codebase and do a lot of cleanup since the codebase is quite messy. There are silly mistakes in some files and bad implementations in others. Hence the time I spent during this period was focused on moving code to where it should be and cleaning up some edge cases, specifically related to the bucket , config and shim modules. A good example of this is moving the code to get the active config to the config module instead of leaving it in main.go . Next up will be refactoring the commands , fileops , and manifest modules. I don’t have much to show so I figured I would present a feature I added but didn’t show earlier: the ability to skip cache hits with the --force flag when installing or downloading an app. Some context I forgot to add initially: I renamed the app module to manifest since I felt it was more accurate to what it actually handles scope wise.
Finished up the code cleanup in commands , fileops and manifests . I did catch a few edge cases and some incorrect behavior in the process, which is why I always spend so much time reviewing code. I did use AI to assist with code review because I think it’s an area where AI shines. AI is really good at finding small errors or inconsistencies in the codebase which I probably wouldn’t notice. For example, it identified that the ManifestReferences argument was not a required argument for the download command, which meant no help message was displayed on incorrect usage like the other commands. One big thing I will work on eventually is console output. Right now errors are well formatted but a lot of the time commands just run stuff without providing a lot of insight into what actions they are taking which isn’t great. Even the help menu is pretty useless right now (see the image below). Extra context: A manifest reference is a pointer to an app (e.g. main/ [email protected] )
So I added support for more apps by implementing more extractors. This means in theory any apps which don’t need a pre-install or post-install should work. To be more specific, I handle a few more properties on manifests. Those being extract_dir and innosetup , which inform how an app needs to be installed. I also implement 7zip and innounp as extractors to support more file formats which applications are distributed in. Of course there’s still a lot of work before I consider this ready for public use. I need to create commands for some basic operations like uninstalling, updating and listing apps. I also need to handle shortcuts otherwise GUI apps can’t be accessed from the start menu. Besides that I need to improve the user experience. As you can see in the video below mocha just sort of dumps everything to the console even if it’s not relevant. Help menus are also critical to get working properly.
I finished up mocha uninstall and mocha list , which means you can actually manage installed apps instead of manually deleting them. There’s not much that goes into mocha uninstall . You just need to remove the relevant shims and app directories since the apps that mocha supports are all portable. mocha list is similarly simple. It’s just loops over the directories in $MOCHA_DIR/apps and looks for apps along with the versions installed for each app.
Typically I don’t want to make devlogs for small stuff like this, but this is something I found really cool. So I was working on help messages for all the commands when I realized that mocha bucket list felt a bit slower than pretty much every other command. This is because we need to shell out to git 2 times per bucket, and I had 4 buckets added. While 8 git commands might not sound like a lot, it was enough to make mocha bucket list feel slow. So what I did is I parallelized the metadata fetching through an errgroup . Instead of fetching the metadata for each bucket in order, we fetch the metadata for all 4 buckets simultaneously. This led to a big performance uplift. About 3 times faster than the old version of mocha , and just over 12 times faster than scoop for this operation. See the video below.
As I mentioned in the previous devlog I added good help information to every bit of the CLI. It’s surprisingly difficult to write good help messages which explains everything to users in a few words I also changed the behaviour of the mocha cache clear command to not clear all cache by default. That’s now gated behind the --all flag in order to match scoop a bit more
We now create shortcuts! This means any GUI apps should show up properly in the start menu, just like they do when you install with scoop . All I really had to do was a bit of orchestration since I decided to vendor in an implementation from https://github.com/jxeng/shortcut Besides that I expanded the number of apps that are supported by implementing a bit of code that handle architecture specific bin fields, along with bin fields which store 2D arrays. I also cleared up some of the TODO items. I swapped the junction implementation to an implementation from https://github.com/nyaosorg/go-windows-junction since we were previously shelling out to CLI. That and I added a bit more zip bomb protection For the purposes of the video below I changed the location which shortcuts get put to my desktop. It’ll probably be configurable, and match scoop by putting shortcuts in the startup menu by default
This is going to be the equivalent of 2 devlogs since I thought I made one earlier for persists but I didn’t. New feature! We now handle persist items in order to store data between versions. These are files which are persisted between versions of an app. Lets take git as an example to explain why persist exists. Say you want to make sure your git config isn’t deleted every time you update. The issue with this is that the config file is saved in the version specfic directory. To resolve this we can keep the config in $MOCHA_DIR/persist and then symlink the config to where it needs to be, which is essentially what persist tells us to do. Since we handled persist items last time we can now implement mocha upgrade to update apps. The way scoop handles updates is by first removing anything that references the app, like shortcuts or shims . Then we just follow the install process from scratch. This leaves the old version available in case a user wants to revert versions due to a bug, while also updating to the latest available version. This can be seen in the video below, which shows me updating llama.cpp-hip-radeon .
So I’ve been doing a bit of refactoring, a bit of bug fixing and a bit of optimization. Essentially just polishing mocha before I work on the next feature. Here’s some of the stuff I did: created tests for ParseRefString to validate behavior cache manifest json between info calls since I/O is really slow bumped dependency versions refactored manifest/info.go Besides that I fixed the uninstall flow since it was really bugged after the latest changes. Essentially mocha would uninstall apps with incorrect info. It would also try to remove shims/shortcuts for apps which don’t have any active shims/shortcuts. I then added a bit of logging since the uninstall command didn’t give any user output for whatever reason (i forgot to earlier).
mocha now supports a user defined theme for output colors. In the process I ended up doing a lot of stuff related to the config. First thing I did was swap to fatih/color for colored output, since it handles stuff like colors in command prompt and removing color when output is piped. Then I refactored the config module. Earlier I would pass around a MochaConfiguration object through every function. Now I use a config singleton that’s accessible from any function. Why? Because it means I don’t need to pass the object every time I want to log information. Also means I don’t need to pass mochaDir through almost every function in the codebase. Getting user defined themes was a bit complicated because I needed a good way to handle a default theme so output doesn’t look bad if parsing fails. I handled this by only using the configured theme if every color resolves properly. Otherwise output falls back to the already loaded default theme. Due to this you still get colored output even if there are errors or warning before the configuration and theme is loaded.
I love refactoring!!!! I’ll probably end up spending another 20 hours just on refactoring because it’s so fun!!!! This time around I wanted to refactor the code so that our commands orchestrate stuff instead of the helper functions. For example, pkg.Install would first download a package, then install it, and then link it through shims and shortcuts all by itself. This causes issues because it means error messages become slightly worse, and it creates a class of bugs due to edge cases where we don’t necessarily want this order of orchestration. Hence I did a lot of refactoring in the pkg module. I also ended up adding a way to skip verification of downloads when downloading, installing or updating a package through --skip-verify . It’s a useful option in situations where there is a malformed manifest or simply no hash to begin with.
I’m writing this one right before F1 Qualifying at Spa! Continuing with the trend of some of my recent work, I improved what table outputs look like to be a little bit more readable. We now use proper separators in the form of Unicode Box Drawing Characters . I also made column alignment configurable, which improves legibility for some commands like mocha bucket list and mocha cache show . I’ve attached an image of the scoop and mocha versions of bucket list so you can compare for yourself.
Not sure why I didn’t do this earlier, but I’ve added success messages to commands where it makes sense. Also added a success color to the config so you can change what the success color is. I do still need to improve CLI output quite a bit, but it’s slowly getting there.
My summer break has ended so development is going to be a lot slower from now. I added mocha outdated so you can list outdated apps before upgrading them to a newer version. Besides that I tweaked a lot of stuff related to CLI output. For example I changed search to output one table, and simply outputting exact matches at the top of that table. I also changed a lot of messages which were using LogOutput to LogInfo so they use the correct color and output to stderr and not stdout .
Finally got a bit of time to do a bit of development. First thing I did was remove a field from install.json to match scoop . This means that mocha should be a drop in replacement for existing scoop installs. Then I added partial support for env_set and env_add_path . The main thing I need to do to complete the feature is parse variables and replace them with the appropriate paths. These 2 fields are some of the last manifest fields I need to support besides pre/post (un)install hooks.
Lot of time going into this devlog, but it makes sense since I did do a lot. I did this sweeping refactor of the entire commands module which moved around a lot of code. Essentially each command now gets it’s own directory under the commands module that represents it’s children/parents. For example commands/shim/remove/cmd.go contains code for the mocha shim remove command. Each cmd.go contains a Command struct that has the relevant fields and functions attached to it. This structure just makes things more organized and also means adding test files will be a bit easier since functionality is now isolated. I also sorted out the shim binary. So essentially https://github.com/ScoopInstaller/Shim offers different version of the shim binary which can be installed. Previously I hard coded the code to install cpp v0.1.0 but now users can run mocha shim binary releases to see the options and mocha shim binary setup to install their chosen binary. This also means we actually get the latest releases from GitHub.
Lots of small bug fixes and changes, I’ll just list them out: feat(cmd): allow removal of multiple shims in one execution (f2fae3f) fix(manifest): correctly ignore invalid shortcut entries (6a08478) fix(fileops): use correct registry type (5d5d796) fix(config): seed config with defaults (9dfaaff) fix(cmd): use correct release sources (a2a9ba1) fix(cmd): use bucket from install info (5a9109b) I also added support for more file types being shimmed, which helps a lot with compatibility. The file types are .py , .bat , .cmd , .jar and .ps1 .
I forgot to make a devlog in between so this will be like 2 bigger devlogs. I parallelized bucket updates, which speeds it up quite a bit. This also allowed me to try out parallelism even more, which I plan to apply throughout the CLI later on. I also added configuration options for the runners which mocha shim will use to run certain file types. For example, you can set the python-runner to select the python version that’ll be used to run python scripts that are shimmed. Downloads now have a progress bar, so you don’t need to wonder whether something is happening or not during a long download. Finally env_set is fully supported since I added the relevant variable parsing. This was pretty much just me cleaning out the TODO list before I ship. I also did a lot of smaller bug fixes and refactors as seen below. fix(commands): prevent app installation if already installed (cb27d07) fix(commands): fix config opening with “start” (74f3679) fix(commands): correctly handle non-apps when upgrading (f7419f6) fix: make LogOutput go to Stdout not Stderr (bc10357) fix: handle empty versions correctly (2287da9) fix(pkg): remove correct temp dir (33189b6) fix(shim): warn for unknown shim extension (622c2b4) fix: skip downloads with no hash by default (69d4e35) fix: use correct timeout for downloads (44e527b) fix: drop unnecessary return value from GetExecutableEntries (9fd845c) fix(config): remove unused option (1339971) fix(commands): don’t error for valid results (87c4d6c) refactor(config): rename variables/functions (f253d9d) fix: use unique temp directories (a159e23) refactor: use fmt.Fprintln directly (d2d54bf)
So I wrote a README, added a license (MIT of course) and setup CI/CD so that releases are automatically built and deployed. Honestly I forgot how hard it is to write a good README. You need to get a lot of information through without it looking like a wall of text.
Ships:
I made a package manager for Windows, which is somewhat backwards compatible with scoop packages. To be honest there’s still a lot of work that I want to do, but I have exams and college application coming up soon so I can’t. That’s not to say I’m not happy with the state of the ship. At the very least it has all the core features that a package manager should have, but there are still a lot of bugs which is why this is only v0.0.1. The biggest challenge by far was trying to figure out how Scoop does things internally. A lot of stuff just doesn’t have documentation, so you have to dig through the really messy PowerShell source code....
|
1793350641.8101447
|
1793437041.8101447
|
|
51568
|
Fear&Greed Index Tracker by @ajakovski07 | Sta Fear&Greed Index Tracker by @ajakovski07 | Stardance...
|
ajakovski07
|
0
|
33.21
|
0
|
[]
|
[{"post_id": 67582, "ts": "202 [{"post_id": 67582, "ts": "2026-09-13T18:44:56Z", "hours": 1.5167, "text": "Devlog #10 -> Finished for shipping I’ve finaly finished this project a lot later than excpected sadly and in particular because of the problems that i’ve mentioned in the previous devlogs (read my devlogs you reviewers heheheheh) What i did: I fixed every error i could find in README.md I sorted the firmware so that it works and looks nicely I double checked everything thati’ve published with a previously approved project Current step SHIP IT :))) Final thoughts I really enjoyed making this project but the website has so many weird restrictions. Like people getting AI cursed because copy pasting their devlogs/reviews from word to stardance while not providing a nice environment for writting them in stardance is kinda sad. Also the syncing problem made me lose 5 hours timelapsed and 3-5 hours worth of debugging and writting to #stardance-help for fixes and getting no replies. Also not to mention the days lost because i was waiting for the fix that never came. Anyways i’ve finished it and i hope that it gets approved so that i can make it in real life too!"}, {"post_id": 65816, "ts": "2026-09-11T06:35:06Z", "hours": 0.4653, "text": "Devlog#9 -> Little Bit of Coding Howdy everyone! I tested out Hackatime extention while coding and i’ve got to admit that it was huge pain untill i got it working and even after that i was loosing minutes but anyways it doesnt matter. I GOT MY HOURS BACK!!! BUT FOR NO GOOD Really i managed to re-sync my entire stardance account by creating a new similarly named project which had minutes (which was created because i had problems setting up hackatime) beforhand and caused to activate the servers full sync from lapse and hackatime. The sad part is that all of those 5 saved hours got attached to the 10 hour devlog that was created while waiting for the syncing issues to get fixed :/ Anyways I finished the code entirely and now i only need to setup everything nice and thight in my repository and it will be ready for shipping FINALLY!!!! I did loose a lot of time that will not be paid out but atleast i will get the certificate for which im excited the most:))"}, {"post_id": 64720, "ts": "2026-09-09T10:51:57Z", "hours": 0.7, "text": "I’ve lost so many timelapsed work… Another syncing issue made me loose 3:30 hours of work and now im trying once again to test if this website even works because no org wanted to solve my issue. Im down 5 hours so far on work and i dont know how will the reviewing process work out when there is missing proof of work done…. Anyways in this short timelapse i fixed, commited and synced some Github stuff that i’ve worked on before"}, {"post_id": 62892, "ts": "2026-09-06T12:49:10Z", "hours": 15.2083, "text": "The syncing issue…. Soo i lost a couple of timelapsed hours due to previous syncing problems with lapse and hackatime and lookout so i dont know how will the hours be reviewed with a gap but good luck!!!. In the matter of theese 13 hours i almost finished everything: Code Github CAD and much more tiny tasks im sad that i couldnt devlog as usual but i hope next projects tourn out normal :((( Im kinda lost on the topic what to write right now because i had to stack timelapses while waiting for the hackatime issue but the issue for me personally never got fixed so it is what it is"}, {"post_id": 55750, "ts": "2026-08-27T18:45:55Z", "hours": 6.3514, "text": "Fear&Greed Index Tracker -> Devlog #6 The design for this project is comming to an end I logged in some good hours today and i managed to got close to finishing a lot of stuff too! Here is what i did: I finished the schematic with the newly added fuel gauge Fixed errors and finished the 3D model Wrote 90% of the README file (350 lines) Researched other potential screens as a better alternative and failed Problems that i’ve faced: I had issues once again with wiring the MAX17048 but i think i got it now otherwise i will debug it irl. Other than that everything went smooth just a lot of time consuming tasks Current State: Finished the schematic Finished the 3D model Prepared README for finalising Researching the code structure Next step: Write the BOM Test components available at home Run an ERC and fix errors Start the software"}, {"post_id": 54725, "ts": "2026-08-25T20:03:15Z", "hours": 2.0336, "text": "Fear&Greed Index Tracker -> Devlog #5 Running into problems I’ve spent most of the devlog just fixing schematic issues and adding a component that doesnt have a footprint and etc. What i did : I improved my devlog standard as you can see Fixed the schematic with pinouts and improved with comments for when i build it irl Added a fuel gauge component MAX17048 Added the symbol for the MAX17048 in KiCAD Learned how to use the MAX17048 in my project Added MAX17048 in the OnShape assembly Added a bulk capacitor on ESP32 Vcc/GND Problems : I had major issues with finding and creating a fuel gauge component into my schematic and project Had issues finding a .step file for MAX17048 Current state: Almost finished the final schematic Finalizing the final list of components Finished the assembly in OnShape Started planning the code structure Next step: Finish the schematic Run a ERC check Find errors Double check 3D model and assembly Test available parts at home"}, {"post_id": 54006, "ts": "2026-08-24T19:00:35Z", "hours": 2.4336, "text": "Fear&Greed Index Tracker -> Devlog #4 Progress made!!! A locked in period of 2h 15 minutes in which i finished a bunch of critical topics in order to get closer to shipping this project. What i did: -Finished the schematic (atleast for version 1) -Almost fully finished my assembly Problems: The biggest issue was finding the correct ESP that i own at home. I got it from school a long time ago and it turns out to be a fake LXtensa6 which is like an older version and not even a real ESP32-S3 xDDD Also finding the correct parts in .step version for my assembly but its fine we sorted it out :)) Current state: Honestly im halfway done with this project! I thought it was going to be much more time consuming but i managed to design most of the stuff (hardware wise) pretty quick. Next step: -I need to make an usb-c charging hole in my 3D model -Add RGB-LED strip in my assembly -Write the BOM -Double Check schematic AAAAAAAAND then write the code in C probably cuz im a nerd……"}, {"post_id": 53279, "ts": "2026-08-23T18:47:37Z", "hours": 0.6169, "text": "Plugged in the components into KiCad Some of the desired components were lacking the schematics so i had to put them in automatically. Which is always a hustle but we figured it out thanks to SnapEda and GrabCad. Along the way i found a pretty cool website to learn from and it is called “random nerd tutorials” Just a random shoutout but i wil definetely reference some of my work from there so that i dont make mistakes. Next on my to-do list is defienetely to configure the desired pin placement of every component. I will need to read real quick the docs for the pins about the ESP32-S3 and assign the corresponding pins and PRAYYY THAT I DONT HAVE TO CHANGE THEM WHILE BUILDING IT"}, {"post_id": 51883, "ts": "2026-08-21T19:41:07Z", "hours": 2.6361, "text": "Its starting to have motion… Made my list of components complete!!! I upgraded it compared to the first drawing and thats amazing. I love iterating, devising and improving while working on my inital plan and so did i do that along the way even while recording. I am planning to add also an RGB LED strip just so that i can immitate the current situation of the market. The 3D model is also almost done and it did require some distortions of the stand that is required to lift the whole thing facing towards me while i sit on my desk. Tomorrow i will continue improving the 3D with step components and then head onto the schematic. Biggest problem of this session was surely finding the correct step down converter but we sorted it out somehow hopefully. And now thinking i realise i forgot to make a usb-c hole for the charger…. Im really exuberant about the path this project has shaped and really eager to see how will it look irl :)))"}, {"post_id": 50590, "ts": "2026-08-19T20:07:11Z", "hours": 1.2503, "text": "My first log in Journal…. I hope this journal or devlog is structured as it should considering i have only participated in Fallout before which had a bit more private journaling but anyways. IM BUILDING A SMALL GADGET FOR MY DESK!!! * And i need it to show me the daily Fear&Greed Index of the US stock market . Why? Well I trade stocks and i dont have time to check it by myself every day!!! I like keeping my stocks on the side and just scalp some profits on a monthly basis. On sum “Buy low, sell high” type shiii How? Well i am going to first of all: Find my desired components Create the schematic Create the 3D model for printing Create a PCB (Maybe asa 2.0 version) Write the code Build an MVP using modules Fit it inside the 3D box Build a 2.0v with PCB (Maybe)"}]...
|
Title: Fear&Greed Index Tracker by @ajakovski0 Title: Fear&Greed Index Tracker by @ajakovski07 | Stardance
Devlogs:
My first log in Journal…. I hope this journal or devlog is structured as it should considering i have only participated in Fallout before which had a bit more private journaling but anyways. IM BUILDING A SMALL GADGET FOR MY DESK!!! * And i need it to show me the daily Fear&Greed Index of the US stock market . Why? Well I trade stocks and i dont have time to check it by myself every day!!! I like keeping my stocks on the side and just scalp some profits on a monthly basis. On sum “Buy low, sell high” type shiii How? Well i am going to first of all: Find my desired components Create the schematic Create the 3D model for printing Create a PCB (Maybe asa 2.0 version) Write the code Build an MVP using modules Fit it inside the 3D box Build a 2.0v with PCB (Maybe)
Its starting to have motion… Made my list of components complete!!! I upgraded it compared to the first drawing and thats amazing. I love iterating, devising and improving while working on my inital plan and so did i do that along the way even while recording. I am planning to add also an RGB LED strip just so that i can immitate the current situation of the market. The 3D model is also almost done and it did require some distortions of the stand that is required to lift the whole thing facing towards me while i sit on my desk. Tomorrow i will continue improving the 3D with step components and then head onto the schematic. Biggest problem of this session was surely finding the correct step down converter but we sorted it out somehow hopefully. And now thinking i realise i forgot to make a usb-c hole for the charger…. Im really exuberant about the path this project has shaped and really eager to see how will it look irl :)))
Plugged in the components into KiCad Some of the desired components were lacking the schematics so i had to put them in automatically. Which is always a hustle but we figured it out thanks to SnapEda and GrabCad. Along the way i found a pretty cool website to learn from and it is called “random nerd tutorials” Just a random shoutout but i wil definetely reference some of my work from there so that i dont make mistakes. Next on my to-do list is defienetely to configure the desired pin placement of every component. I will need to read real quick the docs for the pins about the ESP32-S3 and assign the corresponding pins and PRAYYY THAT I DONT HAVE TO CHANGE THEM WHILE BUILDING IT
Fear&Greed Index Tracker -> Devlog #4 Progress made!!! A locked in period of 2h 15 minutes in which i finished a bunch of critical topics in order to get closer to shipping this project. What i did: -Finished the schematic (atleast for version 1) -Almost fully finished my assembly Problems: The biggest issue was finding the correct ESP that i own at home. I got it from school a long time ago and it turns out to be a fake LXtensa6 which is like an older version and not even a real ESP32-S3 xDDD Also finding the correct parts in .step version for my assembly but its fine we sorted it out :)) Current state: Honestly im halfway done with this project! I thought it was going to be much more time consuming but i managed to design most of the stuff (hardware wise) pretty quick. Next step: -I need to make an usb-c charging hole in my 3D model -Add RGB-LED strip in my assembly -Write the BOM -Double Check schematic AAAAAAAAND then write the code in C probably cuz im a nerd……
Fear&Greed Index Tracker -> Devlog #5 Running into problems I’ve spent most of the devlog just fixing schematic issues and adding a component that doesnt have a footprint and etc. What i did : I improved my devlog standard as you can see Fixed the schematic with pinouts and improved with comments for when i build it irl Added a fuel gauge component MAX17048 Added the symbol for the MAX17048 in KiCAD Learned how to use the MAX17048 in my project Added MAX17048 in the OnShape assembly Added a bulk capacitor on ESP32 Vcc/GND Problems : I had major issues with finding and creating a fuel gauge component into my schematic and project Had issues finding a .step file for MAX17048 Current state: Almost finished the final schematic Finalizing the final list of components Finished the assembly in OnShape Started planning the code structure Next step: Finish the schematic Run a ERC check Find errors Double check 3D model and assembly Test available parts at home
Fear&Greed Index Tracker -> Devlog #6 The design for this project is comming to an end I logged in some good hours today and i managed to got close to finishing a lot of stuff too! Here is what i did: I finished the schematic with the newly added fuel gauge Fixed errors and finished the 3D model Wrote 90% of the README file (350 lines) Researched other potential screens as a better alternative and failed Problems that i’ve faced: I had issues once again with wiring the MAX17048 but i think i got it now otherwise i will debug it irl. Other than that everything went smooth just a lot of time consuming tasks Current State: Finished the schematic Finished the 3D model Prepared README for finalising Researching the code structure Next step: Write the BOM Test components available at home Run an ERC and fix errors Start the software
The syncing issue…. Soo i lost a couple of timelapsed hours due to previous syncing problems with lapse and hackatime and lookout so i dont know how will the hours be reviewed with a gap but good luck!!!. In the matter of theese 13 hours i almost finished everything: Code Github CAD and much more tiny tasks im sad that i couldnt devlog as usual but i hope next projects tourn out normal :((( Im kinda lost on the topic what to write right now because i had to stack timelapses while waiting for the hackatime issue but the issue for me personally never got fixed so it is what it is
I’ve lost so many timelapsed work… Another syncing issue made me loose 3:30 hours of work and now im trying once again to test if this website even works because no org wanted to solve my issue. Im down 5 hours so far on work and i dont know how will the reviewing process work out when there is missing proof of work done…. Anyways in this short timelapse i fixed, commited and synced some Github stuff that i’ve worked on before
Devlog#9 -> Little Bit of Coding Howdy everyone! I tested out Hackatime extention while coding and i’ve got to admit that it was huge pain untill i got it working and even after that i was loosing minutes but anyways it doesnt matter. I GOT MY HOURS BACK!!! BUT FOR NO GOOD Really i managed to re-sync my entire stardance account by creating a new similarly named project which had minutes (which was created because i had problems setting up hackatime) beforhand and caused to activate the servers full sync from lapse and hackatime. The sad part is that all of those 5 saved hours got attached to the 10 hour devlog that was created while waiting for the syncing issues to get fixed :/ Anyways I finished the code entirely and now i only need to setup everything nice and thight in my repository and it will be ready for shipping FINALLY!!!! I did loose a lot of time that will not be paid out but atleast i will get the certificate for which im excited the most:))
Devlog #10 -> Finished for shipping I’ve finaly finished this project a lot later than excpected sadly and in particular because of the problems that i’ve mentioned in the previous devlogs (read my devlogs you reviewers heheheheh) What i did: I fixed every error i could find in README.md I sorted the firmware so that it works and looks nicely I double checked everything thati’ve published with a previously approved project Current step SHIP IT :))) Final thoughts I really enjoyed making this project but the website has so many weird restrictions. Like people getting AI cursed because copy pasting their devlogs/reviews from word to stardance while not providing a nice environment for writting them in stardance is kinda sad. Also the syncing problem made me lose 5 hours timelapsed and 3-5 hours worth of debugging and writting to #stardance-help for fixes and getting no replies. Also not to mention the days lost because i was waiting for the fix that never came. Anyways i’ve finished it and i hope that it gets approved so that i can make it in real life too!...
|
1793397111.8896072
|
1794001911.8896072
|
|
61851
|
WarioWare Game by @jan_j | Stardance
|
jan_j
|
0
|
0.48
|
0
|
[]
|
[{"post_id": 67584, "ts": "202 [{"post_id": 67584, "ts": "2026-09-13T18:46:01Z", "hours": 0.4767, "text": "Just started my first project here. Still struggling a bit with Godot, but getting better every hour :)"}]...
|
Title: WarioWare Game by @jan_j | Stardance
Devlo Title: WarioWare Game by @jan_j | Stardance
Devlogs:
Just started my first project here. Still struggling a bit with Godot, but getting better every hour :)...
|
1793040887.7496219
|
1793645687.7496219
|
|
61862
|
RetrOS by @atharvranjan8 | Stardance
|
atharvranjan8
|
0
|
0.53
|
0
|
[]
|
[{"post_id": 67587, "ts": "202 [{"post_id": 67587, "ts": "2026-09-13T18:52:06Z", "hours": 0.5311, "text": "Started on my webOS today. Got the welcome screen up first a little retro window with my bio and a link to my GitHub, styled like an old Windows dialog box. Then added the desktop background and a top bar with a live clock. Ran into a dumb CSS bug where I typed “font size” instead of “font-size” (forgot the hyphen, classic) which broke the bolding on the top bar text. Pushed everything to GitHub and got Pages set up so it’s live now. Next up: making the windows actually draggable and closable."}]...
|
Title: RetrOS by @atharvranjan8 | Stardance
Devlo Title: RetrOS by @atharvranjan8 | Stardance
Devlogs:
Started on my webOS today. Got the welcome screen up first a little retro window with my bio and a link to my GitHub, styled like an old Windows dialog box. Then added the desktop background and a top bar with a live clock. Ran into a dumb CSS bug where I typed “font size” instead of “font-size” (forgot the hyphen, classic) which broke the bolding on the top bar text. Pushed everything to GitHub and got Pages set up so it’s live now. Next up: making the windows actually draggable and closable....
|
1793040895.939437
|
1793645695.939437
|
|
61753
|
Zynx by @notvedansh | Stardance
|
notvedansh
|
1
|
7.0
|
16
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T19:19:59Z", "hours": 7.0, "multiplier": 2.32, "payout": 16, "blessing": "neutral", "text": "So Zynx is an image converter app that works offline. The tough part was getting the UI right, as it took me around 5 hours to complete all the UI work. It wasn’t that I got too many errors; it was rather that the visual looks that mattered. On the positive side, I am proud that the app has a nice visual appeal to it, and of course that it works. So there isn’t much to know to test this app, just check the requirements.txt if you are using the repo. Nothing else.", "repo": "https://github.com/vedansh201/Zynx", "demo": "https://github.com/vedansh201/Zynx/releases/tag/v1"}]...
|
[{"post_id": 67594, "ts": "202 [{"post_id": 67594, "ts": "2026-09-13T18:57:21Z", "hours": 6.7172, "text": "Complete app So Zynx is a desktop image converter built with pyQt6 and pillow offline. So first of all i started with making the converter logic work, i used Pillow to change the image type.So first of all I started with making the converter logic work. I used Pillow to change the image type. Basically, I used Image.open() to open the selected image and then image.save() to save it in the format that the user selected After that, I started working on the UI. I used PyQt6 to make the buttons, dropdown menu and other parts of the app. I added a small animation (just a bounce) that runs when the app successfully changes the image type. The rest was just UI design, which wasn’t hard but took me the most amount of time. And yh that’s it.."}]...
|
Title: Zynx by @notvedansh | Stardance
Devlogs:
C Title: Zynx by @notvedansh | Stardance
Devlogs:
Complete app So Zynx is a desktop image converter built with pyQt6 and pillow offline. So first of all i started with making the converter logic work, i used Pillow to change the image type.So first of all I started with making the converter logic work. I used Pillow to change the image type. Basically, I used Image.open() to open the selected image and then image.save() to save it in the format that the user selected After that, I started working on the UI. I used PyQt6 to make the buttons, dropdown menu and other parts of the app. I added a small animation (just a bounce) that runs when the app successfully changes the image type. The rest was just UI design, which wasn’t hard but took me the most amount of time. And yh that’s it..
Ships:
So Zynx is an image converter app that works offline. The tough part was getting the UI right, as it took me around 5 hours to complete all the UI work. It wasn’t that I got too many errors; it was rather that the visual looks that mattered. On the positive side, I am proud that the app has a nice visual appeal to it, and of course that it works. So there isn’t much to know to test this app, just check the requirements.txt if you are using the repo. Nothing else....
|
1793415092.6134033
|
1793501492.6134033
|
|
44169
|
5-Second Panic by @Marinho | Stardance
|
Marinho
|
3
|
11.24
|
18
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-14T12:35:00Z", "hours": 1.0, "multiplier": 12.82, "payout": 15, "blessing": "neutral", "text": "Built 5-second panic was a really fun experience where I learned a lot(mainly about Godot which is awsome) I hope u guys enjoy the game, I very proud with all four minigames, my favourites are: Smash the Mosquito, Unclog the Toilet and Smash Squash About the art I tried to make it look a bit funky, funny and exaggerated but I not so good at drawing IMPORTANT: the songs are not mine I got them on opengameart.org it was made by SubspaceAudio heres is the link: https://opengameart.org/content/4-chiptunes-adventure My record is 63 points try to beat it and have fun", "repo": "https://github.com/danielmcneto/WarioWareGame", "demo": "https://ehodan.itch.io/5-second-panic"}, {"ship_num": 2, "ts": "2026-08-08T11:37:12Z", "hours": 0.0, "multiplier": 8.67, "payout": 3, "blessing": "neutral", "text": "5-Second Panic is a high-tempo, WarioWare-inspired arcade microgame built using Godot 4. Players are thrown into a rapid-fire sequence of randomized 5-second challenges with zero instructions. What I built: 3 Distinct Microgames: Precision swatting (Smash the Mosquito), vertical dragging (Unclog the Toilet), and multi-target clicking (Bomb Squad). Adaptive Audio Engine: Dynamic track switching between the main menu, gameplay and the game over screen using AudioStreamSynchronized to dont cutting music abruptly. Non-Repeating Randomizer: Custom logic built into a Global variable to dont repeate the previous minigame. What I learned: This was my first project using Godot Engine! So I learned how to move around Godot’s UI, node tree workflow(idk if i liked it lol), scene management, and web/HTML5 export quirks (like case-sensitive file paths and audio looping). Now with the win screen when you win a minigame Also a basic setting scene(withou any settings to change lol)", "repo": "https://github.com/danielmcneto/WarioWareGame", "demo": "https://ehodan.itch.io/5-second-panic"}, {"ship_num": 3, "ts": "2026-08-07T14:02:28Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "5-Second Panic is a high-tempo, WarioWare-inspired arcade microgame built using Godot 4. Players are thrown into a rapid-fire sequence of randomized 5-second challenges with zero instructions. What I built: 3 Distinct Microgames: Precision swatting (Smash the Mosquito), vertical dragging (Unclog the Toilet), and multi-target clicking (Bomb Squad). Adaptive Audio Engine: Dynamic track switching between the main menu, gameplay and the game over screen using AudioStreamSynchronized to dont cutting music abruptly. Non-Repeating Randomizer: Custom logic built into a Global variable to dont repeate the previous minigame. What I learned: This was my first project using Godot Engine! So I learned how to move around Godot’s UI, node tree workflow(idk if i liked it lol), scene management, and web/HTML5 export quirks (like case-sensitive file paths and audio looping).", "repo": "https://github.com/danielmcneto/WarioWareGame", "demo": "https://ehodan.itch.io/5-second-panic"}]...
|
[{"post_id": 67600, "ts": "202 [{"post_id": 67600, "ts": "2026-09-13T19:01:09Z", "hours": 1.3461, "text": "NEWs Added a full new minigame called board driving Changes SFX bugs were fixed(hopefully) Troubles Actually none(weird) In depth The new minigame was pretty simple to code, there is a node with a code that spaw the cars prefabs after a node timer hits zero, the car prefab is just the math for set it’s velocity and going down and the skate board is a simple area 2D that checks if the player hit something(AKA car) and plays the sfx and shows the explosion sprite."}, {"post_id": 64135, "ts": "2026-09-08T10:29:25Z", "hours": 0.8931, "text": "For this devlog I didnt add anything new I just fixed some bugs and change some minigames after reading the feedbacks Fixs Capped the mosquito speed after it gets higher then 2000 Adjusted the unclog toilet minigame dificult to better match the players actual skill level Changes Changed the bomb minigame logic where now it spawns more bombs as you go trhough levels Wanna add 3 new minigames That’s it for now"}, {"post_id": 44125, "ts": "2026-08-09T18:05:12Z", "hours": 1.1447, "text": "News: -A brand new minigame where you have to smash your mouse button as much as you can -A volume settings so your hears dont explode while playing"}, {"post_id": 43233, "ts": "2026-08-08T11:35:34Z", "hours": 0.3411, "text": "Added the win scene between minigames(i forget about it gng lol)"}, {"post_id": 42640, "ts": "2026-08-07T13:57:58Z", "hours": 2.3361, "text": "Upload the game to itch.io(ik looks crap) Finish the project with three distinct minigames I really enjoy making it and learning a new game engine maybe i will continue to improve the game and add more minigames"}, {"post_id": 42332, "ts": "2026-08-07T00:30:37Z", "hours": 5.3669, "text": "I forgot to post a devlog so here we go into the 5 hours spend on the project I started following the guide step by step(skipped the plataformer minigame) I added two originals minigames: Kill the mosquito(move and click mouse) Plunger(drag mouse) I also added sound effects made on BFXF and make the game over screen To do: Add music Show score at the end Public on Itch.io"}]...
|
Title: 5-Second Panic by @Marinho | Stardance
Dev Title: 5-Second Panic by @Marinho | Stardance
Devlogs:
I forgot to post a devlog so here we go into the 5 hours spend on the project I started following the guide step by step(skipped the plataformer minigame) I added two originals minigames: Kill the mosquito(move and click mouse) Plunger(drag mouse) I also added sound effects made on BFXF and make the game over screen To do: Add music Show score at the end Public on Itch.io
Upload the game to itch.io(ik looks crap) Finish the project with three distinct minigames I really enjoy making it and learning a new game engine maybe i will continue to improve the game and add more minigames
Added the win scene between minigames(i forget about it gng lol)
News: -A brand new minigame where you have to smash your mouse button as much as you can -A volume settings so your hears dont explode while playing
For this devlog I didnt add anything new I just fixed some bugs and change some minigames after reading the feedbacks Fixs Capped the mosquito speed after it gets higher then 2000 Adjusted the unclog toilet minigame dificult to better match the players actual skill level Changes Changed the bomb minigame logic where now it spawns more bombs as you go trhough levels Wanna add 3 new minigames That’s it for now
NEWs Added a full new minigame called board driving Changes SFX bugs were fixed(hopefully) Troubles Actually none(weird) In depth The new minigame was pretty simple to code, there is a node with a code that spaw the cars prefabs after a node timer hits zero, the car prefab is just the math for set it’s velocity and going down and the skate board is a simple area 2D that checks if the player hit something(AKA car) and plays the sfx and shows the explosion sprite.
Ships:
5-Second Panic is a high-tempo, WarioWare-inspired arcade microgame built using Godot 4. Players are thrown into a rapid-fire sequence of randomized 5-second challenges with zero instructions. What I built: 3 Distinct Microgames: Precision swatting (Smash the Mosquito), vertical dragging (Unclog the Toilet), and multi-target clicking (Bomb Squad). Adaptive Audio Engine: Dynamic track switching between the main menu, gameplay and the game over screen using AudioStreamSynchronized to dont cutting music abruptly. Non-Repeating Randomizer: Custom logic built into a Global variable to dont repeate the previous minigame. What I learned: This was my first project using Godot Engine! So I learned how to move around Godot’s UI, node tree workflow(idk if i liked it lol), scene management, and web/HTML5 export quirks (like case-sensitive file paths and audio looping).
5-Second Panic is a high-tempo, WarioWare-inspired arcade microgame built using Godot 4. Players are thrown into a rapid-fire sequence of randomized 5-second challenges with zero instructions. What I built: 3 Distinct Microgames: Precision swatting (Smash the Mosquito), vertical dragging (Unclog the Toilet), and multi-target clicking (Bomb Squad). Adaptive Audio Engine: Dynamic track switching between the main menu, gameplay and the game over screen using AudioStreamSynchronized to dont cutting music abruptly. Non-Repeating Randomizer: Custom logic built into a Global variable to dont repeate the previous minigame. What I learned: This was my first project using Godot Engine! So I learned how to move around Godot’s UI, node tree workflow(idk if i liked it lol), scene management, and web/HTML5 export quirks (like case-sensitive file paths and audio looping). Now with the win screen when you win a minigame Also a basic setting scene(withou any settings to change lol)
Built 5-second panic was a really fun experience where I learned a lot(mainly about Godot which is awsome) I hope u guys enjoy the game, I very proud with all four minigames, my favourites are: Smash the Mosquito, Unclog the Toilet and Smash Squash About the art I tried to make it look a bit funky, funny and exaggerated but I not so good at drawing IMPORTANT: the songs are not mine I got them on opengameart.org it was made by SubspaceAudio heres is the link: https://opengameart.org/content/4-chiptunes-adventure My record is 63 points try to beat it and have fun...
|
1793224242.1754172
|
1793310642.1754172
|
|
37708
|
WinFlow by @Advay-CMD | Stardance
|
Advay-CMD
|
1
|
44.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T19:07:15Z", "hours": 44.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Windows is incomplete, incoherent, and Microslop copyrights every code and then doesn’t listen to their consumers. I am here to change this. Fix windows from the disasterous state, where you own the operating system, Microsoft doesn’t. Colors, textures - everything is just Microsoft’ed. Privacy doesn’t exist, it is like giving your life’s data to Microsoft to have convinence in return. I am here to prove that privacy and convinence can co-exist. Windows is long way, and STILL, Microsoft has to bring more SLOP. Let’s fix this. Lets fix it, how things should be… WinFlow is a massive productivity and beautified UI/UX app suite. It helps you have productivity, convenience and neat UI/UX all adapted for people who work a LOT and complain about simple things in comp and also for people who have a candyeye. It aims 4 fundmentals: Functionality: How well the users problem is solved? Polish: How good is the UI/UX of the app? Simplicity: How simple is the app to use? Speed: How FAST is it? All of them combine to create WinFlow!", "repo": "https://github.com/Advay-CMD/WinFlow/", "demo": "https://github.com/Advay-CMD/WinFlow/releases"}]...
|
[{"post_id": 67602, "ts": "202 [{"post_id": 67602, "ts": "2026-09-13T19:02:29Z", "hours": 0.7736, "text": "WinFlow -> Devlog 6 Finally done. Its DONE! I know, shipwrights would call this AI, maybe. But really, I can’t belive that I coded the whole UI, only learning concepts of css from Duckduckgo and Gemini. I always thought this project will have a lot of AI, but no. I have finally mastered my CSS, and HTML. I love it! I am at least proud of the app, and even though its a simple home screen, it shows a glimpse of a full app, that is usable, and loved by people! Any suggestions can be made to make this project better! Please do give suggestions! It will make this project better! Thanks for the attention."}, {"post_id": 67280, "ts": "2026-09-13T10:54:56Z", "hours": 10.0781, "text": "WinFlow -> Devlog 5 Finally, I am somewhere, my project is FINALLY usable!! I have File and Folder linked to the backend working independently, and it works. Somehow there is some errors in system, I have no idea why… But, it still creates the folder! Let’s go! Good right? And now I am just creating the readme, and after that I guess, I will be ready to publish my thing. Any suggestions you guys want to give, you can! I will try my best to improve my UI/backend. Until then, take care! Even after the release, the WinFlow Explorer will STILL be very experimental. Unusable for normal use, due to very less features. But, just wait. Just wait. Probably later I will make more UI elements, make it better!"}, {"post_id": 53925, "ts": "2026-08-24T17:02:50Z", "hours": 8.6008, "text": "WinFlow -> Devlog 4 Oh, yes, time = 8h 36min, which is ~516min, and, I don’t want to spam seconds. Let me be frank. It is a pain to devlop the simple-simple goody app WinFlow Explorer. It is a headache a little…. I still gotta do MORE AND MORE WIDGETS!!! HONEST! But I promise you they are not going to be microsoft ads and Xbox promotion and all that crap. In the UI part, I have GELLED major components, made it according to my set of rules for UI called TrueUI, and a LOT of components are liqidised(made in variables, ready to be changed). I still gotta make components more liquid tho, like for cards, tabs, almost everything, so that the user has UNLIMITED customizablity. Yes, for all of the people who are crazy meniacs like in my class boys, you can PINK AND BLACK and ASSIGN ANY COLOR TO COMPONENTS! YES!!! You can! Unlimited Customisability is one of the features… I am going to do pixel anim in the future, but future. Right now I have A LOOOOOTT of widgets to make. Oh btw, I have STILL NOT DONE MY OTHER FILES IN GENERAL UI STUFF . Anyway I will implement and don’t worry boys, or girls, we can black the ui, pink the ui, and (my fav color) blue the UI. It is kindda in testing so, it is not THAT pretty sight, but the amount of hardwork it takes…. I think it will take time to realise. I have to sit and finetune the values until perfect, and that IS NOT easy. It is immensly hard and feels very rubbish. But whatever. Part of software devlopment. I also hope I get a SuperStar, tho that somehow feels highly unlikely. Anyway, I don’t care if I get that or not, I just want user satisfaction. I want the user to be immensly pleased. And I swear if someone from the shipwrights say: “This is fully vibecoded”. I swear I will feel like choke them….. I hate people who have one glance and say “Extremely Likely Used AI”. Honestly, I have used AI 1%-2%, not for UI, but for the latter backend… I still gotta make UI better, somehow it feels plain and boring. idk why… If you have some UI ideas, tell me, I can then improve my app~ I would love if you follow me for more devlogs and keep up with my journey though: Dark and Difficult things lie ahead…"}, {"post_id": 40835, "ts": "2026-08-04T16:50:25Z", "hours": 7.7931, "text": "WinFlow -> Devlog 3 YES! YES!!!! *, I KNOW, you would be screaming WHY ADVAY?? WHY DON’T YOU POST ANOTHER DEVLOG!!?? IT IS 7H 44MIN DONE!!! I know. I know. Sorry, just get too carried away with the code… ehh So, what am I done with? Am I supossed to dance? NO! This is a very complex project. Honest. Even the home page, EVEN AFTER ~21H, is NOT YET completed. But look at the vid! neat result. My journey to making a software, so complex and so pleasing at same time is TOOO hard. And ppl, I am only 13y, a normal child studing in school, kind of sneaking time to code! 😭 Lets look at the different aspects that I coded Backend Yes, backend, I made lsa, “testmodel1” is the nickname. And it is sucessful, so I am merging with ls, and making current ls, lsa. TestModel1 has MFT(Master Boot Record) scan, which ofc requires admin permissions, but see the speed. You might not notice it, but when you have ~a LOT A LOT of files to list, TestModel1 cruises and litrally halves the time. In search model, this would be EXTREMELY USEFUL. Scan the MFT and then find the file. It is that simple. (Not at ALL simple to code. HONEST. It is a risk with the disk. One thing coded wrong, I am cooked. But don’t worry, it works, and AI also helped and tested.) Frontend You can see the vid for yourself(special bonus… pls watch) That’s it. Follow if you want me to keep working on this and give motivation. Also like, and YES! if you think this can be a super star project write “superstar” in comments(tho i am not making for the sake of earning superstar, it is to rectify windows.)"}, {"post_id": 35772, "ts": "2026-07-27T12:32:07Z", "hours": 10.2056, "text": "WinFlow -> Devlog 2 I was soooo into coding, I forgot all about my time. Now the 9min I coded are LOST. Sorry, Hackclub staff! 😭 Pls give me that! Anyway, I have coded WinFlow UI in tauri with html and css, an explorer -> I have also added gradients, fresh and unique to my explorer… What else? I have also implemented in the files area a drag selection box, neat animation wrapped in good color and border-radius. Honestly, this HAS been a BIG learning experience in css, I used to go away when I heard CSS, now, I kindda got the hang. Loving it! Anyway, here is the progress img > And PLS, some of you in the stardance said that it is created using AI, but PLEASE, believe me, I didn’t. Any proof, pls check the hackatime. Pls Follow, it will make me more motivated to complete this project(right now, to create this, I was on a emotional burnout😭) Any suggetions pls comment. (few bugs like , recents and fav is selected. and the 2,3,4. pls forgive me for that…)"}, {"post_id": 32477, "ts": "2026-07-21T17:59:38Z", "hours": 6.3036, "text": "WinFlow -> Devlog 1 I am making a project called WinFlow WinFlow => App that makes your workspace more fluent buttery with awsome UI. Tech stack: Tauri(RUST, html, css, js) C++(Rust IPC) I am building a litral file explorer called WinFlow Explorer , but for that I have to do CLI part. I implemented a prototype, well commented code, and here is the result. I will then begin by rust IPC and then start buiding the app and the UI. My app is also better and faster than microsoft, because the explorer is not made by microsoft, it’s made by me (secret: I use recursive method, while windows struggles to calculate the estimated time :))"}]...
|
Title: WinFlow by @Advay-CMD | Stardance
Devlogs: Title: WinFlow by @Advay-CMD | Stardance
Devlogs:
WinFlow -> Devlog 1 I am making a project called WinFlow WinFlow => App that makes your workspace more fluent buttery with awsome UI. Tech stack: Tauri(RUST, html, css, js) C++(Rust IPC) I am building a litral file explorer called WinFlow Explorer , but for that I have to do CLI part. I implemented a prototype, well commented code, and here is the result. I will then begin by rust IPC and then start buiding the app and the UI. My app is also better and faster than microsoft, because the explorer is not made by microsoft, it’s made by me (secret: I use recursive method, while windows struggles to calculate the estimated time :))
WinFlow -> Devlog 2 I was soooo into coding, I forgot all about my time. Now the 9min I coded are LOST. Sorry, Hackclub staff! 😭 Pls give me that! Anyway, I have coded WinFlow UI in tauri with html and css, an explorer -> I have also added gradients, fresh and unique to my explorer… What else? I have also implemented in the files area a drag selection box, neat animation wrapped in good color and border-radius. Honestly, this HAS been a BIG learning experience in css, I used to go away when I heard CSS, now, I kindda got the hang. Loving it! Anyway, here is the progress img > And PLS, some of you in the stardance said that it is created using AI, but PLEASE, believe me, I didn’t. Any proof, pls check the hackatime. Pls Follow, it will make me more motivated to complete this project(right now, to create this, I was on a emotional burnout😭) Any suggetions pls comment. (few bugs like , recents and fav is selected. and the 2,3,4. pls forgive me for that…)
WinFlow -> Devlog 3 YES! YES!!!! *, I KNOW, you would be screaming WHY ADVAY?? WHY DON’T YOU POST ANOTHER DEVLOG!!?? IT IS 7H 44MIN DONE!!! I know. I know. Sorry, just get too carried away with the code… ehh So, what am I done with? Am I supossed to dance? NO! This is a very complex project. Honest. Even the home page, EVEN AFTER ~21H, is NOT YET completed. But look at the vid! neat result. My journey to making a software, so complex and so pleasing at same time is TOOO hard. And ppl, I am only 13y, a normal child studing in school, kind of sneaking time to code! 😭 Lets look at the different aspects that I coded Backend Yes, backend, I made lsa, “testmodel1” is the nickname. And it is sucessful, so I am merging with ls, and making current ls, lsa. TestModel1 has MFT(Master Boot Record) scan, which ofc requires admin permissions, but see the speed. You might not notice it, but when you have ~a LOT A LOT of files to list, TestModel1 cruises and litrally halves the time. In search model, this would be EXTREMELY USEFUL. Scan the MFT and then find the file. It is that simple. (Not at ALL simple to code. HONEST. It is a risk with the disk. One thing coded wrong, I am cooked. But don’t worry, it works, and AI also helped and tested.) Frontend You can see the vid for yourself(special bonus… pls watch) That’s it. Follow if you want me to keep working on this and give motivation. Also like, and YES! if you think this can be a super star project write “superstar” in comments(tho i am not making for the sake of earning superstar, it is to rectify windows.)
WinFlow -> Devlog 4 Oh, yes, time = 8h 36min, which is ~516min, and, I don’t want to spam seconds. Let me be frank. It is a pain to devlop the simple-simple goody app WinFlow Explorer. It is a headache a little…. I still gotta do MORE AND MORE WIDGETS!!! HONEST! But I promise you they are not going to be microsoft ads and Xbox promotion and all that crap. In the UI part, I have GELLED major components, made it according to my set of rules for UI called TrueUI, and a LOT of components are liqidised(made in variables, ready to be changed). I still gotta make components more liquid tho, like for cards, tabs, almost everything, so that the user has UNLIMITED customizablity. Yes, for all of the people who are crazy meniacs like in my class boys, you can PINK AND BLACK and ASSIGN ANY COLOR TO COMPONENTS! YES!!! You can! Unlimited Customisability is one of the features… I am going to do pixel anim in the future, but future. Right now I have A LOOOOOTT of widgets to make. Oh btw, I have STILL NOT DONE MY OTHER FILES IN GENERAL UI STUFF . Anyway I will implement and don’t worry boys, or girls, we can black the ui, pink the ui, and (my fav color) blue the UI. It is kindda in testing so, it is not THAT pretty sight, but the amount of hardwork it takes…. I think it will take time to realise. I have to sit and finetune the values until perfect, and that IS NOT easy. It is immensly hard and feels very rubbish. But whatever. Part of software devlopment. I also hope I get a SuperStar, tho that somehow feels highly unlikely. Anyway, I don’t care if I get that or not, I just want user satisfaction. I want the user to be immensly pleased. And I swear if someone from the shipwrights say: “This is fully vibecoded”. I swear I will feel like choke them….. I hate people who have one glance and say “Extremely Likely Used AI”. Honestly, I have used AI 1%-2%, not for UI, but for the latter backend… I still gotta make UI better, somehow it feels plain and boring. idk why… If you have some UI ideas, tell me, I can then improve my app~ I would love if you follow me for more devlogs and keep up with my journey though: Dark and Difficult things lie ahead…
WinFlow -> Devlog 5 Finally, I am somewhere, my project is FINALLY usable!! I have File and Folder linked to the backend working independently, and it works. Somehow there is some errors in system, I have no idea why… But, it still creates the folder! Let’s go! Good right? And now I am just creating the readme, and after that I guess, I will be ready to publish my thing. Any suggestions you guys want to give, you can! I will try my best to improve my UI/backend. Until then, take care! Even after the release, the WinFlow Explorer will STILL be very experimental. Unusable for normal use, due to very less features. But, just wait. Just wait. Probably later I will make more UI elements, make it better!
WinFlow -> Devlog 6 Finally done. Its DONE! I know, shipwrights would call this AI, maybe. But really, I can’t belive that I coded the whole UI, only learning concepts of css from Duckduckgo and Gemini. I always thought this project will have a lot of AI, but no. I have finally mastered my CSS, and HTML. I love it! I am at least proud of the app, and even though its a simple home screen, it shows a glimpse of a full app, that is usable, and loved by people! Any suggestions can be made to make this project better! Please do give suggestions! It will make this project better! Thanks for the attention.
Ships:
Windows is incomplete, incoherent, and Microslop copyrights every code and then doesn’t listen to their consumers. I am here to change this. Fix windows from the disasterous state, where you own the operating system, Microsoft doesn’t. Colors, textures - everything is just Microsoft’ed. Privacy doesn’t exist, it is like giving your life’s data to Microsoft to have convinence in return. I am here to prove that privacy and convinence can co-exist. Windows is long way, and STILL, Microsoft has to bring more SLOP. Let’s fix this. Lets fix it, how things should be… WinFlow is a massive productivity and beautified UI/UX app suite. It helps you have productivity, convenience and neat UI/UX all adapted for people who work a LOT and complain about simple things in comp and also for people who have a candyeye. It aims 4 fundmentals: Functionality: How well the users problem is solved? Polish: How good is the UI/UX of the app? Simplicity: How simple is the app to use? Speed: How FAST is it? All of them combine to create WinFlow!...
|
1793339396.313532
|
1793425796.313532
|
|
61912
|
Pyrecall by @atharvranjan8 | Stardance
|
atharvranjan8
|
1
|
32.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T19:08:28Z", "hours": 32.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built Pyrecall, a Python tool that detects “forgetting” in fine-tuned LLMs and lets you roll back to a previous skill snapshot if fine-tuning hurts performance. It works by taking snapshots of a model (as LoRA/QLoRA adapters) before and after training, then benchmarking the model across multiple categories using log-likelihood scoring to flag any categories that dropped below a set threshold. It supports any model on Hugging Face Hub and ships as a pip-installable package with both a Python API and a CLI (pyrecall init, snapshot, learn, check). What was challenging? Designing a benchmarking approach that could reliably detect meaningful regressions across diverse task categories without being too noisy or too slow to run after every fine-tuning job. Balancing adapter storage (LoRA/QLoRA) so snapshots stay lightweight was also tricky. What are you proud of? Getting an end-to-end workflow — snapshot, fine-tune, check — working smoothly with a simple CLI, so anyone fine-tuning a model can catch catastrophic forgetting before it ships. What do people need to know to test your project? Install with pip install pyrecall Run pyrecall init to set things up Take a baseline snapshot: pyrecall snapshot baseline Fine-tune and snapshot after: pyrecall learn train.jsonl –snapshot-after after_training Run pyrecall check to compare the two snapshots and see if any benchmark categories regressed See examples/basic_workflow.py in the repo for a full example, and the docs at pyrecall.github.io/Pyrecall", "repo": "https://github.com/Pyrecall/Pyrecall", "demo": "https://pyrecall.github.io/Pyrecall/"}]...
|
[{"post_id": 67603, "ts": "202 [{"post_id": 67603, "ts": "2026-09-13T19:02:43Z", "hours": 31.8378, "text": "Started Pyrecall to catch something that was bugging me: every time you fine-tune a model, it can quietly forget stuff it used to know, and nobody notices until much later. First goal was just snapshot → train → check working end to end. [Add: what broke first, how long it took to get a snapshot working]. Screenshot: CLI output from an early pyrecall check run."}]...
|
Title: Pyrecall by @atharvranjan8 | Stardance
Dev Title: Pyrecall by @atharvranjan8 | Stardance
Devlogs:
Started Pyrecall to catch something that was bugging me: every time you fine-tune a model, it can quietly forget stuff it used to know, and nobody notices until much later. First goal was just snapshot → train → check working end to end. [Add: what broke first, how long it took to get a snapshot working]. Screenshot: CLI output from an early pyrecall check run.
Ships:
I built Pyrecall, a Python tool that detects “forgetting” in fine-tuned LLMs and lets you roll back to a previous skill snapshot if fine-tuning hurts performance. It works by taking snapshots of a model (as LoRA/QLoRA adapters) before and after training, then benchmarking the model across multiple categories using log-likelihood scoring to flag any categories that dropped below a set threshold. It supports any model on Hugging Face Hub and ships as a pip-installable package with both a Python API and a CLI (pyrecall init, snapshot, learn, check). What was challenging? Designing a benchmarking approach that could reliably detect meaningful regressions across diverse task categories without being too noisy or too slow to run after every fine-tuning job. Balancing adapter storage (LoRA/QLoRA) so snapshots stay lightweight was also tricky. What are you proud of? Getting an end-to-end workflow — snapshot, fine-tune, check — working smoothly with a simple CLI, so anyone fine-tuning a model can catch catastrophic forgetting before it ships. What do people need to know to test your project? Install with pip install pyrecall Run pyrecall init to set things up Take a baseline snapshot: pyrecall snapshot baseline Fine-tune and snapshot after: pyrecall learn train.jsonl –snapshot-after after_training Run pyrecall check to compare the two snapshots and see if any benchmark categories regressed See examples/basic_workflow.py in the repo for a full example, and the docs at pyrecall.github.io/Pyrecall...
|
1793415192.4424934
|
1793501592.4424934
|
|
61915
|
Card Creator by @bluenoise | Stardance
|
bluenoise
|
0
|
0.57
|
0
|
[]
|
[{"post_id": 67605, "ts": "202 [{"post_id": 67605, "ts": "2026-09-13T19:05:36Z", "hours": 0.5711, "text": "Created a simple wireframe for the web apps layout"}]...
|
Title: Card Creator by @bluenoise | Stardance
Dev Title: Card Creator by @bluenoise | Stardance
Devlogs:
Created a simple wireframe for the web apps layout...
|
1793044058.5466952
|
1793648858.5466952
|
|
47850
|
Pi NAS by @AggressiveElmo | Stardance
|
AggressiveElmo
|
0
|
1.08
|
0
|
[]
|
[{"post_id": 67608, "ts": "202 [{"post_id": 67608, "ts": "2026-09-13T19:08:19Z", "hours": 0.5381, "text": "Addressed and resolved several oversights in the process."}, {"post_id": 66811, "ts": "2026-09-12T18:28:05Z", "hours": 0.5392, "text": "This is a Raspberry Pi NAS built using an off the shelf hard drive dock."}]...
|
Title: Pi NAS by @AggressiveElmo | Stardance
Devl Title: Pi NAS by @AggressiveElmo | Stardance
Devlogs:
This is a Raspberry Pi NAS built using an off the shelf hard drive dock.
Addressed and resolved several oversights in the process....
|
1793199141.7092063
|
1793803941.7092063
|
|
38711
|
AuraWatch by @Ander507 | Stardance
|
Ander507
|
7
|
27.0
|
400
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T19:27:13Z", "hours": 4.0, "multiplier": 17.45, "payout": 34, "blessing": "neutral", "text": "Where-to-watch used to be a row of streaming logos and that was it. Rent and Buy were gone, prices never showed, and song “Listen on” chips mashed into one blob. This round puts the full panel back: Stream / Rent / Buy , with HD/4K under the logo and a short price under rent/buy ( 39 kr , not DKK 39.00 ). Stream is “you already pay for this.” Rent/Buy are pay-per-title. Same thing on the hero pick and the smaller cards. The annoying part wasn’t fetching JustWatch. It was the UI. First pass looked boxed and goofy. Fancy overlapping logos clipped titles into “Incept.” I ripped the extra chrome and just made the group labels huge so you can tell the three modes apart at a glance. Also: Listen-on for YouTube Music / Spotify / Apple Music has its own styles now, so those chips don’t steal CSS from the movie cards. Try it: aurawatch.org — no account. Movies or TV, set your region, hit Match. Scroll the hero + the “or these” cards. Songs format → flip Listen on → preview a couple tracks.", "repo": "https://github.com/Ander507/AuraWatch", "demo": "https://aurawatch.org"}, {"ship_num": 2, "ts": "2026-09-12T12:03:03Z", "hours": 3.0, "multiplier": 19.4, "payout": 25, "blessing": "neutral", "text": "Ship #6 — v0.5.0 AuraWatch used to hand you a pile of “here’s some stuff.” Now it picks one for tonight — hero card up top, a few “or these” under it, Decide for me / Not this when you’re still stuck. Also in this one: match %, local watchlist, era + runtime filters, soft “On my apps” (hard-filtering services was wiping songs/games/books — looked like Gemini died, was just me being dumb). Sign-in’s a popup now so /room doesn’t yeet you to a separate page. Live: https://aurawatch.org Code: https://github.com/Ander507/AuraWatch", "repo": "https://github.com/Ander507/AuraWatch", "demo": "https://aurawatch.org"}, {"ship_num": 3, "ts": "2026-08-26T15:44:07Z", "hours": 3.0, "multiplier": 14.94, "payout": 26, "blessing": "neutral", "text": "Shipped Group Vibe Rooms. You open a room, share the link, everyone types a vibe, the host hits Calculate — same picks for the whole group. Also made Match, Rooms, and Lists look and navigate the same, including on phone. Try it: aurawatch.org/room — make a room, join it in another tab, calculate.", "repo": "https://github.com/Ander507/AuraWatch", "demo": "https://aurawatch.org"}, {"ship_num": 4, "ts": "2026-08-17T20:16:19Z", "hours": 8.0, "multiplier": 19.61, "payout": 157, "blessing": "neutral", "text": "AuraWatch is for when you’ve been scrolling for 20 minutes and still have nothing to watch. You tell it the mood — genres, a decade, titles you already like, or just a sentence about what you’re after — and it gives you a handful of real picks with posters, trailers, and where to stream them. Movies, TV, anime, songs, games, books, manga, and board games. The hard part is that no single API covers all of that. Gemini is great at taste and terrible at valid JSON, so every format has its own path: songs go through iTunes, games through IGDB, books through Open Library with Google Books as backup, board games through BoardGameGeek’s XML API — which loves replying “202, try again later” instead of a cover. Auth ate a full hour by itself, mostly because Discord treats www.aurawatch.org and aurawatch.org as two completely different websites. The thing I’m most proud of is that it never shows you a blank pane. No cover? Skeleton, then initials on a gradient. No results? A fallback card with Surprise Me instead of an empty box. To test it: no login needed. Pick a format, describe a mood, hit Match — or just spam Surprise Me. Sign in with Discord or a username if you want to save picks into a playlist and share the link.", "repo": "https://github.com/Ander507/AuraWatch", "demo": "https://aurawatch.org"}, {"ship_num": 5, "ts": "2026-08-09T14:20:28Z", "hours": 4.0, "multiplier": 18.74, "payout": 76, "blessing": "neutral", "text": "What did you make? I built a massive expansion for AuraWatch, turning it into a true routing engine rather than just a generic recommender. I completely overhauled the UI into a clean, light-mode brutalist aesthetic and added full gaming support with precise platform filtering and dynamic store links. What was challenging? Wrestling with the IGDB API to get accurate store buttons was a nightmare, especially for PC games. Writing the logic to properly map Steam, Epic, and GOG links, and creating a strict fallback to official websites when a game like Minecraft isn’t on a main store, took a lot of trial and error. It was also tough figuring out how to add advanced features like “Anti-Vibe” without cluttering the UI, which I solved with a collapsible drawer. What are you proud of? I’m really proud of the multi-store routing. If a game is on three different platforms you own, the UI dynamically generates a distinct button for every single storefront. I’m also hyped on the new “Anti-Vibe” filter that lets you strictly exclude elements you hate, and the overall terminal-like visual overhaul. What should people know so they can test your project? Switch to the Games format and test the new platform dropdown. Enter the specific consoles you own (like PC or Switch), type in a vibe in the Notes, and maybe throw something you hate into the Exclude filter. Check out how it gives you exact, clickable store buttons for the platforms you actually selected!", "repo": "https://github.com/Ander507/AuraWatch", "demo": "https://aurawatch.org"}, {"ship_num": 6, "ts": "2026-08-03T14:22:17Z", "hours": 2.0, "multiplier": 13.81, "payout": 26, "blessing": "neutral", "text": "Ship #2: The Final Polish, Stable APIs & Custom Vibe Tuning 🚀 AuraWatch is finally in its most stable and customizable state yet! Over the last few sessions, I’ve completely overhauled how the app handles complex requests and edge cases based on your feedback. What’s New in this Ship: Rate Limit Resilience: Users noted missing posters for certain shows (like Yellowstone). I implemented API caching and a graceful UI fallback system. Now, if the TMDB or iTunes API rate-limits us, the UI stays beautiful with stylized fallback gradients instead of broken image icons. Match Priority Slider: You are no longer locked into the AI’s default weighting. You can now use a slider to explicitly tell the algorithm to favor your “Notes” (vibe) or the “Similar-to” titles. Smarter Music Routing: The iTunes API was failing on niche artists. I built a workaround that routes queries through Deezer/MusicBrainz to resolve the artist first, then pulls the correct track from Apple’s catalog. Hidden Easter Eggs: If you know, you know (try typing “surron” or “talaria” into the notes). Thanks to everyone who left feedback! The app is so much better because of it.", "repo": "https://github.com/Ander507/AuraWatch", "demo": "https://aurawatch.org"}, {"ship_num": 7, "ts": "2026-07-25T20:02:14Z", "hours": 3.0, "multiplier": 17.07, "payout": 56, "blessing": "neutral", "text": "What I made: AuraWatch — a vibe finder for movies, TV, anime, and songs. You pick format/genres, optional “like these” titles, and a short mood note; it returns a few grounded picks with posters and where-to-watch / listen links. Problem: Picking something to watch (or play) usually means doomscrolling Netflix/Spotify until you give up. AuraWatch turns that into one short decision. 3 QoL improvements: Vibe + “similar to” in one place — no hopping between lists and search tabs. Region-aware Where to Watch — so you don’t get hyped for a title you can’t stream. Songs mode with listen links — same friction fix for music, not just video. Challenging: Gemini’s JSON was a mess (fences, trailing commas, truncations), so I added repair + key rotation and a local catalog fallback when APIs flake. Proud of: The dual path (TMDB similar vs Gemini concierge) and that it still works without keys. How to test: Open https://aura-watching.vercel.app/ → try Desktop + Minimal themes → pick Anime or Songs → add a “like” title and hit Get picks. Check providers/listen links on a result.", "repo": "https://github.com/Ander507/AuraWatch", "demo": "https://aurawatch.org"}]...
|
[{"post_id": 67616, "ts": "202 [{"post_id": 67616, "ts": "2026-09-13T19:20:59Z", "hours": 3.9058, "text": "Devlog 10 — Pick your music app, see where it streams Biggest thing: song picks aren’t Apple-only anymore. You choose YouTube Music, Spotify, or Apple Music once — Listen opens that app. Apple still uses the iTunes track link when we have it; otherwise it falls back to search like the others. The annoying bit: 30s previews were tied to card index, not the actual track. Fast re-runs or filtering could play the wrong snippet. Previews now key off track_id from iTunes so the audio matches the card you’re looking at. Also this round: Flatrate streaming badges on movie/show cards (Netflix, Crunchyroll, Max, etc.) via TMDB watch providers ~/aurawatch/... path crumbs instead of fake C:\\AuraWatch\\ strings in the desktop chrome Try it: aurawatch.org — Songs format → flip “Listen on” → hit preview on a couple results"}, {"post_id": 66545, "ts": "2026-09-12T12:00:43Z", "hours": 2.5425, "text": "Devlog 9 — From recommender to decider Stopped treating “here’s 12 options” like a finished product. You get one hero pick for tonight, then a couple of “or these” underneath — not a wall of equal cards. Decide for me, Not this, and exclude titles you already bounced so the next run isn’t the same pile again. Soft “On my apps” badge too — hard-filtering by services was nuking songs/games/books when those formats don’t even have streaming providers. Looked like the API died. It was me. Also shoved match %, watchlist, era/runtime stuff into the mix, and sign-in is a popup now so /room doesn’t yeet you to a separate login page mid-flow. Try it: https://aurawatch.org"}, {"post_id": 55103, "ts": "2026-08-26T15:41:30Z", "hours": 3.4197, "text": "Devlog 8 — Group Vibe Rooms Biggest thing: you can now match with a group, not just yourself. Flow: host signs in → shares /room/... → guests only need a nickname + vibe (no account). Host hits Calculate. We merge everyone’s notes/likes, run one recommend, and save the same cards for everyone — including where to watch / play. Rooms self-destruct after 24 hours. The annoying bit: at first anyone could hit Calculate and burn a Gemini call for the whole room. Calculate is host-only now, and the host’s filters (region, rating, decade) actually stick on the room instead of getting dropped. Also this round: Roblox as its own format Critic scores on cards (TMDB / Rotten Tomatoes-style %) Try it: aurawatch.org/room"}, {"post_id": 49168, "ts": "2026-08-17T20:09:54Z", "hours": 1.2131, "text": "Devlog 7 — One hour, one login button Swapped the Email field for Username on sign-in (it quietly becomes [email protected] behind the scenes), and the Save to Playlist modal finally opens in the middle of the screen instead of hiding in the bottom-left corner. Then Discord OAuth ate the rest of the hour. “Invalid OAuth2 redirect_uri” three separate times: first the wrong callback path, then www.aurawatch.org vs aurawatch.org — which Discord treats as two completely unrelated sites. Fixed both, felt great, got a 500 instead: my sessions table has an id column my schema file never knew about, so every login worked perfectly right up until it tried to remember you. One missing column, one hour. Visual: Login page and after login"}, {"post_id": 49088, "ts": "2026-08-17T18:16:30Z", "hours": 6.7769, "text": "Devlog 6 — Tabletop, Amazon, and no more blank panes Board Games is actually live now. Gemini still names the titles; BoardGameGeek’s XML API does the rest (box art, year, player count). The painful bit: /thing often answers 202 (“come back later”), and search loves burying the real game under fan expansions, so Cards Against Humanity was coming back with no cover. We retry that queue, batch the IDs, and rank exact titles first. Books were doing the same disappearing-cover trick. Open Library is fine until it isn’t, so covers now fall through to Google Books, then Jikan / AniList for manga. While those images load, cards show a brutalist skeleton instead of a dead square, then fade in. Games, board games, and books/manga all got a Buy on Amazon button. It follows the region you picked (US .com , UK/Ireland .co.uk , Italy .it , most of Europe .de ) so you’re not dumped on the wrong storefront. Affiliate tags are baked in, with the Associates disclaimer in the footer. Copy Link used to fail silently. It now pops a terminal toast: [SYSTEM]: Link copied to clipboard successfully. Same deal on playlist share. And if a vibe query returns nothing or the request dies, Match doesn’t sit there empty — you get [ERROR]: No vibes match this exact query. plus Surprise Me or Reset Filters . Visual: board-game → Amazon button on a book/tabletop card → Mobile UI"}, {"post_id": 44001, "ts": "2026-08-09T14:18:45Z", "hours": 4.0672, "text": "Devlog 5: New brutalist UI and fixing the store links I just pushed a pretty massive update to AuraWatch. Honestly, the old UI was getting way too cluttered, and the backend routing had some really annoying edge cases I needed to iron out. Here is what changed: New Look: I completely overhauled the design. Ditched the old layout for a light-mode brutalist vibe—monospace fonts, sharp borders, and orange accents. It feels way cleaner and more like a proper utility now. Actual Platform Filtering: It was driving me crazy that the app might recommend a PC-only game to someone playing on a PS5. I added a strict, searchable platforms dropdown. If you tell it you only have a Switch and a PS4, it completely filters out everything else. Multi-Store Buttons: The API used to just grab one random store link and call it a day. Now, if a game is on three different platforms you searched for, the UI loops through and actually generates a separate button for each one (e.g., [View on PlayStation] and [View on Steam]). The Minecraft Edge Case: PC store links were breaking because games like Minecraft aren’t on Steam or Epic. I wrote a strict fallback into the routing so if it can’t find a standard storefront, it automatically generates a [View on Official Site] button instead of just ghosting you. No More Tag Dumps: The old cards used to dump 20 different store and console tags into one messy block. Now there is just a clean “Playable On” text list, completely separated from the actual buy buttons. The routing is finally feeling exact. Let me know what you think of the new stuff!"}, {"post_id": 40098, "ts": "2026-08-03T14:17:38Z", "hours": 0.5331, "text": "Devlog 4# — Posters that survive rate limits Covers were dying when TMDB/iTunes rate-limited us — blank squares and broken-image icons on match cards. Now a failed or missing poster falls back to a sleek gradient with the title’s initials. Also shipped a lightweight cache (server TTL for TMDB/iTunes + localStorage for like-title search) so repeat queries stop burning the quota. Friction: the CDN images weren’t the problem — we were refetching the same poster paths every match and hitting the wall."}, {"post_id": 39147, "ts": "2026-08-01T21:22:32Z", "hours": 1.1439, "text": "AuraWatch — song search that actually finds niche tracks (+ a tiny secret) Song search used to fail hard on queries like “all i want is you rebz” — Apple only returns U2/LAROI covers, never Rebzyyx. Fixed it by detecting title + artist-fragment queries, resolving the artist via Deezer/MusicBrainz, then pulling the real track from their iTunes catalog so the niche hit ranks first. Also shipped Sur Ronster easter eggs: Songs + “Surron”/“Talaria” → only On My Own by Kyle The Hooligan; Movies/TV + “surronster vibe” → his newest YouTube uploads in-app (no Zflix CTA). Friction: iTunes artist search for rebz only finds random “Rebz” artists — prefix expansion was the missing link. Visual to attach: Then notes surronster vibe → latest Sur Ronster video cards with Play video."}, {"post_id": 35434, "ts": "2026-07-26T20:45:11Z", "hours": 0.2519, "text": "Fixed the buttons and added STREAM RENT BUY categories"}, {"post_id": 34802, "ts": "2026-07-25T19:56:52Z", "hours": 3.2764, "text": "AuraWatch — Devlog #1 Added a dual-path recommender: vibe prompt / genres go through Gemini, and “like this title” goes through TMDB similar — then both get posters + region watch providers. The painful part wasn’t the AI. It was Gemini’s JSON. Trailing commas, curly quotes, markdown fences mid-object. Spent a chunk writing a repair/parse loop and bumping maxOutputTokens to 3072 after it kept truncating mid-array. Also shipped songs mode (Gemini → iTunes covers/listen links) and a local catalog fallback so the app still picks something when keys die. UI has two themes now ( minimal / desktop )"}]...
|
Title: AuraWatch by @Ander507 | Stardance
Devlogs Title: AuraWatch by @Ander507 | Stardance
Devlogs:
AuraWatch — Devlog #1 Added a dual-path recommender: vibe prompt / genres go through Gemini, and “like this title” goes through TMDB similar — then both get posters + region watch providers. The painful part wasn’t the AI. It was Gemini’s JSON. Trailing commas, curly quotes, markdown fences mid-object. Spent a chunk writing a repair/parse loop and bumping maxOutputTokens to 3072 after it kept truncating mid-array. Also shipped songs mode (Gemini → iTunes covers/listen links) and a local catalog fallback so the app still picks something when keys die. UI has two themes now ( minimal / desktop )
Fixed the buttons and added STREAM RENT BUY categories
AuraWatch — song search that actually finds niche tracks (+ a tiny secret) Song search used to fail hard on queries like “all i want is you rebz” — Apple only returns U2/LAROI covers, never Rebzyyx. Fixed it by detecting title + artist-fragment queries, resolving the artist via Deezer/MusicBrainz, then pulling the real track from their iTunes catalog so the niche hit ranks first. Also shipped Sur Ronster easter eggs: Songs + “Surron”/“Talaria” → only On My Own by Kyle The Hooligan; Movies/TV + “surronster vibe” → his newest YouTube uploads in-app (no Zflix CTA). Friction: iTunes artist search for rebz only finds random “Rebz” artists — prefix expansion was the missing link. Visual to attach: Then notes surronster vibe → latest Sur Ronster video cards with Play video.
Devlog 4# — Posters that survive rate limits Covers were dying when TMDB/iTunes rate-limited us — blank squares and broken-image icons on match cards. Now a failed or missing poster falls back to a sleek gradient with the title’s initials. Also shipped a lightweight cache (server TTL for TMDB/iTunes + localStorage for like-title search) so repeat queries stop burning the quota. Friction: the CDN images weren’t the problem — we were refetching the same poster paths every match and hitting the wall.
Devlog 5: New brutalist UI and fixing the store links I just pushed a pretty massive update to AuraWatch. Honestly, the old UI was getting way too cluttered, and the backend routing had some really annoying edge cases I needed to iron out. Here is what changed: New Look: I completely overhauled the design. Ditched the old layout for a light-mode brutalist vibe—monospace fonts, sharp borders, and orange accents. It feels way cleaner and more like a proper utility now. Actual Platform Filtering: It was driving me crazy that the app might recommend a PC-only game to someone playing on a PS5. I added a strict, searchable platforms dropdown. If you tell it you only have a Switch and a PS4, it completely filters out everything else. Multi-Store Buttons: The API used to just grab one random store link and call it a day. Now, if a game is on three different platforms you searched for, the UI loops through and actually generates a separate button for each one (e.g., [View on PlayStation] and [View on Steam]). The Minecraft Edge Case: PC store links were breaking because games like Minecraft aren’t on Steam or Epic. I wrote a strict fallback into the routing so if it can’t find a standard storefront, it automatically generates a [View on Official Site] button instead of just ghosting you. No More Tag Dumps: The old cards used to dump 20 different store and console tags into one messy block. Now there is just a clean “Playable On” text list, completely separated from the actual buy buttons. The routing is finally feeling exact. Let me know what you think of the new stuff!
Devlog 6 — Tabletop, Amazon, and no more blank panes Board Games is actually live now. Gemini still names the titles; BoardGameGeek’s XML API does the rest (box art, year, player count). The painful bit: /thing often answers 202 (“come back later”), and search loves burying the real game under fan expansions, so Cards Against Humanity was coming back with no cover. We retry that queue, batch the IDs, and rank exact titles first. Books were doing the same disappearing-cover trick. Open Library is fine until it isn’t, so covers now fall through to Google Books, then Jikan / AniList for manga. While those images load, cards show a brutalist skeleton instead of a dead square, then fade in. Games, board games, and books/manga all got a Buy on Amazon button. It follows the region you picked (US .com , UK/Ireland .co.uk , Italy .it , most of Europe .de ) so you’re not dumped on the wrong storefront. Affiliate tags are baked in, with the Associates disclaimer in the footer. Copy Link used to fail silently. It now pops a terminal toast: [SYSTEM]: Link copied to clipboard successfully. Same deal on playlist share. And if a vibe query returns nothing or the request dies, Match doesn’t sit there empty — you get [ERROR]: No vibes match this exact query. plus Surprise Me or Reset Filters . Visual: board-game → Amazon button on a book/tabletop card → Mobile UI
Devlog 7 — One hour, one login button Swapped the Email field for Username on sign-in (it quietly becomes [email protected] behind the scenes), and the Save to Playlist modal finally opens in the middle of the screen instead of hiding in the bottom-left corner. Then Discord OAuth ate the rest of the hour. “Invalid OAuth2 redirect_uri” three separate times: first the wrong callback path, then www.aurawatch.org vs aurawatch.org — which Discord treats as two completely unrelated sites. Fixed both, felt great, got a 500 instead: my sessions table has an id column my schema file never knew about, so every login worked perfectly right up until it tried to remember you. One missing column, one hour. Visual: Login page and after login
Devlog 8 — Group Vibe Rooms Biggest thing: you can now match with a group, not just yourself. Flow: host signs in → shares /room/... → guests only need a nickname + vibe (no account). Host hits Calculate. We merge everyone’s notes/likes, run one recommend, and save the same cards for everyone — including where to watch / play. Rooms self-destruct after 24 hours. The annoying bit: at first anyone could hit Calculate and burn a Gemini call for the whole room. Calculate is host-only now, and the host’s filters (region, rating, decade) actually stick on the room instead of getting dropped. Also this round: Roblox as its own format Critic scores on cards (TMDB / Rotten Tomatoes-style %) Try it: aurawatch.org/room
Devlog 9 — From recommender to decider Stopped treating “here’s 12 options” like a finished product. You get one hero pick for tonight, then a couple of “or these” underneath — not a wall of equal cards. Decide for me, Not this, and exclude titles you already bounced so the next run isn’t the same pile again. Soft “On my apps” badge too — hard-filtering by services was nuking songs/games/books when those formats don’t even have streaming providers. Looked like the API died. It was me. Also shoved match %, watchlist, era/runtime stuff into the mix, and sign-in is a popup now so /room doesn’t yeet you to a separate login page mid-flow. Try it: https://aurawatch.org
Devlog 10 — Pick your music app, see where it streams Biggest thing: song picks aren’t Apple-only anymore. You choose YouTube Music, Spotify, or Apple Music once — Listen opens that app. Apple still uses the iTunes track link when we have it; otherwise it falls back to search like the others. The annoying bit: 30s previews were tied to card index, not the actual track. Fast re-runs or filtering could play the wrong snippet. Previews now key off track_id from iTunes so the audio matches the card you’re looking at. Also this round: Flatrate streaming badges on movie/show cards (Netflix, Crunchyroll, Max, etc.) via TMDB watch providers ~/aurawatch/... path crumbs instead of fake C:\AuraWatch\ strings in the desktop chrome Try it: aurawatch.org — Songs format → flip “Listen on” → hit preview on a couple results
Ships:
What I made: AuraWatch — a vibe finder for movies, TV, anime, and songs. You pick format/genres, optional “like these” titles, and a short mood note; it returns a few grounded picks with posters and where-to-watch / listen links. Problem: Picking something to watch (or play) usually means doomscrolling Netflix/Spotify until you give up. AuraWatch turns that into one short decision. 3 QoL improvements: Vibe + “similar to” in one place — no hopping between lists and search tabs. Region-aware Where to Watch — so you don’t get hyped for a title you can’t stream. Songs mode with listen links — same friction fix for music, not just video. Challenging: Gemini’s JSON was a mess (fences, trailing commas, truncations), so I added repair + key rotation and a local catalog fallback when APIs flake. Proud of: The dual path (TMDB similar vs Gemini concierge) and that it still works without keys. How to test: Open https://aura-watching.vercel.app/ → try Desktop + Minimal themes → pick Anime or Songs → add a “like” title and hit Get picks. Check providers/listen links on a result.
Ship #2: The Final Polish, Stable APIs & Custom Vibe Tuning 🚀 AuraWatch is finally in its most stable and customizable state yet! Over the last few sessions, I’ve completely overhauled how the app handles complex requests and edge cases based on your feedback. What’s New in this Ship: Rate Limit Resilience: Users noted missing posters for certain shows (like Yellowstone). I implemented API caching and a graceful UI fallback system. Now, if the TMDB or iTunes API rate-limits us, the UI stays beautiful with stylized fallback gradients instead of broken image icons. Match Priority Slider: You are no longer locked into the AI’s default weighting. You can now use a slider to explicitly tell the algorithm to favor your “Notes” (vibe) or the “Similar-to” titles. Smarter Music Routing: The iTunes API was failing on niche artists. I built a workaround that routes queries through Deezer/MusicBrainz to resolve the artist first, then pulls the correct track from Apple’s catalog. Hidden Easter Eggs: If you know, you know (try typing “surron” or “talaria” into the notes). Thanks to everyone who left feedback! The app is so much better because of it.
What did you make? I built a massive expansion for AuraWatch, turning it into a true routing engine rather than just a generic recommender. I completely overhauled the UI into a clean, light-mode brutalist aesthetic and added full gaming support with precise platform filtering and dynamic store links. What was challenging? Wrestling with the IGDB API to get accurate store buttons was a nightmare, especially for PC games. Writing the logic to properly map Steam, Epic, and GOG links, and creating a strict fallback to official websites when a game like Minecraft isn’t on a main store, took a lot of trial and error. It was also tough figuring out how to add advanced features like “Anti-Vibe” without cluttering the UI, which I solved with a collapsible drawer. What are you proud of? I’m really proud of the multi-store routing. If a game is on three different platforms you own, the UI dynamically generates a distinct button for every single storefront. I’m also hyped on the new “Anti-Vibe” filter that lets you strictly exclude elements you hate, and the overall terminal-like visual overhaul. What should people know so they can test your project? Switch to the Games format and test the new platform dropdown. Enter the specific consoles you own (like PC or Switch), type in a vibe in the Notes, and maybe throw something you hate into the Exclude filter. Check out how it gives you exact, clickable store buttons for the platforms you actually selected!
AuraWatch is for when you’ve been scrolling for 20 minutes and still have nothing to watch. You tell it the mood — genres, a decade, titles you already like, or just a sentence about what you’re after — and it gives you a handful of real picks with posters, trailers, and where to stream them. Movies, TV, anime, songs, games, books, manga, and board games. The hard part is that no single API covers all of that. Gemini is great at taste and terrible at valid JSON, so every format has its own path: songs go through iTunes, games through IGDB, books through Open Library with Google Books as backup, board games through BoardGameGeek’s XML API — which loves replying “202, try again later” instead of a cover. Auth ate a full hour by itself, mostly because Discord treats www.aurawatch.org and aurawatch.org as two completely different websites. The thing I’m most proud of is that it never shows you a blank pane. No cover? Skeleton, then initials on a gradient. No results? A fallback card with Surprise Me instead of an empty box. To test it: no login needed. Pick a format, describe a mood, hit Match — or just spam Surprise Me. Sign in with Discord or a username if you want to save picks into a playlist and share the link.
Shipped Group Vibe Rooms. You open a room, share the link, everyone types a vibe, the host hits Calculate — same picks for the whole group. Also made Match, Rooms, and Lists look and navigate the same, including on phone. Try it: aurawatch.org/room — make a room, join it in another tab, calculate.
Ship #6 — v0.5.0 AuraWatch used to hand you a pile of “here’s some stuff.” Now it picks one for tonight — hero card up top, a few “or these” under it, Decide for me / Not this when you’re still stuck. Also in this one: match %, local watchlist, era + runtime filters, soft “On my apps” (hard-filtering services was wiping songs/games/books — looked like Gemini died, was just me being dumb). Sign-in’s a popup now so /room doesn’t yeet you to a separate page. Live: https://aurawatch.org Code: https://github.com/Ander507/AuraWatch
Where-to-watch used to be a row of streaming logos and that was it. Rent and Buy were gone, prices never showed, and song “Listen on” chips mashed into one blob. This round puts the full panel back: Stream / Rent / Buy , with HD/4K under the logo and a short price under rent/buy ( 39 kr , not DKK 39.00 ). Stream is “you already pay for this.” Rent/Buy are pay-per-title. Same thing on the hero pick and the smaller cards. The annoying part wasn’t fetching JustWatch. It was the UI. First pass looked boxed and goofy. Fancy overlapping logos clipped titles into “Incept.” I ripped the extra chrome and just made the group labels huge so you can tell the three modes apart at a glance. Also: Listen-on for YouTube Music / Spotify / Apple Music has its own styles now, so those chips don’t steal CSS from the movie cards. Try it: aurawatch.org — no account. Movies or TV, set your region, hit Match. Scroll the hero + the “or these” cards. Songs format → flip Listen on → preview a couple tracks....
|
1793332442.8404298
|
1793418842.8404298
|
|
61651
|
Niks Personal Site by @niksgraves | Stardance
|
niksgraves
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T09:26:12Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is the Niks Personal Site a personal space of mine on the internet, aswell as the home of my directories and portfolios i really wanted to go all out here, but unfortunately i wasnt good enough at CSS, so i had claude help me with drafting (the disclaimer is in the readme) this contains an about me, my current projects, and how you can find me on the internet thank you!", "repo": "", "demo": ""}]...
|
[{"post_id": 67623, "ts": "202 [{"post_id": 67623, "ts": "2026-09-13T19:29:23Z", "hours": 0.31, "text": "I feel like I am pretty much ready for shipping!"}, {"post_id": 67599, "ts": "2026-09-13T19:00:27Z", "hours": 0.4903, "text": "Finishing up the README, I’m not really a writer kinda dud, so bare with me here"}, {"post_id": 67565, "ts": "2026-09-13T18:21:40Z", "hours": 0.7083, "text": "Ive always wanted to use this kind of styling, but i just never figured out when to use it"}, {"post_id": 67190, "ts": "2026-09-13T07:51:36Z", "hours": 0.6742, "text": "MVP Almost done!"}]...
|
Title: Niks Personal Site by @niksgraves | Stardan Title: Niks Personal Site by @niksgraves | Stardance
Devlogs:
MVP Almost done!
Ive always wanted to use this kind of styling, but i just never figured out when to use it
Finishing up the README, I’m not really a writer kinda dud, so bare with me here
I feel like I am pretty much ready for shipping!
Ships:
This is the Niks Personal Site a personal space of mine on the internet, aswell as the home of my directories and portfolios i really wanted to go all out here, but unfortunately i wasnt good enough at CSS, so i had claude help me with drafting (the disclaimer is in the readme) this contains an about me, my current projects, and how you can find me on the internet thank you!...
|
1793415043.1367214
|
1793501443.1367214
|
|
61918
|
CrumbAI by @Ander507 | Stardance
|
Ander507
|
0
|
7.98
|
0
|
[]
|
[{"post_id": 67625, "ts": "202 [{"post_id": 67625, "ts": "2026-09-13T19:32:24Z", "hours": 7.9764, "text": "Devlog #1 I wanna make a project like LMStudio, OpenCode and Cursor in 1 app with some small additions like arena to test what AI gives the best answer rn i just made loading a model and running a local model possible all other stuff are just for show for now"}]...
|
Title: CrumbAI by @Ander507 | Stardance
Devlogs:
Title: CrumbAI by @Ander507 | Stardance
Devlogs:
Devlog #1 I wanna make a project like LMStudio, OpenCode and Cursor in 1 app with some small additions like arena to test what AI gives the best answer rn i just made loading a model and running a local model possible all other stuff are just for show for now...
|
1793044060.3468058
|
1793648860.3468058
|
|
56806
|
Pixel-Run by @shauryaey246 | Stardance
|
shauryaey246
|
1
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T06:32:50Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "#“Pixel-Run” The game that contains 2 minigames, themes based on: Mario and Space Invaders The user have only have to use spacebar and arrow keys for controls. I hope you would like the game, Thank You!", "repo": "https://github.com/Shaurya-ey/Pixel-Run", "demo": "https://maverick-ed.itch.io/pixel-run"}]...
|
[{"post_id": 67628, "ts": "202 [{"post_id": 67628, "ts": "2026-09-13T19:34:54Z", "hours": 1.9186, "text": "Done with the Project!! So, i’m now finally done with the final part of my game which was the minigame-2. I also uploaded it to “itch.io”, Here: https://shaurya-gen.itch.io/pixel-run (don’t forget to comment down) now looking forward to get this approved!"}, {"post_id": 67473, "ts": "2026-09-13T16:10:16Z", "hours": 2.4578, "text": "Done with 1st minigame + Started off with 2nd Update time!! So i’m done with my 1st minigame which is mario run. Also i did some work on my 2nd minigame which is inspired by space invaders, done with firing of bullets by the space -craft + placed some enemies which requires some programming and setup so that they would die when fired which is not happening atp. See ya! after completing my 2nd minigame."}, {"post_id": 66126, "ts": "2026-09-11T18:55:52Z", "hours": 3.6514, "text": "#2. Done with level part and character movements+interactions I’m done with 1st minigame and in it with almost everything like: -Basic character movements. -Coin animation+collection logic (reconnecting signals for coins). -Level design. -Timer thingy. BUT, I have some issues for now and want some improvements to do in my first minigame, which are: I really have to add “GAME OVER” and “COMPLETED” messages at the end of the playable interface. I’m facing a bug in the game timer of 10s, like whn counting back it redirects me to finish page at ‘6s’. Other possible improvements… Timelapse: https://lapse.hackclub.com/timelapse/30Y2rYvWrVl _"}, {"post_id": 65086, "ts": "2026-09-09T23:38:58Z", "hours": 2.0417, "text": "#1.First Devlog: So i have started building the basic structure, by following the guide. What things im done with till now: -basic art creation -start,settings and quit buttons creation -organizing file structure and stuff(although it still looks messy) -basic code push till timer thingy. Timelapse links: https://lapse.hackclub.com/timelapse/P1AlfhgU8RZY and https://lapse.hackclub.com/timelapse/tqONbf-HNPeF"}]...
|
Title: Pixel-Run by @shauryaey246 | Stardance
Dev Title: Pixel-Run by @shauryaey246 | Stardance
Devlogs:
#1.First Devlog: So i have started building the basic structure, by following the guide. What things im done with till now: -basic art creation -start,settings and quit buttons creation -organizing file structure and stuff(although it still looks messy) -basic code push till timer thingy. Timelapse links: https://lapse.hackclub.com/timelapse/P1AlfhgU8RZY and https://lapse.hackclub.com/timelapse/tqONbf-HNPeF
#2. Done with level part and character movements+interactions I’m done with 1st minigame and in it with almost everything like: -Basic character movements. -Coin animation+collection logic (reconnecting signals for coins). -Level design. -Timer thingy. BUT, I have some issues for now and want some improvements to do in my first minigame, which are: I really have to add “GAME OVER” and “COMPLETED” messages at the end of the playable interface. I’m facing a bug in the game timer of 10s, like whn counting back it redirects me to finish page at ‘6s’. Other possible improvements… Timelapse: https://lapse.hackclub.com/timelapse/30Y2rYvWrVl _
Done with 1st minigame + Started off with 2nd Update time!! So i’m done with my 1st minigame which is mario run. Also i did some work on my 2nd minigame which is inspired by space invaders, done with firing of bullets by the space -craft + placed some enemies which requires some programming and setup so that they would die when fired which is not happening atp. See ya! after completing my 2nd minigame.
Done with the Project!! So, i’m now finally done with the final part of my game which was the minigame-2. I also uploaded it to “itch.io”, Here: https://shaurya-gen.itch.io/pixel-run (don’t forget to comment down) now looking forward to get this approved!
Ships:
#“Pixel-Run” The game that contains 2 minigames, themes based on: Mario and Space Invaders The user have only have to use spacebar and arrow keys for controls. I hope you would like the game, Thank You!...
|
1793346944.5420756
|
1793433344.5420756
|
|
61840
|
ThatCorley's Site by @ThatCorley | Stardance
|
ThatCorley
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T19:41:40Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I simple website that displays all of the info about me that anyone could need.", "repo": "https://github.com/thatcorley/Personal-Website", "demo": "https://thatcorley.github.io/Personal-Website/"}]...
|
[{"post_id": 67630, "ts": "202 [{"post_id": 67630, "ts": "2026-09-13T19:38:34Z", "hours": 3.0083, "text": "Created a home page and a links page that can be used for bios etc. Need to improve the CSS but looking good so far"}]...
|
Title: ThatCorley's Site by @ThatCorley | Star Title: ThatCorley's Site by @ThatCorley | Stardance
Devlogs:
Created a home page and a links page that can be used for bios etc. Need to improve the CSS but looking good so far
Ships:
I simple website that displays all of the info about me that anyone could need....
|
1793415165.2126052
|
1793501565.2126052
|
|
29657
|
CareAtlas by @Kalaivanicholan26 | Stardance
|
Kalaivanicholan26
|
0
|
38.57
|
0
|
[]
|
[{"post_id": 67633, "ts": "202 [{"post_id": 67633, "ts": "2026-09-13T19:39:50Z", "hours": 9.7981, "text": "So I finally finished my health Summary Feature. It checks whether a user has previously entered data; if not, it takes the user through five screens to add a condition, medication, allergies, history, and extra notes as needed. When they’re done, they press Done, and it displays all the information they’ve entered in little cards, with the ability to go back, edit, add, or delete information in a subsection without going through the full 5 screens again. If the user has previously entered data, take them to the page with the ability to edit, add, or delete. This feature ended up requiring about 9 files, which is why it has so many logged hours for this. I have some images below to show that the cards are blank because I didn’t want to make up any information or include personal information. The screens are also scrollable, so they might be cut off in the images. If you read through this, thank you for listening!"}, {"post_id": 62569, "ts": "2026-09-06T00:53:43Z", "hours": 9.8558, "text": "This is another feature for an app that I’m making, and it is a question builder for appointments. You pick an appointment type or clinical setting and specifics, and AI generates questions based on that information. For the Question Builder, I built the feature in Flutter using a stateful widget so the generated questions can dynamically appear and update on the screen. I created functions to send the user’s input to my backend API and process the returned questions so they can be displayed as a list of individual question cards. I also added state management to track when questions are being generated, store the generated questions, and update the UI without rebuilding the entire app manually. To make the interface easier to use, I implemented a dedicated scrollable section for the generated questions so users can browse through them while keeping the rest of the page in place. One of the main challenges was connecting the asynchronous API response to Flutter’s UI state and making sure the questions appeared correctly after the request finished. I’ve also started working on a health summary generated based on what a user enters. This is the first screen of information where a user adds all their medical conditions, with options to edit or delete. The health summary feature is still ongoing, but hopefully I’ll be back with a devlog soon for that! I don’t think it actually took me like 10 hours but thats how much is logged."}, {"post_id": 32134, "ts": "2026-07-21T02:55:05Z", "hours": 5.1803, "text": "📅 Milestone OverviewSuccessfully engineered a secure, full-stack, dual-language cloud data pipeline to deliver contextual, natural-language healthcare explanations. The architecture decouples the user interface from data processing nodes to guarantee compliance and protect core system secrets.🛠️ Technical ImplementationFrontend Matrix (Mobile Node): Programmed a responsive, single-screen conversation tree interface using Flutter and Dart. Integrated asynchronous network sockets to stream JSON transaction payloads natively.Backend Middleware (Gateway Node): Built a standalone server cluster using Python and Flask to intercept traffic, manage localized data operations, and act as a cryptographic firewall.Security & Compliance Framework: Configured isolated local environment vaults (.env) to eliminate source-code key extraction risks. Structured automated text-sanitization filters using Regular Expressions (RegEx) to strip personal identifiers before data transit.Context Bridge Logic: Implemented dynamic conversation-array mappings. The system appends historical assistant dialogue states directly into user payloads, preventing semantic prompt leaks and enabling complex follow-up reference trees.📈 Current Performance MetricsNetwork Status: Fully verified. Local loopback connections configured via localhost:8000/explain bypass local platform sandboxes smoothly.UI Responsiveness: Integrated asynchronous UI event bindings (setState) coupled with active scroll physics handlers to automatically snap viewports onto new runtime bubble components.Data Integrity: 100% accuracy achieved on edge-case follow-ups (e.g., multi-phase medical breakdowns) using strict factual temperature constraints (0.3).🚀 Next Flight Maneuvers: Migrate the local Python script cluster into an always-on cloud hosting platform architecture (Render/Railway). Integrate the AI Explanation module with the application’s pre-existing offline database reference screens."}, {"post_id": 29899, "ts": "2026-07-17T02:12:31Z", "hours": 12.8386, "text": "So for anyone new, I’ve been working on a healthcare app for personal interests. I made this function where you search for a lab test, enter your value, and analyze to get some facts and what your result means. This operates based on the data I have stored in one of the files in my projects, and it gets what’s needed based on the user’s number and test. There are also tiles for common tests if you’d rather not search, just to make it a little more fun. For the future, I want to be able to add a function where users can upload photos or screenshots and add a toggle to switch between unit measurements for certain tests because the units aren’t universal for each test. I’ll do that if I have time, though, because I’m also currently working on other features and will keep anyone interested updated. Also, it only took this long. I manually entered the data because I wanted my own database so I could control what was being output to keep answers medically accurate, and I get sidetracked. If you made it this far, thanks for listening!"}, {"post_id": 20855, "ts": "2026-07-02T15:55:34Z", "hours": 0.9006, "text": "I’m currently working on increasing the amount of vocabulary in my medical terms database for my Flutter-based app."}]...
|
Title: CareAtlas by @Kalaivanicholan26 | Stardance Title: CareAtlas by @Kalaivanicholan26 | Stardance
Devlogs:
I’m currently working on increasing the amount of vocabulary in my medical terms database for my Flutter-based app.
So for anyone new, I’ve been working on a healthcare app for personal interests. I made this function where you search for a lab test, enter your value, and analyze to get some facts and what your result means. This operates based on the data I have stored in one of the files in my projects, and it gets what’s needed based on the user’s number and test. There are also tiles for common tests if you’d rather not search, just to make it a little more fun. For the future, I want to be able to add a function where users can upload photos or screenshots and add a toggle to switch between unit measurements for certain tests because the units aren’t universal for each test. I’ll do that if I have time, though, because I’m also currently working on other features and will keep anyone interested updated. Also, it only took this long. I manually entered the data because I wanted my own database so I could control what was being output to keep answers medically accurate, and I get sidetracked. If you made it this far, thanks for listening!
📅 Milestone OverviewSuccessfully engineered a secure, full-stack, dual-language cloud data pipeline to deliver contextual, natural-language healthcare explanations. The architecture decouples the user interface from data processing nodes to guarantee compliance and protect core system secrets.🛠️ Technical ImplementationFrontend Matrix (Mobile Node): Programmed a responsive, single-screen conversation tree interface using Flutter and Dart. Integrated asynchronous network sockets to stream JSON transaction payloads natively.Backend Middleware (Gateway Node): Built a standalone server cluster using Python and Flask to intercept traffic, manage localized data operations, and act as a cryptographic firewall.Security & Compliance Framework: Configured isolated local environment vaults (.env) to eliminate source-code key extraction risks. Structured automated text-sanitization filters using Regular Expressions (RegEx) to strip personal identifiers before data transit.Context Bridge Logic: Implemented dynamic conversation-array mappings. The system appends historical assistant dialogue states directly into user payloads, preventing semantic prompt leaks and enabling complex follow-up reference trees.📈 Current Performance MetricsNetwork Status: Fully verified. Local loopback connections configured via localhost:8000/explain bypass local platform sandboxes smoothly.UI Responsiveness: Integrated asynchronous UI event bindings (setState) coupled with active scroll physics handlers to automatically snap viewports onto new runtime bubble components.Data Integrity: 100% accuracy achieved on edge-case follow-ups (e.g., multi-phase medical breakdowns) using strict factual temperature constraints (0.3).🚀 Next Flight Maneuvers: Migrate the local Python script cluster into an always-on cloud hosting platform architecture (Render/Railway). Integrate the AI Explanation module with the application’s pre-existing offline database reference screens.
This is another feature for an app that I’m making, and it is a question builder for appointments. You pick an appointment type or clinical setting and specifics, and AI generates questions based on that information. For the Question Builder, I built the feature in Flutter using a stateful widget so the generated questions can dynamically appear and update on the screen. I created functions to send the user’s input to my backend API and process the returned questions so they can be displayed as a list of individual question cards. I also added state management to track when questions are being generated, store the generated questions, and update the UI without rebuilding the entire app manually. To make the interface easier to use, I implemented a dedicated scrollable section for the generated questions so users can browse through them while keeping the rest of the page in place. One of the main challenges was connecting the asynchronous API response to Flutter’s UI state and making sure the questions appeared correctly after the request finished. I’ve also started working on a health summary generated based on what a user enters. This is the first screen of information where a user adds all their medical conditions, with options to edit or delete. The health summary feature is still ongoing, but hopefully I’ll be back with a devlog soon for that! I don’t think it actually took me like 10 hours but thats how much is logged.
So I finally finished my health Summary Feature. It checks whether a user has previously entered data; if not, it takes the user through five screens to add a condition, medication, allergies, history, and extra notes as needed. When they’re done, they press Done, and it displays all the information they’ve entered in little cards, with the ability to go back, edit, add, or delete information in a subsection without going through the full 5 screens again. If the user has previously entered data, take them to the page with the ability to edit, add, or delete. This feature ended up requiring about 9 files, which is why it has so many logged hours for this. I have some images below to show that the cards are blank because I didn’t want to make up any information or include personal information. The screens are also scrollable, so they might be cut off in the images. If you read through this, thank you for listening!...
|
1793166602.4549081
|
1793771402.4549081
|
|
59362
|
urlCat by @AloneAlex | Stardance
|
AloneAlex
|
0
|
4.34
|
0
|
[]
|
[{"post_id": 67649, "ts": "202 [{"post_id": 67649, "ts": "2026-09-13T20:06:19Z", "hours": 0.6139, "text": "embed fixing is now working too! Here’s the results:"}, {"post_id": 66654, "ts": "2026-09-12T14:43:53Z", "hours": 1.3778, "text": "Managed to get url tracker removing to work! It is an extension to String and you can just do string.clean(arrrayWithTrackingIdentifiers). Worked perfectly for single-tracker links, took me a bit longer to get it right for stuff with more trackers, but that’s what tests are for, right? Everything passes now :)"}, {"post_id": 64172, "ts": "2026-09-08T12:10:04Z", "hours": 1.4617, "text": "Made this amazing popup by remixing code from https://github.com/bestK1ngArthur/nothing-bar !"}, {"post_id": 63757, "ts": "2026-09-07T18:32:10Z", "hours": 0.8817, "text": "Figured out how to do menubar apps (“agents” as the docs call it) with SwiftUI and made a basic ui to start with. No logic done yet at all"}]...
|
Title: urlCat by @AloneAlex | Stardance
Devlogs:
Title: urlCat by @AloneAlex | Stardance
Devlogs:
Figured out how to do menubar apps (“agents” as the docs call it) with SwiftUI and made a basic ui to start with. No logic done yet at all
Made this amazing popup by remixing code from https://github.com/bestK1ngArthur/nothing-bar !
Managed to get url tracker removing to work! It is an extension to String and you can just do string.clean(arrrayWithTrackingIdentifiers). Worked perfectly for single-tracker links, took me a bit longer to get it right for stuff with more trackers, but that’s what tests are for, right? Everything passes now :)
embed fixing is now working too! Here’s the results:...
|
1792795909.8378348
|
1793400709.8378348
|
|
61582
|
My own site! by @Craques | Stardance
|
Craques
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T20:11:36Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a personal website that displays some info about me. Coding the website was easy. The part that I spent 50 HOURS ON was getting the github repo to sync my work. Never making a website again. I used ai to give me a tutorial on how to do certain things, asthetically.", "repo": "https://github.com/alvesmichael782-collab/HackathonSite", "demo": "https://alvesmichael782-collab.github.io/HackathonSite/"}]...
|
[{"post_id": 67653, "ts": "202 [{"post_id": 67653, "ts": "2026-09-13T20:08:00Z", "hours": 0.3197, "text": "Added a few more details"}, {"post_id": 67583, "ts": "2026-09-13T18:45:40Z", "hours": 1.145, "text": "Making my website, why isn’t it synced with github, im losing my mind"}, {"post_id": 67048, "ts": "2026-09-13T02:56:52Z", "hours": 0.255, "text": "Im working on my site, this is beyond confusing."}]...
|
Title: My own site! by @Craques | Stardance
Devlo Title: My own site! by @Craques | Stardance
Devlogs:
Im working on my site, this is beyond confusing.
Making my website, why isn’t it synced with github, im losing my mind
Added a few more details
Ships:
I made a personal website that displays some info about me. Coding the website was easy. The part that I spent 50 HOURS ON was getting the github repo to sync my work. Never making a website again. I used ai to give me a tutorial on how to do certain things, asthetically....
|
1793415022.0741377
|
1793501422.0741377
|
|
57231
|
My Personal Site by @Coding-AN | Stardance
|
Coding-AN
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T21:14:58Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is my personal website that I made using HTML and CSS. It contains some information about me, as well as what I’m currently up to. Additionally, it contains some of my past projects, as well as a link to my GitHub. As I continue to make more things and have more to share, I will continue to update it. It’s the first time I’ve done any web development, and although it’s on the simple side, I think it turned out great!", "repo": "https://github.com/Coding-AN/Website-AN", "demo": "https://coding-an.github.io/Website-AN/"}]...
|
[{"post_id": 67670, "ts": "202 [{"post_id": 67670, "ts": "2026-09-13T20:37:50Z", "hours": 0.2675, "text": "I implemented the pseudo-classes on all the links of my website, so now the element gets bigger when you hover over it. As for the overly centered nature of the site, since I don’t want to give up my current stacked layout or mess with the scale, I’ve decided to keep everything as it is. My next step will be to ship, so look out for that."}, {"post_id": 67503, "ts": "2026-09-13T17:00:11Z", "hours": 1.8864, "text": "I fixed the scaling of the website, and centered everything. Everything might be a little too centered though, as there’s too much empty space on the sides. It looks good in a portrait orientation, but for a desktop-focused website, I think it needs a little tweaking. Although I was originally planning to stop here, I’ll be implementing pseudo-classes to add some interaction to the website, and try to see how I can fix the design of the site"}, {"post_id": 66943, "ts": "2026-09-12T22:23:09Z", "hours": 0.6019, "text": "I added a section for my projects, and added a link to my GitHub at the top. I think I’m finished with the content of the website now. However, before I ship, I still need to finish the scaling of the website, as the sizing of elements is completely out of wack."}, {"post_id": 65722, "ts": "2026-09-11T02:04:56Z", "hours": 1.6728, "text": "I added an about me section, as well as a section that details what I’m currently up to. Right now, it has my current video game, and my current project, but I may add more entries in the future."}, {"post_id": 60578, "ts": "2026-09-03T00:54:19Z", "hours": 1.7092, "text": "I started working on my site using the tutorial, and finished the header and navigation bar. I actually did this yesterday, but I forgot to post a devlog, so I’m getting this up to date now."}]...
|
Title: My Personal Site by @Coding-AN | Stardance
Title: My Personal Site by @Coding-AN | Stardance
Devlogs:
I started working on my site using the tutorial, and finished the header and navigation bar. I actually did this yesterday, but I forgot to post a devlog, so I’m getting this up to date now.
I added an about me section, as well as a section that details what I’m currently up to. Right now, it has my current video game, and my current project, but I may add more entries in the future.
I added a section for my projects, and added a link to my GitHub at the top. I think I’m finished with the content of the website now. However, before I ship, I still need to finish the scaling of the website, as the sizing of elements is completely out of wack.
I fixed the scaling of the website, and centered everything. Everything might be a little too centered though, as there’s too much empty space on the sides. It looks good in a portrait orientation, but for a desktop-focused website, I think it needs a little tweaking. Although I was originally planning to stop here, I’ll be implementing pseudo-classes to add some interaction to the website, and try to see how I can fix the design of the site
I implemented the pseudo-classes on all the links of my website, so now the element gets bigger when you hover over it. As for the overly centered nature of the site, since I don’t want to give up my current stacked layout or mess with the scale, I’ve decided to keep everything as it is. My next step will be to ship, so look out for that.
Ships:
This is my personal website that I made using HTML and CSS. It contains some information about me, as well as what I’m currently up to. Additionally, it contains some of my past projects, as well as a link to my GitHub. As I continue to make more things and have more to share, I will continue to update it. It’s the first time I’ve done any web development, and although it’s on the simple side, I think it turned out great!...
|
1793350078.8661385
|
1793436478.8661385
|
|
16502
|
About me by @Christianlikes67_Bobbpheus | Stardanc About me by @Christianlikes67_Bobbpheus | Stardance...
|
Christianlikes67_Bobbpheus
|
0
|
0.46
|
0
|
[]
|
[{"post_id": 6768, "ts": "2026 [{"post_id": 6768, "ts": "2026-06-11T10:33:24Z", "hours": 0.4564, "text": "I’m working on a simple website that all bout’ me :D"}]...
|
Title: About me by @Christianlikes67_Bobbpheus | S Title: About me by @Christianlikes67_Bobbpheus | Stardance
Devlogs:
I’m working on a simple website that all bout’ me :D...
|
1792932548.8058012
|
1793796548.8058012
|
|
579
|
Runik - Just Run It by @uv | Stardance
|
uv
|
0
|
44.74
|
0
|
[]
|
[{"post_id": 67688, "ts": "202 [{"post_id": 67688, "ts": "2026-09-13T21:17:48Z", "hours": 1.0225, "text": "Finished proxy - but I can’t use it I finished writing the proxy. I had to: Retrieve the provided containers internal IP Generate a random IPv6 address within the given prefix and add it using netlink Start a proxy, listening at the generated IPv6 for each port, and proxying it to the containers IP. This works, but unfortunately I can’t use it! My server provider, datalix, gives a /64 subnet for each VPS, but what they don’t tell you is that you can only have 10 routed IPv6 addresses! This is not enough, and I have to manually add the addresses anyways. This means that I can’t listen on the generated IP address, and also that I can’t give each container an IP. This is a big problem, because some applications (like a minecraft server) require a plain TCP connection, which does not work behind a reverse proxy since there is no hostname passed. My only option is to rent a dedicated server, which I can’t afford right now. So now I will continue work on other parts of the project, like making it viable and easy to deploy different services, offer one click apps/database and potentially work on a way provision servers from the cloud. Commits: Retrieve container IPv4 address on expose command Finish proxy"}, {"post_id": 66762, "ts": "2026-09-12T17:28:10Z", "hours": 1.2539, "text": "Finished proxy communication Wrote a library to make receiving and sending messages really simple. Uses unix sockets so they are pretty fast. The server is started in the background, then different commands are received through channels. On the client, the connection is started in the background but c.Start() waits for the connection to change to connected. Then messages can be sent, but the connection has to be sustained using c.Wait() which waits until the server disconnects. Now I can start work on querying the docker container for its internal ip address and proxying it. Commit"}, {"post_id": 66189, "ts": "2026-09-11T21:06:12Z", "hours": 0.3208, "text": "Started work on the proxy API Not much to show, but I started writing code to create a unix socket to listen for messages. I’ll need to pass a container name, and array of ports to publish. I’ll also have to figure out how to pick new ipv6 addresses"}, {"post_id": 65549, "ts": "2026-09-10T19:14:29Z", "hours": 5.9189, "text": "long time no see I kinda hit a roadblock and waiting till I got past it until posting a devlog, but that never happened. That roadblock was trying to give each container a public ipv6 address. I was trying to get docker to expose ports on a specific ipv6 address on each container, but no matter what I did there still ended up being port conflicts. I found a better alternative now though, which is writing a proxy service that binds to an ipv6 address, and forwards the traffic to the containers internal ipv4 address. This works, but now I need to write an API so my virtual server can specify a container name and ports to forward to a public address, and dynamically create these addresses I still worked on other stuff though, so here’s what I have changed: (Sorry for massive devlog) The docker virtual server now syncs products automatically to the platform. Before it had to be done through a cURL command. Add a default postgres url to configuration Add a Key-Value input (UI library) Add support support for Key Value inputs to platform Allow users to configure volumes Simplify virtual server configuration by removing suboptions Allow regex validation for text inputs Fixes for KV Input: 1 , 2 Add a README Disable email verification by default Style scrollbar on chrome Make error message more detailed Allow users to specify port protocol with regex validation Add a database utility to makefile"}, {"post_id": 41559, "ts": "2026-08-05T21:05:59Z", "hours": 2.9108, "text": "Lotta Features!: Toasts, Container Recreation, and Ability to reconfigure services Added toast messages - needed a better way to show error messages so I implemented toasts. These were implemented using a MutationObserver, which watches an element for changes, in this case for new nodes being added to it. This lets me automatically remove toasts after a certain time and fade them out. Using a MutationObserver allows toasts to be added using HATEOS (HTMX) instead of only being able to create toasts from JavaScript. Added the ability to reconfigure services. Before only the value was shown, but now you can update configuration and save it. Added an API endpoint so virtual servers could request new service configuration. Also reworked code to use toasts, and generally improved code quality by moving code into separate functions Added the option to recreate containers. This is needed to update the container image, and/or refresh configuration, for example new ports or even a different image. This depended on the changes in 2. Toasts Reconfigure services Recreate containers"}, {"post_id": 40014, "ts": "2026-08-03T11:17:27Z", "hours": 2.4128, "text": "Feature: Service Actions Virtual servers can now list actions for the user. This is fully programmatic, so when the virtual server sends statistics and links, it also responds with a list of actions like: { \"label\" : \"Stop\" , \"code\" : \"stop_container\" , \"type\" : ui.ButtonTypeDanger , \"confirm\" : { \"title\" : \"Are you sure you want to stop this container?\" , \"description\" : \"Application data may be lost.\" , \"button_label\" : \"Confirm\" } } Each action has an optional and configurable confirmation dialog. Doing it like this allows the virtual server to have different actions based on the status of the container for example, like start if its stopped and stop/restart if its running. I also added a loading indicator to all buttons, which shows whenever a HTMX request is being made. Sort links by name (to prevent them shuffling) Add service actions"}, {"post_id": 37176, "ts": "2026-07-29T18:01:06Z", "hours": 1.7853, "text": "Feature: Service overview page Shows the status and utilisation of the container, and also the links. The links are found by parsing the containers labels and extracting the traefik rules. Fixed a few issues with the docker manager: Only one manager was started but the channel width was 5, meaning only one service was handled at a time. Now I start 5 managers, so 5 containers are handled at once. Made it so loading services at start runs in the background as well, so the API is available a lot quicker Each port uses a different service name in traefik, not sure if this was an issue but could of potentially caused problems when a service has multiple ports Also added loading indicator and status dot components. Next I’ll implement manual start/stop of containers (general action buttons), then service deletion and then volumes Service overview page Loading indicator/status dot"}, {"post_id": 36815, "ts": "2026-07-29T03:18:36Z", "hours": 1.5131, "text": "Feature: Fully automatic reverse proxy I added support for configuring ports, then implemented the Traefik reverse proxy giving each port a unique (non random - based on service id and port) subdomain. The service is given automatic TLS (error due to self signed cert - when I deploy I will have a domain and use letsencrypt) Next I need to add a better display, so the link shows in app Commit"}, {"post_id": 36772, "ts": "2026-07-29T01:20:38Z", "hours": 0.4367, "text": "Feature: Parse and store multi-input values I allowed configuration of multi inputs, to set the min and max values/length of number/text inputs I parsed and stored the values on the backend, so they are now available to the virtual server I need to: Allow updating configuration after creation Figure out how to implement a reverse proxy with variable subdomains to expose ports Configure multiinputs Add parsing + storage"}, {"post_id": 36755, "ts": "2026-07-29T00:50:03Z", "hours": 1.14, "text": "Feature: Multi-Inputs I added an input to my ui library that lets you add infinite entries. Supports text/number types. Also fixed an issue where modals could overflow the screen. Built this so I can have better configuration for my docker service, i.e to set ports and volumes. Haven’t implemented the backend storage for these but the components work Commit"}, {"post_id": 36544, "ts": "2026-07-28T18:47:35Z", "hours": 0.5611, "text": "Feature: Tabs The service page looked pretty bad so I added tabs to my UI library. Commit"}, {"post_id": 36526, "ts": "2026-07-28T18:11:50Z", "hours": 0.6992, "text": "Feature: View all your services Doesn’t show much rn Had a nightmare figuring out why the service list was overflowing the page. Solution was somehow to but min-width: 0 on the container 😭 Commit"}, {"post_id": 34029, "ts": "2026-07-24T13:28:14Z", "hours": 1.3494, "text": "Feature: Load existing on services on start + async container manager I added an endpoint to the platform API ( GET /api/services ) that returns all of the clients services. On start, the virtual server will request services to run, and start them one concurrently using golangs channel features (containers to run are added to a queue where up to five containers are handled at a time) Add async container manager Add API endpoint and start containers on virtual server start"}, {"post_id": 33744, "ts": "2026-07-23T22:00:55Z", "hours": 1.2117, "text": "Feature: Run docker images I implemented the very basics of running a docker container, and added a logs endpoint Definitely need to improve the UI for the service page, and make a tabs component. Also need to make stuff async so I don’t wait for the image to pull Commit"}, {"post_id": 33681, "ts": "2026-07-23T20:00:50Z", "hours": 0.7214, "text": "Feature: Configuration groups I added the ability to set configuration groups. These are purely visual. A virtual server may set whether the options are visible by default. For example to hide addons or advanced config options Commit"}, {"post_id": 33660, "ts": "2026-07-23T19:12:56Z", "hours": 3.5064, "text": "Feature: Order services I implemented the backend for ordering a service. Diagram explaining flow Text scored with red has not been implemented yet It works by Storing the service and configuration in a database Sending a request to the virtual server to run the service (signing the message so the virtual server can trust it) This setup is pretty complicated but it allows for virtual servers to run virtually anything and have configuration options for all of it. I have yet to implement: Per addon pricing (e.g +1 credit for +1 GB RAM) Configuration groups, which would allow for sections of configuration (e.g simple, advanced, and addons) Advanced options (required, selects etc) A proper virtual server that actually runs stuff A good service page Implement service orders Disable spinners on number inputs"}, {"post_id": 32519, "ts": "2026-07-21T19:08:31Z", "hours": 0.7511, "text": "WIP Feature: Get service modal I implemented a modal that loads on click, and has all the addons/options of the service. I need to style number inputs better, and make it so servers can set min/max values and lengths Commit"}, {"post_id": 32420, "ts": "2026-07-21T16:24:31Z", "hours": 2.4522, "text": "Feature: Programmatic services You can now add services through an API, using a generated client id and secret. A server would call the API, passing a list of products to sync. You pass a name, description, unique code, a price and a pricing schedule (per hour, day, or month). You can also add addons with options, currently only text or numbers (e.g for additional RAM). I also added a page to view all available services. Next I’ll implement “getting” the service Add services API + page Show credit price"}, {"post_id": 30182, "ts": "2026-07-17T15:30:18Z", "hours": 0.6244, "text": "Feature: Disable email verification Added an env variable ( MAIL_ENABLE ) that will disable any email sending and functions like verification. With this enabled, signing up will automatically mark the account as verified and sign them in, skipping the verify step. Did this so I can develop entirely locally and without internet, I’m on holiday in the Outer Hebrides where internet isn’t great. Writing this on a 7 hour ferry Also changed the flags field from bigint -> integer to save space, I won’t need 64 bits) Disable Email Verification Fix silliness"}, {"post_id": 24406, "ts": "2026-07-07T22:51:56Z", "hours": 0.4258, "text": "Feature: API client secret regeneration You can now regenerate the client secret. Mostly copied code from the confirm deletion, tweaked to show the new secret after. Also improved error handling so now it should show an error message if something fails instead of sending the error into the void Commit"}, {"post_id": 24382, "ts": "2026-07-07T22:06:34Z", "hours": 0.6533, "text": "Feature: Delete API clients + Danger button I added a delete action to API clients, with a confirmation modal. This needed a new button type, danger. Next I will add a regenerate action, and then I guess I will have to work on a products API Danger button API client deletion"}, {"post_id": 24250, "ts": "2026-07-07T18:06:29Z", "hours": 0.8303, "text": "Feature: API Client creation + Copy Button I added a page to view, manage and create API clients. This is what the past couple of devlogs have been leading up to, there was a lot of interactivity required for this. These will be used to programmatically set up “virtual servers”, which will be able to register “products” to the platform, and receive services to deploy, and they manage where to deploy them, for example on the current server, or provision a VPS, or to GKE, or a docker swarm. I’m designing it to be as flexible as possible. I also added a copy button component Need to implement actions next, probably just delete Copy button Fix issue where close modal buttons would submit form Add copy button to kitchen sink (UI demo) Add API clients"}, {"post_id": 24208, "ts": "2026-07-07T16:55:24Z", "hours": 1.7847, "text": "Feature: Tables + Modals I added tables and modals to my UI library. I needed these for my next platform update. Tables were more annoying to implement than you’d expect, the browser makes them pretty hard to style. Modals on the other hand were pretty quick to implement, I just used my existing card component. My UI library is coming together pretty quickly, I’ve now implemented most of the components you’d need for a interactive website! Tables Modals"}, {"post_id": 23647, "ts": "2026-07-06T18:46:04Z", "hours": 0.9703, "text": "Feature: Sign Out + Alerts I added the ability to sign out, added a favicon, created a standard layout component. I also added four types of alerts to my UI library, and the associated colours. I’ve designed everything to be themeable. I needed this for my next update Add Sign Out Disable logging of read config Add layout component and favicon Added alerts and colours Disable text wrapping in sidebar"}, {"post_id": 23143, "ts": "2026-07-05T22:25:33Z", "hours": 0.4675, "text": "Feature: Account page I added the account page that shows after sign in/up. Sign out is not implemented yet. I also updated the sidebar styling, adding a gap between links and differentiating between active and inactive links. Commit"}, {"post_id": 23115, "ts": "2026-07-05T21:27:55Z", "hours": 0.7358, "text": "Feature: Sign In I added a sign in page, implemented session tokens, and fixed a few bugs I also made it so you are automatically signed in after verifying your account. This is secure because a verification session is only made after signing in or creating an account. Honestly I thought this would take longer to implement, but I have done this a million times before. Next I’ll implement the account page. Implement sign in and sessions Make the code input required Fix error message when entering wrong code Make verification sign you in Cleanup/remove verification session after use"}, {"post_id": 23053, "ts": "2026-07-05T19:49:29Z", "hours": 1.7281, "text": "Feature: Verification emails When you create an account, an email with the verification code gets sent. You are redirected to a verification page, where you can enter the code, submit and your account gets marked as verified. The page after verification is not implemented. To do this, I: Added a hidden input to the code input that contains the actual value Set up mail sending using AWS SES (over SMTP) Added a flags column to users, and created a flagset with a verified and admin flag Created verification sessions, which store the code, an expiry date and a unique identifier Next, I’ll implement signing in (with sessions) Commit 1 - hidden input Commit 2 - verification sessions, emails and flags"}, {"post_id": 22447, "ts": "2026-07-04T22:23:38Z", "hours": 1.1489, "text": "Feature: Code input + Verify Page I built a verification page (server side stuff not implemented yet) and to do this I build a custom code input. It automatically focusses the next input when typing, or the previous when backspacing. I also added support for pasting codes. In the video demo, after pasting the focus doesn’t go to the last input but I have since fixed this. Next up, I’ll set up SMTP with AWS SES and get verification working on the server side. Commit 1 - Code input and verify page Commit 2 - Handle backspace and focus to next input when pasting"}, {"post_id": 21830, "ts": "2026-07-03T23:24:41Z", "hours": 1.2767, "text": "Feature: Sign up! There a fair bit of set up involved with this. I had to: Add config with environment variables Set up postgres database (automatic schema migration) Restructure again So now you can create an account. You can’t do anything yet, and I need to implement the next step of the flow, which is to verify your email. Commit 1 - Setup config, database and pretty logging Commit 2 - Slight restructure Commit 3 - Implement sign up (with HTMX)"}, {"post_id": 21782, "ts": "2026-07-03T21:44:10Z", "hours": 0.3444, "text": "Feature: Ghost buttons Also fixed an issue where link buttons got displayed differently due to left over styles from the browser on buttons. Commit"}, {"post_id": 21761, "ts": "2026-07-03T21:07:57Z", "hours": 0.7631, "text": "Inputs I added inputs to my UI library and added fields to my sign up form Probably won’t keep the background but its fun. Second attachment is one of my mockups from a long time ago that I might try make the UI look like. Commit"}, {"post_id": 21719, "ts": "2026-07-03T20:14:06Z", "hours": 0.6161, "text": "Start work on platform I’m starting work on the Runik platform interface. To do this I restructured the code, added a “Full Page Card” component and created a basic sign up page"}, {"post_id": 20967, "ts": "2026-07-02T18:15:56Z", "hours": 0.8025, "text": "Minimise sidebar I implemented the minimise button on the sidebar! It backs to local storage so works through refreshes and different pages. Also provides a way to display difference things based on if the sidebar is maximised or not Commit"}, {"post_id": 20892, "ts": "2026-07-02T16:52:25Z", "hours": 1.0878, "text": "Sidebar and icons support! Currently the minimise sidebar button doesn’t work. I also need to add a section for bottom links. Forgot to mention in my previous devlog, some time wasn’t tracked because I was experimenting with the helix editor. Also, this project is only using CSS, not tailwindcss. Although tailwindcss is nice, I miss CSS selectors and I find it a bit silly to have a build step for CSS. Commit"}, {"post_id": 20836, "ts": "2026-07-02T15:26:34Z", "hours": 0.515, "text": "UI Library I started working on a UI library. For my other projects I wrote the UI from scratch, where I was repeating a lot of code, or used Daisyui, which I never really liked the look of. So instead, I’m writing my own UI library for templ (a templating language for golang) so I can get it right this time. So far I’ve added buttons, button rows and cards, and a “kitchen sink” demo. There are three types of buttons, primary, secondary and accent, with nice animations. Button rows can also be aligned left, right, or center."}]...
|
Title: Runik - Just Run It by @uv | Stardance
Dev Title: Runik - Just Run It by @uv | Stardance
Devlogs:
UI Library I started working on a UI library. For my other projects I wrote the UI from scratch, where I was repeating a lot of code, or used Daisyui, which I never really liked the look of. So instead, I’m writing my own UI library for templ (a templating language for golang) so I can get it right this time. So far I’ve added buttons, button rows and cards, and a “kitchen sink” demo. There are three types of buttons, primary, secondary and accent, with nice animations. Button rows can also be aligned left, right, or center.
Sidebar and icons support! Currently the minimise sidebar button doesn’t work. I also need to add a section for bottom links. Forgot to mention in my previous devlog, some time wasn’t tracked because I was experimenting with the helix editor. Also, this project is only using CSS, not tailwindcss. Although tailwindcss is nice, I miss CSS selectors and I find it a bit silly to have a build step for CSS. Commit
Minimise sidebar I implemented the minimise button on the sidebar! It backs to local storage so works through refreshes and different pages. Also provides a way to display difference things based on if the sidebar is maximised or not Commit
Start work on platform I’m starting work on the Runik platform interface. To do this I restructured the code, added a “Full Page Card” component and created a basic sign up page
Inputs I added inputs to my UI library and added fields to my sign up form Probably won’t keep the background but its fun. Second attachment is one of my mockups from a long time ago that I might try make the UI look like. Commit
Feature: Ghost buttons Also fixed an issue where link buttons got displayed differently due to left over styles from the browser on buttons. Commit
Feature: Sign up! There a fair bit of set up involved with this. I had to: Add config with environment variables Set up postgres database (automatic schema migration) Restructure again So now you can create an account. You can’t do anything yet, and I need to implement the next step of the flow, which is to verify your email. Commit 1 - Setup config, database and pretty logging Commit 2 - Slight restructure Commit 3 - Implement sign up (with HTMX)
Feature: Code input + Verify Page I built a verification page (server side stuff not implemented yet) and to do this I build a custom code input. It automatically focusses the next input when typing, or the previous when backspacing. I also added support for pasting codes. In the video demo, after pasting the focus doesn’t go to the last input but I have since fixed this. Next up, I’ll set up SMTP with AWS SES and get verification working on the server side. Commit 1 - Code input and verify page Commit 2 - Handle backspace and focus to next input when pasting
Feature: Verification emails When you create an account, an email with the verification code gets sent. You are redirected to a verification page, where you can enter the code, submit and your account gets marked as verified. The page after verification is not implemented. To do this, I: Added a hidden input to the code input that contains the actual value Set up mail sending using AWS SES (over SMTP) Added a flags column to users, and created a flagset with a verified and admin flag Created verification sessions, which store the code, an expiry date and a unique identifier Next, I’ll implement signing in (with sessions) Commit 1 - hidden input Commit 2 - verification sessions, emails and flags
Feature: Sign In I added a sign in page, implemented session tokens, and fixed a few bugs I also made it so you are automatically signed in after verifying your account. This is secure because a verification session is only made after signing in or creating an account. Honestly I thought this would take longer to implement, but I have done this a million times before. Next I’ll implement the account page. Implement sign in and sessions Make the code input required Fix error message when entering wrong code Make verification sign you in Cleanup/remove verification session after use
Feature: Account page I added the account page that shows after sign in/up. Sign out is not implemented yet. I also updated the sidebar styling, adding a gap between links and differentiating between active and inactive links. Commit
Feature: Sign Out + Alerts I added the ability to sign out, added a favicon, created a standard layout component. I also added four types of alerts to my UI library, and the associated colours. I’ve designed everything to be themeable. I needed this for my next update Add Sign Out Disable logging of read config Add layout component and favicon Added alerts and colours Disable text wrapping in sidebar
Feature: Tables + Modals I added tables and modals to my UI library. I needed these for my next platform update. Tables were more annoying to implement than you’d expect, the browser makes them pretty hard to style. Modals on the other hand were pretty quick to implement, I just used my existing card component. My UI library is coming together pretty quickly, I’ve now implemented most of the components you’d need for a interactive website! Tables Modals
Feature: API Client creation + Copy Button I added a page to view, manage and create API clients. This is what the past couple of devlogs have been leading up to, there was a lot of interactivity required for this. These will be used to programmatically set up “virtual servers”, which will be able to register “products” to the platform, and receive services to deploy, and they manage where to deploy them, for example on the current server, or provision a VPS, or to GKE, or a docker swarm. I’m designing it to be as flexible as possible. I also added a copy button component Need to implement actions next, probably just delete Copy button Fix issue where close modal buttons would submit form Add copy button to kitchen sink (UI demo) Add API clients
Feature: Delete API clients + Danger button I added a delete action to API clients, with a confirmation modal. This needed a new button type, danger. Next I will add a regenerate action, and then I guess I will have to work on a products API Danger button API client deletion
Feature: API client secret regeneration You can now regenerate the client secret. Mostly copied code from the confirm deletion, tweaked to show the new secret after. Also improved error handling so now it should show an error message if something fails instead of sending the error into the void Commit
Feature: Disable email verification Added an env variable ( MAIL_ENABLE ) that will disable any email sending and functions like verification. With this enabled, signing up will automatically mark the account as verified and sign them in, skipping the verify step. Did this so I can develop entirely locally and without internet, I’m on holiday in the Outer Hebrides where internet isn’t great. Writing this on a 7 hour ferry Also changed the flags field from bigint -> integer to save space, I won’t need 64 bits) Disable Email Verification Fix silliness
Feature: Programmatic services You can now add services through an API, using a generated client id and secret. A server would call the API, passing a list of products to sync. You pass a name, description, unique code, a price and a pricing schedule (per hour, day, or month). You can also add addons with options, currently only text or numbers (e.g for additional RAM). I also added a page to view all available services. Next I’ll implement “getting” the service Add services API + page Show credit price
WIP Feature: Get service modal I implemented a modal that loads on click, and has all the addons/options of the service. I need to style number inputs better, and make it so servers can set min/max values and lengths Commit
Feature: Order services I implemented the backend for ordering a service. Diagram explaining flow Text scored with red has not been implemented yet It works by Storing the service and configuration in a database Sending a request to the virtual server to run the service (signing the message so the virtual server can trust it) This setup is pretty complicated but it allows for virtual servers to run virtually anything and have configuration options for all of it. I have yet to implement: Per addon pricing (e.g +1 credit for +1 GB RAM) Configuration groups, which would allow for sections of configuration (e.g simple, advanced, and addons) Advanced options (required, selects etc) A proper virtual server that actually runs stuff A good service page Implement service orders Disable spinners on number inputs
Feature: Configuration groups I added the ability to set configuration groups. These are purely visual. A virtual server may set whether the options are visible by default. For example to hide addons or advanced config options Commit
Feature: Run docker images I implemented the very basics of running a docker container, and added a logs endpoint Definitely need to improve the UI for the service page, and make a tabs component. Also need to make stuff async so I don’t wait for the image to pull Commit
Feature: Load existing on services on start + async container manager I added an endpoint to the platform API ( GET /api/services ) that returns all of the clients services. On start, the virtual server will request services to run, and start them one concurrently using golangs channel features (containers to run are added to a queue where up to five containers are handled at a time) Add async container manager Add API endpoint and start containers on virtual server start
Feature: View all your services Doesn’t show much rn Had a nightmare figuring out why the service list was overflowing the page. Solution was somehow to but min-width: 0 on the container 😭 Commit
Feature: Tabs The service page looked pretty bad so I added tabs to my UI library. Commit
Feature: Multi-Inputs I added an input to my ui library that lets you add infinite entries. Supports text/number types. Also fixed an issue where modals could overflow the screen. Built this so I can have better configuration for my docker service, i.e to set ports and volumes. Haven’t implemented the backend storage for these but the components work Commit
Feature: Parse and store multi-input values I allowed configuration of multi inputs, to set the min and max values/length of number/text inputs I parsed and stored the values on the backend, so they are now available to the virtual server I need to: Allow updating configuration after creation Figure out how to implement a reverse proxy with variable subdomains to expose ports Configure multiinputs Add parsing + storage
Feature: Fully automatic reverse proxy I added support for configuring ports, then implemented the Traefik reverse proxy giving each port a unique (non random - based on service id and port) subdomain. The service is given automatic TLS (error due to self signed cert - when I deploy I will have a domain and use letsencrypt) Next I need to add a better display, so the link shows in app Commit
Feature: Service overview page Shows the status and utilisation of the container, and also the links. The links are found by parsing the containers labels and extracting the traefik rules. Fixed a few issues with the docker manager: Only one manager was started but the channel width was 5, meaning only one service was handled at a time. Now I start 5 managers, so 5 containers are handled at once. Made it so loading services at start runs in the background as well, so the API is available a lot quicker Each port uses a different service name in traefik, not sure if this was an issue but could of potentially caused problems when a service has multiple ports Also added loading indicator and status dot components. Next I’ll implement manual start/stop of containers (general action buttons), then service deletion and then volumes Service overview page Loading indicator/status dot
Feature: Service Actions Virtual servers can now list actions for the user. This is fully programmatic, so when the virtual server sends statistics and links, it also responds with a list of actions like: { "label" : "Stop" , "code" : "stop_container" , "type" : ui.ButtonTypeDanger , "confirm" : { "title" : "Are you sure you want to stop this container?" , "description" : "Application data may be lost." , "button_label" : "Confirm" } } Each action has an optional and configurable confirmation dialog. Doing it like this allows the virtual server to have different actions based on the status of the container for example, like start if its stopped and stop/restart if its running. I also added a loading indicator to all buttons, which shows whenever a HTMX request is being made. Sort links by name (to prevent them shuffling) Add service actions
Lotta Features!: Toasts, Container Recreation, and Ability to reconfigure services Added toast messages - needed a better way to show error messages so I implemented toasts. These were implemented using a MutationObserver, which watches an element for changes, in this case for new nodes being added to it. This lets me automatically remove toasts after a certain time and fade them out. Using a MutationObserver allows toasts to be added using HATEOS (HTMX) instead of only being able to create toasts from JavaScript. Added the ability to reconfigure services. Before only the value was shown, but now you can update configuration and save it. Added an API endpoint so virtual servers could request new service configuration. Also reworked code to use toasts, and generally improved code quality by moving code into separate functions Added the option to recreate containers. This is needed to update the container image, and/or refresh configuration, for example new ports or even a different image. This depended on the changes in 2. Toasts Reconfigure services Recreate containers
long time no see I kinda hit a roadblock and waiting till I got past it until posting a devlog, but that never happened. That roadblock was trying to give each container a public ipv6 address. I was trying to get docker to expose ports on a specific ipv6 address on each container, but no matter what I did there still ended up being port conflicts. I found a better alternative now though, which is writing a proxy service that binds to an ipv6 address, and forwards the traffic to the containers internal ipv4 address. This works, but now I need to write an API so my virtual server can specify a container name and ports to forward to a public address, and dynamically create these addresses I still worked on other stuff though, so here’s what I have changed: (Sorry for massive devlog) The docker virtual server now syncs products automatically to the platform. Before it had to be done through a cURL command. Add a default postgres url to configuration Add a Key-Value input (UI library) Add support support for Key Value inputs to platform Allow users to configure volumes Simplify virtual server configuration by removing suboptions Allow regex validation for text inputs Fixes for KV Input: 1 , 2 Add a README Disable email verification by default Style scrollbar on chrome Make error message more detailed Allow users to specify port protocol with regex validation Add a database utility to makefile
Started work on the proxy API Not much to show, but I started writing code to create a unix socket to listen for messages. I’ll need to pass a container name, and array of ports to publish. I’ll also have to figure out how to pick new ipv6 addresses
Finished proxy communication Wrote a library to make receiving and sending messages really simple. Uses unix sockets so they are pretty fast. The server is started in the background, then different commands are received through channels. On the client, the connection is started in the background but c.Start() waits for the connection to change to connected. Then messages can be sent, but the connection has to be sustained using c.Wait() which waits until the server disconnects. Now I can start work on querying the docker container for its internal ip address and proxying it. Commit
Finished proxy - but I can’t use it I finished writing the proxy. I had to: Retrieve the provided containers internal IP Generate a random IPv6 address within the given prefix and add it using netlink Start a proxy, listening at the generated IPv6 for each port, and proxying it to the containers IP. This works, but unfortunately I can’t use it! My server provider, datalix, gives a /64 subnet for each VPS, but what they don’t tell you is that you can only have 10 routed IPv6 addresses! This is not enough, and I have to manually add the addresses anyways. This means that I can’t listen on the generated IP address, and also that I can’t give each container an IP. This is a big problem, because some applications (like a minecraft server) require a plain TCP connection, which does not work behind a reverse proxy since there is no hostname passed. My only option is to rent a dedicated server, which I can’t afford right now. So now I will continue work on other parts of the project, like making it viable and easy to deploy different services, offer one click apps/database and potentially work on a way provision servers from the cloud. Commits: Retrieve container IPv4 address on expose command Finish proxy...
|
1793180914.1209767
|
1793785714.1209767
|
|
2619
|
My awesome macropad! by @joschu13 | Stardance
|
joschu13
|
0
|
0.29
|
0
|
[]
|
[{"post_id": 677, "ts": "2026- [{"post_id": 677, "ts": "2026-06-02T07:19:32Z", "hours": 0.2856, "text": "I designed the Switchs in a Keyboard Matrix (4rowsx3collums) and connected them to the XIAO ( Took me about an Hour)"}]...
|
Title: My awesome macropad! by @joschu13 | Stardan Title: My awesome macropad! by @joschu13 | Stardance
Devlogs:
I designed the Switchs in a Keyboard Matrix (4rowsx3collums) and connected them to the XIAO ( Took me about an Hour)...
|
1793346610.6375864
|
1793951410.6375864
|
|
44647
|
ThetaNexus by @lix | Stardance
|
lix
|
1
|
90.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T10:09:48Z", "hours": 90.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What I made A terminal app for Windows that keeps every container, image, volume and network in one list, and lets you start and stop them, follow logs, watch live stats and see why a healthcheck is failing without opening Docker Desktop. I made ThetaNexus because I wanted to make something that would help me learn Docker, how it works, what it is and to create a tool that helps other developers control their Docker environment. What was challenging Learning a new library, making a UI that looks good, which was harder than I expected. There were also a lot of things in C# that I did not know existed. What I am proud of That this helped me to actually learn Docker. I have never really used Docker but I know it is a really popular and useful tool among developers. Some developers use it every day, some less, some don’t. And as I mentioned above… I wanted to make something that would help me learn it and a tool that helps you control it. How to try it Download the latest release from ThetaNexus on GitHub and run it. It installs into your user folder and adds ThetaNexus to your PATH, so you can start it by typing thetanexus in any terminal, but Windows Terminal is recommended.", "repo": "https://github.com/lixtheyt/ThetaNexus", "demo": "https://github.com/lixtheyt/ThetaNexus/releases/latest"}]...
|
[{"post_id": 67701, "ts": "202 [{"post_id": 67701, "ts": "2026-09-13T21:56:12Z", "hours": 0.2522, "text": "Final review and fixing bugs While code reviewing we found few more bugs. They are now fixed!"}, {"post_id": 67671, "ts": "2026-09-13T20:39:06Z", "hours": 7.8197, "text": "I choose… SHIPPING! Okay, so it is here! Another project that I made and that I am proud of! I made the README file and used the style that Helyx has, because I am very keen on it. I also worked on the GitHub page so it has everything it needs. What else did I do… The installer is done, the logos and banners are done too, and while reviewing the codebase we found some bugs, but they are fixed now. And yeah, I think that is all! I will probably start working on another project from my profile now, but I am not sure which one yet."}, {"post_id": 66760, "ts": "2026-09-12T17:26:52Z", "hours": 9.4697, "text": "Final upgrades? So, I think this is like a final features devlog that I am making for ThetaNexus. I think it is already kinda done and it already has everything it should have. I still have to set up the GitHub page and write all documents like README file, LICENSE, etc. But let’s now talk about new stuff that I added! I rewrote the logs screen and added more features to it. So now you can search in it, adjust tail, clear and save to file and more. I also added a new screen that lets you create and start a container from an image. It validates everything before it sends anything to the engine. For instance, if the port you picked is already taken, it tells you instead of failing halfway. Another new screen is a help screen. It lists all of the keys for each screen and explains what each one does. Nothing really insane but for some people this may be very useful. I also added a lot of new features like pruning all over ThetaNexus and many more! Finally, I’ve done some UI changes and code changes to improve the UX and make everything more readable and understandable. Okay, so yeah, I am going to write up the README and make the GitHub Page and then I will move to another project that I plan to make. Right now, I am still not sure which one I will make… but probably one that I won’t have troubles to make since Stardance ends in 18 days!!"}, {"post_id": 65621, "ts": "2026-09-10T21:20:24Z", "hours": 9.0289, "text": "Repolished stats Have you ever heard the phrase… “It’s easier said than done.” Well, that is exactly how I would call this what I just experienced while repolishing stats. The thing that made this even harder to do is that I am currently ill and I don’t feel very good and focused. I made 4 screens where each one is for a specific component… CPU Memory Network Disk Each one prints specific info, I tried to make sure that everything that you might need to know and see will be printed in the screen. And if you are only interested in the usage or how should I call it, then you can see all of the 4 components and their usage by clicking the key ‘g’. It will print a whole screen with only graphs of usage of each component. I think this new repolished version looks very nice and cool! It turned out pretty well. You may also notice that some of the elements look like from btop++. Well, it’s simple! I was mainly inspired by btop++ for this new stats screen. I am thinking of what to add next, but nothing comes to my mind… I might clean the whole codebase next devlog and ship it and move onto a new project… but yeah, we will see…"}, {"post_id": 64394, "ts": "2026-09-08T18:43:09Z", "hours": 9.2883, "text": "More actions?? Ordering everywhere?? So first, I added “more actions” screens to containers because wanting to put everything into a footer wouldn’t look so great. Before this, the only actions you could do to containers were: start/stop raw JSON logs stats shell well, now you can do all of this: start/stop restart pause/unpause kill remove raw JSON logs stats shell So now you have bigger control in ThetaNexus over containers. You can use these actions by pressing the ‘.’ button, it opens more actions screen. BTW, you don’t have to open it, but it just opens a selection menu where you can either pick it, or it shows keybinds to it. Also, now in the main list you have ordering in ALL sections! Before you could only order containers how you wanted but now you can do that same thing with images, volumes and networks! Ordering is also now remembered, so when you go from one section to another in the main list, you won’t have to select the order you had. Oh yeah and guess what! Now I am moving on to redo the stats! Finally!!! haha"}, {"post_id": 63176, "ts": "2026-09-06T20:47:08Z", "hours": 9.9453, "text": "All sections are done!!!! What next? I finished all of the sections soo… containers images volumes networks events And yes… their details/info screens are done too! I introduced a simple and understandable dictionary where I use details when something has more than 1 screen and info when it has only 1 screen. For instance, you have ContainerDetails, but on the other hand you have VolumeInfo. Okay, so what I did in this devlog you may be wondering… I made networks & events sections and their own info screens. I also leveled up ImageInfo to ImageDetails. Based on what I said above, you may understand what it now has. I just realized I forgot to add ordering to the other sections in main list… only containers have it for now but I WILL ADD IT!! I also plan to probably upgrade almost every info screen to a details screen so you can do more things and have more actions available in general. I also want to add more features to ContainerDetails because I want you to have full control over the container in ThetaNexus. I also plan to check every .cs file and check the logic, because I think it changed a lot from the first one that I used in containers, so yeah, that will be my first priority when I add all features I want to. So a review… BTW, I did not forget about redoing the stats!"}, {"post_id": 62417, "ts": "2026-09-05T19:20:58Z", "hours": 9.2444, "text": "Another section is done!! More features! Okay guys, so today, I locked in! Mainly because it’s Saturday (weekend) and school days are very close. Okay so… what I added? What a great question! I added a new section for VOLUMES. Firstly you can see some basic info such as driver, mounted by and when it was created. When you open it, you can see more info: Driver Scope Mountpoint Created Project and what containers it is mounted by. This info screen has functions to view: raw JSON copy name browse delete I also added a new design feature for displaying success, warning and error messages all over ThetaNexus! I also fixed some small bugs that were making ThetaNexus look a little bit glitchy, they were noticeable but that’s now fixed! I plan to finish the other sections so networks and events and I still have to change the stats screen. I did not forget that! Probably containers will receive a new feature in the next devlogs, but maybe I’ll scrap that idea… we will see how much will I like it and see it useful."}, {"post_id": 61533, "ts": "2026-09-04T14:20:12Z", "hours": 9.7336, "text": "Details functions prepared to work! Okay so I have finished all of the details functions and they all work so: raw JSON logs stats shell are all done! Well, stats still has to be redone because I want to change the design as I mentioned in a past devlog. I don’t want to do it now so I went to work on images rendering on the main list. Yes, images rendering. I am thinking of doing all of those sections now in main list since they are like the core of ThetaNexus and stats function could be also done at the end. Okay so yeah, I made the images rendering which you can see in the image and I am also working on details functions for images. Of course it won’t be the same as the container’s details functions file because containers and images are just not the same. I also made a tiny edit of the rendering of the screens so it looks nicer. I am thinking that maybe ThetaNexus won’t have that many functions because Stardance ends very soon and I have school but yeah… we will see about that! UPDATE (edit): Looks like no image details are coming. When I was at the end of finishing I noticed how dumb it was and just made a basic info one instead."}, {"post_id": 60540, "ts": "2026-09-02T22:58:50Z", "hours": 8.4425, "text": "Details screen done! Logs are done too! I finished making the other detail screens. So now all of them are completed! Overview, env, mounts, networks and health. Let me explain what each screen does… Overview: Shows you the basic info about your container. Status, created date, started date, image, command, ports, number of restarts, hardware limits and project it is assigned to. Env: Shows you environment variables. At first, they are hidden. You have to press the key ‘V’ to reveal them. Mounts: Shows every path where the container has a mount. (not writing to itself) Networks: Shows you which networks the container is attached to, and what it can reach. It shows IPv4, Gateway and aliases. Health: Shows you the container’s current health state. It also shows you how many probes have failed in a row and the last 5 probe results. Okay, screens done! I also finished one of the core functions that details screen has! THE LOGS! Here is what Logs do if you for some reason don’t know… Logs: Shows you the last 500 lines the container wrote, from both of its output streams."}, {"post_id": 58857, "ts": "2026-08-31T13:11:48Z", "hours": 8.7758, "text": "Some screens are done! So main details screen is finished. On the main overview screen you can read status of the container, date of creation, start date, image, command, ports, restarts, limits and the project it is assigned to. Right now I am working on the Stats screen under details and on other screens such as: env mounts networks health Stats are right now my priority because let me tell you, this is really difficult to make. I also don’t like the current design so I am going to redo it ahhhhh. But for now it shows the CPU usage, Memory usage, Network info so download & upload and number of processes. But I will probably make it show a huge graph of each of these things. I am also losing sanity, because I found out that I don’t know nothing. I genuinely sometimes just stare at the method thinking of how to do it and then redoing it 50 times. Ahhh this is way more difficult than making Helyx to be honest… too much math and calculating each window… Well, wish me luck."}, {"post_id": 57412, "ts": "2026-08-29T15:39:43Z", "hours": 3.9572, "text": "Playing with the new libraries, drafting interfaces and functions Since I’ve never used the Docker.DotNet library, I first have to understand it before I can build something with it. So I was making some basic functions with it to actually learn something from it. It isn’t going smoothly but we are getting somewhere. Claude Code is a huge help here. For instance, I NEVER came across the CancellationTokenSource class before, so I had no idea what it does and how it works. But yeah, now I do haha. I edited some design elements so it will look nicer. I also added start/stop functionality and I am still working on the container details screen. My plan is to make ThetaNexus have most of the features Docker Desktop has on Windows. It will depend on how much time I have until Stardance ends and also time after school, because I want to make a few more projects but yeah, I will try my best to put as many features as possible into ThetaNexus."}, {"post_id": 53361, "ts": "2026-08-23T21:34:31Z", "hours": 3.6033, "text": "The beginning I was working on the main list (menu), where you can see all of your: Containers Images Volumes Networks Events I was drafting a lot of TUI styles, because I wasn’t sure what design I wanted ThetaNexus to have, but at the end, I landed on a similar one as Helyx uses. I still have to learn the Docker.DotNet library that is being used here. I also know only the basics of Docker so I hope this will also teach me something. For now, you can check photos and rate the design I selected in comments. Right now you can only see your containers and collapse them, but you can also order them by: NAME STATE IMAGE PORTS CPU MEM UP One way or another! I plan to add details & start/stop very soon and also a whole control panel in details for that specific container so be ready!"}]...
|
Title: ThetaNexus by @lix | Stardance
Devlogs:
Th Title: ThetaNexus by @lix | Stardance
Devlogs:
The beginning I was working on the main list (menu), where you can see all of your: Containers Images Volumes Networks Events I was drafting a lot of TUI styles, because I wasn’t sure what design I wanted ThetaNexus to have, but at the end, I landed on a similar one as Helyx uses. I still have to learn the Docker.DotNet library that is being used here. I also know only the basics of Docker so I hope this will also teach me something. For now, you can check photos and rate the design I selected in comments. Right now you can only see your containers and collapse them, but you can also order them by: NAME STATE IMAGE PORTS CPU MEM UP One way or another! I plan to add details & start/stop very soon and also a whole control panel in details for that specific container so be ready!
Playing with the new libraries, drafting interfaces and functions Since I’ve never used the Docker.DotNet library, I first have to understand it before I can build something with it. So I was making some basic functions with it to actually learn something from it. It isn’t going smoothly but we are getting somewhere. Claude Code is a huge help here. For instance, I NEVER came across the CancellationTokenSource class before, so I had no idea what it does and how it works. But yeah, now I do haha. I edited some design elements so it will look nicer. I also added start/stop functionality and I am still working on the container details screen. My plan is to make ThetaNexus have most of the features Docker Desktop has on Windows. It will depend on how much time I have until Stardance ends and also time after school, because I want to make a few more projects but yeah, I will try my best to put as many features as possible into ThetaNexus.
Some screens are done! So main details screen is finished. On the main overview screen you can read status of the container, date of creation, start date, image, command, ports, restarts, limits and the project it is assigned to. Right now I am working on the Stats screen under details and on other screens such as: env mounts networks health Stats are right now my priority because let me tell you, this is really difficult to make. I also don’t like the current design so I am going to redo it ahhhhh. But for now it shows the CPU usage, Memory usage, Network info so download & upload and number of processes. But I will probably make it show a huge graph of each of these things. I am also losing sanity, because I found out that I don’t know nothing. I genuinely sometimes just stare at the method thinking of how to do it and then redoing it 50 times. Ahhh this is way more difficult than making Helyx to be honest… too much math and calculating each window… Well, wish me luck.
Details screen done! Logs are done too! I finished making the other detail screens. So now all of them are completed! Overview, env, mounts, networks and health. Let me explain what each screen does… Overview: Shows you the basic info about your container. Status, created date, started date, image, command, ports, number of restarts, hardware limits and project it is assigned to. Env: Shows you environment variables. At first, they are hidden. You have to press the key ‘V’ to reveal them. Mounts: Shows every path where the container has a mount. (not writing to itself) Networks: Shows you which networks the container is attached to, and what it can reach. It shows IPv4, Gateway and aliases. Health: Shows you the container’s current health state. It also shows you how many probes have failed in a row and the last 5 probe results. Okay, screens done! I also finished one of the core functions that details screen has! THE LOGS! Here is what Logs do if you for some reason don’t know… Logs: Shows you the last 500 lines the container wrote, from both of its output streams.
Details functions prepared to work! Okay so I have finished all of the details functions and they all work so: raw JSON logs stats shell are all done! Well, stats still has to be redone because I want to change the design as I mentioned in a past devlog. I don’t want to do it now so I went to work on images rendering on the main list. Yes, images rendering. I am thinking of doing all of those sections now in main list since they are like the core of ThetaNexus and stats function could be also done at the end. Okay so yeah, I made the images rendering which you can see in the image and I am also working on details functions for images. Of course it won’t be the same as the container’s details functions file because containers and images are just not the same. I also made a tiny edit of the rendering of the screens so it looks nicer. I am thinking that maybe ThetaNexus won’t have that many functions because Stardance ends very soon and I have school but yeah… we will see about that! UPDATE (edit): Looks like no image details are coming. When I was at the end of finishing I noticed how dumb it was and just made a basic info one instead.
Another section is done!! More features! Okay guys, so today, I locked in! Mainly because it’s Saturday (weekend) and school days are very close. Okay so… what I added? What a great question! I added a new section for VOLUMES. Firstly you can see some basic info such as driver, mounted by and when it was created. When you open it, you can see more info: Driver Scope Mountpoint Created Project and what containers it is mounted by. This info screen has functions to view: raw JSON copy name browse delete I also added a new design feature for displaying success, warning and error messages all over ThetaNexus! I also fixed some small bugs that were making ThetaNexus look a little bit glitchy, they were noticeable but that’s now fixed! I plan to finish the other sections so networks and events and I still have to change the stats screen. I did not forget that! Probably containers will receive a new feature in the next devlogs, but maybe I’ll scrap that idea… we will see how much will I like it and see it useful.
All sections are done!!!! What next? I finished all of the sections soo… containers images volumes networks events And yes… their details/info screens are done too! I introduced a simple and understandable dictionary where I use details when something has more than 1 screen and info when it has only 1 screen. For instance, you have ContainerDetails, but on the other hand you have VolumeInfo. Okay, so what I did in this devlog you may be wondering… I made networks & events sections and their own info screens. I also leveled up ImageInfo to ImageDetails. Based on what I said above, you may understand what it now has. I just realized I forgot to add ordering to the other sections in main list… only containers have it for now but I WILL ADD IT!! I also plan to probably upgrade almost every info screen to a details screen so you can do more things and have more actions available in general. I also want to add more features to ContainerDetails because I want you to have full control over the container in ThetaNexus. I also plan to check every .cs file and check the logic, because I think it changed a lot from the first one that I used in containers, so yeah, that will be my first priority when I add all features I want to. So a review… BTW, I did not forget about redoing the stats!
More actions?? Ordering everywhere?? So first, I added “more actions” screens to containers because wanting to put everything into a footer wouldn’t look so great. Before this, the only actions you could do to containers were: start/stop raw JSON logs stats shell well, now you can do all of this: start/stop restart pause/unpause kill remove raw JSON logs stats shell So now you have bigger control in ThetaNexus over containers. You can use these actions by pressing the ‘.’ button, it opens more actions screen. BTW, you don’t have to open it, but it just opens a selection menu where you can either pick it, or it shows keybinds to it. Also, now in the main list you have ordering in ALL sections! Before you could only order containers how you wanted but now you can do that same thing with images, volumes and networks! Ordering is also now remembered, so when you go from one section to another in the main list, you won’t have to select the order you had. Oh yeah and guess what! Now I am moving on to redo the stats! Finally!!! haha
Repolished stats Have you ever heard the phrase… “It’s easier said than done.” Well, that is exactly how I would call this what I just experienced while repolishing stats. The thing that made this even harder to do is that I am currently ill and I don’t feel very good and focused. I made 4 screens where each one is for a specific component… CPU Memory Network Disk Each one prints specific info, I tried to make sure that everything that you might need to know and see will be printed in the screen. And if you are only interested in the usage or how should I call it, then you can see all of the 4 components and their usage by clicking the key ‘g’. It will print a whole screen with only graphs of usage of each component. I think this new repolished version looks very nice and cool! It turned out pretty well. You may also notice that some of the elements look like from btop++. Well, it’s simple! I was mainly inspired by btop++ for this new stats screen. I am thinking of what to add next, but nothing comes to my mind… I might clean the whole codebase next devlog and ship it and move onto a new project… but yeah, we will see…
Final upgrades? So, I think this is like a final features devlog that I am making for ThetaNexus. I think it is already kinda done and it already has everything it should have. I still have to set up the GitHub page and write all documents like README file, LICENSE, etc. But let’s now talk about new stuff that I added! I rewrote the logs screen and added more features to it. So now you can search in it, adjust tail, clear and save to file and more. I also added a new screen that lets you create and start a container from an image. It validates everything before it sends anything to the engine. For instance, if the port you picked is already taken, it tells you instead of failing halfway. Another new screen is a help screen. It lists all of the keys for each screen and explains what each one does. Nothing really insane but for some people this may be very useful. I also added a lot of new features like pruning all over ThetaNexus and many more! Finally, I’ve done some UI changes and code changes to improve the UX and make everything more readable and understandable. Okay, so yeah, I am going to write up the README and make the GitHub Page and then I will move to another project that I plan to make. Right now, I am still not sure which one I will make… but probably one that I won’t have troubles to make since Stardance ends in 18 days!!
I choose… SHIPPING! Okay, so it is here! Another project that I made and that I am proud of! I made the README file and used the style that Helyx has, because I am very keen on it. I also worked on the GitHub page so it has everything it needs. What else did I do… The installer is done, the logos and banners are done too, and while reviewing the codebase we found some bugs, but they are fixed now. And yeah, I think that is all! I will probably start working on another project from my profile now, but I am not sure which one yet.
Final review and fixing bugs While code reviewing we found few more bugs. They are now fixed!
Ships:
What I made A terminal app for Windows that keeps every container, image, volume and network in one list, and lets you start and stop them, follow logs, watch live stats and see why a healthcheck is failing without opening Docker Desktop. I made ThetaNexus because I wanted to make something that would help me learn Docker, how it works, what it is and to create a tool that helps other developers control their Docker environment. What was challenging Learning a new library, making a UI that looks good, which was harder than I expected. There were also a lot of things in C# that I did not know existed. What I am proud of That this helped me to actually learn Docker. I have never really used Docker but I know it is a really popular and useful tool among developers. Some developers use it every day, some less, some don’t. And as I mentioned above… I wanted to make something that would help me learn it and a tool that helps you control it. How to try it Download the latest release from ThetaNexus on GitHub and run it. It installs into your user folder and adds ThetaNexus to your PATH, so you can start it by typing thetanexus in any terminal, but Windows Terminal is recommended....
|
1793342832.6761436
|
1793429232.6761436
|
|
60834
|
Smiski House by @kavya_pesswani | Stardance
|
kavya_pesswani
|
0
|
8.18
|
0
|
[]
|
[{"post_id": 67702, "ts": "202 [{"post_id": 67702, "ts": "2026-09-13T21:58:16Z", "hours": 0.7022, "text": "fixed a few deatils!"}, {"post_id": 65648, "ts": "2026-09-10T22:37:14Z", "hours": 7.4744, "text": "A house for my smiski!"}]...
|
Title: Smiski House by @kavya_pesswani | Stardance Title: Smiski House by @kavya_pesswani | Stardance
Devlogs:
A house for my smiski!
fixed a few deatils!...
|
1793037056.6794078
|
1793641856.6794078
|
|
55616
|
PulseBeat by @manayp | Stardance
|
manayp
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T22:12:11Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So this is basically a small little website I made using HTML and CSS. And a bit of help with Claude and Chatgpt. The website is about the heart which is an organ in your cardiovascular system. It talks about the heart and shows interactive visuals and various diagrams which highlight and outline parts of the heart like the ventricles, arteries, pulmonary veins and much more. I also added a few practice questions in the bottom of the website which basically just tests if you were paying attention lol. I also added a part where I created a heart which took some time so I used the website OneCompilor which made everything go much more faster in the testing part. And then I just rewrote it back here. So basically what I did was make a heart that connects to 4 various types of beats per minute, which shows a clear understanding and visual representation. I want to also show a call to action stance because the amount of people that die from heart related issues is massive and in this generation so many kids like me do not make good choices so I just want to show them what actually happens and honestly I also need to show myself so I did a good and vast amount of research and overall I am trying to engage and teach. So let me know if you like it!", "repo": "https://github.com/manayparikh1/PulseBeat", "demo": "https://celadon-paprenjak-3c2948.netlify.app/"}]...
|
[{"post_id": 67706, "ts": "202 [{"post_id": 67706, "ts": "2026-09-13T22:08:46Z", "hours": 1.0153, "text": "This is my last devlog and all I did was finish the code like there was a few lines left. It was mostly just about the questions because I had difficulty in writing them until I figured it out using onecompilor(testing platform). Then I wrote the whole readme and it talks about small things like why I made this and I also wrote some stuff that were hard for me and various things I learned. I also mentioned how to run it and the platforms that can support it which includes the main ones like chrome, firefox, and also safari. Claude and a bit of Chatgpt helped me for the research and actually taught me some stuff. And another special thx to OneCompilor because it helped me test off vs code which was SOO helpful. Finally I added future improvements that I thought of and even though there could be more I just wrote and created this much because I am still learning. Overalll adioss and lemme know if u like it or what I can improve."}, {"post_id": 64315, "ts": "2026-09-08T16:33:37Z", "hours": 1.5797, "text": "I completed a lot in the last 1.5 hours. So first I completed the diagram of all the arteries and the ventricles etc. It looks great but I had some issues so I did some outside testing using OneCompilor and chatgpt also tested it for me and gave me feedback. I also completed the BPM signals thats connected to a fake ecg thats mirroring the tempo of the heart beats. The four bpm signal tempos include: Asleep, resting, running and finally sprint. And It goes from very slow to very fast. I also added field notes with some data that basically talks about the heart and stuff. Finally I started working on the facts and I had some issues here a bit in the css but then I realized it was one small easy error to fix. So I am only gonna add 4 questions in the quiz which is honestly more than enough and if I need to add more later its easy so I will get feedback. The css honestly needs fixing later it looks too meh. So yep thats all cya and lets see what happenss."}, {"post_id": 60892, "ts": "2026-09-03T15:18:43Z", "hours": 1.3403, "text": "For the past hour I fixed a few bugs and started the html. And yes I finished the css. This was a bad idea obviously because usually css is supposed to be done after html but its fine currently I am not struggling and it is going pretty well. I fixed the title which was flipped because it was at 0.1em instead of -0.01em which caused it to be flipped in the wrong area. I also completed the tempo area and the 4 different modes for the bpm now I gotta work on the ecg signals. I am having trouble figuring out how to add those waves but I’ll see and test various methods on ONECOMPILOR.com. I also fact checked all the research that is going to be added in this because it may be wrong because I got it from a book LOL. Lets see what happens."}, {"post_id": 58365, "ts": "2026-08-30T19:26:51Z", "hours": 1.055, "text": "For the past hour I just fixed and added a bunch of stuff. So the css creates a heartbeat themed layout thats interactive and it has a pulse animation that beats which 4 different modes. And there are also radio buttons that change the global –beat speed using the body:has() and those Exact same radio labels update the beats per minute of the heart. Also I fixed minor bugs in the css background which was shown in the first devlog and it stilll looks amazingggg. I did the css before the html which is a VERYY bad idea and now its almost time for the html so lets see how that goes because I gotta eye ball it and connect it to the Css which may change some stufff. Now lets see what will happen."}, {"post_id": 56897, "ts": "2026-08-28T22:04:41Z", "hours": 0.5758, "text": "For the past half hour I being thinking what I was going to do and my colour scheme. And then it hit me why I dont I make a website about heart awareness that also teaches people about the heart a lot. So I figured out the colour scheme and completed the root: colours. I also finished the background which is great and matches what I wanted it to look like. So basically chatgpt helped me pick 2 colours which were basically just shades of red. But I did not like them that much so I just chose this (pic below). Plus I finished the dark mode and light mode colour configuration and it looks… AMAZINGG. In conclusion its going great so far."}]...
|
Title: PulseBeat by @manayp | Stardance
Devlogs:
Title: PulseBeat by @manayp | Stardance
Devlogs:
For the past half hour I being thinking what I was going to do and my colour scheme. And then it hit me why I dont I make a website about heart awareness that also teaches people about the heart a lot. So I figured out the colour scheme and completed the root: colours. I also finished the background which is great and matches what I wanted it to look like. So basically chatgpt helped me pick 2 colours which were basically just shades of red. But I did not like them that much so I just chose this (pic below). Plus I finished the dark mode and light mode colour configuration and it looks… AMAZINGG. In conclusion its going great so far.
For the past hour I just fixed and added a bunch of stuff. So the css creates a heartbeat themed layout thats interactive and it has a pulse animation that beats which 4 different modes. And there are also radio buttons that change the global –beat speed using the body:has() and those Exact same radio labels update the beats per minute of the heart. Also I fixed minor bugs in the css background which was shown in the first devlog and it stilll looks amazingggg. I did the css before the html which is a VERYY bad idea and now its almost time for the html so lets see how that goes because I gotta eye ball it and connect it to the Css which may change some stufff. Now lets see what will happen.
For the past hour I fixed a few bugs and started the html. And yes I finished the css. This was a bad idea obviously because usually css is supposed to be done after html but its fine currently I am not struggling and it is going pretty well. I fixed the title which was flipped because it was at 0.1em instead of -0.01em which caused it to be flipped in the wrong area. I also completed the tempo area and the 4 different modes for the bpm now I gotta work on the ecg signals. I am having trouble figuring out how to add those waves but I’ll see and test various methods on ONECOMPILOR.com. I also fact checked all the research that is going to be added in this because it may be wrong because I got it from a book LOL. Lets see what happens.
I completed a lot in the last 1.5 hours. So first I completed the diagram of all the arteries and the ventricles etc. It looks great but I had some issues so I did some outside testing using OneCompilor and chatgpt also tested it for me and gave me feedback. I also completed the BPM signals thats connected to a fake ecg thats mirroring the tempo of the heart beats. The four bpm signal tempos include: Asleep, resting, running and finally sprint. And It goes from very slow to very fast. I also added field notes with some data that basically talks about the heart and stuff. Finally I started working on the facts and I had some issues here a bit in the css but then I realized it was one small easy error to fix. So I am only gonna add 4 questions in the quiz which is honestly more than enough and if I need to add more later its easy so I will get feedback. The css honestly needs fixing later it looks too meh. So yep thats all cya and lets see what happenss.
This is my last devlog and all I did was finish the code like there was a few lines left. It was mostly just about the questions because I had difficulty in writing them until I figured it out using onecompilor(testing platform). Then I wrote the whole readme and it talks about small things like why I made this and I also wrote some stuff that were hard for me and various things I learned. I also mentioned how to run it and the platforms that can support it which includes the main ones like chrome, firefox, and also safari. Claude and a bit of Chatgpt helped me for the research and actually taught me some stuff. And another special thx to OneCompilor because it helped me test off vs code which was SOO helpful. Finally I added future improvements that I thought of and even though there could be more I just wrote and created this much because I am still learning. Overalll adioss and lemme know if u like it or what I can improve.
Ships:
So this is basically a small little website I made using HTML and CSS. And a bit of help with Claude and Chatgpt. The website is about the heart which is an organ in your cardiovascular system. It talks about the heart and shows interactive visuals and various diagrams which highlight and outline parts of the heart like the ventricles, arteries, pulmonary veins and much more. I also added a few practice questions in the bottom of the website which basically just tests if you were paying attention lol. I also added a part where I created a heart which took some time so I used the website OneCompilor which made everything go much more faster in the testing part. And then I just rewrote it back here. So basically what I did was make a heart that connects to 4 various types of beats per minute, which shows a clear understanding and visual representation. I want to also show a call to action stance because the amount of people that die from heart related issues is massive and in this generation so many kids like me do not make good choices so I just want to show them what actually happens and honestly I also need to show myself so I did a good and vast amount of research and overall I am trying to engage and teach. So let me know if you like it!...
|
1793336169.7679765
|
1793422569.7679765
|