|
56303
|
SetYaml by @daviipkp | Stardance
|
daviipkp
|
0
|
10.34
|
0
|
[]
|
[{"post_id": 67774, "ts": "202 [{"post_id": 67774, "ts": "2026-09-14T00:49:11Z", "hours": 0.3206, "text": "solved a simple bug that was making a infinite loop (main instantiating a class, the class calling another class and the other class asking main for the instance)"}, {"post_id": 61190, "ts": "2026-09-04T00:16:27Z", "hours": 0.3422, "text": "pretty much just added a check for when the user tries to create a new object when he already has created one. also removed a few debug stuff and added some TODOs"}, {"post_id": 60546, "ts": "2026-09-02T23:11:34Z", "hours": 1.0481, "text": "Made some changes for the sake of good manners and implemented a way for the user to implement a update handler the user can receive the list of changes in the configuration and handle it as soon as it arrives, without to make the software detect the change (with polling for example) about the other changes, I was creating an instance of the configuration object every time the file was changed, which does not help performance at all. Now I just update the one we already have."}, {"post_id": 59570, "ts": "2026-09-01T13:51:11Z", "hours": 2.3964, "text": "dynamic variables system poc I faced a LOT of errors while coding that. last devlog I had pretty much all the idea of how I wanted it to be but it wasn’t implemented at all, so I started changing whatever I needed in the code for it to work (such as creating parsing methods, ways to bump Java field’s values into the yml, etc). now it pretty much works, but I haven’t tried creating dynamic variables of more complex types and I also don’t have a smart way to update THE FILE whenever the user updates the variable, instead of the way around which already works."}, {"post_id": 58935, "ts": "2026-08-31T14:34:24Z", "hours": 0.9972, "text": "Started working on a dynamic variables system which should allow the same concept of binding but with variables, without having to bind an entire object (should work well when debugging applications, since you can change any variable in runtime)"}, {"post_id": 58870, "ts": "2026-08-31T13:24:44Z", "hours": 1.9636, "text": "Binding works really well with pretty much one line of code, you can receive an object of your choice that is binded to a file also of your choice. whatever you change in the file will reflect in the object during runtime. also, the file is created based on the model of the object’s class (which means you can define default) pretty much just create whatever configuration you want, ask for an instance of it and the software will do the rest"}, {"post_id": 58262, "ts": "2026-08-30T17:05:40Z", "hours": 3.2725, "text": "Binding system and polling with threads basically created a simple way to bind objects to its configuration file. also started to build a way to check the changes on files using threads"}]...
|
Title: SetYaml by @daviipkp | Stardance
Devlogs:
Title: SetYaml by @daviipkp | Stardance
Devlogs:
Binding system and polling with threads basically created a simple way to bind objects to its configuration file. also started to build a way to check the changes on files using threads
Binding works really well with pretty much one line of code, you can receive an object of your choice that is binded to a file also of your choice. whatever you change in the file will reflect in the object during runtime. also, the file is created based on the model of the object’s class (which means you can define default) pretty much just create whatever configuration you want, ask for an instance of it and the software will do the rest
Started working on a dynamic variables system which should allow the same concept of binding but with variables, without having to bind an entire object (should work well when debugging applications, since you can change any variable in runtime)
dynamic variables system poc I faced a LOT of errors while coding that. last devlog I had pretty much all the idea of how I wanted it to be but it wasn’t implemented at all, so I started changing whatever I needed in the code for it to work (such as creating parsing methods, ways to bump Java field’s values into the yml, etc). now it pretty much works, but I haven’t tried creating dynamic variables of more complex types and I also don’t have a smart way to update THE FILE whenever the user updates the variable, instead of the way around which already works.
Made some changes for the sake of good manners and implemented a way for the user to implement a update handler the user can receive the list of changes in the configuration and handle it as soon as it arrives, without to make the software detect the change (with polling for example) about the other changes, I was creating an instance of the configuration object every time the file was changed, which does not help performance at all. Now I just update the one we already have.
pretty much just added a check for when the user tries to create a new object when he already has created one. also removed a few debug stuff and added some TODOs
solved a simple bug that was making a infinite loop (main instantiating a class, the class calling another class and the other class asking main for the instance)...
|
1793378847.7540169
|
1793983647.7540169
|
|
61977
|
matthews-personal-site by @mattetsy5 | Stardance
|
mattetsy5
|
0
|
0.51
|
0
|
[]
|
[{"post_id": 67772, "ts": "202 [{"post_id": 67772, "ts": "2026-09-14T00:45:25Z", "hours": 0.5072, "text": "I worked mainly on the home page and adding the main things I like in a website like dark mode and some color accents. Just testing in a browser currently before committing to a domain."}]...
|
Title: matthews-personal-site by @mattetsy5 | Star Title: matthews-personal-site by @mattetsy5 | Stardance
Devlogs:
I worked mainly on the home page and adding the main things I like in a website like dark mode and some color accents. Just testing in a browser currently before committing to a domain....
|
1793652656.7810638
|
1794257456.7810638
|
|
61098
|
Stardance Slack-bot by @Itz_Lulu | Stardance
|
Itz_Lulu
|
0
|
0.37
|
0
|
[]
|
[{"post_id": 67770, "ts": "202 [{"post_id": 67770, "ts": "2026-09-14T00:43:29Z", "hours": 0.3703, "text": "made a slack-bot"}]...
|
Title: Stardance Slack-bot by @Itz_Lulu | Stardanc Title: Stardance Slack-bot by @Itz_Lulu | Stardance
Devlogs:
made a slack-bot...
|
1793648939.5183482
|
1794253739.5183482
|
|
19656
|
Anukrama by @aashvik | Stardance
|
aashvik
|
2
|
21.0
|
180
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T02:47:47Z", "hours": 14.0, "multiplier": 8.67, "payout": 119, "blessing": "neutral", "text": "What did you make? Anukrama is a gita chapter 15 chanting game where you get part of a verse and try to chant the rest. I also made an ai that scores your chanting. What was challenging? Getting the ai running in the browser was the hardest part. I had to move the pytorch model to onnx and recreate the audio processing in JavaScript. What are you proud of? Prob getting the entire ai pipeline working in the actual website. It literally took most of my time and I couldn’t get it to work for like an hour :sob-spin: What should people know when testing? The AI is meant to mainly be a gimmick in beta. It’s only based on around 30 recordings per verse because there is absolutely no gita chanting data. You should test without bg noise and actually chant the verse if u want the best results.", "repo": "https://github.com/koditra/Anukrama", "demo": "https://koditra.github.io/Anukrama/"}, {"ship_num": 2, "ts": "2026-07-04T06:22:09Z", "hours": 7.0, "multiplier": 8.95, "payout": 61, "blessing": "neutral", "text": "Anukrama is a nintendo Switch homebrew app that helps people memorize and practice chanting Bhagavad Gita verses. It gives you the previous quarter of a verse as a clue, and you have to chant the next part from memory. Right now it includes all 20 verses of Chapter 15 with audio prompts and easy controller navigation. The biggest challenge was getting the audio system and verse progression working smoothly on the Switch. I also spent a lot of time organizing the verse metadata and making everything load quickly. Thanks for following my journey!", "repo": "https://github.com/koditra/Anukrama", "demo": "https://koditra.github.io/Anukrama/"}]...
|
[{"post_id": 67766, "ts": "202 [{"post_id": 67766, "ts": "2026-09-14T00:35:29Z", "hours": 4.8522, "text": "Final update/devlog !!!! I finally finished integrating the AI pronunciation system into Anukrama. This ended up being way more complicated than I originally thought. The model itself was trained in PyTorch using MFCCs, spectral features, and DTW comparisons against multiple good chanting recordings. The problem was that the .pt model couldn’t just be dropped into a website, so I had to export everything to ONNX and basically rebuild the preprocessing pipeline in JavaScript so the browser could generate the same kind of audio features from a recording. I also changed how I stored the scaler data by putting the normalization values into the .npz files, then wrote the JavaScript to load the model, scaler, reference audio, process the recording, calculate the features, and pass everything through the ONNX model. There were a bunch of stupid issues along the way too, including the ONNX runtime conflicting with a variable in my JS and the scaler data not loading correctly lol. After all of that I added the actual score display to the site, so the recording can go through the whole pipeline and come back as a pronunciation score out of 100. This took way longer than I expected lol, but I finally got it working. This is prob the end of this project!!!!"}, {"post_id": 53354, "ts": "2026-08-23T21:13:09Z", "hours": 3.5311, "text": "AI Pronunciation Model I worked on the AI pronunciation system for Anukrama! I used PyTorch to train models that compare your chanting to good reference recordings and give u a score out of 100. I made models for Verse 1 and Verse 2 using things like MFCCs and DTW. The models are trained, but I need way more data because there isn’t really a big dataset of Bhagavad Gita chanting recordings. I still need to record a lot of the data myself. I haven’t added the AI to the website yet. If u wanna help me record data for the model, pls DM me ( @aashvik )!"}, {"post_id": 47192, "ts": "2026-08-14T22:33:31Z", "hours": 3.0061, "text": "Devlog Update Today I worked on the browser version of Anukrama. i added: A browser demo at game.html GitHub-hosted verse data using the meta , verses , and audio folders Devanagari support in the browser Automatic prompt audio Special handling for Verse 1 since it has no prompt Audio fade-outs when switching verses quickly Fade animations between game states i also updated the landing page with a Try Browser Demo button. i added a short explanation of what the Bhagavad Gita is, including a comparison to the Bible to help people unfamiliar with Hinduism understand it. i might need to fix the landing page css because the buttons look a bit squished also, i learned how to type in markdown recently so tell me if u have any advice! :)"}, {"post_id": 32324, "ts": "2026-07-21T12:51:13Z", "hours": 2.3922, "text": "Final Devlog! Hi! whats up? So basically, I worked on the website and worked on rewriting it in my style because I used way too much AI for the last one, so it seemed vibecoded. I started out with a really basic page and slowly added more css. I chose a paper brown color scheme for the UI bc i think it fits the Bhagavad Gita app idea better. I also spent a while practicing css and finally understand flexbox. here are the things i added: navbar hack club flag that waves around chinmaya mission logo hover animations gameplay section with a youtube video minimalist layout i made the hack club logo wave constantly, then stop and get a little bigger when you hover over it. that was fun. Thats all! I also wanted to thank and give Chinmaya Mission credit for the audio recordings. (They didn’t even want recognition!)"}, {"post_id": 21407, "ts": "2026-07-03T10:20:08Z", "hours": 1.8864, "text": "I made a landing page for the website! I tried to make my own css but it looked kinda ahh so i ended up using a mixture of ChatGPT and Gemini to make the effects look way better. I still changed a bunch of stuff myself and messed around with the layout until it looked how i wanted. I also added my own screenshots to the website so people could actually see what it looks like instead of just reading about it. I spent some time changing little things like the spacing, colors, and animations to make it feel nicer overall. After i finished everything, i used git to upload all of the code to github so i could keep track of my changes and have it all backed up. Thats pretty much everything i worked on for the landing page!"}, {"post_id": 12464, "ts": "2026-06-20T11:03:02Z", "hours": 4.3567, "text": "Today ended up being a much bigger update than I originally planned. The original goal was simply to improve audio playback and make the application a little easier to use, but it gradually turned into a complete overhaul of the project. Earlier versions of Anukrama were entirely terminal-based and focused mainly on functionality rather than presentation. While they worked well enough for testing and practicing verses, they did not really feel like a finished Nintendo Switch application. As I continued working on the project, I decided it was time to build a proper interface. I started by experimenting with a few graphics libraries, but that quickly became frustrating due to dependency problems, linker errors, and build issues that consumed far more development time than expected. After spending a considerable amount of time trying to make those libraries cooperate, I eventually decided to take a different approach and build the rendering system myself using the Switch framebuffer along with FreeType for font rendering. This ended up being a much better solution because it gave me direct control over how text and graphics were displayed. One of the most important improvements from this change was proper Unicode support. Earlier versions struggled with Sanskrit transliteration characters, often displaying missing glyphs, incorrect symbols, or unreadable text. The new rendering system finally allowed me to render Unicode properly, which means verses and prompts can now appear correctly on screen. During the process I also redesigned the entire user interface, added larger text, created menu screens, introduced animated backgrounds, improved readability, added color-coded sections, and included a “Made by Aashvik Goel” credit within the application. Looking back, the difference between the original terminal version and the new interface is much larger than I expected when I first started making changes. The audio system also received significant improvements during this update. The application now supports separate prompt and answer recordings, allowing users to hear a prompt before revealing the complete verse. Implementing this required converting recordings into the correct PCM format, debugging playback issues, testing different audio configurations, and tracking down several recordings that did not behave as expected. While a small number of recordings still need additional work, the overall system is now much more reliable. Alongside the audio improvements, I added multiple study modes to make practice sessions more engaging. There is now a Solo Practice mode as well as a pass-and-play VS Mode where two players can take turns answering verses and earning points. Another major focus was testing on actual hardware rather than relying entirely on emulation. Although Ryujinx was extremely useful throughout development, I regularly installed builds directly onto my Nintendo Switch to verify that rendering, controls, performance, and audio behaved correctly on the real device. This helped uncover issues that would have been easy to miss in an emulator and made the project feel much more like a genuine homebrew application. By the end of this development cycle, Anukrama had gained a completely new rendering engine, proper Unicode support, improved audio playback, multiple study modes, a full menu system, animated visual effects, and a far more polished overall presentation. What originally started as a simple terminal-based study tool has now begun to feel like a complete Switch application designed specifically for practicing Bhagavad Gita verses."}, {"post_id": 9784, "ts": "2026-06-16T07:02:35Z", "hours": 0.3319, "text": "hi again, i finally got a proper shell/menu system working for the app now. right now it’s still really basic and mostly just a text UI, but it’s the first version where everything is structured properly instead of just random test code. you can move up and down with the dpad, press A to select options, and it switches between different states like practice, quiz, and settings. it doesn’t actually do much yet in those modes, but that’s kind of the point of this step. i basically wanted to build a shell first so all the core navigation and input handling is stable before i start adding the real features. before this, everything was just separate test snippets, but now it’s all inside one loop with proper states, so it’s way easier to expand without breaking things. pressing + still quits the app, and i made sure the input system is using the correct libnx setup from the examples, so the controls actually work properly on real hardware instead of randomly failing like before. now that this shell is done, i can actually start building the real parts of the project. the plan is to plug in the verse system into practice mode first, where it shows a prompt and then eventually makes you continue the verse. quiz mode will probably come after that once the structure is solid. Anyways, here is a pic of the shell from an emulator:"}, {"post_id": 9770, "ts": "2026-06-16T06:33:48Z", "hours": 0.6058, "text": "Hi everyone! I just started this project so i can get more comfortable with making my own games/apps, and I rlly wanted to make a switch app! So here’s my plan: I want to make a fully interactive and immersive 2d UI but i think ill make a text shell first so all the features work and ill make the UI later. when i was starting to make the code, I made a screen which said press + to exit. I pressed plus, but the game didn’t quit like it was supposed to. After making a test code to print all buttons pressed, I found out my code wasn’t even receiving any inputs. I had to ask on reddit and I still couldn’t find any answers so i looked in the demo folder of the library I installed and was able to fix my code after reading the proper controller initialization that I should have used. Here is a picture from an emulator of what the output is supposed to look like:"}]...
|
Title: Anukrama by @aashvik | Stardance
Devlogs:
Title: Anukrama by @aashvik | Stardance
Devlogs:
Hi everyone! I just started this project so i can get more comfortable with making my own games/apps, and I rlly wanted to make a switch app! So here’s my plan: I want to make a fully interactive and immersive 2d UI but i think ill make a text shell first so all the features work and ill make the UI later. when i was starting to make the code, I made a screen which said press + to exit. I pressed plus, but the game didn’t quit like it was supposed to. After making a test code to print all buttons pressed, I found out my code wasn’t even receiving any inputs. I had to ask on reddit and I still couldn’t find any answers so i looked in the demo folder of the library I installed and was able to fix my code after reading the proper controller initialization that I should have used. Here is a picture from an emulator of what the output is supposed to look like:
hi again, i finally got a proper shell/menu system working for the app now. right now it’s still really basic and mostly just a text UI, but it’s the first version where everything is structured properly instead of just random test code. you can move up and down with the dpad, press A to select options, and it switches between different states like practice, quiz, and settings. it doesn’t actually do much yet in those modes, but that’s kind of the point of this step. i basically wanted to build a shell first so all the core navigation and input handling is stable before i start adding the real features. before this, everything was just separate test snippets, but now it’s all inside one loop with proper states, so it’s way easier to expand without breaking things. pressing + still quits the app, and i made sure the input system is using the correct libnx setup from the examples, so the controls actually work properly on real hardware instead of randomly failing like before. now that this shell is done, i can actually start building the real parts of the project. the plan is to plug in the verse system into practice mode first, where it shows a prompt and then eventually makes you continue the verse. quiz mode will probably come after that once the structure is solid. Anyways, here is a pic of the shell from an emulator:
Today ended up being a much bigger update than I originally planned. The original goal was simply to improve audio playback and make the application a little easier to use, but it gradually turned into a complete overhaul of the project. Earlier versions of Anukrama were entirely terminal-based and focused mainly on functionality rather than presentation. While they worked well enough for testing and practicing verses, they did not really feel like a finished Nintendo Switch application. As I continued working on the project, I decided it was time to build a proper interface. I started by experimenting with a few graphics libraries, but that quickly became frustrating due to dependency problems, linker errors, and build issues that consumed far more development time than expected. After spending a considerable amount of time trying to make those libraries cooperate, I eventually decided to take a different approach and build the rendering system myself using the Switch framebuffer along with FreeType for font rendering. This ended up being a much better solution because it gave me direct control over how text and graphics were displayed. One of the most important improvements from this change was proper Unicode support. Earlier versions struggled with Sanskrit transliteration characters, often displaying missing glyphs, incorrect symbols, or unreadable text. The new rendering system finally allowed me to render Unicode properly, which means verses and prompts can now appear correctly on screen. During the process I also redesigned the entire user interface, added larger text, created menu screens, introduced animated backgrounds, improved readability, added color-coded sections, and included a “Made by Aashvik Goel” credit within the application. Looking back, the difference between the original terminal version and the new interface is much larger than I expected when I first started making changes. The audio system also received significant improvements during this update. The application now supports separate prompt and answer recordings, allowing users to hear a prompt before revealing the complete verse. Implementing this required converting recordings into the correct PCM format, debugging playback issues, testing different audio configurations, and tracking down several recordings that did not behave as expected. While a small number of recordings still need additional work, the overall system is now much more reliable. Alongside the audio improvements, I added multiple study modes to make practice sessions more engaging. There is now a Solo Practice mode as well as a pass-and-play VS Mode where two players can take turns answering verses and earning points. Another major focus was testing on actual hardware rather than relying entirely on emulation. Although Ryujinx was extremely useful throughout development, I regularly installed builds directly onto my Nintendo Switch to verify that rendering, controls, performance, and audio behaved correctly on the real device. This helped uncover issues that would have been easy to miss in an emulator and made the project feel much more like a genuine homebrew application. By the end of this development cycle, Anukrama had gained a completely new rendering engine, proper Unicode support, improved audio playback, multiple study modes, a full menu system, animated visual effects, and a far more polished overall presentation. What originally started as a simple terminal-based study tool has now begun to feel like a complete Switch application designed specifically for practicing Bhagavad Gita verses.
I made a landing page for the website! I tried to make my own css but it looked kinda ahh so i ended up using a mixture of ChatGPT and Gemini to make the effects look way better. I still changed a bunch of stuff myself and messed around with the layout until it looked how i wanted. I also added my own screenshots to the website so people could actually see what it looks like instead of just reading about it. I spent some time changing little things like the spacing, colors, and animations to make it feel nicer overall. After i finished everything, i used git to upload all of the code to github so i could keep track of my changes and have it all backed up. Thats pretty much everything i worked on for the landing page!
Final Devlog! Hi! whats up? So basically, I worked on the website and worked on rewriting it in my style because I used way too much AI for the last one, so it seemed vibecoded. I started out with a really basic page and slowly added more css. I chose a paper brown color scheme for the UI bc i think it fits the Bhagavad Gita app idea better. I also spent a while practicing css and finally understand flexbox. here are the things i added: navbar hack club flag that waves around chinmaya mission logo hover animations gameplay section with a youtube video minimalist layout i made the hack club logo wave constantly, then stop and get a little bigger when you hover over it. that was fun. Thats all! I also wanted to thank and give Chinmaya Mission credit for the audio recordings. (They didn’t even want recognition!)
Devlog Update Today I worked on the browser version of Anukrama. i added: A browser demo at game.html GitHub-hosted verse data using the meta , verses , and audio folders Devanagari support in the browser Automatic prompt audio Special handling for Verse 1 since it has no prompt Audio fade-outs when switching verses quickly Fade animations between game states i also updated the landing page with a Try Browser Demo button. i added a short explanation of what the Bhagavad Gita is, including a comparison to the Bible to help people unfamiliar with Hinduism understand it. i might need to fix the landing page css because the buttons look a bit squished also, i learned how to type in markdown recently so tell me if u have any advice! :)
AI Pronunciation Model I worked on the AI pronunciation system for Anukrama! I used PyTorch to train models that compare your chanting to good reference recordings and give u a score out of 100. I made models for Verse 1 and Verse 2 using things like MFCCs and DTW. The models are trained, but I need way more data because there isn’t really a big dataset of Bhagavad Gita chanting recordings. I still need to record a lot of the data myself. I haven’t added the AI to the website yet. If u wanna help me record data for the model, pls DM me ( @aashvik )!
Final update/devlog !!!! I finally finished integrating the AI pronunciation system into Anukrama. This ended up being way more complicated than I originally thought. The model itself was trained in PyTorch using MFCCs, spectral features, and DTW comparisons against multiple good chanting recordings. The problem was that the .pt model couldn’t just be dropped into a website, so I had to export everything to ONNX and basically rebuild the preprocessing pipeline in JavaScript so the browser could generate the same kind of audio features from a recording. I also changed how I stored the scaler data by putting the normalization values into the .npz files, then wrote the JavaScript to load the model, scaler, reference audio, process the recording, calculate the features, and pass everything through the ONNX model. There were a bunch of stupid issues along the way too, including the ONNX runtime conflicting with a variable in my JS and the scaler data not loading correctly lol. After all of that I added the actual score display to the site, so the recording can go through the whole pipeline and come back as a pronunciation score out of 100. This took way longer than I expected lol, but I finally got it working. This is prob the end of this project!!!!
Ships:
Anukrama is a nintendo Switch homebrew app that helps people memorize and practice chanting Bhagavad Gita verses. It gives you the previous quarter of a verse as a clue, and you have to chant the next part from memory. Right now it includes all 20 verses of Chapter 15 with audio prompts and easy controller navigation. The biggest challenge was getting the audio system and verse progression working smoothly on the Switch. I also spent a lot of time organizing the verse metadata and making everything load quickly. Thanks for following my journey!
What did you make? Anukrama is a gita chapter 15 chanting game where you get part of a verse and try to chant the rest. I also made an ai that scores your chanting. What was challenging? Getting the ai running in the browser was the hardest part. I had to move the pytorch model to onnx and recreate the audio processing in JavaScript. What are you proud of? Prob getting the entire ai pipeline working in the actual website. It literally took most of my time and I couldn’t get it to work for like an hour :sob-spin: What should people know when testing? The AI is meant to mainly be a gimmick in beta. It’s only based on around 30 recordings per verse because there is absolutely no gita chanting data. You should test without bg noise and actually chant the verse if u want the best results....
|
1794063180.1033912
|
1794149580.1033912
|
|
61905
|
AutumnSide by @kas_kadiia | Stardance
|
kas_kadiia
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T00:45:10Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created a very basic personal site. It contains some personal information about myself, a section for links to my projects, and a contact info section that includes my email and GitHub. After getting the hang of HTML + CSS with WebOS, I didn’t take much time working on this, but I did try to use CSS styles more than inline styles. For the time being this probably won’t be expanded upon, but it will serve as a decent online portfolio (so long as I remember to update it).", "repo": "https://github.com/kaskadiia/autumn-side", "demo": "https://kaskadiia.github.io/autumn-side/"}]...
|
[{"post_id": 67764, "ts": "202 [{"post_id": 67764, "ts": "2026-09-14T00:28:23Z", "hours": 0.5319, "text": "Devlog #3 Added the contact section and a header. I’m not sure that there’s much to talk about, it’s just a contact section with links to my GitHub and my email, and the header simply links to each section."}, {"post_id": 67733, "ts": "2026-09-13T23:16:01Z", "hours": 1.0797, "text": "Devlog #2 I have added a Projects section to the site. I tried using classes more over inline styles. I also made use of the detail and summary tags to make each section collapsible. Unfortunately I don’t exactly have many projects to put up here, but I’m sure that will change over time."}, {"post_id": 67647, "ts": "2026-09-13T20:05:06Z", "hours": 1.2375, "text": "Devlog #1 I’m now working on the personal website mission, which I’ll probably expand further beyond it’s completion. I made simple containers for the title and text sections, and have only written out the about me section. I made it themed around autumn (or at least, barely, for now?) because autumn is the best season and I will die on this hill."}]...
|
Title: AutumnSide by @kas_kadiia | Stardance
Devl Title: AutumnSide by @kas_kadiia | Stardance
Devlogs:
Devlog #1 I’m now working on the personal website mission, which I’ll probably expand further beyond it’s completion. I made simple containers for the title and text sections, and have only written out the about me section. I made it themed around autumn (or at least, barely, for now?) because autumn is the best season and I will die on this hill.
Devlog #2 I have added a Projects section to the site. I tried using classes more over inline styles. I also made use of the detail and summary tags to make each section collapsible. Unfortunately I don’t exactly have many projects to put up here, but I’m sure that will change over time.
Devlog #3 Added the contact section and a header. I’m not sure that there’s much to talk about, it’s just a contact section with links to my GitHub and my email, and the header simply links to each section.
Ships:
I created a very basic personal site. It contains some personal information about myself, a section for links to my projects, and a contact info section that includes my email and GitHub. After getting the hang of HTML + CSS with WebOS, I didn’t take much time working on this, but I did try to use CSS styles more than inline styles. For the time being this probably won’t be expanded upon, but it will serve as a decent online portfolio (so long as I remember to update it)....
|
1794048793.4912832
|
1794135193.4912832
|
|
5996
|
Auto Updater by @Afaeid | Stardance
|
Afaeid
|
1
|
31.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-11T11:09:26Z", "hours": 31.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a npm tool that automatically updates another directory live time while editing a certain directory. The most challenging thing was version update of NodeJS, packages like path have some minor changes what rose a lot of errors. I resolved a real world problem. Now I can continue my tasks easily on SPCK editor without manually copying and pasting the files. This is really a great charm for me. People need to know Eye sight Basics of bash Basics of internet web browsing NodeJS installed machine or capability to install NodeJS npm basic commands Ability to understand the README.md file on Github", "repo": "https://github.com/afaeid/Auto-Updater", "demo": "https://www.npmjs.com/package/@afaeid/auto-updater"}]...
|
[{"post_id": 6776, "ts": "2026 [{"post_id": 6776, "ts": "2026-06-11T10:56:03Z", "hours": 5.5158, "text": "Finally, ready to be shipped!! Added clear README.md and implemented proper safe exit and error handling."}, {"post_id": 5797, "ts": "2026-06-09T18:34:56Z", "hours": 0.625, "text": "After watching the Shipping Guide, I have decided to rewrite the README.md file to make it more clear. Next, I will implement safe exit configuration. 😀😀"}, {"post_id": 5759, "ts": "2026-06-09T17:37:22Z", "hours": 0.4597, "text": "Eventually, I finished the project, solving some minor bugs. Now the package is available on NPM. Have a try!"}, {"post_id": 5617, "ts": "2026-06-09T14:12:23Z", "hours": 0.6686, "text": "After all, it is about to finish Check it on GitHub."}, {"post_id": 4987, "ts": "2026-06-08T17:11:32Z", "hours": 23.77, "text": "After working for hours , eventually, it’s almost completed. Now, only the Readme file is yet to ready."}]...
|
Title: Auto Updater by @Afaeid | Stardance
Devlog Title: Auto Updater by @Afaeid | Stardance
Devlogs:
After working for hours , eventually, it’s almost completed. Now, only the Readme file is yet to ready.
After all, it is about to finish Check it on GitHub.
Eventually, I finished the project, solving some minor bugs. Now the package is available on NPM. Have a try!
After watching the Shipping Guide, I have decided to rewrite the README.md file to make it more clear. Next, I will implement safe exit configuration. 😀😀
Finally, ready to be shipped!! Added clear README.md and implemented proper safe exit and error handling.
Ships:
This is a npm tool that automatically updates another directory live time while editing a certain directory. The most challenging thing was version update of NodeJS, packages like path have some minor changes what rose a lot of errors. I resolved a real world problem. Now I can continue my tasks easily on SPCK editor without manually copying and pasting the files. This is really a great charm for me. People need to know Eye sight Basics of bash Basics of internet web browsing NodeJS installed machine or capability to install NodeJS npm basic commands Ability to understand the README.md file on Github...
|
1793940980.6420326
|
1794027380.6420326
|
|
53445
|
Pyae's Macro Pad by @Pyae2014K | Stardance
|
Pyae2014K
|
0
|
29.73
|
0
|
[]
|
[{"post_id": 67757, "ts": "202 [{"post_id": 67757, "ts": "2026-09-14T00:13:32Z", "hours": 4.1525, "text": "I redid my case and plate because it was a STL and not a STEP."}, {"post_id": 66831, "ts": "2026-09-12T19:01:32Z", "hours": 1.3667, "text": "I redid my case and plate for the 2 time because after doing alarm clock’s design I got way better at 3D modeling, so I just did it."}, {"post_id": 63366, "ts": "2026-09-07T04:29:54Z", "hours": 3.8464, "text": "I finished my case and plate, and I am pretty proud of it because it looks way better than my first try and it probably fits better but I will have to wait and see."}, {"post_id": 61967, "ts": "2026-09-05T05:02:28Z", "hours": 3.15, "text": "Since the last version of my PCB was too big and I didn’t like it that much, so I remade it in like 3 hours because I am better at Ki Cad than my first time using it."}, {"post_id": 61867, "ts": "2026-09-05T00:12:11Z", "hours": 3.8956, "text": "I tried to program the QMK firmware, but it kept on failing and I am sooo frustrated."}, {"post_id": 58403, "ts": "2026-08-30T20:17:47Z", "hours": 2.6667, "text": "I finally after 6 and a half hours of designing i finally finished my Hackpad’s case and plate."}, {"post_id": 57785, "ts": "2026-08-30T02:29:25Z", "hours": 4.1167, "text": "I started work on my case and had a really confusing time because I didn’t understand how Fusion 360 and Shapr3D worked so I had to both learn to use them and also make the case at the same time."}, {"post_id": 57069, "ts": "2026-08-29T05:01:25Z", "hours": 2.7, "text": "I finally finished my PCB after like 5 hours of mind numbingly confusing designing."}, {"post_id": 54828, "ts": "2026-08-25T23:55:56Z", "hours": 1.9, "text": "I finally finished the schematic and am start the pcb design which is so far been pretty good."}, {"post_id": 53400, "ts": "2026-08-23T22:49:19Z", "hours": 1.9336, "text": "I am soo confused on how to get the MOUDLE-SEEEDUINO-XIAO symbol and I still don’t know how to do it."}]...
|
Title: Pyae's Macro Pad by @Pyae2014K | Starda Title: Pyae's Macro Pad by @Pyae2014K | Stardance
Devlogs:
I am soo confused on how to get the MOUDLE-SEEEDUINO-XIAO symbol and I still don’t know how to do it.
I finally finished the schematic and am start the pcb design which is so far been pretty good.
I finally finished my PCB after like 5 hours of mind numbingly confusing designing.
I started work on my case and had a really confusing time because I didn’t understand how Fusion 360 and Shapr3D worked so I had to both learn to use them and also make the case at the same time.
I finally after 6 and a half hours of designing i finally finished my Hackpad’s case and plate.
I tried to program the QMK firmware, but it kept on failing and I am sooo frustrated.
Since the last version of my PCB was too big and I didn’t like it that much, so I remade it in like 3 hours because I am better at Ki Cad than my first time using it.
I finished my case and plate, and I am pretty proud of it because it looks way better than my first try and it probably fits better but I will have to wait and see.
I redid my case and plate for the 2 time because after doing alarm clock’s design I got way better at 3D modeling, so I just did it.
I redid my case and plate because it was a STL and not a STEP....
|
1793487176.1441844
|
1794091976.1441844
|
|
61525
|
VSOS by @V2_busy | Stardance
|
V2_busy
|
0
|
0.69
|
0
|
[]
|
[{"post_id": 67750, "ts": "202 [{"post_id": 67750, "ts": "2026-09-14T00:00:39Z", "hours": 0.6853, "text": "My own web OS, Ive ran into a few problems so far then fixed them"}]...
|
Title: VSOS by @V2_busy | Stardance
Devlogs:
My o Title: VSOS by @V2_busy | Stardance
Devlogs:
My own web OS, Ive ran into a few problems so far then fixed them...
|
1793649154.4324734
|
1794253954.4324734
|
|
6313
|
Html Artfight/Toyhouse templates by @FishyDrawer | Html Artfight/Toyhouse templates by @FishyDrawer | Stardance...
|
FishyDrawer
|
0
|
1.51
|
0
|
[]
|
[{"post_id": 6775, "ts": "2026 [{"post_id": 6775, "ts": "2026-06-11T10:54:54Z", "hours": 0.895, "text": "Expirimenting with dividers"}, {"post_id": 2362, "ts": "2026-06-04T20:19:10Z", "hours": 0.6175, "text": "First devlog! My personal project (this) is learning html I wanna learn html to make my own Artfight / Toyhouse profile templates. Here is my progress so far -> I can add backgrounds I can somewhat add a custom font (trial and error method) I learned that exists I managed to connect git + vs code + hackatime Am slowly figuring out all the stuff with Style=”” I got a live preview plugin. If anyone has any tips for html in general, please comment :D Fishy out"}]...
|
Title: Html Artfight/Toyhouse templates by @FishyD Title: Html Artfight/Toyhouse templates by @FishyDrawer | Stardance
Devlogs:
First devlog! My personal project (this) is learning html I wanna learn html to make my own Artfight / Toyhouse profile templates. Here is my progress so far -> I can add backgrounds I can somewhat add a custom font (trial and error method) I learned that exists I managed to connect git + vs code + hackatime Am slowly figuring out all the stuff with Style=”” I got a live preview plugin. If anyone has any tips for html in general, please comment :D Fishy out
Expirimenting with dividers...
|
1793825779.0202038
|
1794430579.0202038
|
|
46856
|
pi - web os by @NotSuspiciousProgrammer | Stardanc pi - web os by @NotSuspiciousProgrammer | Stardance...
|
NotSuspiciousProgrammer
|
2
|
9.0
|
24
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T00:06:08Z", "hours": 6.0, "multiplier": 3.5, "payout": 24, "blessing": "neutral", "text": "I made a PI-THEMED WEB-OS!! The most challenging part was the script for making “windows” draggable; I had to look through some tutorials for that. Either way, as a professional pi enthusiast, I’m pretty excited for this pi theme! As part of the WebOS2 Mission, I have more than three new features from what I submitted to WebOS1. Some of them include the Settings App, Bible App, and sound effects that say the next digit of pi each time you open/close an app. That part was very fun :P I hope you enjoy my Pi webOS! Please provide feedback on my project, whether you’re a pi enthusiast or not :)", "repo": "https://github.com/kpoovakan/piwebos", "demo": "https://kpoovakan.github.io/piwebos"}, {"ship_num": 2, "ts": "2026-08-11T23:36:39Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a pi-themed “operating system” that can run in a web browser! The hardest part for me was making the windows draggable, since I ran into some bugs even while following the guide. Thanks to some clarification in a W3Schools article, I managed to fix those bugs. I have some features in this OS that the guide doesn’t list, one which is the app that plays music. The other is the helpful text at the bottom of the screen (telling you where the apps can be opened!) that disappears when an app is opened. I enjoyed making this pi-themed “operating system”. I hope you enjoy exploring it!", "repo": "https://github.com/kpoovakan/piwebos", "demo": "https://kpoovakan.github.io/piwebos"}]...
|
[{"post_id": 67747, "ts": "202 [{"post_id": 67747, "ts": "2026-09-13T23:59:20Z", "hours": 1.6781, "text": "I updated my README! Now it has two images, a setup guide, and an organized table for my “apps”. There’s also a features list and a small credits section. I also went through my code and fixed all the bugs I could find. Time to ship!!"}, {"post_id": 66994, "ts": "2026-09-13T00:24:00Z", "hours": 3.9725, "text": "I added more apps to my webOS! Now it has a pi app, games, a web app, an e-mail redirect, a file manager, a notepad, a calculator, a Turbowarp redirect, a music app, YouTube, maps, a flight tracker redirect, a Bible app, and a settings app. The settings app lets you customize things like the time format and sound effect preferences."}, {"post_id": 45470, "ts": "2026-08-11T23:27:57Z", "hours": 0.8372, "text": "I added the content to my three applications! Now, there’s an app with stuff about pi, an app featuring my other coding projects, and a section to play popular classical piano pieces."}, {"post_id": 45452, "ts": "2026-08-11T22:21:00Z", "hours": 1.5489, "text": "I added more CSS styles and customization. I also made the “windows” draggable with JavaScript, and I added buttons to open and close the app placeholders. Next I’ll be adding things to the apps themselves!"}, {"post_id": 45398, "ts": "2026-08-11T20:32:05Z", "hours": 0.325, "text": "Added core code for my pi-themed web OS! I created a blue color palette for the CSS, added placeholder tags for what shall soon become the OS apps, and implemented a pi-themed background."}]...
|
Title: pi - web os by @NotSuspiciousProgrammer | S Title: pi - web os by @NotSuspiciousProgrammer | Stardance
Devlogs:
Added core code for my pi-themed web OS! I created a blue color palette for the CSS, added placeholder tags for what shall soon become the OS apps, and implemented a pi-themed background.
I added more CSS styles and customization. I also made the “windows” draggable with JavaScript, and I added buttons to open and close the app placeholders. Next I’ll be adding things to the apps themselves!
I added the content to my three applications! Now, there’s an app with stuff about pi, an app featuring my other coding projects, and a section to play popular classical piano pieces.
I added more apps to my webOS! Now it has a pi app, games, a web app, an e-mail redirect, a file manager, a notepad, a calculator, a Turbowarp redirect, a music app, YouTube, maps, a flight tracker redirect, a Bible app, and a settings app. The settings app lets you customize things like the time format and sound effect preferences.
I updated my README! Now it has two images, a setup guide, and an organized table for my “apps”. There’s also a features list and a small credits section. I also went through my code and fixed all the bugs I could find. Time to ship!!
Ships:
I made a pi-themed “operating system” that can run in a web browser! The hardest part for me was making the windows draggable, since I ran into some bugs even while following the guide. Thanks to some clarification in a W3Schools article, I managed to fix those bugs. I have some features in this OS that the guide doesn’t list, one which is the app that plays music. The other is the helpful text at the bottom of the screen (telling you where the apps can be opened!) that disappears when an app is opened. I enjoyed making this pi-themed “operating system”. I hope you enjoy exploring it!
I made a PI-THEMED WEB-OS!! The most challenging part was the script for making “windows” draggable; I had to look through some tutorials for that. Either way, as a professional pi enthusiast, I’m pretty excited for this pi theme! As part of the WebOS2 Mission, I have more than three new features from what I submitted to WebOS1. Some of them include the Settings App, Bible App, and sound effects that say the next digit of pi each time you open/close an app. That part was very fun :P I hope you enjoy my Pi webOS! Please provide feedback on my project, whether you’re a pi enthusiast or not :)...
|
1793987419.5091455
|
1794073819.5091455
|
|
50622
|
Quary by @Veert | Stardance
|
Veert
|
1
|
141.33
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-20T12:28:09Z", "hours": 14.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Working on improving the bot behavior aswell as mastering the gravity effects", "repo": "https://github.com/VrSchool11/Quary", "demo": "https://vrschool11.github.io/Quary/"}]...
|
[{"post_id": 67746, "ts": "202 [{"post_id": 67746, "ts": "2026-09-13T23:58:49Z", "hours": 5.4667, "text": "Rewrote Text and captions to sound more human"}, {"post_id": 66299, "ts": "2026-09-12T01:54:14Z", "hours": 13.8675, "text": "Making the game less ai by rewriting the affected parts"}, {"post_id": 65056, "ts": "2026-09-09T21:55:44Z", "hours": 8.4336, "text": "Adding some new features and improving on gameplay and improving the performance of the game on low-end devices"}, {"post_id": 64787, "ts": "2026-09-09T13:29:53Z", "hours": 4.6419, "text": "Working one some gameplay fixed and fixing some bugs"}, {"post_id": 64540, "ts": "2026-09-09T01:07:14Z", "hours": 1.0333, "text": "Completely Rewrote my code as when i shipped it the reviewer said it was over 30% ai now fixed it and its now below 30% ai"}, {"post_id": 64193, "ts": "2026-09-08T12:50:07Z", "hours": 7.6981, "text": "Fixing General Bugs and Fixing The boss fight"}, {"post_id": 63477, "ts": "2026-09-07T11:09:45Z", "hours": 8.8664, "text": "Working On Fixing The readability of the captions and fixing the tips and the tutorial for the game along with improving the layout of the game"}, {"post_id": 62152, "ts": "2026-09-05T12:26:37Z", "hours": 9.0681, "text": "Guns are in. You take one off the first guard you kill, and firing it wakes the whole zone so you build a silencer out of a sleeve, a spring and an oily rag. The king’s an actual fight now too, he winds up before every move so you can dodge it and one of them rips a limb off you and chucks it on the floor. He used to one-shot you if you’d gone full animal, so that’s gone. Checkpoints on every zone now, plus a pile of daft bugs fixed."}, {"post_id": 61860, "ts": "2026-09-04T23:59:57Z", "hours": 4.2339, "text": "Binned the black hole game after about a day and started Quarry instead. You’re a scientist who got kidnapped for something you built, they took your limbs, and you escape by tearing limbs off whatever you can find. Animal ones jump higher and hit harder, but the guards can see you’re not human anymore, which is basically the whole game. First playable version was rubbish. Every gap was too wide to clear, so you couldn’t actually finish it. Since then I’ve added five zones, a king to fight at the end, guns you loot off dead guards, and a silencer you build out of a sleeve, a spring and an oiled rag. Also spent way too long moving the gun sprite up four pixels because at hip height it looked like something else."}, {"post_id": 61283, "ts": "2026-09-04T04:06:54Z", "hours": 2.9639, "text": "Changed the Game Completely and moved onto another game idea as the other one didn’t seem to be working out heres a sneak peek below"}, {"post_id": 59498, "ts": "2026-09-01T11:27:27Z", "hours": 6.7897, "text": "1 September Today i completely redesigned the UI and also added two new features Different Type of foods A SpeedRun mode On top of that cleaned up the repo and fixed some minor issues here and there"}, {"post_id": 57370, "ts": "2026-08-29T14:27:55Z", "hours": 12.195, "text": "aug 29 completely remade the banner today — scrapped the old one and rebuilt it from scratch so it actually holds together. after that i cleaned up the code, tidying things up and cutting out the rough bits, and did some general improvements across the game while i was in there. more features coming soon."}, {"post_id": 54428, "ts": "2026-08-25T13:07:06Z", "hours": 9.8839, "text": "Fixed the big bug where growing your hole past a certain size would whiteout the entire screen — turned out the camera and the glow effects were both scaling wrong at high mass. While I was in there I added a bunch of new stuff: kill cam replays when you die, comets and binary planets that mess with gravity, a tracker that shows when a rogue hole is hunting you, and permanent achievements on top of the regular quests. Hosts can also now tweak gravity strength, arena size, and bot count before opening a station. Caught and fixed a couple of sneaky bugs along the way too, like eat sounds losing their punch on big absorbs. It’s all live on the GitHub Pages link now."}, {"post_id": 52329, "ts": "2026-08-22T13:13:51Z", "hours": 7.4672, "text": "Turned out if you’d already played a round and went back to the menu, you’d hear every bot in the background eating dust at full volume — the sound code treated “nobody’s watching” as “max volume” instead of silent. Fixed.Also added a pile of new stuff to actually do out there: dash (E key, quick burst forward, costs mass), wormholes that teleport you across the map, random supernova blasts that shove everything outward, a gravity slingshot off planets for a free speed boost, slow mass decay if you’re running away with the lead, a shockwave when you eat something way smaller than you, and a token bounty on whoever’s currently #1."}, {"post_id": 52060, "ts": "2026-08-22T03:27:35Z", "hours": 14.3667, "text": "Spent this session on polish and cleanup. Reworked the UI and CSS myself — set up a color palette with variables so the whole game re-themes from one place, and simplified a lot of the styling. Also fixed a performance bug: the game ran fine in Safari but lagged in Chrome. Turned out canvas shadow-blur is way slower in Chromium, so I cut it off the small stuff (dust, particles) and leaned on the additive glow instead. Runs smooth now. Still fixing the plinko bonus round and cleaning things up. More soon."}, {"post_id": 51642, "ts": "2026-08-21T12:55:44Z", "hours": 4.9736, "text": "Big redesign + feature passRepainted the whole UI — it was reading way too “safe dark-mode template,” so it’s now themed around eclipse observation expeditions instead: brass, khaki, oxide colors, stencil title font, manifest-style panels. Gameplay’s untouched, just the look changed.Also shipped a bunch of stuff that had been on the list:personal best (mass + survival time) on the menusettings: quality toggle, volume slider, minimap on/offkill streak popup when you’re on a rollfree color picker for your holefirst-time tutorial popupauto-lowers quality if your fps tankspower-ups: speed, magnet, shieldtimed matches and last-hole-standing modeteams (red vs blue), no friendly firedaily challenge — same seeded world for everyone each dayFound and fixed two real bugs while testing: the shop wasn’t updating your token count after a purchase, and timed matches were miscalculating rank when multiple people hit the clock at once."}, {"post_id": 51436, "ts": "2026-08-21T04:27:59Z", "hours": 3.7672, "text": "UPDATE — CSS rebuild + progression system. Review sent it back saying my CSS looked too AI-made, so I rebuilt the styling myself and actually learned how it works — set up a color palette with variables and re-themed the whole game in one line to prove it. While I was in there I added a progression system: tokens you earn each run and keep between games, side quests for bonus tokens, a cosmetics shop (colors and orbiting shapes, no pay-to-win), and an end-of-run plinko round that multiplies your run tokens (minimum 1x, so you can never lose them), plus arrow-key/WASD movement and a pause button. Biggest headache was the plinko ball not landing in a slot — the physics were using the display size instead of the canvas’s real size — fixed once I matched them."}, {"post_id": 50987, "ts": "2026-08-20T14:02:44Z", "hours": 1.6131, "text": "UPDATE — Multiplayer is live (online, with room codes) Summary Blackhole.io is now real online multiplayer. Create a room, share the code, and someone on another device joins and you can actually eat each other. Not bots — real people. Breakdown moved the whole game simulation onto a server so it’s authoritative (server decides what’s real, clients can’t cheat) clients now only send their mouse target; the server sends back everyone’s positions create/join a room with a short code, each room is its own isolated game added interpolation so other players move smoothly instead of teleporting between updates bots still fill empty rooms so it’s never a dead lobby deployed the server to Render and the game page to GitHub Pages, wired together over WebSockets What fought me The networking logic wasn’t even the hard part — deploying it was. Getting the GitHub Pages page to actually talk to the Render server took forever. The site kept opening my README instead of the game, the WebSocket wouldn’t connect because it was still pointing at localhost, and it had to be wss:// not ws:// or the browser silently blocked it. Bunch of small things that each looked like the whole thing was broken. Once the client finally connected to the live server and I saw a second black hole move on my screen, that was the moment. Note: Server May Take some time to start up"}, {"post_id": 50934, "ts": "2026-08-20T12:25:40Z", "hours": 6.6444, "text": "Working On fixing the lag caused by the advance gravity effects"}, {"post_id": 50512, "ts": "2026-08-19T18:02:36Z", "hours": 7.405, "text": "Spent today getting Blackhole.io off the ground. You’re a black hole — you eat dust, grow, and start pulling in bigger stuff. Got the core loop working: move toward the mouse, swallow anything smaller, get bigger. Made growth area-based so it doesn’t snowball out of control in ten seconds. The part that ate my time was gravity. I didn’t want stuff to just slide toward me — I wanted it to actually orbit and spiral in. Took a lot of fiddling with the numbers before it felt right instead of floaty. About 7.5 hours in so far. Next up: making the other black holes smarter so it’s not just me alone out there aswell as a multiplayer version so you can play with your friends"}]...
|
Title: Quary by @Veert | Stardance
Devlogs:
Spent Title: Quary by @Veert | Stardance
Devlogs:
Spent today getting Blackhole.io off the ground. You’re a black hole — you eat dust, grow, and start pulling in bigger stuff. Got the core loop working: move toward the mouse, swallow anything smaller, get bigger. Made growth area-based so it doesn’t snowball out of control in ten seconds. The part that ate my time was gravity. I didn’t want stuff to just slide toward me — I wanted it to actually orbit and spiral in. Took a lot of fiddling with the numbers before it felt right instead of floaty. About 7.5 hours in so far. Next up: making the other black holes smarter so it’s not just me alone out there aswell as a multiplayer version so you can play with your friends
Working On fixing the lag caused by the advance gravity effects
UPDATE — Multiplayer is live (online, with room codes) Summary Blackhole.io is now real online multiplayer. Create a room, share the code, and someone on another device joins and you can actually eat each other. Not bots — real people. Breakdown moved the whole game simulation onto a server so it’s authoritative (server decides what’s real, clients can’t cheat) clients now only send their mouse target; the server sends back everyone’s positions create/join a room with a short code, each room is its own isolated game added interpolation so other players move smoothly instead of teleporting between updates bots still fill empty rooms so it’s never a dead lobby deployed the server to Render and the game page to GitHub Pages, wired together over WebSockets What fought me The networking logic wasn’t even the hard part — deploying it was. Getting the GitHub Pages page to actually talk to the Render server took forever. The site kept opening my README instead of the game, the WebSocket wouldn’t connect because it was still pointing at localhost, and it had to be wss:// not ws:// or the browser silently blocked it. Bunch of small things that each looked like the whole thing was broken. Once the client finally connected to the live server and I saw a second black hole move on my screen, that was the moment. Note: Server May Take some time to start up
UPDATE — CSS rebuild + progression system. Review sent it back saying my CSS looked too AI-made, so I rebuilt the styling myself and actually learned how it works — set up a color palette with variables and re-themed the whole game in one line to prove it. While I was in there I added a progression system: tokens you earn each run and keep between games, side quests for bonus tokens, a cosmetics shop (colors and orbiting shapes, no pay-to-win), and an end-of-run plinko round that multiplies your run tokens (minimum 1x, so you can never lose them), plus arrow-key/WASD movement and a pause button. Biggest headache was the plinko ball not landing in a slot — the physics were using the display size instead of the canvas’s real size — fixed once I matched them.
Big redesign + feature passRepainted the whole UI — it was reading way too “safe dark-mode template,” so it’s now themed around eclipse observation expeditions instead: brass, khaki, oxide colors, stencil title font, manifest-style panels. Gameplay’s untouched, just the look changed.Also shipped a bunch of stuff that had been on the list:personal best (mass + survival time) on the menusettings: quality toggle, volume slider, minimap on/offkill streak popup when you’re on a rollfree color picker for your holefirst-time tutorial popupauto-lowers quality if your fps tankspower-ups: speed, magnet, shieldtimed matches and last-hole-standing modeteams (red vs blue), no friendly firedaily challenge — same seeded world for everyone each dayFound and fixed two real bugs while testing: the shop wasn’t updating your token count after a purchase, and timed matches were miscalculating rank when multiple people hit the clock at once.
Spent this session on polish and cleanup. Reworked the UI and CSS myself — set up a color palette with variables so the whole game re-themes from one place, and simplified a lot of the styling. Also fixed a performance bug: the game ran fine in Safari but lagged in Chrome. Turned out canvas shadow-blur is way slower in Chromium, so I cut it off the small stuff (dust, particles) and leaned on the additive glow instead. Runs smooth now. Still fixing the plinko bonus round and cleaning things up. More soon.
Turned out if you’d already played a round and went back to the menu, you’d hear every bot in the background eating dust at full volume — the sound code treated “nobody’s watching” as “max volume” instead of silent. Fixed.Also added a pile of new stuff to actually do out there: dash (E key, quick burst forward, costs mass), wormholes that teleport you across the map, random supernova blasts that shove everything outward, a gravity slingshot off planets for a free speed boost, slow mass decay if you’re running away with the lead, a shockwave when you eat something way smaller than you, and a token bounty on whoever’s currently #1.
Fixed the big bug where growing your hole past a certain size would whiteout the entire screen — turned out the camera and the glow effects were both scaling wrong at high mass. While I was in there I added a bunch of new stuff: kill cam replays when you die, comets and binary planets that mess with gravity, a tracker that shows when a rogue hole is hunting you, and permanent achievements on top of the regular quests. Hosts can also now tweak gravity strength, arena size, and bot count before opening a station. Caught and fixed a couple of sneaky bugs along the way too, like eat sounds losing their punch on big absorbs. It’s all live on the GitHub Pages link now.
aug 29 completely remade the banner today — scrapped the old one and rebuilt it from scratch so it actually holds together. after that i cleaned up the code, tidying things up and cutting out the rough bits, and did some general improvements across the game while i was in there. more features coming soon.
1 September Today i completely redesigned the UI and also added two new features Different Type of foods A SpeedRun mode On top of that cleaned up the repo and fixed some minor issues here and there
Changed the Game Completely and moved onto another game idea as the other one didn’t seem to be working out heres a sneak peek below
Binned the black hole game after about a day and started Quarry instead. You’re a scientist who got kidnapped for something you built, they took your limbs, and you escape by tearing limbs off whatever you can find. Animal ones jump higher and hit harder, but the guards can see you’re not human anymore, which is basically the whole game. First playable version was rubbish. Every gap was too wide to clear, so you couldn’t actually finish it. Since then I’ve added five zones, a king to fight at the end, guns you loot off dead guards, and a silencer you build out of a sleeve, a spring and an oiled rag. Also spent way too long moving the gun sprite up four pixels because at hip height it looked like something else.
Guns are in. You take one off the first guard you kill, and firing it wakes the whole zone so you build a silencer out of a sleeve, a spring and an oily rag. The king’s an actual fight now too, he winds up before every move so you can dodge it and one of them rips a limb off you and chucks it on the floor. He used to one-shot you if you’d gone full animal, so that’s gone. Checkpoints on every zone now, plus a pile of daft bugs fixed.
Working On Fixing The readability of the captions and fixing the tips and the tutorial for the game along with improving the layout of the game
Fixing General Bugs and Fixing The boss fight
Completely Rewrote my code as when i shipped it the reviewer said it was over 30% ai now fixed it and its now below 30% ai
Working one some gameplay fixed and fixing some bugs
Adding some new features and improving on gameplay and improving the performance of the game on low-end devices
Making the game less ai by rewriting the affected parts
Rewrote Text and captions to sound more human
Ships:
Working on improving the bot behavior aswell as mastering the gravity effects...
|
1793958869.966168
|
1794045269.966168
|
|
60004
|
Tower-Blocks by @Sadiya | Stardance
|
Sadiya
|
1
|
3.0
|
4
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T23:22:32Z", "hours": 3.0, "multiplier": 1.18, "payout": 4, "blessing": "neutral", "text": "I made a stacking game where the player will build a tower by stopping the moving blocks. Each block moves back and forth to give the player a chance to place there block. One challenge was getting the blocks to stack and appear the same size and shape and getting it to work overall. Also my apologies if it looks big I didn’t realized that it is like this until after I created the playable link.", "repo": "https://github.com/sadiyameem/tower-blocks", "demo": "https://sadiyameem.github.io/tower-blocks/"}]...
|
[{"post_id": 67745, "ts": "202 [{"post_id": 67745, "ts": "2026-09-13T23:56:20Z", "hours": 0.8228, "text": "After rewriting the JS, I can say that it is now working. To whoever is going to try this out when I shipit, just so you that when you reach 20 blocks the game is done and you won. Here is a before and after image with video showing off the project."}, {"post_id": 66965, "ts": "2026-09-12T23:10:40Z", "hours": 0.835, "text": "I have decided to restart this project and I am trying not to use so much AI and so far I have notice that I have issues in my JS so I am going to do a redo and make it work but here is my progress so far with my HTML and CSS."}, {"post_id": 66113, "ts": "2026-09-11T18:32:58Z", "hours": 0.4239, "text": "This is the progress I made so far and I know I have a lot more to work on but I wanted to come on here and show you what I have so far and I think I might take another approach because I think there is a better way to do this and a better way to use less AI. And when I was recording this the 1st time I was recording the white background of this project lol."}, {"post_id": 65708, "ts": "2026-09-11T01:20:54Z", "hours": 0.7733, "text": "So I decided to start over and this is what I got so far I have completed all the code but I am trying to figure out when nothing is happening when the button is clicked."}, {"post_id": 65665, "ts": "2026-09-10T23:29:46Z", "hours": 0.3728, "text": "I just wanted to come on here and share what I have done so far and I outlined and currently still doing the css but I want to take a pause on it and work on the js."}]...
|
Title: Tower-Blocks by @Sadiya | Stardance
Devlog Title: Tower-Blocks by @Sadiya | Stardance
Devlogs:
I just wanted to come on here and share what I have done so far and I outlined and currently still doing the css but I want to take a pause on it and work on the js.
So I decided to start over and this is what I got so far I have completed all the code but I am trying to figure out when nothing is happening when the button is clicked.
This is the progress I made so far and I know I have a lot more to work on but I wanted to come on here and show you what I have so far and I think I might take another approach because I think there is a better way to do this and a better way to use less AI. And when I was recording this the 1st time I was recording the white background of this project lol.
I have decided to restart this project and I am trying not to use so much AI and so far I have notice that I have issues in my JS so I am going to do a redo and make it work but here is my progress so far with my HTML and CSS.
After rewriting the JS, I can say that it is now working. To whoever is going to try this out when I shipit, just so you that when you reach 20 blocks the game is done and you won. Here is a before and after image with video showing off the project.
Ships:
I made a stacking game where the player will build a tower by stopping the moving blocks. Each block moves back and forth to give the player a chance to place there block. One challenge was getting the blocks to stack and appear the same size and shape and getting it to work overall. Also my apologies if it looks big I didn’t realized that it is like this until after I created the playable link....
|
1794045178.4009688
|
1794131578.4009688
|
|
46524
|
Panels by @CadenO | Stardance
|
CadenO
|
1
|
8.0
|
30
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T23:35:00Z", "hours": 8.0, "multiplier": 3.56, "payout": 30, "blessing": "neutral", "text": "I made Panels, a game that was going to be an escape room, but is just a series of puzzles. I finally re-learned how to use html canvas, and had fun making and solving the puzzles. The three levels are Basic slider manipulation A swap-to-solve puzzle Tic tac toe, but with the squares shuffled I also tried my best at a decent UI while I was at it :)", "repo": "https://github.com/Cesium72/panels", "demo": "https://cesium72.github.io/panels"}]...
|
[{"post_id": 67737, "ts": "202 [{"post_id": 67737, "ts": "2026-09-13T23:25:16Z", "hours": 1.1939, "text": "I’ve done some final work on Panels, my pseudo-escape room game. It now has the third and final level, which is a tic-tac-toe game against the computer, but with the squares shuffled around😈! It also has a winning animation, a somewhat-acceptable README, and will be shipped after this!"}, {"post_id": 64753, "ts": "2026-09-09T12:06:42Z", "hours": 3.0828, "text": "Panels was supposed to be an escape room, but now it is just a series of puzzles. I’m fine with that, though. So far it has three stages, and that seems to be enough for me. Some of them are hard to explain, so it might just be easier to try them yourself. I will probably just add a win animation, a hints page, and then ship it :)"}, {"post_id": 54197, "ts": "2026-08-25T02:35:50Z", "hours": 4.2031, "text": "I’ve been working on Panels, a little game with a bunch of puzzles, kind of like an escape room. I don’t really know much about game design, and haven’t made a game in a few months (okay, maybe 2 years), but so far it has the first stage of puzzles done, which mostly just involve manipulating some sliders :)"}]...
|
Title: Panels by @CadenO | Stardance
Devlogs:
I’v Title: Panels by @CadenO | Stardance
Devlogs:
I’ve been working on Panels, a little game with a bunch of puzzles, kind of like an escape room. I don’t really know much about game design, and haven’t made a game in a few months (okay, maybe 2 years), but so far it has the first stage of puzzles done, which mostly just involve manipulating some sliders :)
Panels was supposed to be an escape room, but now it is just a series of puzzles. I’m fine with that, though. So far it has three stages, and that seems to be enough for me. Some of them are hard to explain, so it might just be easier to try them yourself. I will probably just add a win animation, a hints page, and then ship it :)
I’ve done some final work on Panels, my pseudo-escape room game. It now has the third and final level, which is a tic-tac-toe game against the computer, but with the squares shuffled around😈! It also has a winning animation, a somewhat-acceptable README, and will be shipped after this!
Ships:
I made Panels, a game that was going to be an escape room, but is just a series of puzzles. I finally re-learned how to use html canvas, and had fun making and solving the puzzles. The three levels are Basic slider manipulation A swap-to-solve puzzle Tic tac toe, but with the squares shuffled I also tried my best at a decent UI while I was at it :)...
|
1794020185.5771399
|
1794106585.5771399
|
|
52558
|
3d printed RC Airplane by @_Aaron_ | Stardance
|
_Aaron_
|
0
|
5.43
|
0
|
[]
|
[{"post_id": 67734, "ts": "202 [{"post_id": 67734, "ts": "2026-09-13T23:17:48Z", "hours": 1.7333, "text": "Today I just did some research on the fuselage and tail of an aircraft. I realized that people cannot communicate clearly in any way. I also started to do some calculations on the type of airfoil i will be using in my design."}, {"post_id": 67681, "ts": "2026-09-13T21:01:05Z", "hours": 1.2169, "text": "Fuselage Research: Finished a little bit of research on fuselages. Still have no idea how to buidl them yet but its a start. I also did a test design of a fuselage. It did not good well but hopefully it will be better in the final design."}, {"post_id": 53981, "ts": "2026-08-24T18:11:42Z", "hours": 2.4822, "text": "I did some research for the RC Airplane Project. I researched just some basics, as I have no idea what I need to know to build something like this. Comment,t and I will reply if you want more details. The screenshot is just organizing my thoughts."}]...
|
Title: 3d printed RC Airplane by @_Aaron_ | Starda Title: 3d printed RC Airplane by @_Aaron_ | Stardance
Devlogs:
I did some research for the RC Airplane Project. I researched just some basics, as I have no idea what I need to know to build something like this. Comment,t and I will reply if you want more details. The screenshot is just organizing my thoughts.
Fuselage Research: Finished a little bit of research on fuselages. Still have no idea how to buidl them yet but its a start. I also did a test design of a fuselage. It did not good well but hopefully it will be better in the final design.
Today I just did some research on the fuselage and tail of an aircraft. I realized that people cannot communicate clearly in any way. I also started to do some calculations on the type of airfoil i will be using in my design....
|
1793447430.5821683
|
1794052230.5821683
|
|
61432
|
starships (⌒▽⌒)☆ by @rinimee | Stardance
|
rinimee
|
1
|
3.0
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-16T17:57:28Z", "hours": 3.0, "multiplier": 1.94, "payout": 3, "blessing": "neutral", "text": "I made a Godot platformer game called Starships! The goal of the game is to help the alien get all three gems in order to win! It is a very simple game, yet the UI is a very arcade game styled game! Something that was challenging was figuring out how to add more elements to the game after making the platformer. Something that I am really proud of however, is adding a music toggle! It was very easy to implement yet I still am very fond of it! All the information needed to run the project or how to run it is located in my GitHub repository and READme. Thank you so much, and have fun!", "repo": "https://github.com/rinimee/rinistarships", "demo": "https://rinimee.itch.io/starships"}]...
|
[{"post_id": 67732, "ts": "202 [{"post_id": 67732, "ts": "2026-09-13T23:09:56Z", "hours": 1.3836, "text": "**Turnin’ out well! ** So I refurbished a lot of things! I added a title and win screen to it and added some collectibles. Below are some of the elements I mentioned! I was considering adding a small counter for the collectibles but I felt like that was going to be a whole lot of work. Ill be pushing it to Github and then upload it to Itch. Here are some sprites! PS: I really, REALLY like the birb."}, {"post_id": 67523, "ts": "2026-09-13T17:19:22Z", "hours": 1.1631, "text": "starships more like star-chips Starchips sound like a fun snack…anyway I’m following this Godot tutorial for Haven Jumpstart and wanted to share the process here! As of now, I made the Player sprite (which I might change later) and also made some platformers for the sprite to move on. It took a while to click on all of the tiles with physics layers, like 5 minutes at most…very rigorous. There wasn’t a ctrl + a option so… insert sigh . Anyway, here’s how it looks like right now!"}]...
|
Title: starships (⌒▽⌒)☆ by @rinimee | Stardance
D Title: starships (⌒▽⌒)☆ by @rinimee | Stardance
Devlogs:
starships more like star-chips Starchips sound like a fun snack…anyway I’m following this Godot tutorial for Haven Jumpstart and wanted to share the process here! As of now, I made the Player sprite (which I might change later) and also made some platformers for the sprite to move on. It took a while to click on all of the tiles with physics layers, like 5 minutes at most…very rigorous. There wasn’t a ctrl + a option so… insert sigh . Anyway, here’s how it looks like right now!
**Turnin’ out well! ** So I refurbished a lot of things! I added a title and win screen to it and added some collectibles. Below are some of the elements I mentioned! I was considering adding a small counter for the collectibles but I felt like that was going to be a whole lot of work. Ill be pushing it to Github and then upload it to Itch. Here are some sprites! PS: I really, REALLY like the birb.
Ships:
I made a Godot platformer game called Starships! The goal of the game is to help the alien get all three gems in order to win! It is a very simple game, yet the UI is a very arcade game styled game! Something that was challenging was figuring out how to add more elements to the game after making the platformer. Something that I am really proud of however, is adding a music toggle! It was very easy to implement yet I still am very fond of it! All the information needed to run the project or how to run it is located in my GitHub repository and READme. Thank you so much, and have fun!...
|
1794048605.8280458
|
1794135005.8280458
|
|
57486
|
5719 - Botopsy by @aamir_pa2009 | Stardance
|
aamir_pa2009
|
0
|
8.39
|
0
|
[]
|
[{"post_id": 67727, "ts": "202 [{"post_id": 67727, "ts": "2026-09-13T22:46:46Z", "hours": 1.8464, "text": "So I did some more fault propagation setup stuff to make sure downstream and upstream effects work as intended. So far its fine I guess."}, {"post_id": 62568, "ts": "2026-09-06T00:50:09Z", "hours": 0.3553, "text": "Made the first version of the fault engine as a demo and also added the rest of the clickable menus for the motors, now i gotta start linking em."}, {"post_id": 62120, "ts": "2026-09-05T11:43:13Z", "hours": 0.3244, "text": "Added a temporary state engine."}, {"post_id": 61796, "ts": "2026-09-04T21:36:38Z", "hours": 0.7333, "text": "Added The Drive Motor 1 Menu"}, {"post_id": 61593, "ts": "2026-09-04T16:04:11Z", "hours": 0.7489, "text": "So I added the begin screen and Timer now so now i can make the error engine."}, {"post_id": 61227, "ts": "2026-09-04T01:52:16Z", "hours": 1.3411, "text": "I finally added all the different hitboxes now I can start building hte Diagnostic Fault Combinator"}, {"post_id": 61083, "ts": "2026-09-03T20:05:14Z", "hours": 1.0436, "text": "Today I added the first hitbox, and did some debugging with the title and stuff."}, {"post_id": 60566, "ts": "2026-09-03T00:00:02Z", "hours": 1.42, "text": "I FINALLY IMPORTED THE BOT GLB AND MADE IT NOT LAG when i first imported it i was getting 1 fps now im at 30 and theres no visual lag i can finally start adding the ui and simiulation mechanics."}, {"post_id": 60189, "ts": "2026-09-02T12:46:17Z", "hours": 0.5736, "text": "Got the basics done, i learnt basic 3js and now will start the process of importing the bot model."}]...
|
Title: 5719 - Botopsy by @aamir_pa2009 | Stardance Title: 5719 - Botopsy by @aamir_pa2009 | Stardance
Devlogs:
Got the basics done, i learnt basic 3js and now will start the process of importing the bot model.
I FINALLY IMPORTED THE BOT GLB AND MADE IT NOT LAG when i first imported it i was getting 1 fps now im at 30 and theres no visual lag i can finally start adding the ui and simiulation mechanics.
Today I added the first hitbox, and did some debugging with the title and stuff.
I finally added all the different hitboxes now I can start building hte Diagnostic Fault Combinator
So I added the begin screen and Timer now so now i can make the error engine.
Added The Drive Motor 1 Menu
Added a temporary state engine.
Made the first version of the fault engine as a demo and also added the rest of the clickable menus for the motors, now i gotta start linking em.
So I did some more fault propagation setup stuff to make sure downstream and upstream effects work as intended. So far its fine I guess....
|
1793440519.9583855
|
1794045319.9583855
|
|
61605
|
Hewa - Flight Controller by @nicklogan1412 | Stard Hewa - Flight Controller by @nicklogan1412 | Stardance...
|
nicklogan1412
|
0
|
3.12
|
0
|
[]
|
[{"post_id": 67716, "ts": "202 [{"post_id": 67716, "ts": "2026-09-13T22:28:50Z", "hours": 0.9167, "text": "Devlog 3 Heres what I did Created the final schematic with all components. Added mounting holes Added Servo control pins Heres what the schematic contains: -1x BMP 280 -1x MPU6080 -1x DHT11 -5x 3 pin male connectors -1X ESP32 C3 Mini DevkitM-1 -3x 10k pullup resistors"}, {"post_id": 67468, "ts": "2026-09-13T16:06:34Z", "hours": 1.1836, "text": "Devlog 2 What I did, Updated schematic and redid wiring did some wiring tests, I need to re route most of my wires did some reaserch on my parts."}, {"post_id": 67083, "ts": "2026-09-13T04:09:30Z", "hours": 1.0169, "text": "Devlog 1 Today I didnt do a lot, I just created a simple schematic and tested wiring some things togther. The schematic had ESP32 C3 DevBoard BMP280 Pressure sensor DHT11 Humidity sensor I will use these as add ones to the flight controller. Also, Hewa is Sky in Swahili so thats how this project got its name."}]...
|
Title: Hewa - Flight Controller by @nicklogan1412 Title: Hewa - Flight Controller by @nicklogan1412 | Stardance
Devlogs:
Devlog 1 Today I didnt do a lot, I just created a simple schematic and tested wiring some things togther. The schematic had ESP32 C3 DevBoard BMP280 Pressure sensor DHT11 Humidity sensor I will use these as add ones to the flight controller. Also, Hewa is Sky in Swahili so thats how this project got its name.
Devlog 2 What I did, Updated schematic and redid wiring did some wiring tests, I need to re route most of my wires did some reaserch on my parts.
Devlog 3 Heres what I did Created the final schematic with all components. Added mounting holes Added Servo control pins Heres what the schematic contains: -1x BMP 280 -1x MPU6080 -1x DHT11 -5x 3 pin male connectors -1X ESP32 C3 Mini DevkitM-1 -3x 10k pullup resistors...
|
1793649235.9781878
|
1794254035.9781878
|
|
754
|
better clouds by @orangishcat | Stardance
|
orangishcat
|
1
|
44.83
|
531
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-30T04:49:17Z", "hours": 32.0, "multiplier": 18.69, "payout": 531, "blessing": "neutral", "text": "it’s been roughly 3 months since i’ve taken over the project, and it’s been going great! again, huge thanks to qendolin for letting me maintain his minecraft mod!", "repo": "https://github.com/Qendolin/better-clouds", "demo": "https://modrinth.com/mod/better-clouds"}]...
|
[{"post_id": 67713, "ts": "202 [{"post_id": 67713, "ts": "2026-09-13T22:17:41Z", "hours": 12.8278, "text": "I made a few bug fixes and am preparing for 26.3 migration. I also need to make sure the Blaze3D renderer gets feature parity soon. I’m using old reference images like this one to see what the old OpenGL renderer used to be like"}, {"post_id": 18980, "ts": "2026-06-30T04:43:00Z", "hours": 0.3833, "text": "i’ve done what i’ve wanted to do for this project for now! i’ve polished up my devlogs, and gonna ship the project now. here’s a screenshot where i tried to make the clouds look realistic (they’re not supposed to look realistic, so this is very cursed)"}, {"post_id": 18414, "ts": "2026-06-29T15:41:30Z", "hours": 2.8464, "text": "Published 1.14.0 release! I renamed “Tint” -> “Top Color”, “Bottom Tint” -> “Bottom Color”, “Bottom Transition Range” -> “Color Transition End” also renamed the options keys too, with a migration thing that migrates the old options keys to the new ones ok ima take a break from this project for now! next up, probably a config system rewrite? i want to implement like discord roles thing, where: you start with a base config given a certain condition (e.g. dimension = minecraft:overworld), certain properties of the config are modified and repeat until you get dynamic clouds with your own defined conditions! or i might not do that idk it sounds kinda complicated"}, {"post_id": 15563, "ts": "2026-06-25T09:35:53Z", "hours": 6.9383, "text": "added a bottom tint option that basically lets you create a gradient on your clouds i’m getting quite familiar with shaders and graphics code! this is one of my main goals for the project, and i’m glad it’s working out well! also fixed a bunch of bugs basic description of the bottom tint algorithm: vertex shader: tint interpolation progress = (y level of the cloud vertex) / (transition range percentage * cloud height range) fragment shader: color = lerp(bottomColor, topColor, tintInterpProgress) by default, the effect is much more subtle than this, but it is still there"}, {"post_id": 12390, "ts": "2026-06-20T06:59:27Z", "hours": 1.5831, "text": "made the celestial body halo much bigger and more visible. i also added separate options for the sun and moon halo, and scaled the moon halo’s size based on the moon phase! also the way I change the halo size is kinda cursed. i’m using qendolin’s superellipse formula, and i only kinda understand how it works. // i still have no idea how this formula works but it seems to work fine float superellipse = ( ( 1.0 + ( 1.0 / 3.0 ) * ( pow ( cos ( 2.0 * projAngle ), 2.0 ))) * haloSize * ( 1.0 - abs ( superellipseFalloff )) - 1.0 ) * sign (- superellipseFalloff ); then i fit an exponential curve based on what halo size i wanted for which moon phase 💀 // larger value = smaller halo size float haloSize = dayTime () < config . shaderPreset (). sunsetEndTime ? 2.05f - config . sunHaloSizeMultiplier : ( float ) ( 5 * Math . pow ( 0.06217 , config . moonHaloSizeMultiplier * DimensionType . MOON_BRIGHTNESS_PER_PHASE [ moonPhase . index ()])); // curve fit for ideal moon halo size based on phase"}, {"post_id": 10514, "ts": "2026-06-17T08:17:49Z", "hours": 4.5678, "text": "updated to 26.2, and the blaze3d renderer I made works great on vulkan! the renderer was mostly done for weeks now, i just added neoforge back and that was mostly it. Iris was giving me problems as it hasn’t implemented reverse z yet. but i was able to fix that really easily because i kinda know what i’m doing now when touching graphics code! this woulda taken me forever if it were the first time i had to do this. also added longview support to 26.1.2 then declared it end of life"}, {"post_id": 3311, "ts": "2026-06-06T05:33:35Z", "hours": 1.7572, "text": "Added option in config screen to choose the renderer, Also added back frustum culling (where clouds don’t render behind the camera) Qendolin’s original algorithm for frustum culling was: compute the bounding box of a section of clouds (clouds are generated in sections with a chunk-like system). if the frustum of the camera (basically an object describing what part of the world the camera can see given a camera angle, position, and fov) can see the clouds, expand the bounding box with the next section of clouds else, render all the sections of clouds we can see, and skip this section if we can’t see it in other words: (original comment from the code) // This algorithm loops over chunks, which are in a line-by-line order. // When a visible chunk is found it's marked as a run start. The run continues until // the next non-visible chunk is found. At the end of a run the entire run is rendered as once. // This is possible due to the memory layout of the instance buffers."}, {"post_id": 2456, "ts": "2026-06-04T23:08:15Z", "hours": 2.0006, "text": "I’m preparing for 26.2 release! I updated the mod to 26.2 pre-4, as well as YACL 3.9.4 which also just came out earlier today. NeoForge is also out but I’m too lazy to setup their custom repo for prerelease builds so I will fix NF support when 26.2 releases. I fixed a really annoying bug that was making the cloud ripple effect way larger in magnitude than it was supposed to be (I sampled WorldPosition instead of WorldPosition - originOffset ) I added a hardcoded minimum brightness in the shader so that clouds will be just barely visible at nighttime. Also GLSL operations are element-wise which is pretty cool! Like you can do max(color.rgb, vec3(0.15)) and each element of the color vector will be element-wise compared with 0.15, and the bigger one will be chosen. Really elegant solution for my minimum brightness operation."}, {"post_id": 639, "ts": "2026-06-02T04:56:28Z", "hours": 2.9128, "text": "the renderer looks good again! i added back the light gradient sampling, so the clouds actually turn orange during sunset and go dark at night time like they used to. btw, I spent like 3 hours reading through https://open.gl/ . it’s a great tutorial, and i applied pretty much all of the graphics concepts i learned to this project! i’m using blaze3d instead of opengl this time, but the concepts still apply. how the algorithm works based on the time of day, it samples a color from this texture , where the white part of the texture produces the bright fluffy daytime clouds, the dark part produces the dark nighttime clouds, and the remaining orange and light blue produce the amazing cloud colors shown in the image during sunset and sunrise! i can’t explain the formula too much in detail, cuz i kinda just copied the math from the old code…"}, {"post_id": 183, "ts": "2026-06-01T06:23:52Z", "hours": 9.4714, "text": "spent like 12h getting the blaze3d renderer to work. long story short, the opengl renderer is a mess and I’m doing pretty much a full rewrite to get it to work on blaze3d. it’s taking extremely long but i’m happy because i’m learning a lot about graphics. the core functionality kinda works but there are all sorts of bugs, and a bunch of features are missing. some of them i probably just won’t be adding back. the old opengl renderer used a three shader setup: a coverage shader (establishes positions and colors of each cloud cube) a shading shader (recolors each cloud cube based on saturation, sunlight, and other properties) a depth shader (changes the transparency for each pixel based on how many cubes are overlapping) …wait what, why do you need all that? i assume order-independent transparency? whatever, i’m not doing allat, hopefully a simple cube drawing will work and blaze3d can handle the transparency stuff right now i have just one fragment shader and one vertex shader, basically the rendering setup possible. hopefully i don’t need anything else, considering i’m literally drawing just cubes… p.s. vulkan renderer so cool! performance is a lot better than opengl on my mac p.p.s cool formula: gl_Position = ProjMat * ViewMat * vec4(pos, 1) (ball knowledge required)"}]...
|
Title: better clouds by @orangishcat | Stardance
Title: better clouds by @orangishcat | Stardance
Devlogs:
spent like 12h getting the blaze3d renderer to work. long story short, the opengl renderer is a mess and I’m doing pretty much a full rewrite to get it to work on blaze3d. it’s taking extremely long but i’m happy because i’m learning a lot about graphics. the core functionality kinda works but there are all sorts of bugs, and a bunch of features are missing. some of them i probably just won’t be adding back. the old opengl renderer used a three shader setup: a coverage shader (establishes positions and colors of each cloud cube) a shading shader (recolors each cloud cube based on saturation, sunlight, and other properties) a depth shader (changes the transparency for each pixel based on how many cubes are overlapping) …wait what, why do you need all that? i assume order-independent transparency? whatever, i’m not doing allat, hopefully a simple cube drawing will work and blaze3d can handle the transparency stuff right now i have just one fragment shader and one vertex shader, basically the rendering setup possible. hopefully i don’t need anything else, considering i’m literally drawing just cubes… p.s. vulkan renderer so cool! performance is a lot better than opengl on my mac p.p.s cool formula: gl_Position = ProjMat * ViewMat * vec4(pos, 1) (ball knowledge required)
the renderer looks good again! i added back the light gradient sampling, so the clouds actually turn orange during sunset and go dark at night time like they used to. btw, I spent like 3 hours reading through https://open.gl/ . it’s a great tutorial, and i applied pretty much all of the graphics concepts i learned to this project! i’m using blaze3d instead of opengl this time, but the concepts still apply. how the algorithm works based on the time of day, it samples a color from this texture , where the white part of the texture produces the bright fluffy daytime clouds, the dark part produces the dark nighttime clouds, and the remaining orange and light blue produce the amazing cloud colors shown in the image during sunset and sunrise! i can’t explain the formula too much in detail, cuz i kinda just copied the math from the old code…
I’m preparing for 26.2 release! I updated the mod to 26.2 pre-4, as well as YACL 3.9.4 which also just came out earlier today. NeoForge is also out but I’m too lazy to setup their custom repo for prerelease builds so I will fix NF support when 26.2 releases. I fixed a really annoying bug that was making the cloud ripple effect way larger in magnitude than it was supposed to be (I sampled WorldPosition instead of WorldPosition - originOffset ) I added a hardcoded minimum brightness in the shader so that clouds will be just barely visible at nighttime. Also GLSL operations are element-wise which is pretty cool! Like you can do max(color.rgb, vec3(0.15)) and each element of the color vector will be element-wise compared with 0.15, and the bigger one will be chosen. Really elegant solution for my minimum brightness operation.
Added option in config screen to choose the renderer, Also added back frustum culling (where clouds don’t render behind the camera) Qendolin’s original algorithm for frustum culling was: compute the bounding box of a section of clouds (clouds are generated in sections with a chunk-like system). if the frustum of the camera (basically an object describing what part of the world the camera can see given a camera angle, position, and fov) can see the clouds, expand the bounding box with the next section of clouds else, render all the sections of clouds we can see, and skip this section if we can’t see it in other words: (original comment from the code) // This algorithm loops over chunks, which are in a line-by-line order. // When a visible chunk is found it's marked as a run start. The run continues until // the next non-visible chunk is found. At the end of a run the entire run is rendered as once. // This is possible due to the memory layout of the instance buffers.
updated to 26.2, and the blaze3d renderer I made works great on vulkan! the renderer was mostly done for weeks now, i just added neoforge back and that was mostly it. Iris was giving me problems as it hasn’t implemented reverse z yet. but i was able to fix that really easily because i kinda know what i’m doing now when touching graphics code! this woulda taken me forever if it were the first time i had to do this. also added longview support to 26.1.2 then declared it end of life
made the celestial body halo much bigger and more visible. i also added separate options for the sun and moon halo, and scaled the moon halo’s size based on the moon phase! also the way I change the halo size is kinda cursed. i’m using qendolin’s superellipse formula, and i only kinda understand how it works. // i still have no idea how this formula works but it seems to work fine float superellipse = ( ( 1.0 + ( 1.0 / 3.0 ) * ( pow ( cos ( 2.0 * projAngle ), 2.0 ))) * haloSize * ( 1.0 - abs ( superellipseFalloff )) - 1.0 ) * sign (- superellipseFalloff ); then i fit an exponential curve based on what halo size i wanted for which moon phase 💀 // larger value = smaller halo size float haloSize = dayTime () < config . shaderPreset (). sunsetEndTime ? 2.05f - config . sunHaloSizeMultiplier : ( float ) ( 5 * Math . pow ( 0.06217 , config . moonHaloSizeMultiplier * DimensionType . MOON_BRIGHTNESS_PER_PHASE [ moonPhase . index ()])); // curve fit for ideal moon halo size based on phase
added a bottom tint option that basically lets you create a gradient on your clouds i’m getting quite familiar with shaders and graphics code! this is one of my main goals for the project, and i’m glad it’s working out well! also fixed a bunch of bugs basic description of the bottom tint algorithm: vertex shader: tint interpolation progress = (y level of the cloud vertex) / (transition range percentage * cloud height range) fragment shader: color = lerp(bottomColor, topColor, tintInterpProgress) by default, the effect is much more subtle than this, but it is still there
Published 1.14.0 release! I renamed “Tint” -> “Top Color”, “Bottom Tint” -> “Bottom Color”, “Bottom Transition Range” -> “Color Transition End” also renamed the options keys too, with a migration thing that migrates the old options keys to the new ones ok ima take a break from this project for now! next up, probably a config system rewrite? i want to implement like discord roles thing, where: you start with a base config given a certain condition (e.g. dimension = minecraft:overworld), certain properties of the config are modified and repeat until you get dynamic clouds with your own defined conditions! or i might not do that idk it sounds kinda complicated
i’ve done what i’ve wanted to do for this project for now! i’ve polished up my devlogs, and gonna ship the project now. here’s a screenshot where i tried to make the clouds look realistic (they’re not supposed to look realistic, so this is very cursed)
I made a few bug fixes and am preparing for 26.3 migration. I also need to make sure the Blaze3D renderer gets feature parity soon. I’m using old reference images like this one to see what the old OpenGL renderer used to be like
Ships:
it’s been roughly 3 months since i’ve taken over the project, and it’s been going great! again, huge thanks to qendolin for letting me maintain his minecraft mod!...
|
1793897339.2838979
|
1793983739.2838979
|
|
61444
|
Haven Hackathon Timer by @theinfamousben | Stardan Haven Hackathon Timer by @theinfamousben | Stardance...
|
theinfamousben
|
0
|
2.56
|
0
|
[]
|
[{"post_id": 67707, "ts": "202 [{"post_id": 67707, "ts": "2026-09-13T22:09:36Z", "hours": 0.7194, "text": "Devlog 2 - Implement Timer Logic Says “starting in” if not started yet Says “time remaining” if in progress Says “Times up” if done Uses difference of timestamps to calculate remaining time"}, {"post_id": 66773, "ts": "2026-09-12T17:38:56Z", "hours": 1.8392, "text": "Devlog 1 - Create Site Skeleton I created a nice skeleton for the timer, events, and sponsor list."}]...
|
Title: Haven Hackathon Timer by @theinfamousben | Title: Haven Hackathon Timer by @theinfamousben | Stardance
Devlogs:
Devlog 1 - Create Site Skeleton I created a nice skeleton for the timer, events, and sponsor list.
Devlog 2 - Implement Timer Logic Says “starting in” if not started yet Says “time remaining” if in progress Says “Times up” if done Uses difference of timestamps to calculate remaining time...
|
1793649083.3770692
|
1794253883.3770692
|
|
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!...
|
1794016138.6853185
|
1794102538.6853185
|
|
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!...
|
1793645692.5688705
|
1794250492.5688705
|
|
44647
|
ThetaNexus by @lix | Stardance
|
lix
|
1
|
90.0
|
1700
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T10:09:48Z", "hours": 90.0, "multiplier": 18.98, "payout": 1700, "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....
|
1794019777.3195765
|
1794106177.3195765
|
|
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)...
|
1794081232.3171165
|
1794686032.3171165
|
|
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...
|
1793872148.1280332
|
1794476948.1280332
|
|
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...
|
1793900997.3609838
|
1794764997.3609838
|
|
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!...
|
1794023407.829406
|
1794109807.829406
|
|
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....
|
1794048665.8063548
|
1794135065.8063548
|
|
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:...
|
1793552058.3501332
|
1794156858.3501332
|
|
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!...
|
1793829200.102754
|
1794434000.102754
|
|
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....
|
1794048776.5846083
|
1794135176.5846083
|
|
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!...
|
1794023273.5468428
|
1794109673.5468428
|
|
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...
|
1793652587.8310235
|
1794257387.8310235
|
|
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!...
|
1794048685.4327993
|
1794135085.4327993
|
|
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....
|
1794012651.3841505
|
1794099051.3841505
|
|
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....
|
1793922827.5701354
|
1794527627.5701354
|
|
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...
|
1793652585.8853867
|
1794257385.8853867
|
|
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...
|
1794048797.282715
|
1794135197.282715
|
|
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!...
|
1794016395.392017
|
1794102795.392017
|
|
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...
|
1794066720.518777
|
1794153120.518777
|
|
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....
|
1794048724.2203593
|
1794135124.2203593
|
|
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....
|
1793652488.3470936
|
1794257288.3470936
|
|
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 :)...
|
1793652472.2616565
|
1794257272.2616565
|
|
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
|
|
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....
|
1794027040.3294332
|
1794113440.3294332
|
|
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!...
|
1793649192.6733484
|
1794253992.6733484
|
|
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
|
|
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....
|
1794048730.9442844
|
1794135130.9442844
|
|
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??...
|
1793649239.0823019
|
1794254039.0823019
|
|
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
|
|
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...
|
1793544518.3642073
|
1794149318.3642073
|