|
49504
|
My own site! by @dayandnightgooner | Stardance
|
dayandnightgooner
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T17:23:56Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A personal portfolio website where I showcase my skills, projects, and what I’m learning. I built it using HTML, CSS, and JavaScript, then deployed it with GitHub Pages. btw i didnt used my information its my friends bwhahahahaha", "repo": "https://github.com/devchandak04/dev-personal-site", "demo": "https://devchandak04.github.io/dev-personal-site/"}]...
|
[{"post_id": 48214, "ts": "202 [{"post_id": 48214, "ts": "2026-08-16T14:47:51Z", "hours": 1.3569, "text": "I built my personal website using HTML, CSS, and JavaScript. I created the site in VS Code, added styling and interactive features, pushed it to GitHub, and deployed it using GitHub Pages. I also learned how to connect my coding time through Hackatime and prepare the project for shipping on Stardance."}]...
|
Title: My own site! by @dayandnightgooner | Starda Title: My own site! by @dayandnightgooner | Stardance
Devlogs:
I built my personal website using HTML, CSS, and JavaScript. I created the site in VS Code, added styling and interactive features, pushed it to GitHub, and deployed it using GitHub Pages. I also learned how to connect my coding time through Hackatime and prepare the project for shipping on Stardance.
Ships:
A personal portfolio website where I showcase my skills, projects, and what I’m learning. I built it using HTML, CSS, and JavaScript, then deployed it with GitHub Pages. btw i didnt used my information its my friends bwhahahahaha...
|
1793332170.0775874
|
1793418570.0775874
|
|
49506
|
My own website! by @berragurlesin | Stardance
|
berragurlesin
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-17T21:25:51Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This project is a personal website I created for myself. It’s a platform where I can bring together my research and other things related to myself. It includes an “About Me” page I designed in a scrapbook style, an “Essays and Research” section where I’ll share my personal writings and research, a “Projects and Milestones” page showcasing my competitions, awards, and projects, and a “Social and Media” page with links to my other social media accounts. I also added hover effects that make the images enlarge and stand out when the mouse hovers over them, and I also created a mobile-specific design to make the site simpler and more user-friendly on smaller screens. One of the most challenging parts for me was adjusting the positions of the images in the scrapbook collage. Since I wanted the collage to look a certain way, I manually adjusted the positions of each image one by one and experimented with different values until I achieved the look I wanted. Since changing the position or size of a single image sometimes affected the appearance of the entire collage, this process required a great deal of trial and error. In addition, I had to learn many things I didn’t know before during the process. Although this made the project more difficult, it allowed me to learn more about web development. What I’m most proud of about this project is that it’s my first website and while people usually use ready-made applications to build websites, I’m very happy that I created this site from scratch by coding it myself in Visual Studio, and the site turned out exactly the way I wanted it to. One thing to keep in mind while browsing the site is that the “Essays and Research” section isn’t complete yet. The reason for this is that, although I’ve actually written some pieces for this section, I want to polish them up before adding them. That’s why I’ve chosen not to upload my articles at this stage. I plan to add them to the site as I continue to refine my writing. I spent a total of more than 5–6 hours on this project, but seeing something functional come out of it makes me feel like it was worth the effort! If you check out my site, I’d love to hear your feedback and make improvements based on it. ˚.⋆🔭⋆⭒🪐⭒˚.⋆", "repo": "https://github.com/berragurlesin/my-website", "demo": "https://berragurlesin.github.io/my-website"}]...
|
[{"post_id": 49145, "ts": "202 [{"post_id": 49145, "ts": "2026-08-17T19:36:15Z", "hours": 1.0336, "text": "My website now looks good on mobile devices too! To fix this issue, I removed the images from the mobile version, but it’s fully functional now. So I’ve finished my project, gained experience building a website, and feel really motivated!! ༄˖°.🚀.ೃ࿔*:・"}, {"post_id": 48447, "ts": "2026-08-16T19:55:18Z", "hours": 3.4408, "text": "After +4 hours, my website is almost done! After creating the basic layout of my website, I selected the photos I wanted to use in the collage on the homepage and chose the fonts and colors. I wrote my bio and spent hours tweaking the collage to look exactly the way I wanted, adjusting the position of each photo one by one. Inspired by a website I’d seen before, I wanted the images to move when the mouse hovered over them and to have a footer section at the bottom, so I asked the AI to teach me how to do that. It turned out to be really easy! To make the images move, CSS uses a property called :hover (basically, you’re telling it what should happen when the mouse hovers over it) I added “transform: scale(1.08)” to the image to make it enlarge slightly when hovered over. To ensure this happened smoothly, I also added “transition: transform 0.25s ease”. For the footer, there’s an HTML tag called “”. Just add it to the very bottom of the page and type whatever text you want inside it (I added a copyright notice to make it look cool). You can try it too! Right now, I have a homepage introducing me, a page where I talk about my projects and achievements, and a page with links to my social media accounts. Later, I’ll also add my own essays to the site. That’s how I built my first website, and it actually really excited me!"}, {"post_id": 48100, "ts": "2026-08-16T11:59:20Z", "hours": 0.2747, "text": "My own website! This is just the beginning! 🚀"}]...
|
Title: My own website! by @berragurlesin | Stardan Title: My own website! by @berragurlesin | Stardance
Devlogs:
My own website! This is just the beginning! 🚀
After +4 hours, my website is almost done! After creating the basic layout of my website, I selected the photos I wanted to use in the collage on the homepage and chose the fonts and colors. I wrote my bio and spent hours tweaking the collage to look exactly the way I wanted, adjusting the position of each photo one by one. Inspired by a website I’d seen before, I wanted the images to move when the mouse hovered over them and to have a footer section at the bottom, so I asked the AI to teach me how to do that. It turned out to be really easy! To make the images move, CSS uses a property called :hover (basically, you’re telling it what should happen when the mouse hovers over it) I added “transform: scale(1.08)” to the image to make it enlarge slightly when hovered over. To ensure this happened smoothly, I also added “transition: transform 0.25s ease”. For the footer, there’s an HTML tag called “”. Just add it to the very bottom of the page and type whatever text you want inside it (I added a copyright notice to make it look cool). You can try it too! Right now, I have a homepage introducing me, a page where I talk about my projects and achievements, and a page with links to my social media accounts. Later, I’ll also add my own essays to the site. That’s how I built my first website, and it actually really excited me!
My website now looks good on mobile devices too! To fix this issue, I removed the images from the mobile version, but it’s fully functional now. So I’ve finished my project, gained experience building a website, and feel really motivated!! ༄˖°.🚀.ೃ࿔*:・
Ships:
This project is a personal website I created for myself. It’s a platform where I can bring together my research and other things related to myself. It includes an “About Me” page I designed in a scrapbook style, an “Essays and Research” section where I’ll share my personal writings and research, a “Projects and Milestones” page showcasing my competitions, awards, and projects, and a “Social and Media” page with links to my other social media accounts. I also added hover effects that make the images enlarge and stand out when the mouse hovers over them, and I also created a mobile-specific design to make the site simpler and more user-friendly on smaller screens. One of the most challenging parts for me was adjusting the positions of the images in the scrapbook collage. Since I wanted the collage to look a certain way, I manually adjusted the positions of each image one by one and experimented with different values until I achieved the look I wanted. Since changing the position or size of a single image sometimes affected the appearance of the entire collage, this process required a great deal of trial and error. In addition, I had to learn many things I didn’t know before during the process. Although this made the project more difficult, it allowed me to learn more about web development. What I’m most proud of about this project is that it’s my first website and while people usually use ready-made applications to build websites, I’m very happy that I created this site from scratch by coding it myself in Visual Studio, and the site turned out exactly the way I wanted it to. One thing to keep in mind while browsing the site is that the “Essays and Research” section isn’t complete yet. The reason for this is that, although I’ve actually written some pieces for this section, I want to polish them up before adding them. That’s why I’ve chosen not to upload my articles at this stage. I plan to add them to the site as I continue to refine my writing. I spent a total of more than 5–6 hours on this project, but seeing something functional come out of it makes me feel like it was worth the effort! If you check out my site, I’d love to hear your feedback and make improvements based on it. ˚.⋆🔭⋆⭒🪐⭒˚.⋆...
|
1793332182.8858893
|
1793418582.8858893
|
|
49514
|
MeshAQ by @Toma_Kuchta | Stardance
|
Toma_Kuchta
|
1
|
1.0
|
7
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-29T20:42:26Z", "hours": 1.0, "multiplier": 5.0, "payout": 7, "blessing": "neutral", "text": "I’ve made a desktop air quality monitoring station! It reads all of the important metrics for measuring air quality like CO2, Temperature, VOCs and Particle Matter - more on these in the repo. It’s supped to help me research and implement all of these metrics to a mesh network called meshtastic. see ya", "repo": "https://github.com/Tomas-Kuchta-FPV/MeshAQ", "demo": ""}]...
|
[{"post_id": 57621, "ts": "202 [{"post_id": 57621, "ts": "2026-08-29T20:34:46Z", "hours": 1.2936, "text": "Alright so I’ve brought this to the outpost hackathon, but on the way back it didn’t fit into my bag so I had to bring back just my parts without the 3d printed shell - which was fine because I wanted to make tweaks anyways and the gray color was awful but only for testing though."}, {"post_id": 55920, "ts": "2026-07-12T00:00:00Z", "hours": 4.0, "text": "Allrighty so after yeasterday succes I had today tried codind some code for it. Like I have a lot of thing to prepare for the hackathon so I’m going to vibecode it with claude. And yeah it worked wonderfully. The UI is clean and it works. I had one hurdle with ADC as AI thought it was the correct code for t114 but it was for the e290. I have also tried to add in GPS support but I ran out of contex and tokens. Looks super neat, and I can’t wait to measure the nasty air at the venue lol. [Video of it working]"}, {"post_id": 55950, "ts": "2026-07-11T00:00:00Z", "hours": 6.7, "text": "Allright so after an amazing family vacation… I’ve got home and I found the package from lakakit home thanks to my dad bc he grabbed from the post office. Also I have printed the case before the vacation and cleaned up the suports. I was super happy about building it!!!! Like let’s goooo and let’s build it. So I’ve started working on it ASAP, bc I’m super exited about it. Started with a rough assembly to find problems and there were a lot of problems lol bc I was rushing it. Problems found: Hole for the GPS it soo tall Hole for the GPS cable is too small GPS cable toooooo short Didn’t tolerance the SEN66 sensor in any shape or form. Battery is too long wth Looks like a frog No place for the antenna - TSA might look at me wrong fah No passthrough for battery cable Oh man IDK I’m rushing it madmax style. So I’ve made the cable longer (Which was a pain in the hack) managed to get it passed through by scraping a bit off the connector. FAHHHH Oh and then there was ZEN as the SEN66 assebly was a lot more smooooother. It fitted so smoothly and It worked almost first try niiiiceee. So I have tried the example sketch on it but it didn’t work as I2C pins aren’t prob defined in arduino same as in meshtastic. So with a bit of help from AI I’ve managed to insert one line to define the pins and it worked out good."}, {"post_id": 55949, "ts": "2026-07-02T00:00:00Z", "hours": 4.0, "text": "I woke up to a door slamming and I really didn’t have a clue what it was. But it turned out to be GLS with my order! So with my brother we imedeatly opened it up and was really exited that the sensor came in. After breakfest I imeadedly went to my worksop and connected the sensor, also I have triple checked everything BC this sensor can’t get fried. So after hooking it up I’ve uploaded the test code from SEN6x library and it worked first try! And after that succes I’ve coded I’ve imedeatly started coding code for it. I mean I just copied code blocks from the example and hooked everything to the coresponding values. And at first the aligment was wonky but with some tweaks later it looks pretty good."}, {"post_id": 55948, "ts": "2026-07-01T00:00:00Z", "hours": 3.5, "text": "Time spent: 3.5h So today I had began to code some code for it. I don’t have the sensor yet but the post said it should get here by tomorrow. My goal for today was to define what the code should do and display all the variables that will be produced by the sensor. I have first tried the example givven by heletec but I didn’t like the fact it’s a generic nonmodular library so I went with a comunnity one which worked nice. So BC IDK how to make a pretty colums for the measurements I let AI to make a function that will handle the colums. And after that I had my first prototype ready. Which only incremented n by one evehy cycle but it was enough to validate the UI."}, {"post_id": 55947, "ts": "2026-06-30T00:00:00Z", "hours": 3.0, "text": "I have never gotten a grant to build this one lol. So why not revive this at outpost and show it at open sauce! I think that the idea is really cool. I have one meshtastic on hand (Heltec E290) which is kinda suitable. ESP32S3 for low power grrr. Yeah so I have this week to finish it. That’s why I had ordered the SEN66 out off pocket and hoping for a reimbursment later. Also If I get the grant I’ll swith to the heltec t114 which is way better for low power stuff and also I’ve already made and printed a minimalistic case for it. Also the prices on aliexpress got redicolous and buying locally makes more sense lol. And yah I have also designed a new case for it with a place for a battery and I didn’t bother CADing the place for the heltec. Also I want this portable so that’s why I need a battery. So I would love to revisit it with the HW I have at hand. not BC I have a week to build it. Also it’s going to get simplified like a lot."}, {"post_id": 55892, "ts": "2026-03-27T00:00:00Z", "hours": 3.0, "text": "I’ve been mindful of the BOM in the beginning of the project. But I wasn’t as mindful on the BOM price. And the Formaldehyde sensor was way too expensive. So after reducing the BOM the project doesn’t have the same complexity. But I think that it could still have the same informational functionality. So I began striping things down. And in the end I only need one component and that is the SEN 66. Then I went ahead and made a first draft of the BOM with links from farnel as they were the cheapest. (SPOILER: they were without VAT) So I have imported the BOM into the readme. After I said a few words about the project and it’s function. Made a super simple schematic into the readme. Screenshoted a few images of the CAD assembly exported. And the I got to the farnel cart and noticed that the prices were without VAT so I went back to laskakit. And there it was a complete project blueprint."}, {"post_id": 55891, "ts": "2026-03-25T00:00:00Z", "hours": 2.0, "text": "So Instead of basing the project around the SEN66 I based my design around the 5Ah battery I aleady have at hand. It looks ugly and and the sensor is super small compared to the case. So today with no luck either. I’m pretty worried that this project wouldn’t get accepted so I either put more of my unproductive time to it or I just settle for HackClub sponsoring just the sensor and I’ll buy the heltec. Seems ethicaly right."}, {"post_id": 55890, "ts": "2026-03-24T00:00:00Z", "hours": 5.0, "text": "Oh boy I’m struggling to come up with the right design today, even though I had the entire afternoon. Yeah nothing just works. A lot of the times I’m doing CAD the ideas just flow and I’m able to come up with a beautiful design. But not today. I’s probably because I was attending a lot of competitions and events. Yeah I’m not counting today as a super productive day. But every UP and DOWN should be documented so that’s why I’m sharing my struggles. ;) The journal isn’t as juicy as there is with other days. So excuse me please. - Mainly images this time I’m struggling with CADing up this design and I’m tight on time. The recepie for dezister. I’ve managed to make it via a loft. This doesn’t seem right. I don’t know where to put the battery. Even thought it looks decent there is no space for the intended 5Ah battery or for even a smaller one. Yeah so hopefully I’ll be better tomorrow bye. Even though I sat on it for like 7 hours I think it’s appropriate to count 5. Also I’m starting to doubt if this project is going to get accepted as I don’t see it as fitting for blueprint. Going to ask in slack TMRW."}, {"post_id": 55889, "ts": "2026-03-21T00:00:00Z", "hours": 4.0, "text": "With the help of AI I was able to make a table over viewing the sensor which I planned to use. Like a month ago… Now with 20 days until the blueprint deadline I have to scale back the scope. That’s why I’ve settled on using only the SEN66 with the heltec t114. I’m also super keen on adding a microphone nut I have a few at hand. But that will be for later. After thinking of an elegant design I have came up with a slanted screen with the SEN on the back. Did a few markups on paper and it looks promising. And it will look super smart! Then I’ve jumped into CAD found the needed reference models for the SEN66 and the heltec t114. made an assembly for the sen and based my design of off it. PS: I need to go to CT studios so adios"}, {"post_id": 55888, "ts": "2026-02-15T00:00:00Z", "hours": 0.25, "text": "So I’ve got my hand on SGP41 sensor and and thanks of the work of [ oscgonfer and Coloradohusky ] and it measures great! I’m really exited for this project and for revamping the enviroment metrics for the better. This sensor is going to go into [Travel Buddy!] https://github.com/meshtastic/firmware/pull/7198"}]...
|
Title: MeshAQ by @Toma_Kuchta | Stardance
Devlogs Title: MeshAQ by @Toma_Kuchta | Stardance
Devlogs:
So I’ve got my hand on SGP41 sensor and and thanks of the work of [ oscgonfer and Coloradohusky ] and it measures great! I’m really exited for this project and for revamping the enviroment metrics for the better. This sensor is going to go into [Travel Buddy!] https://github.com/meshtastic/firmware/pull/7198
With the help of AI I was able to make a table over viewing the sensor which I planned to use. Like a month ago… Now with 20 days until the blueprint deadline I have to scale back the scope. That’s why I’ve settled on using only the SEN66 with the heltec t114. I’m also super keen on adding a microphone nut I have a few at hand. But that will be for later. After thinking of an elegant design I have came up with a slanted screen with the SEN on the back. Did a few markups on paper and it looks promising. And it will look super smart! Then I’ve jumped into CAD found the needed reference models for the SEN66 and the heltec t114. made an assembly for the sen and based my design of off it. PS: I need to go to CT studios so adios
Oh boy I’m struggling to come up with the right design today, even though I had the entire afternoon. Yeah nothing just works. A lot of the times I’m doing CAD the ideas just flow and I’m able to come up with a beautiful design. But not today. I’s probably because I was attending a lot of competitions and events. Yeah I’m not counting today as a super productive day. But every UP and DOWN should be documented so that’s why I’m sharing my struggles. ;) The journal isn’t as juicy as there is with other days. So excuse me please. - Mainly images this time I’m struggling with CADing up this design and I’m tight on time. The recepie for dezister. I’ve managed to make it via a loft. This doesn’t seem right. I don’t know where to put the battery. Even thought it looks decent there is no space for the intended 5Ah battery or for even a smaller one. Yeah so hopefully I’ll be better tomorrow bye. Even though I sat on it for like 7 hours I think it’s appropriate to count 5. Also I’m starting to doubt if this project is going to get accepted as I don’t see it as fitting for blueprint. Going to ask in slack TMRW.
So Instead of basing the project around the SEN66 I based my design around the 5Ah battery I aleady have at hand. It looks ugly and and the sensor is super small compared to the case. So today with no luck either. I’m pretty worried that this project wouldn’t get accepted so I either put more of my unproductive time to it or I just settle for HackClub sponsoring just the sensor and I’ll buy the heltec. Seems ethicaly right.
I’ve been mindful of the BOM in the beginning of the project. But I wasn’t as mindful on the BOM price. And the Formaldehyde sensor was way too expensive. So after reducing the BOM the project doesn’t have the same complexity. But I think that it could still have the same informational functionality. So I began striping things down. And in the end I only need one component and that is the SEN 66. Then I went ahead and made a first draft of the BOM with links from farnel as they were the cheapest. (SPOILER: they were without VAT) So I have imported the BOM into the readme. After I said a few words about the project and it’s function. Made a super simple schematic into the readme. Screenshoted a few images of the CAD assembly exported. And the I got to the farnel cart and noticed that the prices were without VAT so I went back to laskakit. And there it was a complete project blueprint.
I have never gotten a grant to build this one lol. So why not revive this at outpost and show it at open sauce! I think that the idea is really cool. I have one meshtastic on hand (Heltec E290) which is kinda suitable. ESP32S3 for low power grrr. Yeah so I have this week to finish it. That’s why I had ordered the SEN66 out off pocket and hoping for a reimbursment later. Also If I get the grant I’ll swith to the heltec t114 which is way better for low power stuff and also I’ve already made and printed a minimalistic case for it. Also the prices on aliexpress got redicolous and buying locally makes more sense lol. And yah I have also designed a new case for it with a place for a battery and I didn’t bother CADing the place for the heltec. Also I want this portable so that’s why I need a battery. So I would love to revisit it with the HW I have at hand. not BC I have a week to build it. Also it’s going to get simplified like a lot.
Time spent: 3.5h So today I had began to code some code for it. I don’t have the sensor yet but the post said it should get here by tomorrow. My goal for today was to define what the code should do and display all the variables that will be produced by the sensor. I have first tried the example givven by heletec but I didn’t like the fact it’s a generic nonmodular library so I went with a comunnity one which worked nice. So BC IDK how to make a pretty colums for the measurements I let AI to make a function that will handle the colums. And after that I had my first prototype ready. Which only incremented n by one evehy cycle but it was enough to validate the UI.
I woke up to a door slamming and I really didn’t have a clue what it was. But it turned out to be GLS with my order! So with my brother we imedeatly opened it up and was really exited that the sensor came in. After breakfest I imeadedly went to my worksop and connected the sensor, also I have triple checked everything BC this sensor can’t get fried. So after hooking it up I’ve uploaded the test code from SEN6x library and it worked first try! And after that succes I’ve coded I’ve imedeatly started coding code for it. I mean I just copied code blocks from the example and hooked everything to the coresponding values. And at first the aligment was wonky but with some tweaks later it looks pretty good.
Allright so after an amazing family vacation… I’ve got home and I found the package from lakakit home thanks to my dad bc he grabbed from the post office. Also I have printed the case before the vacation and cleaned up the suports. I was super happy about building it!!!! Like let’s goooo and let’s build it. So I’ve started working on it ASAP, bc I’m super exited about it. Started with a rough assembly to find problems and there were a lot of problems lol bc I was rushing it. Problems found: Hole for the GPS it soo tall Hole for the GPS cable is too small GPS cable toooooo short Didn’t tolerance the SEN66 sensor in any shape or form. Battery is too long wth Looks like a frog No place for the antenna - TSA might look at me wrong fah No passthrough for battery cable Oh man IDK I’m rushing it madmax style. So I’ve made the cable longer (Which was a pain in the hack) managed to get it passed through by scraping a bit off the connector. FAHHHH Oh and then there was ZEN as the SEN66 assebly was a lot more smooooother. It fitted so smoothly and It worked almost first try niiiiceee. So I have tried the example sketch on it but it didn’t work as I2C pins aren’t prob defined in arduino same as in meshtastic. So with a bit of help from AI I’ve managed to insert one line to define the pins and it worked out good.
Allrighty so after yeasterday succes I had today tried codind some code for it. Like I have a lot of thing to prepare for the hackathon so I’m going to vibecode it with claude. And yeah it worked wonderfully. The UI is clean and it works. I had one hurdle with ADC as AI thought it was the correct code for t114 but it was for the e290. I have also tried to add in GPS support but I ran out of contex and tokens. Looks super neat, and I can’t wait to measure the nasty air at the venue lol. [Video of it working]
Alright so I’ve brought this to the outpost hackathon, but on the way back it didn’t fit into my bag so I had to bring back just my parts without the 3d printed shell - which was fine because I wanted to make tweaks anyways and the gray color was awful but only for testing though.
Ships:
I’ve made a desktop air quality monitoring station! It reads all of the important metrics for measuring air quality like CO2, Temperature, VOCs and Particle Matter - more on these in the repo. It’s supped to help me research and implement all of these metrics to a mesh network called meshtastic. see ya...
|
1793490447.9097908
|
1793576847.9097908
|
|
49529
|
newsen by @abh1 | Stardance
|
abh1
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-21T16:44:43Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A smart dashboard app for touch screen windows digital boards used in classrooms.", "repo": "https://github.com/abh1-0/newsen/", "demo": "https://newsen.abh1.xyz/"}]...
|
[{"post_id": 48117, "ts": "202 [{"post_id": 48117, "ts": "2026-08-16T12:29:53Z", "hours": 0.9006, "text": "Built 2.6!!"}]...
|
Title: newsen by @abh1 | Stardance
Devlogs:
Built Title: newsen by @abh1 | Stardance
Devlogs:
Built 2.6!!
Ships:
A smart dashboard app for touch screen windows digital boards used in classrooms....
|
1793332231.4481208
|
1793418631.4481208
|
|
49540
|
My own site! by @govindrkumar | Stardance
|
govindrkumar
|
1
|
4.36
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-22T07:09:12Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Didn’t knew much about style.css. Learnt and built everything about my personal website. Great memories of rejoicing when I learnt html in class 7th. Will try to work harder in ship2. Thank you!", "repo": "https://github.com/govindrkumar/stardance/tree/main", "demo": "https://govindrkumar.github.io/stardance/"}]...
|
[{"post_id": 52425, "ts": "202 [{"post_id": 52425, "ts": "2026-08-22T15:31:34Z", "hours": 0.3611, "text": "Finished Writing Readme.md as per suggested!!"}, {"post_id": 48666, "ts": "2026-08-17T05:02:09Z", "hours": 4.18, "text": "So, In today’s 2 hours session, I created about.html. I added footer in my portfolio websites. I added few hover animations to make it look clear. Used css to design and make any part clear."}]...
|
Title: My own site! by @govindrkumar | Stardance
Title: My own site! by @govindrkumar | Stardance
Devlogs:
So, In today’s 2 hours session, I created about.html. I added footer in my portfolio websites. I added few hover animations to make it look clear. Used css to design and make any part clear.
Finished Writing Readme.md as per suggested!!
Ships:
Didn’t knew much about style.css. Learnt and built everything about my personal website. Great memories of rejoicing when I learnt html in class 7th. Will try to work harder in ship2. Thank you!...
|
1793332286.05449
|
1793418686.05449
|
|
49555
|
MY OWN WEBSITE by @vardaankatyal | Stardance
|
vardaankatyal
|
1
|
0.52
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-17T09:35:47Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website for myself depicting my skills in computer science .Checking for some errors in my code was challenging thats why i used gpt to help rest i did myself… Also i am proud that i made this website in 30mins. So, if you open and check my website in pc and phone the animation varies a lot", "repo": "https://github.com/vardaankatyal-netizen/zero-hunger", "demo": "https://zero-hunger-tan.vercel.app/"}]...
|
[{"post_id": 49438, "ts": "202 [{"post_id": 49438, "ts": "2026-08-18T08:56:14Z", "hours": 0.5183, "text": "completed with writing readme"}, {"post_id": 48191, "ts": "2026-08-16T14:17:16Z", "hours": 0.2667, "text": "THE ANIMATION PART OF MY WEBSITE"}]...
|
Title: MY OWN WEBSITE by @vardaankatyal | Stardanc Title: MY OWN WEBSITE by @vardaankatyal | Stardance
Devlogs:
THE ANIMATION PART OF MY WEBSITE
completed with writing readme
Ships:
I made a website for myself depicting my skills in computer science .Checking for some errors in my code was challenging thats why i used gpt to help rest i did myself… Also i am proud that i made this website in 30mins. So, if you open and check my website in pc and phone the animation varies a lot...
|
1793407924.5035367
|
1793494324.5035367
|
|
49560
|
Synapse by @AbdurRehman | Stardance
|
AbdurRehman
|
1
|
20.0
|
383
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-20T18:37:24Z", "hours": 20.0, "multiplier": 19.0, "payout": 383, "blessing": "neutral", "text": "I made Synapse, an interactive visualization of neural activity in the human brain. It simulates a network of connected neurons and signals between them. My goal wasn’t to create an accurate model of the human brain but to create something visually compelling. The most challenging part was keeping everything performant since there are a lot of line segments, custom shaders, raycasting so that took a while. Also making the entire experience look good too took a lot of effort but I am proud of how everything looks in the end!", "repo": "https://github.com/RealAbdurRehman/synapse", "demo": "https://synapse-ruddy-delta.vercel.app"}]...
|
[{"post_id": 51190, "ts": "202 [{"post_id": 51190, "ts": "2026-08-20T18:08:31Z", "hours": 3.0606, "text": "Since the last dev log, I added an animated background and improved the lightning effects to make the scene look better. I also redesigned the loading screen and made the visualization configurable by adding a customization panel where users can control things like neuron count and connections per neuron. I also finished the README and added some final touches before deploying the app. Well, that finishes this project."}, {"post_id": 50837, "ts": "2026-08-20T08:45:33Z", "hours": 3.1586, "text": "I added a transparent brain model with fresnel effect that creates a cool looking rim around the edges of the brain. I also added a subtle animation to the effect making everything look more alive. I also added post processing effects like depth of field, vignette, chromatic aberration, and film grain. The depth of field also focuses on neurons when hovering over them making interaction feel much more immersive. Next, I’ll work on improving the background and camera and stuff."}, {"post_id": 50773, "ts": "2026-08-20T04:30:58Z", "hours": 3.1242, "text": "I added user interaction to the neurons. Neurons can now respond to the user when hovered and clicked which sends cool looking signals making everything interactive. I also added hover effects to highlight neurons under the cursor. Next, I’ll work on adding the final visuals."}, {"post_id": 49428, "ts": "2026-08-18T08:21:11Z", "hours": 2.4647, "text": "I added signal propagation between connected neurons. Signals now travel along the connections which propagate through nearby neurons with controlled probability and decay. I also tuned the settings so that they don’t become too dense or overwhelming. I also changed the neuron behavior so neurons react when they forward a signal, making the everything look like a real brain. Next, I’ll start adding user interaction."}, {"post_id": 49352, "ts": "2026-08-18T03:57:04Z", "hours": 2.5061, "text": "I added the connections between neurons. I first implemented simple straight line connections, then changed them into smooth curved paths. After that, I made the curves irregular, giving everything a more natural appearance rather than having every connection follow the same type of curve. Next, I’ll probably add interactivity of some sort."}, {"post_id": 48932, "ts": "2026-08-17T14:27:11Z", "hours": 2.1336, "text": "I continued improving the neural visualization by making the neurons look more visually impressive and natural. I added a glowing effect, different neuron sizes, and subtle pulsing so the neurons feel more alive instead of looking like static points. I also optimized the neuron system to improve how the neurons are generated and rendered making everything more efficient. Next, I’ll add other effects."}, {"post_id": 48807, "ts": "2026-08-17T10:47:25Z", "hours": 2.7111, "text": "I continued building the neural visualization by implementing a neuron system by randomly placing points in a box to generating neurons based on an actual brain model. I used a point in mesh approach basically using raycasting so neurons are only placed within the brain’s geometry. The current approach works, but generating the neurons is like really slow because each position has to be checked against the brain mesh, and if it isn’t inside, the system keeps trying until it finds a valid position. Next, I’ll improve the neuron placement by making it more efficient."}, {"post_id": 48149, "ts": "2026-08-16T13:21:31Z", "hours": 0.9894, "text": "Set up the project’s foundation by creating the Vite project with TypeScript, integrating Three.js and Tailwind CSS, and configuring the initial 3D scene with a camera, renderer, and orbit controls. I also created the Git repository for the project. and a short README for now. Next, I’ll start planning and building this app."}]...
|
Title: Synapse by @AbdurRehman | Stardance
Devlog Title: Synapse by @AbdurRehman | Stardance
Devlogs:
Set up the project’s foundation by creating the Vite project with TypeScript, integrating Three.js and Tailwind CSS, and configuring the initial 3D scene with a camera, renderer, and orbit controls. I also created the Git repository for the project. and a short README for now. Next, I’ll start planning and building this app.
I continued building the neural visualization by implementing a neuron system by randomly placing points in a box to generating neurons based on an actual brain model. I used a point in mesh approach basically using raycasting so neurons are only placed within the brain’s geometry. The current approach works, but generating the neurons is like really slow because each position has to be checked against the brain mesh, and if it isn’t inside, the system keeps trying until it finds a valid position. Next, I’ll improve the neuron placement by making it more efficient.
I continued improving the neural visualization by making the neurons look more visually impressive and natural. I added a glowing effect, different neuron sizes, and subtle pulsing so the neurons feel more alive instead of looking like static points. I also optimized the neuron system to improve how the neurons are generated and rendered making everything more efficient. Next, I’ll add other effects.
I added the connections between neurons. I first implemented simple straight line connections, then changed them into smooth curved paths. After that, I made the curves irregular, giving everything a more natural appearance rather than having every connection follow the same type of curve. Next, I’ll probably add interactivity of some sort.
I added signal propagation between connected neurons. Signals now travel along the connections which propagate through nearby neurons with controlled probability and decay. I also tuned the settings so that they don’t become too dense or overwhelming. I also changed the neuron behavior so neurons react when they forward a signal, making the everything look like a real brain. Next, I’ll start adding user interaction.
I added user interaction to the neurons. Neurons can now respond to the user when hovered and clicked which sends cool looking signals making everything interactive. I also added hover effects to highlight neurons under the cursor. Next, I’ll work on adding the final visuals.
I added a transparent brain model with fresnel effect that creates a cool looking rim around the edges of the brain. I also added a subtle animation to the effect making everything look more alive. I also added post processing effects like depth of field, vignette, chromatic aberration, and film grain. The depth of field also focuses on neurons when hovering over them making interaction feel much more immersive. Next, I’ll work on improving the background and camera and stuff.
Since the last dev log, I added an animated background and improved the lightning effects to make the scene look better. I also redesigned the loading screen and made the visualization configurable by adding a customization panel where users can control things like neuron count and connections per neuron. I also finished the README and added some final touches before deploying the app. Well, that finishes this project.
Ships:
I made Synapse, an interactive visualization of neural activity in the human brain. It simulates a network of connected neurons and signals between them. My goal wasn’t to create an accurate model of the human brain but to create something visually compelling. The most challenging part was keeping everything performant since there are a lot of line segments, custom shaders, raycasting so that took a while. Also making the entire experience look good too took a lot of effort but I am proud of how everything looks in the end!...
|
1793407950.2184384
|
1793494350.2184384
|
|
49572
|
Nexus AI – Customer Support Agent by @Mohanaryan | Nexus AI – Customer Support Agent by @Mohanaryan | Stardance...
|
Mohanaryan
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T13:17:47Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "NexusAI is an AI-powered customer support assistant built with Python and Streamlit. It uses semantic search with Sentence Transformers and cosine similarity to retrieve relevant answers from a customer-support knowledge base. The app provides real-time customer responses, retrieval confidence scoring, BLEU-based response evaluation, chat history, and CSV report export. I built and tested the project locally, focusing on making the interface simple and easy to use while learning more about semantic retrieval, NLP evaluation, and Streamlit. Tech: Python • Streamlit • Sentence Transformers • scikit-learn • NLTK • Pandas", "repo": "https://github.com/mohithkumar3413/nexus-ai-customer-support-agent", "demo": "https://youtu.be/lDnPkIN7MbI?si=RyjuZfs4S9Td45cu"}]...
|
[{"post_id": 49558, "ts": "202 [{"post_id": 49558, "ts": "2026-08-18T13:11:05Z", "hours": 0.4603, "text": "Today I continued working on NexusAI, my AI-powered customer support project.I focused on getting the Streamlit application running properly on my Mac and testing the main customer-support flow. I successfully launched the app locally and tested the knowledge-base retrieval with different customer queries.I also checked the interface and made sure the chat, confidence score, BLEU evaluation, and CSV export features are working together.Next, I want to continue testing the responses and improve the overall user experience.#AI #Python #Streamlit #CustomerSupport #BuildInPublic"}, {"post_id": 48849, "ts": "2026-08-17T12:18:15Z", "hours": 0.3442, "text": "Today I continued working on my Nexus AI Customer Support Agent. I connected the project with Hackatime and spent time testing the project locally in VS Code. I also checked the session handling and existing Clear Conversation feature and made sure the application was running properly.This was a useful session because I got more familiar with tracking development time and working with an existing AI project. I’m planning to continue improving the user experience and adding more useful features."}]...
|
Title: Nexus AI – Customer Support Agent by @Mohan Title: Nexus AI – Customer Support Agent by @Mohanaryan | Stardance
Devlogs:
Today I continued working on my Nexus AI Customer Support Agent. I connected the project with Hackatime and spent time testing the project locally in VS Code. I also checked the session handling and existing Clear Conversation feature and made sure the application was running properly.This was a useful session because I got more familiar with tracking development time and working with an existing AI project. I’m planning to continue improving the user experience and adding more useful features.
Today I continued working on NexusAI, my AI-powered customer support project.I focused on getting the Streamlit application running properly on my Mac and testing the main customer-support flow. I successfully launched the app locally and tested the knowledge-base retrieval with different customer queries.I also checked the interface and made sure the chat, confidence score, BLEU evaluation, and CSV export features are working together.Next, I want to continue testing the responses and improve the overall user experience.#AI #Python #Streamlit #CustomerSupport #BuildInPublic
Ships:
NexusAI is an AI-powered customer support assistant built with Python and Streamlit. It uses semantic search with Sentence Transformers and cosine similarity to retrieve relevant answers from a customer-support knowledge base. The app provides real-time customer responses, retrieval confidence scoring, BLEU-based response evaluation, chat history, and CSV report export. I built and tested the project locally, focusing on making the interface simple and easy to use while learning more about semantic retrieval, NLP evaluation, and Streamlit. Tech: Python • Streamlit • Sentence Transformers • scikit-learn • NLTK • Pandas...
|
1793407965.8853548
|
1793494365.8853548
|
|
49577
|
CSGame by @potipek | Stardance
|
potipek
|
1
|
2.79
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T21:54:10Z", "hours": 2.0, "multiplier": 1.09, "payout": 3, "blessing": "neutral", "text": "I made my probably second game in csharp, I am a newbie, hope you like it and have a great day! :)", "repo": "https://github.com/tomk1440-cmyk/CSGame", "demo": "https://github.com/tomk1440-cmyk/CSGame/releases/tag/alpha5"}]...
|
[{"post_id": 51596, "ts": "202 [{"post_id": 51596, "ts": "2026-08-21T11:18:02Z", "hours": 0.4814, "text": "Fixed incorrect input so it no longer crashes you need to have dotnet 10 installed to run the game!"}, {"post_id": 48986, "ts": "2026-08-17T15:59:22Z", "hours": 0.3133, "text": "added new difficulty"}, {"post_id": 48508, "ts": "2026-08-16T21:52:20Z", "hours": 2.4808, "text": "Code looks good, code looks great! + github releases :)"}]...
|
Title: CSGame by @potipek | Stardance
Devlogs:
Co Title: CSGame by @potipek | Stardance
Devlogs:
Code looks good, code looks great! + github releases :)
added new difficulty
Fixed incorrect input so it no longer crashes you need to have dotnet 10 installed to run the game!
Ships:
I made my probably second game in csharp, I am a newbie, hope you like it and have a great day! :)...
|
1793407980.1544979
|
1793494380.1544979
|
|
49614
|
glitchyOS by @dee27 | Stardance
|
dee27
|
1
|
4.16
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-03T15:15:08Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "built a custom webOS desktop with multiple windows you can drag around. gonna add some more apps and unique glitches later", "repo": "https://github.com/deepakverma-afk/glitchyOS", "demo": "https://deepakverma-afk.github.io/glitchyOS/"}]...
|
[{"post_id": 61354, "ts": "202 [{"post_id": 61354, "ts": "2026-09-04T07:14:36Z", "hours": 1.1617, "text": "fixed bugs and added some glitches use command “glitch” in terminal for some epic glitches"}, {"post_id": 60886, "ts": "2026-09-03T15:06:29Z", "hours": 1.1306, "text": "fixed some bugs shipping the project. gonna add few more apps and glitches later."}, {"post_id": 57961, "ts": "2026-08-30T09:22:41Z", "hours": 0.4431, "text": "Day 3 fixed some bugs, windows and icons are now draggable"}, {"post_id": 55550, "ts": "2026-08-27T14:02:08Z", "hours": 1.2822, "text": "added topbar, live clock and a wallpaper. font switched to jetbrains mono, learning abt css classes and variables. started building my first app."}, {"post_id": 49484, "ts": "2026-08-18T11:02:26Z", "hours": 0.3939, "text": "started making glitchyOS today, used ai to get basic preview, gonna rewrite the whole thing manually later"}]...
|
Title: glitchyOS by @dee27 | Stardance
Devlogs:
s Title: glitchyOS by @dee27 | Stardance
Devlogs:
started making glitchyOS today, used ai to get basic preview, gonna rewrite the whole thing manually later
added topbar, live clock and a wallpaper. font switched to jetbrains mono, learning abt css classes and variables. started building my first app.
Day 3 fixed some bugs, windows and icons are now draggable
fixed some bugs shipping the project. gonna add few more apps and glitches later.
fixed bugs and added some glitches use command “glitch” in terminal for some epic glitches
Ships:
built a custom webOS desktop with multiple windows you can drag around. gonna add some more apps and unique glitches later...
|
1793519493.1498904
|
1793605893.1498904
|
|
49640
|
WebTab by @Dxkshh | Stardance
|
Dxkshh
|
1
|
2.06
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T05:44:20Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "shipped it 🕷️ WebTab is live — my browser’s new tab page but it’s got a spider that follows your cursor around, a web that reacts when you get close, and another spider hanging off the search bar that runs off if you click it. built with just html/css/js, no frameworks, deploys itself now too. https://Dxkshh-Codee.github.io/WebTab/", "repo": "https://github.com/Dxkshh-Codee/WebTab", "demo": "https://dxkshh-codee.github.io/WebTab/"}]...
|
[{"post_id": 60073, "ts": "202 [{"post_id": 60073, "ts": "2026-09-02T06:09:23Z", "hours": 1.0569, "text": "Commited the changes requested!!"}, {"post_id": 50107, "ts": "2026-08-19T05:22:49Z", "hours": 1.4047, "text": "🕷️ devlog: WebTab is up it’s live. WebTab, my spider-verse-y new tab page. a spider follows your cursor, the search bar has one hanging off it that runs away if you click it, and there’s a little glowy web in the background that reacts to your mouse. vanilla js, no frameworks."}]...
|
Title: WebTab by @Dxkshh | Stardance
Devlogs:
🕷️ Title: WebTab by @Dxkshh | Stardance
Devlogs:
🕷️ devlog: WebTab is up it’s live. WebTab, my spider-verse-y new tab page. a spider follows your cursor, the search bar has one hanging off it that runs away if you click it, and there’s a little glowy web in the background that reacts to your mouse. vanilla js, no frameworks.
Commited the changes requested!!
Ships:
shipped it 🕷️ WebTab is live — my browser’s new tab page but it’s got a spider that follows your cursor around, a web that reacts when you get close, and another spider hanging off the search bar that runs off if you click it. built with just html/css/js, no frameworks, deploys itself now too. https://Dxkshh-Codee.github.io/WebTab/...
|
1793433143.9163795
|
1793519543.9163795
|
|
49647
|
ReplyFlow by @Shivamxcode | Stardance
|
Shivamxcode
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T18:26:11Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built ReplyFlow, a small Windows utility that helps turn Hindi and Hinglish messages into natural English replies. The main challenge was making it feel like a real desktop tool instead of just another AI wrapper, especially with the background tray workflow, global shortcut, auto-convert, context, and different reply styles. I’m most proud of the overall workflow: you can copy a message, press Ctrl+Shift+R, and get a reply without having to constantly keep the app open in front of you. I also spent a lot of time making sure failed requests don’t lose the user’s text and that the API key stays out of the frontend. To test it, install the Windows app from the Demo URL, add your own Groq API key in Settings, then copy a Hindi/Hinglish message and press Ctrl+Shift+R. You can also try the different modes, reply styles, context, quick rewrites, and Copy & Clear.", "repo": "https://github.com/shivamxcode2008/ReplyFlow", "demo": "https://github.com/shivamxcode2008/ReplyFlow/releases"}]...
|
[{"post_id": 48380, "ts": "202 [{"post_id": 48380, "ts": "2026-08-16T18:17:41Z", "hours": 2.5169, "text": "I’m building Replyflow, a lightweight Windows app that turns Hindi and Hinglish messages into natural English replies you’d actually send. The idea is to make everyday conversations less frustrating when you know what you want to say but don’t know how to phares it naturally in English."}]...
|
Title: ReplyFlow by @Shivamxcode | Stardance
Devl Title: ReplyFlow by @Shivamxcode | Stardance
Devlogs:
I’m building Replyflow, a lightweight Windows app that turns Hindi and Hinglish messages into natural English replies you’d actually send. The idea is to make everyday conversations less frustrating when you know what you want to say but don’t know how to phares it naturally in English.
Ships:
I built ReplyFlow, a small Windows utility that helps turn Hindi and Hinglish messages into natural English replies. The main challenge was making it feel like a real desktop tool instead of just another AI wrapper, especially with the background tray workflow, global shortcut, auto-convert, context, and different reply styles. I’m most proud of the overall workflow: you can copy a message, press Ctrl+Shift+R, and get a reply without having to constantly keep the app open in front of you. I also spent a lot of time making sure failed requests don’t lose the user’s text and that the API key stays out of the frontend. To test it, install the Windows app from the Demo URL, add your own Groq API key in Settings, then copy a Hindi/Hinglish message and press Ctrl+Shift+R. You can also try the different modes, reply styles, context, quick rewrites, and Copy & Clear....
|
1793433162.5308294
|
1793519562.5308294
|
|
49653
|
Jumpy BALL! by @mohithkumar | Stardance
|
mohithkumar
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-02T16:24:54Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is pixel styled minigames which have been combined with help of global health system , and have unique Jump and running animation. I have made the sprites and background using pixilart and Canva. The game also have a unique minigame 3 which have been inspired by Mario.", "repo": "https://github.com/mohithkumar-kry/Fresh-Platformer", "demo": "https://mohithkumar-kry.itch.io/pixel-warrior"}]...
|
[{"post_id": 59640, "ts": "202 [{"post_id": 59640, "ts": "2026-09-01T15:40:39Z", "hours": 2.0336, "text": "Just completed my version 1 of pixel warrior. These are the current features for game version 1: -Added animations. -Added extra level(kind of Mario jumping). -Added winning screen. -Made levels little tougher."}, {"post_id": 52743, "ts": "2026-08-23T02:26:31Z", "hours": 6.4294, "text": "This is my first ever game, only death screen and winning screen is pending. The version 1 of game consist of 3 mini games."}]...
|
Title: Jumpy BALL! by @mohithkumar | Stardance
De Title: Jumpy BALL! by @mohithkumar | Stardance
Devlogs:
This is my first ever game, only death screen and winning screen is pending. The version 1 of game consist of 3 mini games.
Just completed my version 1 of pixel warrior. These are the current features for game version 1: -Added animations. -Added extra level(kind of Mario jumping). -Added winning screen. -Made levels little tougher.
Ships:
This is pixel styled minigames which have been combined with help of global health system , and have unique Jump and running animation. I have made the sprites and background using pixilart and Canva. The game also have a unique minigame 3 which have been inspired by Mario....
|
1793523300.1799965
|
1793609700.1799965
|
|
49659
|
My own site! by @anura | Stardance
|
anura
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-17T11:55:50Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I just made my first WEBSITEE and i am very proud of my work, although i used a little of AI for the debugging and concept clearing.. building was somewhat fun but debugging was not. I was planning on debugging my self but I used Ai for it..Hope thats fine..", "repo": "https://github.com/anuragtamang095-coder/first-website", "demo": "https://anuragtamang095-coder.github.io/first-website/"}]...
|
[{"post_id": 48831, "ts": "202 [{"post_id": 48831, "ts": "2026-08-17T11:49:26Z", "hours": 1.2506, "text": "Finally done with the website!!"}, {"post_id": 48228, "ts": "2026-08-16T15:10:49Z", "hours": 1.3278, "text": "LOve the auto fill in VS code!!"}]...
|
Title: My own site! by @anura | Stardance
Devlogs Title: My own site! by @anura | Stardance
Devlogs:
LOve the auto fill in VS code!!
Finally done with the website!!
Ships:
I just made my first WEBSITEE and i am very proud of my work, although i used a little of AI for the debugging and concept clearing.. building was somewhat fun but debugging was not. I was planning on debugging my self but I used Ai for it..Hope thats fine.....
|
1793055366.677638
|
1793919366.677638
|
|
49679
|
The Dropper 3D Game (Cosmic) by @Ali-was-taken | S The Dropper 3D Game (Cosmic) by @Ali-was-taken | Stardance...
|
Ali-was-taken
|
1
|
17.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-31T15:18:41Z", "hours": 17.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a 3D dropper game from scratch using online tutorials and hours of coding, the game is about an astronaut jumping through giant ‘craters’ and uses that low-gravity trait to avoid objects that may come in its way to reach the other side of planets. Controls: Classic WASD for movement. Space bar to drop drown. Mouse to look around. Some of the main issues I did face with development were coding up the main POV camera, so I did copy a script for that 😅. I also needed help designing the interface so I used the good old GPT, but everything beyond that is completely coded yours truly. Honestly I really enjoyed developing this game, and the fact that this platform basically pays you to do that, was a real motivator there. I am looking forwards to make even more projects soon! Thank you for Reading this/Playing my game :)", "repo": "https://github.com/Alishayan41879/Playground-Z", "demo": ""}]...
|
[{"post_id": 58924, "ts": "202 [{"post_id": 58924, "ts": "2026-08-31T14:20:57Z", "hours": 1.5656, "text": "Devlog#8 | Game Published! I fixed all my last bugs, now that I finished I’ve published the game on itch.io. You can try it right here: https://prohunter10m.itch.io/cosmic-zipper-3d"}, {"post_id": 57881, "ts": "2026-08-30T06:28:21Z", "hours": 5.4033, "text": "Devlog#7 | Added Death & Respawn Mechanics & Levels. Finally finished adding hitboxes and repawn-on-death mechanic to the game, and finished renovating all the level. The game is very playable now, and will be published very soon! I am just considering adding a few touches and maybe gamemodes as a cherry on top . (Do give me suggestions)"}, {"post_id": 53938, "ts": "2026-08-24T17:17:33Z", "hours": 1.8925, "text": "Devlog#6 | Added freefall mechanics and movement I know it’s been a while, but I’ve finally found the time to add the main mechanics to the game, I have a feeling it’s going to be playable soon! Here’s what the gameplay should look like:"}, {"post_id": 51072, "ts": "2026-08-20T15:36:05Z", "hours": 2.8742, "text": "Devlog#5 | Level Designs! Yesssssss I finally finished some of the level designs, it look really long cuz I literally had to code every single entity (and yes some of them spin 🌀). I hope you guys like the designs 🥲."}, {"post_id": 50264, "ts": "2026-08-19T12:58:18Z", "hours": 1.9297, "text": "Devlog#3 | Fixed Camera Issue & Added movement I finally fixed the camera issue since last devlog, and managed to code up movement inputs (only took 2 hours TvT👍). Also added a little bit of color, which I hope looks nice."}, {"post_id": 49513, "ts": "2026-08-18T11:58:16Z", "hours": 1.0403, "text": "Devlog#3 | Camera System & Level building. I’ve managed to build the first 2 dropper levels, and so I started working on the camera system… But the camera just won’t rotate in the y-axis whatsoever. Don’t worry tho, I’ve not given up (yet) ima restart this tomorrow T-T"}, {"post_id": 48735, "ts": "2026-08-17T08:22:45Z", "hours": 1.5564, "text": "Devlog#2 | Added Interface and Map. Just finished adding a whole map giving space-vibes, aswell as the interface showing info. I wanted to add a layer to the pov to make it look a little retro (space-cam vibe), but it just didn’t work :P. Anyway lmk, if y’all have any suggestions!"}, {"post_id": 48246, "ts": "2026-08-16T15:29:48Z", "hours": 0.525, "text": "Just Started Working on it, here’s the interface! More updates soon!"}]...
|
Title: The Dropper 3D Game (Cosmic) by @Ali-was-ta Title: The Dropper 3D Game (Cosmic) by @Ali-was-taken | Stardance
Devlogs:
Just Started Working on it, here’s the interface! More updates soon!
Devlog#2 | Added Interface and Map. Just finished adding a whole map giving space-vibes, aswell as the interface showing info. I wanted to add a layer to the pov to make it look a little retro (space-cam vibe), but it just didn’t work :P. Anyway lmk, if y’all have any suggestions!
Devlog#3 | Camera System & Level building. I’ve managed to build the first 2 dropper levels, and so I started working on the camera system… But the camera just won’t rotate in the y-axis whatsoever. Don’t worry tho, I’ve not given up (yet) ima restart this tomorrow T-T
Devlog#3 | Fixed Camera Issue & Added movement I finally fixed the camera issue since last devlog, and managed to code up movement inputs (only took 2 hours TvT👍). Also added a little bit of color, which I hope looks nice.
Devlog#5 | Level Designs! Yesssssss I finally finished some of the level designs, it look really long cuz I literally had to code every single entity (and yes some of them spin 🌀). I hope you guys like the designs 🥲.
Devlog#6 | Added freefall mechanics and movement I know it’s been a while, but I’ve finally found the time to add the main mechanics to the game, I have a feeling it’s going to be playable soon! Here’s what the gameplay should look like:
Devlog#7 | Added Death & Respawn Mechanics & Levels. Finally finished adding hitboxes and repawn-on-death mechanic to the game, and finished renovating all the level. The game is very playable now, and will be published very soon! I am just considering adding a few touches and maybe gamemodes as a cherry on top . (Do give me suggestions)
Devlog#8 | Game Published! I fixed all my last bugs, now that I finished I’ve published the game on itch.io. You can try it right here: https://prohunter10m.itch.io/cosmic-zipper-3d
Ships:
I made a 3D dropper game from scratch using online tutorials and hours of coding, the game is about an astronaut jumping through giant ‘craters’ and uses that low-gravity trait to avoid objects that may come in its way to reach the other side of planets. Controls: Classic WASD for movement. Space bar to drop drown. Mouse to look around. Some of the main issues I did face with development were coding up the main POV camera, so I did copy a script for that 😅. I also needed help designing the interface so I used the good old GPT, but everything beyond that is completely coded yours truly. Honestly I really enjoyed developing this game, and the fact that this platform basically pays you to do that, was a real motivator there. I am looking forwards to make even more projects soon! Thank you for Reading this/Playing my game :)...
|
1793526763.7635062
|
1793613163.7635062
|
|
49690
|
BatOS by @Kabeer-M | Stardance
|
Kabeer-M
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-17T20:26:03Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created a web-os called BatOS, for the batman fans. the challenging part was figuring out the working of js functions and css alignment.", "repo": "https://github.com/thedev-k/WebOS", "demo": "https://bat-os-gules.vercel.app/"}]...
|
[{"post_id": 49165, "ts": "202 [{"post_id": 49165, "ts": "2026-08-17T20:06:09Z", "hours": 0.2933, "text": "Finallyyyyy did it. Created an app that open another tab/ window in the same window using iframes."}, {"post_id": 49144, "ts": "2026-08-17T19:36:12Z", "hours": 2.8414, "text": "Hi.. Today I made some changes to the CSS and worked on the Js. Also made an app. The first APP!!!!"}, {"post_id": 48398, "ts": "2026-08-16T18:40:12Z", "hours": 1.8631, "text": "Introducing…🥁🥁 BAT OS. For now just the usual stuff, basic architecture. Will post an update soon"}]...
|
Title: BatOS by @Kabeer-M | Stardance
Devlogs:
In Title: BatOS by @Kabeer-M | Stardance
Devlogs:
Introducing…🥁🥁 BAT OS. For now just the usual stuff, basic architecture. Will post an update soon
Hi.. Today I made some changes to the CSS and worked on the Js. Also made an app. The first APP!!!!
Finallyyyyy did it. Created an app that open another tab/ window in the same window using iframes.
Ships:
I created a web-os called BatOS, for the batman fans. the challenging part was figuring out the working of js functions and css alignment....
|
1793440067.486092
|
1793526467.486092
|
|
49716
|
My own site! by @itzanhzz | Stardance
|
itzanhzz
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-17T14:21:29Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is the first time ive gotten back from coding something BY HAND. This makes me remembers the first time Ive just learned coding. (Html and css is the first language I learned and I forgot almost everything 😭).", "repo": "https://github.com/anhpham-dev/portfolio", "demo": "https://portfolio-ebon-one-xi4icicu13.vercel.app/"}]...
|
[{"post_id": 48870, "ts": "202 [{"post_id": 48870, "ts": "2026-08-17T13:10:19Z", "hours": 0.9961, "text": "I’ve learned some new CSS stuff that I didn’t know earlier!!"}]...
|
Title: My own site! by @itzanhzz | Stardance
Devl Title: My own site! by @itzanhzz | Stardance
Devlogs:
I’ve learned some new CSS stuff that I didn’t know earlier!!
Ships:
This is the first time ive gotten back from coding something BY HAND. This makes me remembers the first time Ive just learned coding. (Html and css is the first language I learned and I forgot almost everything 😭)....
|
1793450868.0501678
|
1793537268.0501678
|
|
49721
|
FocusFlow by @totallynot_philo | Stardance
|
totallynot_philo
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T19:36:17Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "FocusFlow is a simple productivity app I built to help with focusing, managing tasks, and tracking progress through timers, statistics, and streaks. I faced challenges with Flutter errors, timer logic, saving data, and getting everything working together. Setting up GitHub and the live web demo was also a learning experience. In the end, I learned a lot by turning a simple idea into a real working app.", "repo": "https://github.com/LIPOUYTR/FocusFlow", "demo": "https://lipouytr.github.io/FocusFlow/"}]...
|
[{"post_id": 49822, "ts": "202 [{"post_id": 49822, "ts": "2026-08-18T19:25:53Z", "hours": 0.5292, "text": "Devlog - 9 I think FocusFlow is finally at a good place to call it finished. I started with a simple idea: make a small app that helps with focusing and managing tasks. Along the way, I added timers, task tracking, statistics, streaks, and eventually gave the whole app a more positive green and yellow look. The biggest part for me was taking it from just an idea and actually turning it into a working app that people can try."}, {"post_id": 49586, "ts": "2026-08-18T13:59:39Z", "hours": 0.2989, "text": "Added a small motivation quote along with a new animating effect of a clock mimicking the breathing motion"}, {"post_id": 49566, "ts": "2026-08-18T13:22:40Z", "hours": 0.2794, "text": "Devlog-7 . adding a days overview to the homepage was the new addition in this programme."}, {"post_id": 49552, "ts": "2026-08-18T13:02:50Z", "hours": 0.2508, "text": "Devolg - 6 so after a few changes this is the new home screen"}, {"post_id": 49509, "ts": "2026-08-18T11:53:36Z", "hours": 0.2667, "text": "Devlog- 5 I did change the stats a little bit so that it can hold a week’s activities with a completion rate for a better overview. If the screen is scrolled up, we can also view the streak log."}, {"post_id": 49502, "ts": "2026-08-18T11:27:40Z", "hours": 0.2564, "text": "Devlog -4 Its true I wanted to make it more green and yellow but I think I might have gone a little overboard with this one. I did change the back ground and update the focuse timer so that it can have mutlipe mode. And I still cant figure out how to attach more than one screenshot there are more options if you scroll down but I can’t display it since I am only able to upload a single screenshot."}, {"post_id": 49488, "ts": "2026-08-18T11:03:53Z", "hours": 0.3908, "text": "Devlog 3 I wanted FocusFlow to show more than just tasks and timers.So I added the Stats section to see focus time, completed tasks, sessions, and streaks in one place.It’s a simple way to look back and see if I’m actually making progress. Sometimes seeing the numbers is enough motivation to keep going. (I actually think the blue and purple are kinda generic, so next i am gonna change that)"}, {"post_id": 49231, "ts": "2026-08-17T21:53:06Z", "hours": 0.2708, "text": "Devlog 2 Today I went back and reworked some of the code to make FocusFlow actually more useful, not just look good.I’m trying to make the focus planning feel simple and practical — something I’d genuinely use instead of another complicated task app. There’s still a lot to improve, but it’s starting to feel more like the idea I had in my head. (can anyone tell me how to add more than one screen short to this thing)"}, {"post_id": 49202, "ts": "2026-08-17T21:08:58Z", "hours": 0.4211, "text": "FocusFlow — Devlod 1 I’m starting a small project called FocusFlow for the Frictionless challenge.The idea is simple: sometimes I have a lot of things to do, but I waste more time deciding what to do first. FocusFlow is my attempt to make that little problem easier.It’s still very early, but I’m excited to see where it goes."}]...
|
Title: FocusFlow by @totallynot_philo | Stardance
Title: FocusFlow by @totallynot_philo | Stardance
Devlogs:
FocusFlow — Devlod 1 I’m starting a small project called FocusFlow for the Frictionless challenge.The idea is simple: sometimes I have a lot of things to do, but I waste more time deciding what to do first. FocusFlow is my attempt to make that little problem easier.It’s still very early, but I’m excited to see where it goes.
Devlog 2 Today I went back and reworked some of the code to make FocusFlow actually more useful, not just look good.I’m trying to make the focus planning feel simple and practical — something I’d genuinely use instead of another complicated task app. There’s still a lot to improve, but it’s starting to feel more like the idea I had in my head. (can anyone tell me how to add more than one screen short to this thing)
Devlog 3 I wanted FocusFlow to show more than just tasks and timers.So I added the Stats section to see focus time, completed tasks, sessions, and streaks in one place.It’s a simple way to look back and see if I’m actually making progress. Sometimes seeing the numbers is enough motivation to keep going. (I actually think the blue and purple are kinda generic, so next i am gonna change that)
Devlog -4 Its true I wanted to make it more green and yellow but I think I might have gone a little overboard with this one. I did change the back ground and update the focuse timer so that it can have mutlipe mode. And I still cant figure out how to attach more than one screenshot there are more options if you scroll down but I can’t display it since I am only able to upload a single screenshot.
Devlog- 5 I did change the stats a little bit so that it can hold a week’s activities with a completion rate for a better overview. If the screen is scrolled up, we can also view the streak log.
Devolg - 6 so after a few changes this is the new home screen
Devlog-7 . adding a days overview to the homepage was the new addition in this programme.
Added a small motivation quote along with a new animating effect of a clock mimicking the breathing motion
Devlog - 9 I think FocusFlow is finally at a good place to call it finished. I started with a simple idea: make a small app that helps with focusing and managing tasks. Along the way, I added timers, task tracking, statistics, streaks, and eventually gave the whole app a more positive green and yellow look. The biggest part for me was taking it from just an idea and actually turning it into a working app that people can try.
Ships:
FocusFlow is a simple productivity app I built to help with focusing, managing tasks, and tracking progress through timers, statistics, and streaks. I faced challenges with Flutter errors, timer logic, saving data, and getting everything working together. Setting up GitHub and the live web demo was also a learning experience. In the end, I learned a lot by turning a simple idea into a real working app....
|
1793450897.556522
|
1793537297.556522
|
|
49735
|
THE travel planer for mangalore by @Ajith | Starda THE travel planer for mangalore by @Ajith | Stardance...
|
Ajith
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-26T08:59:03Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "hellow my project kudla travel planner is a travel guide to the visitors who come to my city . the interesting features about this is you can share your plan with your other group members it is very fun try this website and building it from scratch is different level of happiness the happeist movement while building this was when the map started givning proper directions and shortcut root through the road . I HOPE YOU GUYS ENJOY TRYING AND TESTING MY WEBSITE", "repo": "https://github.com/ajith-h-acharya/kudla-travel-planner", "demo": "https://kudla-travel-planneers.netlify.app"}]...
|
[{"post_id": 48291, "ts": "202 [{"post_id": 48291, "ts": "2026-08-16T16:30:13Z", "hours": 7.5389, "text": "A travel planer that allows user to download a view the map of the city which they are in and navigate to place with low internet of null and ai assitant just order where you want to go it suggest you the best way to go and book a drive and if you are confused it will provide a location based on you mode and many more feature check it out (●’◡’●) https://kudla-travel-planneers.netlify.app/"}]...
|
Title: THE travel planer for mangalore by @Ajith | Title: THE travel planer for mangalore by @Ajith | Stardance
Devlogs:
A travel planer that allows user to download a view the map of the city which they are in and navigate to place with low internet of null and ai assitant just order where you want to go it suggest you the best way to go and book a drive and if you are confused it will provide a location based on you mode and many more feature check it out (●’◡’●) https://kudla-travel-planneers.netlify.app/
Ships:
hellow my project kudla travel planner is a travel guide to the visitors who come to my city . the interesting features about this is you can share your plan with your other group members it is very fun try this website and building it from scratch is different level of happiness the happeist movement while building this was when the map started givning proper directions and shortcut root through the road . I HOPE YOU GUYS ENJOY TRYING AND TESTING MY WEBSITE...
|
1793505111.5174077
|
1793591511.5174077
|
|
49746
|
Game in 5 hours by @COYG_KNGPLCJMS | Stardance
|
COYG_KNGPLCJMS
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T01:14:33Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built, exported, uploaded, and wrote a readme in just 5 hours for some reason. It is a terrible basic geometry dash clone.", "repo": "https://github.com/KNGPLCJMS/5hourGame1", "demo": "https://kngplcjms.itch.io/gdgi5h1"}]...
|
[{"post_id": 49245, "ts": "202 [{"post_id": 49245, "ts": "2026-08-17T22:39:43Z", "hours": 3.5508, "text": "I decided to try and make a full game in 4-5 hours. I decided on geometry dash, because of the simple artwork. This game has a lot of flaws given the time but there is basic gameplay. IDK why it says 3hr 33m because it should be around 4-5. I guess Hackatime did give me an extra 6 hours on a different project."}]...
|
Title: Game in 5 hours by @COYG_KNGPLCJMS | Starda Title: Game in 5 hours by @COYG_KNGPLCJMS | Stardance
Devlogs:
I decided to try and make a full game in 4-5 hours. I decided on geometry dash, because of the simple artwork. This game has a lot of flaws given the time but there is basic gameplay. IDK why it says 3hr 33m because it should be around 4-5. I guess Hackatime did give me an extra 6 hours on a different project.
Ships:
I built, exported, uploaded, and wrote a readme in just 5 hours for some reason. It is a terrible basic geometry dash clone....
|
1792875216.7066793
|
1793739216.7066793
|
|
49750
|
Orbit simulator by @SHREYANS | Stardance
|
SHREYANS
|
1
|
34.44
|
225
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-27T10:14:45Z", "hours": 34.0, "multiplier": 6.69, "payout": 225, "blessing": "neutral", "text": "I FINALLY built an interactive Rocket Launch Simulator that models thrust, fuel, gravity, drag, atmosphere, and orbital velocity. The hardest part was combining realistic physics with a smooth animated trajectory(In 2D ofc… 3D would be quite difficult). I love that this project uses complex rocket equations into something visual and interactive and also gives a quick revision of PROJECTILE MOTION. Be sure to leave a review on as to how was the experience and how I can improve it and If you really understood from the “How it Works” section", "repo": "https://github.com/Shreyans800/Stardance", "demo": "https://shreyans800.github.io/Stardance/"}]...
|
[{"post_id": 55635, "ts": "202 [{"post_id": 55635, "ts": "2026-08-27T16:25:20Z", "hours": 0.44, "text": "They said that I cant use Streamlit. So now I have to shift my entire front and back end to HTML CSS AND JAVA. GREAT! (Never used java)"}, {"post_id": 55459, "ts": "2026-08-27T10:09:09Z", "hours": 5.7236, "text": "FINALLY !!! DEPLOYED!!!"}, {"post_id": 55348, "ts": "2026-08-27T04:07:29Z", "hours": 6.2467, "text": "okay, 1 last time before deploying… Worked hard and got the result but I could only run the animation in 2D using plotly and Base64 and IO. I am working on another one which uses a 3D model which is also a sequel to this (yes now an orbit simulator … the rocket has released the orbiter) which I will directly deploy on STREAMLIT! (link- https://orbitsimulator.streamlit.app )"}, {"post_id": 55074, "ts": "2026-08-26T14:41:43Z", "hours": 6.2619, "text": "Got the first simulation UP AND RUNNING… (literally too) You can think of it as projectile motion to be honest but all the parameters are customizable (eg- fuel mass, nozzle area, drag, burn time etc.)"}, {"post_id": 54433, "ts": "2026-08-25T13:22:25Z", "hours": 8.7331, "text": "Finally the Major updates and Simulations are done !!!! Now small aesthetic changes left!!"}, {"post_id": 52804, "ts": "2026-08-23T04:42:11Z", "hours": 6.3311, "text": "So now I have figured out the basic layout of the page and the mechanics of simulation… Quite some coding"}, {"post_id": 48337, "ts": "2026-08-16T17:26:46Z", "hours": 0.3792, "text": "Devlog #1 — Getting Started with the Rocket Launch Simulator 🚀 Today I started building my Rocket Launch Simulator. I set up the project and began developing the core simulation in Python. I also set up the project structure and Git repository so I can keep track of the development as I build. The first version focuses on the basic physics needed for a rocket launch, including thrust, fuel consumption, gravity, atmospheric drag, acceleration, velocity, and altitude. Next, I plan to improve the flight model and add more visualizations so the launch can be explored interactively. Progress: Project setup + initial rocket physics implementation."}]...
|
Title: Orbit simulator by @SHREYANS | Stardance
D Title: Orbit simulator by @SHREYANS | Stardance
Devlogs:
Devlog #1 — Getting Started with the Rocket Launch Simulator 🚀 Today I started building my Rocket Launch Simulator. I set up the project and began developing the core simulation in Python. I also set up the project structure and Git repository so I can keep track of the development as I build. The first version focuses on the basic physics needed for a rocket launch, including thrust, fuel consumption, gravity, atmospheric drag, acceleration, velocity, and altitude. Next, I plan to improve the flight model and add more visualizations so the launch can be explored interactively. Progress: Project setup + initial rocket physics implementation.
So now I have figured out the basic layout of the page and the mechanics of simulation… Quite some coding
Finally the Major updates and Simulations are done !!!! Now small aesthetic changes left!!
Got the first simulation UP AND RUNNING… (literally too) You can think of it as projectile motion to be honest but all the parameters are customizable (eg- fuel mass, nozzle area, drag, burn time etc.)
okay, 1 last time before deploying… Worked hard and got the result but I could only run the animation in 2D using plotly and Base64 and IO. I am working on another one which uses a 3D model which is also a sequel to this (yes now an orbit simulator … the rocket has released the orbiter) which I will directly deploy on STREAMLIT! (link- https://orbitsimulator.streamlit.app )
FINALLY !!! DEPLOYED!!!
They said that I cant use Streamlit. So now I have to shift my entire front and back end to HTML CSS AND JAVA. GREAT! (Never used java)
Ships:
I FINALLY built an interactive Rocket Launch Simulator that models thrust, fuel, gravity, drag, atmosphere, and orbital velocity. The hardest part was combining realistic physics with a smooth animated trajectory(In 2D ofc… 3D would be quite difficult). I love that this project uses complex rocket equations into something visual and interactive and also gives a quick revision of PROJECTILE MOTION. Be sure to leave a review on as to how was the experience and how I can improve it and If you really understood from the “How it Works” section...
|
1792878531.8610516
|
1793742531.8610516
|
|
49769
|
My very own WebOS by @Blazinkiller_0981 | Stardanc My very own WebOS by @Blazinkiller_0981 | Stardance...
|
Blazinkiller_0981
|
1
|
7.91
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-22T11:20:49Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I finally completed this Web-OS. It was pretty fun and irritating but thats a part of development (i guess). I love the game its pretty fun and repetitive so it basically sucks for others but the one who makes it knows the effort that goes into it. I hated fixing bugs especially css bugs bcus CSS is so confusing when u just keep layering stuff but in the end its done so im happy", "repo": "https://github.com/Blazinkiller0981/Blazin-OS/", "demo": "https://blazinos.netlify.app/"}]...
|
[{"post_id": 54486, "ts": "202 [{"post_id": 54486, "ts": "2026-08-25T14:37:48Z", "hours": 1.8494, "text": "Devlog: I was pretty fed up of that average glassy frosted glass black css so i decided to reconfigure that code in my own style and tried to turn it into a windows 95 tribute. Apart from that i cant seem to configure a background on it if anyone can help please reach out on https://instagram.com/blazinkiller_007"}, {"post_id": 52811, "ts": "2026-08-23T05:01:17Z", "hours": 2.1431, "text": "Devlog 4 Completely rewrote the code and the readme. Now there’s a separate index CSS and JS file. The new version has a midnight blue theme and the taskbar has been moved to the top of the screen. In the game a boss has been added which gives you 10 Z skill uses which is the wipe all skill and to make it not too op i made it so that the field clear ability doesn’t give exp per orb killed so its more of an escape"}, {"post_id": 52421, "ts": "2026-08-22T15:27:03Z", "hours": 0.9208, "text": "Devlog 3 I just finished a NON AI readme. I guess thats just it so yea. Do check out my socials they are in the bottom of the readme."}, {"post_id": 51695, "ts": "2026-08-21T14:55:02Z", "hours": 1.0867, "text": "DEVLOG 2 I am very lazy so here we are. I completely ditched the top taskbar cus the bottom one looks cleaner i removed the spiderman bg cus the black one loos cleaner. Apart from UI changes i removed my socials cus I think theres no point. I added a fully capable file managment system so thats pretty cool. added a sick shooting game which is 2d cus i was…. lazy and finally a notepad that auto saves notes and a calculator. I also added a music system but it kinda uses royalty free music imma figure out a way to add like all music known to makind on it"}, {"post_id": 48956, "ts": "2026-08-17T15:14:18Z", "hours": 1.9144, "text": "Blazin-OS Devlog #1 Yo, im new to this platform and i chose the webOS as my starting project. biggest mistake i suppose. Just kidding but like its been 2 hour of coding. Correction 1 hour of coding and 1 hour of fixing the dragging glitches.Am planning to add more apps like spotify using an api or just normal games and maybe AI intergration with nvidia nim nemotron 3 ultra. + ive added my socials and my github :)"}]...
|
Title: My very own WebOS by @Blazinkiller_0981 | S Title: My very own WebOS by @Blazinkiller_0981 | Stardance
Devlogs:
Blazin-OS Devlog #1 Yo, im new to this platform and i chose the webOS as my starting project. biggest mistake i suppose. Just kidding but like its been 2 hour of coding. Correction 1 hour of coding and 1 hour of fixing the dragging glitches.Am planning to add more apps like spotify using an api or just normal games and maybe AI intergration with nvidia nim nemotron 3 ultra. + ive added my socials and my github :)
DEVLOG 2 I am very lazy so here we are. I completely ditched the top taskbar cus the bottom one looks cleaner i removed the spiderman bg cus the black one loos cleaner. Apart from UI changes i removed my socials cus I think theres no point. I added a fully capable file managment system so thats pretty cool. added a sick shooting game which is 2d cus i was…. lazy and finally a notepad that auto saves notes and a calculator. I also added a music system but it kinda uses royalty free music imma figure out a way to add like all music known to makind on it
Devlog 3 I just finished a NON AI readme. I guess thats just it so yea. Do check out my socials they are in the bottom of the readme.
Devlog 4 Completely rewrote the code and the readme. Now there’s a separate index CSS and JS file. The new version has a midnight blue theme and the taskbar has been moved to the top of the screen. In the game a boss has been added which gives you 10 Z skill uses which is the wipe all skill and to make it not too op i made it so that the field clear ability doesn’t give exp per orb killed so its more of an escape
Devlog: I was pretty fed up of that average glassy frosted glass black css so i decided to reconfigure that code in my own style and tried to turn it into a windows 95 tribute. Apart from that i cant seem to configure a background on it if anyone can help please reach out on https://instagram.com/blazinkiller_007
Ships:
I finally completed this Web-OS. It was pretty fun and irritating but thats a part of development (i guess). I love the game its pretty fun and repetitive so it basically sucks for others but the one who makes it knows the effort that goes into it. I hated fixing bugs especially css bugs bcus CSS is so confusing when u just keep layering stuff but in the end its done so im happy...
|
1793458285.9032376
|
1793544685.9032376
|
|
49778
|
save more, spend less by @francisca | Stardance
|
francisca
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T15:47:12Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So I’m new at programming so maybe this isn’t the best project you ever saw. the thing that was more challeging for me was trying to make this into a website, that didn’t actually work the way i wanna so i started again. idk why, but if you want to try the project you need to copypast the code and try in your vscode, ‘cause it doesn’t work if you try, i’m so sorry", "repo": "https://github.com/omeukit/Spend-less-save-more", "demo": "https://vercel.com/kika7/spend-less-save-more"}]...
|
[{"post_id": 49669, "ts": "202 [{"post_id": 49669, "ts": "2026-08-18T15:36:09Z", "hours": 0.4889, "text": "i finish the project, just to remind this is for teens, and the main goal is for teens saving money in a really funny way"}, {"post_id": 49629, "ts": "2026-08-18T14:54:18Z", "hours": 1.3567, "text": "I wanted to make my project into a webbsite, but I only know how to code in python, html and css. because i was having so much trouble, i asked for help to gemini, but i came across a problem, I don’t wanna use AI in anything on this project, so I’m gonna stick to the python part. I also draw a logo all by myself, and the start menu. I never finished a project were, so I don’t know if I can share the project that gemini helped me, ’cause is so sick."}, {"post_id": 48423, "ts": "2026-08-16T19:21:14Z", "hours": 2.0636, "text": "I already made the python part, now I will start the html, and the css part"}, {"post_id": 48302, "ts": "2026-08-16T16:39:18Z", "hours": 1.7919, "text": "I’m doing the basic for the app to work"}]...
|
Title: save more, spend less by @francisca | Stard Title: save more, spend less by @francisca | Stardance
Devlogs:
I’m doing the basic for the app to work
I already made the python part, now I will start the html, and the css part
I wanted to make my project into a webbsite, but I only know how to code in python, html and css. because i was having so much trouble, i asked for help to gemini, but i came across a problem, I don’t wanna use AI in anything on this project, so I’m gonna stick to the python part. I also draw a logo all by myself, and the start menu. I never finished a project were, so I don’t know if I can share the project that gemini helped me, ’cause is so sick.
i finish the project, just to remind this is for teens, and the main goal is for teens saving money in a really funny way
Ships:
So I’m new at programming so maybe this isn’t the best project you ever saw. the thing that was more challeging for me was trying to make this into a website, that didn’t actually work the way i wanna so i started again. idk why, but if you want to try the project you need to copypast the code and try in your vscode, ‘cause it doesn’t work if you try, i’m so sorry...
|
1793458317.3051488
|
1793544717.3051488
|
|
49780
|
potatonator by @Potatoeater0075 | Stardance
|
Potatoeater0075
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-23T22:56:26Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Potatonator is a Slack bot where users can adopt and manage their own virtual potato. Each potato has its own stats, level, experience points and coins. Users can explore to earn XP and coins, view their potato’s profile and discover random potato facts. The project uses a Node.js Slack bot alongside a Cloudflare Workers API and Cloudflare D1 database for storing player and potato data. It includes an XP and leveling system that allows potatoes to progress as they gain experience. The bot is hosted on Hack Club Nest and configured as a systemd service so it can run continously without relying on the user’s computer being online.", "repo": "https://github.com/potatoeater0075/potatonator", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354"}]...
|
[{"post_id": 48476, "ts": "202 [{"post_id": 48476, "ts": "2026-08-16T20:50:26Z", "hours": 0.3833, "text": "I added the /potatonator-explore command, which is the first real gameplay feature for Potatonator. The idea is that users can send their potato on a random adventure. Each adventure gives the potato XP and coins. I created a new /explore endpoint in the Cloudflare Worker and added several random events, such as finding treasure, discovering golden potatoes, finding coins, or fighting a carrot. At first, the API only returned the XP and coins without saving them. I then added a coins column to the D1 database and updated the endpoint so the rewards are permanently saved. There were a few small issues along the way, including accidentally trying to add the coins column twice, which resulted in a duplicate-column error. Since the first command had already worked, the second one wasn’t needed. After testing the API locally, I connected /explore to Slack and deployed the updated Cloudflare Worker. I also updated /potatonator-profile so it displays the coins earned from exploring."}, {"post_id": 48461, "ts": "2026-08-16T20:18:50Z", "hours": 0.3167, "text": "I added the /potatonator-profile command. The goal was to let users view the potato they adopted and all of its stats. First, I created a new /profile endpoint in the Cloudflare Worker. It takes the user’s Slack ID and searches the D1 database for their potato. I also connected the endpoint to index.ts so Cloudflare knows about the new route. There was a small issue where the /profile endpoint wasn’t appearing in the API documentation. Turns out VS Code hadn’t properly saved the changes, so after saving a few more times, it worked. I then tested the endpoint using PowerShell and confirmed that it could retrieve the saved potato. Finally, I connected the API to the Slack bot using Axios. The bot sends the user’s Slack ID to the API, which retrieves their potato from D1 and sends the information back to Slack. The command now displays: 🥔 Potato name Type Rarity ⚔️ Power 🥔 Crunch 🍀 Luck ⭐ Level ✨ XP After testing it in Slack, /potatonator-profile worked successfully. Potatonator now has both potato adoption and profiles, giving us the foundation for adding actual gameplay features next. 🥔"}, {"post_id": 48416, "ts": "2026-08-16T19:08:28Z", "hours": 1.0017, "text": "I started this project with the goal of making a Slack bot that could respond to custom slash commands. I wasn’t sure what the bot should actually do, so I decided to make it potato-themed and named it Potatonator. I started with basic commands like: /potatonator-ping /potatonator-help /potatonator-potatofact For the potato facts, I first learned about APIs and Axios, which lets the bot make requests to an API. I originally considered using an existing API, but decided to make my own potato API instead. I first ran the API locally, but realized that meant it wouldn’t work when my PC was turned off. I decided to move it to Cloudflare Workers, which gave me a permanent URL: https://potatonator-api.potatonator.workers.dev I then connected my Slack bot to this API. After that, I wanted Potatonator to become more like a game, so I created /potatonator-adopt. Users could permanently adopt a randomly generated potato with stats such as: Name Type Rarity Power Crunch Luck Level XP To save this information, I added a Cloudflare D1 database. There were a few mistakes along the way. I initially ran a command from the wrong folder, and later discovered that my local D1 database didn’t have the table even though the remote database did. I also had an issue where Axios treated the “already have a potato” response as an error. After fixing these, everything worked. Now /potatonator-adopt successfully creates a potato and remembers it even after the bot restarts. Next, I’m planning to add /potatonator-profile, which will let users view their potato and its stats."}, {"post_id": 48330, "ts": "2026-08-16T17:18:45Z", "hours": 0.3017, "text": "Created the bot on slack and then I added the code to vs code. I tested the first ping command which resulted in a success!"}]...
|
Title: potatonator by @Potatoeater0075 | Stardance Title: potatonator by @Potatoeater0075 | Stardance
Devlogs:
Created the bot on slack and then I added the code to vs code. I tested the first ping command which resulted in a success!
I started this project with the goal of making a Slack bot that could respond to custom slash commands. I wasn’t sure what the bot should actually do, so I decided to make it potato-themed and named it Potatonator. I started with basic commands like: /potatonator-ping /potatonator-help /potatonator-potatofact For the potato facts, I first learned about APIs and Axios, which lets the bot make requests to an API. I originally considered using an existing API, but decided to make my own potato API instead. I first ran the API locally, but realized that meant it wouldn’t work when my PC was turned off. I decided to move it to Cloudflare Workers, which gave me a permanent URL: https://potatonator-api.potatonator.workers.dev I then connected my Slack bot to this API. After that, I wanted Potatonator to become more like a game, so I created /potatonator-adopt. Users could permanently adopt a randomly generated potato with stats such as: Name Type Rarity Power Crunch Luck Level XP To save this information, I added a Cloudflare D1 database. There were a few mistakes along the way. I initially ran a command from the wrong folder, and later discovered that my local D1 database didn’t have the table even though the remote database did. I also had an issue where Axios treated the “already have a potato” response as an error. After fixing these, everything worked. Now /potatonator-adopt successfully creates a potato and remembers it even after the bot restarts. Next, I’m planning to add /potatonator-profile, which will let users view their potato and its stats.
I added the /potatonator-profile command. The goal was to let users view the potato they adopted and all of its stats. First, I created a new /profile endpoint in the Cloudflare Worker. It takes the user’s Slack ID and searches the D1 database for their potato. I also connected the endpoint to index.ts so Cloudflare knows about the new route. There was a small issue where the /profile endpoint wasn’t appearing in the API documentation. Turns out VS Code hadn’t properly saved the changes, so after saving a few more times, it worked. I then tested the endpoint using PowerShell and confirmed that it could retrieve the saved potato. Finally, I connected the API to the Slack bot using Axios. The bot sends the user’s Slack ID to the API, which retrieves their potato from D1 and sends the information back to Slack. The command now displays: 🥔 Potato name Type Rarity ⚔️ Power 🥔 Crunch 🍀 Luck ⭐ Level ✨ XP After testing it in Slack, /potatonator-profile worked successfully. Potatonator now has both potato adoption and profiles, giving us the foundation for adding actual gameplay features next. 🥔
I added the /potatonator-explore command, which is the first real gameplay feature for Potatonator. The idea is that users can send their potato on a random adventure. Each adventure gives the potato XP and coins. I created a new /explore endpoint in the Cloudflare Worker and added several random events, such as finding treasure, discovering golden potatoes, finding coins, or fighting a carrot. At first, the API only returned the XP and coins without saving them. I then added a coins column to the D1 database and updated the endpoint so the rewards are permanently saved. There were a few small issues along the way, including accidentally trying to add the coins column twice, which resulted in a duplicate-column error. Since the first command had already worked, the second one wasn’t needed. After testing the API locally, I connected /explore to Slack and deployed the updated Cloudflare Worker. I also updated /potatonator-profile so it displays the coins earned from exploring.
Ships:
Potatonator is a Slack bot where users can adopt and manage their own virtual potato. Each potato has its own stats, level, experience points and coins. Users can explore to earn XP and coins, view their potato’s profile and discover random potato facts. The project uses a Node.js Slack bot alongside a Cloudflare Workers API and Cloudflare D1 database for storing player and potato data. It includes an XP and leveling system that allows potatoes to progress as they gain experience. The bot is hosted on Hack Club Nest and configured as a systemd service so it can run continously without relying on the user’s computer being online....
|
1793458323.8353956
|
1793544723.8353956
|
|
49786
|
pomios by @Wiwi | Stardance
|
Wiwi
|
1
|
3.33
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-17T18:40:16Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a browser-based webOS named pomios with glassmorphism widgets, draggable windows, and an embedded music player. The main challenge was fixing DOM IDs and GitHub Pages deployment, but I’m super proud of how sleek the desktop UI looks.", "repo": "https://github.com/wardazahoor4-boop/pomios", "demo": "https://wardazahoor4-boop.github.io/pomios/"}]...
|
[{"post_id": 51613, "ts": "202 [{"post_id": 51613, "ts": "2026-08-21T12:06:49Z", "hours": 0.335, "text": "Decided to work on this project again! Today I fixed the search widget class typo so the grid layout applies correctly and added the HTML shell for Aura (bubble button + panel) next to the existing dock; wiring up the logic is next.”"}, {"post_id": 49055, "ts": "2026-08-17T17:21:47Z", "hours": 1.1867, "text": "I’m finally done with this"}, {"post_id": 48818, "ts": "2026-08-17T11:08:49Z", "hours": 0.81, "text": "Applied full CSS glassmorphism styling, structured the grid layout, and added custom background image including the Sade music player cover art. Next, I will populate app.js to get the live clock, music controls, and draggable windows functional."}, {"post_id": 48268, "ts": "2026-08-16T15:56:38Z", "hours": 0.6769, "text": "Set up the initial project files and built the core HTML structure for my custom WebOS. Created the top status bar, a 3x2 widget grid layout and the bottom dock container to house app icons. Next i will add CSS glassmorphism styles."}]...
|
Title: pomios by @Wiwi | Stardance
Devlogs:
Set u Title: pomios by @Wiwi | Stardance
Devlogs:
Set up the initial project files and built the core HTML structure for my custom WebOS. Created the top status bar, a 3x2 widget grid layout and the bottom dock container to house app icons. Next i will add CSS glassmorphism styles.
Applied full CSS glassmorphism styling, structured the grid layout, and added custom background image including the Sade music player cover art. Next, I will populate app.js to get the live clock, music controls, and draggable windows functional.
I’m finally done with this
Decided to work on this project again! Today I fixed the search widget class typo so the grid layout applies correctly and added the HTML shell for Aura (bubble button + panel) next to the existing dock; wiring up the logic is next.”
Ships:
I built a browser-based webOS named pomios with glassmorphism widgets, draggable windows, and an embedded music player. The main challenge was fixing DOM IDs and GitHub Pages deployment, but I’m super proud of how sleek the desktop UI looks....
|
1793458339.3883915
|
1793544739.3883915
|
|
49790
|
Clean Tab by @vaiskiainen | Stardance
|
vaiskiainen
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-17T19:39:57Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "CleanTab A minimal, customizable new tab page. 👽 Features Background image Clock Weather Search Quick Links Settings panel Actual Backend", "repo": "https://github.com/Vaiskiainen/cleanTab", "demo": "https://cleantab.vaiskiainen.fi/"}]...
|
[{"post_id": 49146, "ts": "202 [{"post_id": 49146, "ts": "2026-08-17T19:36:47Z", "hours": 1.3561, "text": "Bugs fixed, proper backend created and weather widget!"}, {"post_id": 48952, "ts": "2026-08-17T15:06:01Z", "hours": 1.7858, "text": "Settings added!"}, {"post_id": 48388, "ts": "2026-08-16T18:28:39Z", "hours": 0.3889, "text": "Quick links / bookmarks working!"}, {"post_id": 48369, "ts": "2026-08-16T18:03:51Z", "hours": 1.8561, "text": "Base site working!"}]...
|
Title: Clean Tab by @vaiskiainen | Stardance
Devl Title: Clean Tab by @vaiskiainen | Stardance
Devlogs:
Base site working!
Quick links / bookmarks working!
Settings added!
Bugs fixed, proper backend created and weather widget!
Ships:
CleanTab A minimal, customizable new tab page. 👽 Features Background image Clock Weather Search Quick Links Settings panel Actual Backend...
|
1792875227.8247354
|
1793739227.8247354
|
|
49801
|
StudyBuddy by @abdulqadir | Stardance
|
abdulqadir
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T20:03:00Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Built StudyBuddy, a Slack bot with 4 commands. Hardest part was getting it deployed 24/7 on Hack Club Nest — kept hitting network issues with git pushes and had to work around a blocked SSH port by tunneling over 443, plus formatting bugs when creating config files through the terminal. Proud that it’s actually live on the server now, not just running on my laptop", "repo": "https://github.com/Qadir-eng/studybuddy-bot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0BQ3P8JTSB"}]...
|
[{"post_id": 57574, "ts": "202 [{"post_id": 57574, "ts": "2026-08-29T19:17:47Z", "hours": 0.345, "text": "Added few commands, probably planning to add more commands. Currently waiting on my pending application for the nest, which will allow it to run 24/7."}]...
|
Title: StudyBuddy by @abdulqadir | Stardance
Devl Title: StudyBuddy by @abdulqadir | Stardance
Devlogs:
Added few commands, probably planning to add more commands. Currently waiting on my pending application for the nest, which will allow it to run 24/7.
Ships:
Built StudyBuddy, a Slack bot with 4 commands. Hardest part was getting it deployed 24/7 on Hack Club Nest — kept hitting network issues with git pushes and had to work around a blocked SSH port by tunneling over 443, plus formatting bugs when creating config files through the terminal. Proud that it’s actually live on the server now, not just running on my laptop...
|
1793342923.5325987
|
1793429323.5325987
|
|
49809
|
Pulse by @nithilan_murugesan64949 | Stardance
|
nithilan_murugesan64949
|
1
|
28.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-29T00:56:18Z", "hours": 28.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is an app for deaf and hearing impaired people. I was inspired to build this after seeing relatives suffering form problems. Honestly, there were a lot of challenges in coding it to get accuracy, and even more problems with getting it published on the App store with very long wait times. I am proud of how it turned out and the fact that the app is out on the app store! This may heat up your phone but the idea is to give people that are deaf a sense of safety and warnings so the tradeoff would be worth it for them(Still working on bringing in a lighter classification model). Although people may have security concerns, it is as safe as the iphone itself because of how Apple treats apps and allows them to access tools like the microphone. This is only for Apple products for now, but I am working on an android. for android users you can try this website: https://pulse-web-sandy.vercel.app/", "repo": "https://github.com/Aweswomedude1234/Pulse", "demo": "https://apps.apple.com/us/app/pulse-for-sound-awareness/id6804911097"}]...
|
[{"post_id": 83994, "ts": "202 [{"post_id": 83994, "ts": "2026-10-29T00:49:12Z", "hours": 3.2989, "text": "My app has been approved! After a long wait and quite a few rejections, my app was finally approved and put on the app store. It’s available for IOS, WatchOS, and IpadOS. However, MacOS and Iphone Duo are still being built. Overall, I am happy with how the app turned out, and although I will need to release versions fixing some recent bugs I found, any feedback on the app would be well appreciated!"}, {"post_id": 79196, "ts": "2026-10-12T23:53:48Z", "hours": 3.97, "text": "After taking a deeper dive into all of the Portal I found out the main reason for rejection was asking for microphone permission. Where you aren’t allowed to ask in a certain way and needed to allow people to use the app without the feature. I was able to fix and resubmit that, as well as go through the rest of the app and test some sound classifications I newly added."}, {"post_id": 61853, "ts": "2026-09-04T23:46:52Z", "hours": 1.5819, "text": "The app got rejected from the app store, which means the testflight link I initially had doesn’t work. There wasn’t any specific feedback on why it was rejected, as I was only given a generic template message. Either way there were some features I thought of adding after submitting which I plan to add before submitting. I am working on a camera feature to help with sound detection, and am currently creating more sound classifications for better accuracy and lower misclassification. I’m also working on builds for Ipads, macs and even apple watches."}, {"post_id": 54820, "ts": "2026-08-25T23:33:47Z", "hours": 7.3258, "text": "Currently the app is bug free and available to use. There was a bunch of challenges where I had to go thorugh every single dropdown, menu and page in settings to see if everything was visible because of a problem in dark mdoe. Then I had to go in and check and test the logic for optimization and preferences in settings because they were so minimal changes in performance you couldn’t tell. There were bugs in the power modes to fix, then I found a problem in the logic of the sound map that made it biased to one side. I would appreciate if anyone has any feedback after trying the app: https://testflight.apple.com/join/gX2eUxBh"}, {"post_id": 48425, "ts": "2026-08-16T19:27:26Z", "hours": 0.5847, "text": "Fixed a problem in Dark Mode where text is not visible. This app is almost done, is mostly functional."}, {"post_id": 48336, "ts": "2026-08-16T17:26:16Z", "hours": 11.1569, "text": "The IOS App currently runs without errors. The app can properly give a decibal count and identify most noises. The transcription is still not as accurate, and sometimes doesn’t detect anything. Knocking and barking is the largest false alarm."}]...
|
Title: Pulse by @nithilan_murugesan64949 | Stardan Title: Pulse by @nithilan_murugesan64949 | Stardance
Devlogs:
The IOS App currently runs without errors. The app can properly give a decibal count and identify most noises. The transcription is still not as accurate, and sometimes doesn’t detect anything. Knocking and barking is the largest false alarm.
Fixed a problem in Dark Mode where text is not visible. This app is almost done, is mostly functional.
Currently the app is bug free and available to use. There was a bunch of challenges where I had to go thorugh every single dropdown, menu and page in settings to see if everything was visible because of a problem in dark mdoe. Then I had to go in and check and test the logic for optimization and preferences in settings because they were so minimal changes in performance you couldn’t tell. There were bugs in the power modes to fix, then I found a problem in the logic of the sound map that made it biased to one side. I would appreciate if anyone has any feedback after trying the app: https://testflight.apple.com/join/gX2eUxBh
The app got rejected from the app store, which means the testflight link I initially had doesn’t work. There wasn’t any specific feedback on why it was rejected, as I was only given a generic template message. Either way there were some features I thought of adding after submitting which I plan to add before submitting. I am working on a camera feature to help with sound detection, and am currently creating more sound classifications for better accuracy and lower misclassification. I’m also working on builds for Ipads, macs and even apple watches.
After taking a deeper dive into all of the Portal I found out the main reason for rejection was asking for microphone permission. Where you aren’t allowed to ask in a certain way and needed to allow people to use the app without the feature. I was able to fix and resubmit that, as well as go through the rest of the app and test some sound classifications I newly added.
My app has been approved! After a long wait and quite a few rejections, my app was finally approved and put on the app store. It’s available for IOS, WatchOS, and IpadOS. However, MacOS and Iphone Duo are still being built. Overall, I am happy with how the app turned out, and although I will need to release versions fixing some recent bugs I found, any feedback on the app would be well appreciated!
Ships:
This is an app for deaf and hearing impaired people. I was inspired to build this after seeing relatives suffering form problems. Honestly, there were a lot of challenges in coding it to get accuracy, and even more problems with getting it published on the App store with very long wait times. I am proud of how it turned out and the fact that the app is out on the app store! This may heat up your phone but the idea is to give people that are deaf a sense of safety and warnings so the tradeoff would be worth it for them(Still working on bringing in a lighter classification model). Although people may have security concerns, it is as safe as the iphone itself because of how Apple treats apps and allows them to access tools like the microphone. This is only for Apple products for now, but I am working on an android. for android users you can try this website: https://pulse-web-sandy.vercel.app/...
|
1793306982.6411848
|
1793393382.6411848
|
|
49813
|
My own site! by @LAZX | Stardance
|
LAZX
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T12:32:51Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a simple portfolio like page according to the guide as I completely vibecoded this I didn’t have any challenges. I have not checked the page properly as its just a simple page showing basic info.", "repo": "https://github.com/Sakshyam-Xtha/personal-site", "demo": "https://sakshyam-xtha.github.io/personal-site/"}]...
|
[{"post_id": 50178, "ts": "202 [{"post_id": 50178, "ts": "2026-08-19T09:23:14Z", "hours": 0.2508, "text": "Finished the basic structure of the page."}]...
|
Title: My own site! by @LAZX | Stardance
Devlogs: Title: My own site! by @LAZX | Stardance
Devlogs:
Finished the basic structure of the page.
Ships:
I made a simple portfolio like page according to the guide as I completely vibecoded this I didn’t have any challenges. I have not checked the page properly as its just a simple page showing basic info....
|
1793465459.6492813
|
1793551859.6492813
|
|
49817
|
AstroSpace OS: Interactive NASA Astronomy Picture AstroSpace OS: Interactive NASA Astronomy Picture Database by @parth_ida13 | Stardance...
|
parth_ida13
|
1
|
11.0
|
28
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T17:15:15Z", "hours": 11.0, "multiplier": 2.5, "payout": 28, "blessing": "neutral", "text": "I made a software that fetches data from nasa.gov, specifcally the astronomy photos. This is my first project on Stardance and probably even my first real project ever. I set up the backend using Flask and handled requests and json transferring with flask. I even learned how to use CSS properly creating a space-like OS. It was really hard to code the Flask code and really hard to code the jinja2 code aswell. Also it was really hard to find a good host to host my project. Vercel couldnt support the css, netlify couldnt even host my site, github sites also couldnt because it wasnt a static page. I then found out that Glitch had been deleted. Then I went to replit as a begineer and somehow managed to get my localhost to a replit.app (still a start). I really hope I get a good rating because I’ve spent almost 3-4 full days spending time trying to learn everything and then coding it in VS code.", "repo": "https://github.com/parthida13/NASA-Astronomy-Photography", "demo": "https://nasa-astronomy-photography--p361305b.replit.app"}]...
|
[{"post_id": 49707, "ts": "202 [{"post_id": 49707, "ts": "2026-08-18T16:37:05Z", "hours": 0.5375, "text": "Spent almost an hour trying to find a suitable site to host my project on. Found Replit and added a button to go back. Uploaded files on github and attached. Website published and edited README.md. FINAL DEVLOG LETS GOO. This was a really good journey"}, {"post_id": 49564, "ts": "2026-08-18T13:20:02Z", "hours": 2.7703, "text": "Finally finished jinja 2 scripts and some backend issues. Software will be live in a few minutes"}, {"post_id": 49081, "ts": "2026-08-17T18:12:18Z", "hours": 0.6164, "text": "Devlog #11: Rough sketch completed, troubleshooting through invisible overlays. Next steps are to edit header and footer with github id contact id and etc to personalize this showcase of NASA Photos"}, {"post_id": 49042, "ts": "2026-08-17T17:07:19Z", "hours": 1.9186, "text": "Devlog #10: First project on stardance almost completed Today I completed a lot. I set up a Jinja Loop, I coded the backend, I fixed syntax errors, I set up a way to hide my API keys when commiting to git. I also made my first README file, needs improving but not bad. Almost done shipping my website via vercel. Hope this gets a good rating!!!"}, {"post_id": 48886, "ts": "2026-08-17T13:32:19Z", "hours": 0.2622, "text": "CSS Design in progress. Making sure all photos area organized in an orderly matter"}, {"post_id": 48830, "ts": "2026-08-17T11:46:22Z", "hours": 1.3236, "text": "Created Backend using Flask and created templates folder with index.html. Used AI debugging to solve http requests. Designed a rough sketch of the html site. Sent python json data over to html. Next steps for the next 30 mins are to hide API keys and make the system much safer"}, {"post_id": 48732, "ts": "2026-08-17T08:03:38Z", "hours": 0.5344, "text": "Created a backend using Flask, switched data and imported functions from other tabs. Next step is creating the HTML backbone and then finalizing design using help from AI and personal touch."}, {"post_id": 48691, "ts": "2026-08-17T06:20:50Z", "hours": 0.2581, "text": "Finally fixed the functions and added a quit function using sys"}, {"post_id": 48677, "ts": "2026-08-17T05:37:46Z", "hours": 0.4864, "text": "Finished readme but first python script is a bit funky. Gonna need some help debugging the problem. Functions are not valid for some reason. Wasted around 30 minutes with this"}, {"post_id": 48418, "ts": "2026-08-16T19:10:52Z", "hours": 0.4647, "text": "Imported JSON library by using ‘with open’ and ‘dump’ to write a file called nasadata.json. Created the ability to save converted python dictionaries by ‘with open’ to use in other scripts. Successfully created a sample of nasadata.json. Imported nasadata.json and created a system to detect a user’s operating system for the ‘os’ framework .Now next steps are drafting 2nd python script by completing dictionary scripts then connecting html/webos app (frontend) over to python (backend). Then after that I will launch a beta of my project within this first week"}, {"post_id": 48382, "ts": "2026-08-16T18:19:21Z", "hours": 0.3058, "text": "Error- requests code wasnt working. Refined code when debugging with AI then defined API and web request. Next step is formatting dictionary nasadata into an html skeleton from previous deleted project WebOS"}, {"post_id": 48357, "ts": "2026-08-16T17:47:19Z", "hours": 0.4667, "text": "Update: Polished python framework even more learning about requests framework and adding a function for the input validation. Added return True and return False for looping inputs together. Next thing to work on: refining json to dictionary data and selecting specific items in the dictionary"}, {"post_id": 48296, "ts": "2026-08-16T16:33:54Z", "hours": 1.1194, "text": "script draft done- learned how to use requests library and created a small json data fetcher and converted json data to readable python dictionaries. Next I will complete the loop to make sure you can try again after errors"}]...
|
Title: AstroSpace OS: Interactive NASA Astronomy P Title: AstroSpace OS: Interactive NASA Astronomy Picture Database by @parth_ida13 | Stardance
Devlogs:
script draft done- learned how to use requests library and created a small json data fetcher and converted json data to readable python dictionaries. Next I will complete the loop to make sure you can try again after errors
Update: Polished python framework even more learning about requests framework and adding a function for the input validation. Added return True and return False for looping inputs together. Next thing to work on: refining json to dictionary data and selecting specific items in the dictionary
Error- requests code wasnt working. Refined code when debugging with AI then defined API and web request. Next step is formatting dictionary nasadata into an html skeleton from previous deleted project WebOS
Imported JSON library by using ‘with open’ and ‘dump’ to write a file called nasadata.json. Created the ability to save converted python dictionaries by ‘with open’ to use in other scripts. Successfully created a sample of nasadata.json. Imported nasadata.json and created a system to detect a user’s operating system for the ‘os’ framework .Now next steps are drafting 2nd python script by completing dictionary scripts then connecting html/webos app (frontend) over to python (backend). Then after that I will launch a beta of my project within this first week
Finished readme but first python script is a bit funky. Gonna need some help debugging the problem. Functions are not valid for some reason. Wasted around 30 minutes with this
Finally fixed the functions and added a quit function using sys
Created a backend using Flask, switched data and imported functions from other tabs. Next step is creating the HTML backbone and then finalizing design using help from AI and personal touch.
Created Backend using Flask and created templates folder with index.html. Used AI debugging to solve http requests. Designed a rough sketch of the html site. Sent python json data over to html. Next steps for the next 30 mins are to hide API keys and make the system much safer
CSS Design in progress. Making sure all photos area organized in an orderly matter
Devlog #10: First project on stardance almost completed Today I completed a lot. I set up a Jinja Loop, I coded the backend, I fixed syntax errors, I set up a way to hide my API keys when commiting to git. I also made my first README file, needs improving but not bad. Almost done shipping my website via vercel. Hope this gets a good rating!!!
Devlog #11: Rough sketch completed, troubleshooting through invisible overlays. Next steps are to edit header and footer with github id contact id and etc to personalize this showcase of NASA Photos
Finally finished jinja 2 scripts and some backend issues. Software will be live in a few minutes
Spent almost an hour trying to find a suitable site to host my project on. Found Replit and added a button to go back. Uploaded files on github and attached. Website published and edited README.md. FINAL DEVLOG LETS GOO. This was a really good journey
Ships:
I made a software that fetches data from nasa.gov, specifcally the astronomy photos. This is my first project on Stardance and probably even my first real project ever. I set up the backend using Flask and handled requests and json transferring with flask. I even learned how to use CSS properly creating a space-like OS. It was really hard to code the Flask code and really hard to code the jinja2 code aswell. Also it was really hard to find a good host to host my project. Vercel couldnt support the css, netlify couldnt even host my site, github sites also couldnt because it wasnt a static page. I then found out that Glitch had been deleted. Then I went to replit as a begineer and somehow managed to get my localhost to a replit.app (still a start). I really hope I get a good rating because I’ve spent almost 3-4 full days spending time trying to learn everything and then coding it in VS code....
|
1793465464.2748914
|
1793551864.2748914
|
|
49819
|
My very own WebOS by @Alyssa889 | Stardance
|
Alyssa889
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T18:29:40Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my very Own WebOs! It was so fun following the guide and I enjoyed it so much! It was hard to follow the Javascript steps because I’m new to coding but I was able to follow. Hopefully there are no bugs or problems with it!", "repo": "https://github.com/alyssaelias/WebOS", "demo": "https://friendly-telegram-vpg4g6rp9ww9cxq47.github.dev/"}]...
|
[{"post_id": 71372, "ts": "202 [{"post_id": 71372, "ts": "2026-09-20T18:26:39Z", "hours": 0.3492, "text": "Added a ending message to my WebOs and changed the colors of the text. I think it’s ready to ship!"}, {"post_id": 71352, "ts": "2026-09-20T17:55:09Z", "hours": 0.5172, "text": "Styling my WebOS to make it unique"}, {"post_id": 71323, "ts": "2026-09-20T17:02:21Z", "hours": 0.3956, "text": "Editing the draggable window through JS"}, {"post_id": 70738, "ts": "2026-09-19T17:52:26Z", "hours": 1.1453, "text": "Finishing my WebOS and finally got Hackatime to work"}]...
|
Title: My very own WebOS by @Alyssa889 | Stardance Title: My very own WebOS by @Alyssa889 | Stardance
Devlogs:
Finishing my WebOS and finally got Hackatime to work
Editing the draggable window through JS
Styling my WebOS to make it unique
Added a ending message to my WebOs and changed the colors of the text. I think it’s ready to ship!
Ships:
I made my very Own WebOs! It was so fun following the guide and I enjoyed it so much! It was hard to follow the Javascript steps because I’m new to coding but I was able to follow. Hopefully there are no bugs or problems with it!...
|
1793342930.5588439
|
1793429330.5588439
|
|
49829
|
EzRegex by @yuv1 | Stardance
|
yuv1
|
1
|
1.0
|
12
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-17T03:20:13Z", "hours": 1.0, "multiplier": 15.87, "payout": 12, "blessing": "neutral", "text": "What did you make? EzRegex is a regex playground that explains patterns in plain English while you type. You enter a pattern, paste in some text, and it highlights matches live while breaking the pattern into chunks with a card explaining each one. Hover a chunk and its explanation lights up, and the other way around too. The idea came from FBLA. I was competing in Mobile Application Development and one of the rubric criteria was input validation. I knew regex and I was using it, but when I sat down to explain it to a judge who might not be technical, I couldn’t. It took me a while to work out a one line explanation that actually landed. A few weeks later I’d forgotten it. That stuck with me. If I had to fight that hard to explain it once, what about developers who touch regex every day? Nobody is memorizing those patterns. And the stakes aren’t small. Input validation is what stands between a login form and a SQL injection. It’s the thing you skip when it’s annoying, and skipping it is how sensitive pages break. So I built the tool I wished I’d had while prepping for that event. What was challenging? The tokenizer. I went in thinking “split the regex up, write a description for each piece, done.” That is not what it is. I ended up writing the front end of a small compiler: walking the pattern character by character, holding state, deciding where one token ends and the next begins, handling escapes inside character classes where the rules change, attaching quantifiers backwards onto whatever they modify. A few rules ate hours on their own. A ] as the first character inside a character class is a literal ] , not a closing bracket. A hyphen at the start or end of a class is literal, but in the middle it’s a range. {2,6} never stands alone, it belongs to the token before it. Every one of those I had to discover and then handle. Rendering had its own problem. The highlighting is a transparent textarea sitting on top of a div, and if the two layers wrap text even slightly differently, the highlights slide off the words. Getting both layers to agree on every metric that affects wrapping took longer than I want to admit. What are you proud of? The tokenizer is mine. I used AI for scaffolding and boilerplate and I say so openly in the repo, but the parser is hand written and I understand every line of it. That was the whole point of building this instead of just using regex101. I’m also proud that I scoped it. Recursive group expansion would have been cool. I cut it, wrote down why in the roadmap, and shipped. Knowing what isn’t in v1 turned out to matter as much as knowing what is. How to test it Open https://ezregex.vercel.app . There’s no signup or install, and nothing you type leaves your browser. If you don’t have a pattern in mind, use the examples panel on the left. There are 29 of them across validation, extraction, cleanup, and code. Click one and it loads with a test string that actually produces matches. Worth trying: Type your own pattern and watch the breakdown update on every keystroke Hover a coloured chunk in the pattern to see its card highlight, then hover a card to see the chunk highlight back Break a pattern on purpose ( [a- works) to see the error handling Toggle the flags and switch themes Shrink the window under 768px, the panels turn into tabs and the examples become a drawer Source and build notes: https://github.com/Yuv1s/EzRegex", "repo": "https://github.com/Yuv1s/EzRegex", "demo": "https://ezregex.vercel.app"}]...
|
[{"post_id": 48366, "ts": "202 [{"post_id": 48366, "ts": "2026-08-16T17:59:07Z", "hours": 0.7814, "text": "Devlog - rebuilding the EzRegex UI Why The app worked. It just looked generated. The tell was the colour. Everything was indigo; buttons, focus rings, flag pills, match highlights, links, scrollbars. Then a violet, an emerald, a sky and an amber for the example categories, and eight more hues for the regex tokens. About a dozen colours, none of them meaning anything. The rule Colour is treated as a scarce resource and spent only where it carries meaning. Everything else went neutral. What survived: Colour Means Ochre a match, a selection, focus Red an invalid pattern Pink / green / blue / cyan the four regex token families Neutral everything else Category badges lost their colours. Token types went from eight hues down to four, grouped by what they do rather than one colour each. The change I like most: plain literals are uncoloured now. They’re most of any pattern, and colouring them is what turns a regex display into confetti. Greying them out is what made the other four colours mean something. Also changed Custom warm-grey ramp in OKLCH instead of Tailwind’s stock gray-* Geist instead of Inter The pattern field moved to its own full-width band — it’s the point of the app, it shouldn’t be one item in a column The match count is visible. It existed before, but only as sr-only text Bugs I hit on the way Highlights drifted off the text. The textarea and the layer behind it wrapped differently, and a trailing newline made the backdrop one line short /a*/g on a big paste could hang the page. Capped at 5,000 matches []] was described as \"[\" The explainer said: Matches the literal character “the @ symbol” You could tab into the off-screen mobile drawer. It also didn’t trap focus or close on Escape The PWA manifest was untouched boilerplate — the app installed as “MyWebSite” The part I nearly got wrong I wrote a script to check every text-on-background pair against WCAG AA instead of trusting my eyes. The first palette failed 7 checks. A muted label was at 2.75:1 where it needed 4.5:1. Button text was at 4.02:1. All of it looked fine on my monitor. 58 pairs pass now. One visible cost: tertiary text sits closer to secondary than I’d like, because anything lighter fails. Size and weight carry the hierarchy instead."}]...
|
Title: EzRegex by @yuv1 | Stardance
Devlogs:
Devl Title: EzRegex by @yuv1 | Stardance
Devlogs:
Devlog - rebuilding the EzRegex UI Why The app worked. It just looked generated. The tell was the colour. Everything was indigo; buttons, focus rings, flag pills, match highlights, links, scrollbars. Then a violet, an emerald, a sky and an amber for the example categories, and eight more hues for the regex tokens. About a dozen colours, none of them meaning anything. The rule Colour is treated as a scarce resource and spent only where it carries meaning. Everything else went neutral. What survived: Colour Means Ochre a match, a selection, focus Red an invalid pattern Pink / green / blue / cyan the four regex token families Neutral everything else Category badges lost their colours. Token types went from eight hues down to four, grouped by what they do rather than one colour each. The change I like most: plain literals are uncoloured now. They’re most of any pattern, and colouring them is what turns a regex display into confetti. Greying them out is what made the other four colours mean something. Also changed Custom warm-grey ramp in OKLCH instead of Tailwind’s stock gray-* Geist instead of Inter The pattern field moved to its own full-width band — it’s the point of the app, it shouldn’t be one item in a column The match count is visible. It existed before, but only as sr-only text Bugs I hit on the way Highlights drifted off the text. The textarea and the layer behind it wrapped differently, and a trailing newline made the backdrop one line short /a*/g on a big paste could hang the page. Capped at 5,000 matches []] was described as "[" The explainer said: Matches the literal character “the @ symbol” You could tab into the off-screen mobile drawer. It also didn’t trap focus or close on Escape The PWA manifest was untouched boilerplate — the app installed as “MyWebSite” The part I nearly got wrong I wrote a script to check every text-on-background pair against WCAG AA instead of trusting my eyes. The first palette failed 7 checks. A muted label was at 2.75:1 where it needed 4.5:1. Button text was at 4.02:1. All of it looked fine on my monitor. 58 pairs pass now. One visible cost: tertiary text sits closer to secondary than I’d like, because anything lighter fails. Size and weight carry the hierarchy instead.
Ships:
What did you make? EzRegex is a regex playground that explains patterns in plain English while you type. You enter a pattern, paste in some text, and it highlights matches live while breaking the pattern into chunks with a card explaining each one. Hover a chunk and its explanation lights up, and the other way around too. The idea came from FBLA. I was competing in Mobile Application Development and one of the rubric criteria was input validation. I knew regex and I was using it, but when I sat down to explain it to a judge who might not be technical, I couldn’t. It took me a while to work out a one line explanation that actually landed. A few weeks later I’d forgotten it. That stuck with me. If I had to fight that hard to explain it once, what about developers who touch regex every day? Nobody is memorizing those patterns. And the stakes aren’t small. Input validation is what stands between a login form and a SQL injection. It’s the thing you skip when it’s annoying, and skipping it is how sensitive pages break. So I built the tool I wished I’d had while prepping for that event. What was challenging? The tokenizer. I went in thinking “split the regex up, write a description for each piece, done.” That is not what it is. I ended up writing the front end of a small compiler: walking the pattern character by character, holding state, deciding where one token ends and the next begins, handling escapes inside character classes where the rules change, attaching quantifiers backwards onto whatever they modify. A few rules ate hours on their own. A ] as the first character inside a character class is a literal ] , not a closing bracket. A hyphen at the start or end of a class is literal, but in the middle it’s a range. {2,6} never stands alone, it belongs to the token before it. Every one of those I had to discover and then handle. Rendering had its own problem. The highlighting is a transparent textarea sitting on top of a div, and if the two layers wrap text even slightly differently, the highlights slide off the words. Getting both layers to agree on every metric that affects wrapping took longer than I want to admit. What are you proud of? The tokenizer is mine. I used AI for scaffolding and boilerplate and I say so openly in the repo, but the parser is hand written and I understand every line of it. That was the whole point of building this instead of just using regex101. I’m also proud that I scoped it. Recursive group expansion would have been cool. I cut it, wrote down why in the roadmap, and shipped. Knowing what isn’t in v1 turned out to matter as much as knowing what is. How to test it Open https://ezregex.vercel.app . There’s no signup or install, and nothing you type leaves your browser. If you don’t have a pattern in mind, use the examples panel on the left. There are 29 of them across validation, extraction, cleanup, and code. Click one and it loads with a test string that actually produces matches. Worth trying: Type your own pattern and watch the breakdown update on every keystroke Hover a coloured chunk in the pattern to see its card highlight, then hover a card to see the chunk highlight back Break a pattern on purpose ( [a- works) to see the error handling Toggle the flags and switch themes Shrink the window under 768px, the panels turn into tabs and the examples become a drawer Source and build notes: https://github.com/Yuv1s/EzRegex...
|
1792875240.708244
|
1793739240.708244
|
|
49879
|
WARIO NEEDS VALORANT by @Astrixzen | Stardance
|
Astrixzen
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-17T18:04:47Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a game using godot called “Wario NEEDS Valorant”. Its a small game using a ton of confusing code. Even though it only has 2 levels right now, im hoping to improve it with the next part of making a warioware game", "repo": "https://github.com/Astrixzen/Warioware-game", "demo": "https://astrixzen.itch.io/warioneedsvalorant"}]...
|
[{"post_id": 48937, "ts": "202 [{"post_id": 48937, "ts": "2026-08-17T14:36:03Z", "hours": 6.0347, "text": "WARIOWARE GAME-Wario NEEDS YOU:I made a wario game where you need to go through 2 totally unique level that totally do not follow the guide. But please guys i hope yall play it cause i spent way to long drawing wario in paint :D"}]...
|
Title: WARIO NEEDS VALORANT by @Astrixzen | Starda Title: WARIO NEEDS VALORANT by @Astrixzen | Stardance
Devlogs:
WARIOWARE GAME-Wario NEEDS YOU:I made a wario game where you need to go through 2 totally unique level that totally do not follow the guide. But please guys i hope yall play it cause i spent way to long drawing wario in paint :D
Ships:
I made a game using godot called “Wario NEEDS Valorant”. Its a small game using a ton of confusing code. Even though it only has 2 levels right now, im hoping to improve it with the next part of making a warioware game...
|
1793469162.3381457
|
1793555562.3381457
|
|
49880
|
Portfolio Website by @samarthgoyal | Stardance
|
samarthgoyal
|
1
|
7.0
|
8
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-17T13:51:25Z", "hours": 7.0, "multiplier": 1.21, "payout": 8, "blessing": "neutral", "text": "A personal developer portfolio built from scratch with HTML, CSS featuring my projects, skills, experience, certifications, and work in cybersecurity.", "repo": "https://github.com/Samarthgoyal51/Portfolio_Website", "demo": "https://personal-website-eight-fawn-62.vercel.app/"}]...
|
[{"post_id": 48875, "ts": "202 [{"post_id": 48875, "ts": "2026-08-17T13:19:48Z", "hours": 6.7561, "text": "My own portfolio website"}]...
|
Title: Portfolio Website by @samarthgoyal | Starda Title: Portfolio Website by @samarthgoyal | Stardance
Devlogs:
My own portfolio website
Ships:
A personal developer portfolio built from scratch with HTML, CSS featuring my projects, skills, experience, certifications, and work in cybersecurity....
|
1793469171.8580208
|
1793555571.8580208
|
|
49891
|
NUMBER GUESSING GAME by @Dhanush_Mundra | Stardanc NUMBER GUESSING GAME by @Dhanush_Mundra | Stardance...
|
Dhanush_Mundra
|
1
|
1.4
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T11:56:49Z", "hours": 0.0, "multiplier": 1.22, "payout": 0, "blessing": "neutral", "text": "I made a NUMBER GUESSING GAME. This is a game in which the user tries to guess the number thought by the computer. There are 4 difficulty levels that the player can choose and based on that the number of attempts are given. Best score for each levels are also saved making it a good user experience. The challenging part was that I speed runner to make this project and took a target myself that I need to make this project in an hour and I am proud that I completed this project in just half an hour. So please visit my project and rate it nicely. THANK YOU", "repo": "https://github.com/mundradhanush-lgtm/NUMBER---GUESSING---GAME", "demo": "https://mundradhanush-lgtm.github.io/NUMBER_GUESSING_GAME/"}]...
|
[{"post_id": 69009, "ts": "202 [{"post_id": 69009, "ts": "2026-09-16T06:43:25Z", "hours": 0.3167, "text": "ok so this is may last devlon and i have made the project finally."}, {"post_id": 54485, "ts": "2026-08-25T14:37:31Z", "hours": 1.0817, "text": "ok so I reworked on my NUMBER GUESSING GAME project because I got some reviews that said that it could be modified more, so I am reworking on it and added small but a very impactful feature which is of HINT. so I made it like this that the player would have to first attempt the minimum number of guesses to use the hint for different difficulty levels"}, {"post_id": 49104, "ts": "2026-08-17T18:45:13Z", "hours": 0.0719, "text": "Today was a very good day for me as I made this project. I basically speed runner in this project to complete it under one hour and I did that I am glad. this was like a short break from my other projects while practicing python. yes, this is a short and simple project but it is made in a very less time so this is a very big achievement for me to make a project like this in such a short period of time. hope you’ll give the best rating for my project."}]...
|
Title: NUMBER GUESSING GAME by @Dhanush_Mundra | S Title: NUMBER GUESSING GAME by @Dhanush_Mundra | Stardance
Devlogs:
Today was a very good day for me as I made this project. I basically speed runner in this project to complete it under one hour and I did that I am glad. this was like a short break from my other projects while practicing python. yes, this is a short and simple project but it is made in a very less time so this is a very big achievement for me to make a project like this in such a short period of time. hope you’ll give the best rating for my project.
ok so I reworked on my NUMBER GUESSING GAME project because I got some reviews that said that it could be modified more, so I am reworking on it and added small but a very impactful feature which is of HINT. so I made it like this that the player would have to first attempt the minimum number of guesses to use the hint for different difficulty levels
ok so this is may last devlon and i have made the project finally.
Ships:
I made a NUMBER GUESSING GAME. This is a game in which the user tries to guess the number thought by the computer. There are 4 difficulty levels that the player can choose and based on that the number of attempts are given. Best score for each levels are also saved making it a good user experience. The challenging part was that I speed runner to make this project and took a target myself that I need to make this project in an hour and I am proud that I completed this project in just half an hour. So please visit my project and rate it nicely. THANK YOU...
|
1793469199.5818417
|
1793555599.5818417
|
|
49916
|
Focus Orbit by @Aaravkatiyar | Stardance
|
Aaravkatiyar
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T21:14:07Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Built and deployed Focus Orbit, an original student new-tab dashboard with a persistent focus task, local to-dos, themes, quick links, quotes, and a resilient NASA APOD panel. The live demo and source code are linked above.", "repo": "https://github.com/aaravkatiyar55-gif/focus-orbit-new-tab", "demo": "https://aaravkatiyar55-gif.github.io/focus-orbit-new-tab/"}]...
|
[{"post_id": 48489, "ts": "202 [{"post_id": 48489, "ts": "2026-08-16T21:11:43Z", "hours": 1.1031, "text": "Focus Orbit is my original space-inspired student new-tab dashboard, built with HTML, CSS, and JavaScript. It includes a live clock and date, a saved daily focus task, persistent local to-dos, motivational quotes, theme switching, and editable quick links.I also added a NASA Astronomy Picture of the Day panel with loading feedback, timeout/error handling, a fallback state, and a retry button. I deployed it through GitHub Pages and tested the public app in a fresh browser: the clock/date rendered, APOD loaded successfully, and loading plus retry behavior worked.GitHub: https://github.com/aaravkatiyar55-gif/focus-orbit-new-tabLive demo: https://aaravkatiyar55-gif.github.io/focus-orbit-new-tab/"}]...
|
Title: Focus Orbit by @Aaravkatiyar | Stardance
D Title: Focus Orbit by @Aaravkatiyar | Stardance
Devlogs:
Focus Orbit is my original space-inspired student new-tab dashboard, built with HTML, CSS, and JavaScript. It includes a live clock and date, a saved daily focus task, persistent local to-dos, motivational quotes, theme switching, and editable quick links.I also added a NASA Astronomy Picture of the Day panel with loading feedback, timeout/error handling, a fallback state, and a retry button. I deployed it through GitHub Pages and tested the public app in a fresh browser: the clock/date rendered, APOD loaded successfully, and loading plus retry behavior worked.GitHub: https://github.com/aaravkatiyar55-gif/focus-orbit-new-tabLive demo: https://aaravkatiyar55-gif.github.io/focus-orbit-new-tab/
Ships:
Built and deployed Focus Orbit, an original student new-tab dashboard with a persistent focus task, local to-dos, themes, quick links, quotes, and a resilient NASA APOD panel. The live demo and source code are linked above....
|
1793472642.1232016
|
1793559042.1232016
|
|
49926
|
NASA Meteorite Landings by @abdullahimranrafiq | S NASA Meteorite Landings by @abdullahimranrafiq | Stardance...
|
abdullahimranrafiq
|
1
|
4.0
|
47
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T20:09:56Z", "hours": 4.0, "multiplier": 10.79, "payout": 47, "blessing": "neutral", "text": "Meterite Landing Dataset Vizualization I vizualized the NASA Meteorite Landings Dataset CSV: https://data.nasa.gov/docs/legacy/meteorite_landings/Meteorite_Landings.csv , and plotted the meteorite landings given in the Meteorite Landings dataset: https://data.nasa.gov/dataset/meteorite-landings , and to develop the project, I used/read the following documentation/articles: https://data.nasa.gov/dataset/meteorite-landings https://github.com/AbdullahImranRafiq/nasa-meteorite-landings https://towardsdatascience.com/how-to-create-a-map-from-geospatial-data-in-python-f4bb7d11ddad/ https://pypi.org/project/folium/ https://python-visualization.github.io/folium/latest/reference.html https://earthdatascience.org/courses/scientists-guide-to-plotting-data-in-python/plot-spatial-data/customize-vector-plots/interactive-leaflet-maps-in-python-folium/ https://stackoverflow.com/questions/63245563/make-this-notebook-trusted-to-load-map-file-trust-notebook https://towardsdatascience.com/folium-mapping-displaying-markers-on-a-map-6bd56f3e3420/ https://stackoverflow.com/questions/40334922/plotting-markers-on-a-map-using-pandas-folium https://stackoverflow.com/questions/16476924/how-can-i-iterate-over-rows-in-a-pandas-dataframe https://www.kaggle.com/datasets/nasa/meteorite-landings https://stackoverflow.com/questions/74307894/valueerror-expected-two-lat-lon-values-for-location-instead-got https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dtypes.html https://www.reddit.com/r/learnpython/comments/44dpgd/convert_pandas_dataframe_column_from_str_to_tuple/ https://stackoverflow.com/questions/36921951/truth-value-of-a-series-is-ambiguous-use-a-empty-a-bool-a-item-a-any-o https://python-visualization.github.io/folium/latest/user_guide/plugins/marker_cluster.html https://towardsdatascience.com/fix-valueerror-truth-value-of-a-series-is-ambiguous-pandas-a683f0fd1b2f/ https://stackoverflow.com/questions/63152298/updating-folium-changed-the-popup-box-width https://stackoverflow.com/questions/40888438/newline-in-leaflet-marker-popup-text https://stardance.hackclub.com/projects/49926 I vizualized the Meteorite Landings dataset: https://data.nasa.gov/dataset/meteorite-landings , which had a specific column for geographical coordinates of Meteorite Landings on Earth, so, I made a Geospatial map with the Meteorite landings shown as markers, and once a marker is clicked on, it shows details regarding the Meteorite, such as: Name of the Meteorite (usually named after the location) Class of the Meteorite. Mass of the Meteorite in grams. Year of the Meteorite, when it was seen falling or discovered.", "repo": "https://github.com/AbdullahImranRafiq/nasa-meteorite-landings", "demo": "https://abdullahimranrafiq.github.io/nasa-meteorite-landings/"}]...
|
[{"post_id": 49499, "ts": "202 [{"post_id": 49499, "ts": "2026-08-18T11:25:27Z", "hours": 0.9794, "text": "I wrote a README, and published a demo URL hosted on https://abdullahimranrafiq.github.io/nasa-meteorite-landings/ to finish project setup."}, {"post_id": 48729, "ts": "2026-08-17T08:01:39Z", "hours": 3.4164, "text": "I visualized a Official NASA Dataset , This is a Meteorite Landings Dataset , which contains data of Meteorite Landings on Earth and their respective landing geographical latitudes, and longitudes. I used data visualization in Python to visualize it on a geographical map, with markers representing the Meteorite Landings, which gets exported to a html file (shown in the given image), and also I added a popup that when a Meteorite Landing is clicked on it will show the respective Meteorite Landing’s details such as the name of the meteorite, the class of the meteorite, and the mass of the meteorite in grams, and the year it was seen falling or the year it was discovered. (shown in the given image)"}]...
|
Title: NASA Meteorite Landings by @abdullahimranra Title: NASA Meteorite Landings by @abdullahimranrafiq | Stardance
Devlogs:
I visualized a Official NASA Dataset , This is a Meteorite Landings Dataset , which contains data of Meteorite Landings on Earth and their respective landing geographical latitudes, and longitudes. I used data visualization in Python to visualize it on a geographical map, with markers representing the Meteorite Landings, which gets exported to a html file (shown in the given image), and also I added a popup that when a Meteorite Landing is clicked on it will show the respective Meteorite Landing’s details such as the name of the meteorite, the class of the meteorite, and the mass of the meteorite in grams, and the year it was seen falling or the year it was discovered. (shown in the given image)
I wrote a README, and published a demo URL hosted on https://abdullahimranrafiq.github.io/nasa-meteorite-landings/ to finish project setup.
Ships:
Meterite Landing Dataset Vizualization I vizualized the NASA Meteorite Landings Dataset CSV: https://data.nasa.gov/docs/legacy/meteorite_landings/Meteorite_Landings.csv , and plotted the meteorite landings given in the Meteorite Landings dataset: https://data.nasa.gov/dataset/meteorite-landings , and to develop the project, I used/read the following documentation/articles: https://data.nasa.gov/dataset/meteorite-landings https://github.com/AbdullahImranRafiq/nasa-meteorite-landings https://towardsdatascience.com/how-to-create-a-map-from-geospatial-data-in-python-f4bb7d11ddad/ https://pypi.org/project/folium/ https://python-visualization.github.io/folium/latest/reference.html https://earthdatascience.org/courses/scientists-guide-to-plotting-data-in-python/plot-spatial-data/customize-vector-plots/interactive-leaflet-maps-in-python-folium/ https://stackoverflow.com/questions/63245563/make-this-notebook-trusted-to-load-map-file-trust-notebook https://towardsdatascience.com/folium-mapping-displaying-markers-on-a-map-6bd56f3e3420/ https://stackoverflow.com/questions/40334922/plotting-markers-on-a-map-using-pandas-folium https://stackoverflow.com/questions/16476924/how-can-i-iterate-over-rows-in-a-pandas-dataframe https://www.kaggle.com/datasets/nasa/meteorite-landings https://stackoverflow.com/questions/74307894/valueerror-expected-two-lat-lon-values-for-location-instead-got https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dtypes.html https://www.reddit.com/r/learnpython/comments/44dpgd/convert_pandas_dataframe_column_from_str_to_tuple/ https://stackoverflow.com/questions/36921951/truth-value-of-a-series-is-ambiguous-use-a-empty-a-bool-a-item-a-any-o https://python-visualization.github.io/folium/latest/user_guide/plugins/marker_cluster.html https://towardsdatascience.com/fix-valueerror-truth-value-of-a-series-is-ambiguous-pandas-a683f0fd1b2f/ https://stackoverflow.com/questions/63152298/updating-folium-changed-the-popup-box-width https://stackoverflow.com/questions/40888438/newline-in-leaflet-marker-popup-text https://stardance.hackclub.com/projects/49926 I vizualized the Meteorite Landings dataset: https://data.nasa.gov/dataset/meteorite-landings , which had a specific column for geographical coordinates of Meteorite Landings on Earth, so, I made a Geospatial map with the Meteorite landings shown as markers, and once a marker is clicked on, it shows details regarding the Meteorite, such as: Name of the Meteorite (usually named after the location) Class of the Meteorite. Mass of the Meteorite in grams. Year of the Meteorite, when it was seen falling or discovered....
|
1793472647.2663975
|
1793559047.2663975
|
|
49944
|
Trawl - CTF Toolkit by @yuv1 | Stardance
|
yuv1
|
1
|
55.65
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-04T18:24:13Z", "hours": 52.0, "multiplier": 18.88, "payout": 0, "blessing": "neutral", "text": "Trawl Trawl is a CTF toolkit for checking suspicious files, encoded text, binaries, and challenge websites from one place. In a CTF, you often get an image, audio file, string, or binary and have to figure out what is hidden inside it. Usually that means opening a bunch of different tools and already knowing what to try. Trawl tries to make that easier. You give it the challenge, and it runs checks that make sense for that input. Try it Live: trawlctf.vercel.app Source: github.com/Yuv1s/Trawl The easiest way to test it: Open the site. Click Tour . Trawl loads a sample file with a hidden flag. Watch the checks run and see what finds it. There are also more sample files under Demos , so you do not need your own CTF challenge. What it can do Trawl has 19 main checks in the web app. It can: inspect PNG, BMP, GIF, JPEG, and WAV files for hidden data check image and audio bits show image bit planes and audio spectrograms find metadata, readable strings, embedded files, and hidden file data inspect ZIP files and PDF structure inspect ELF and PE binaries unwrap encoded text such as base64 and hex solve several common classical ciphers collect useful findings and detected flags in one results panel There is also an optional local web scanner called Remora. It can crawl a CTF website, inspect pages, scripts, headers, and resources, then send useful findings back to Trawl. How it works Most of the analysis is written in Rust and compiled to WebAssembly. The frontend is built with SvelteKit. For normal file and text analysis, the input stays in your browser instead of being uploaded to a server. No account is needed, and the app can keep working offline after it loads. Remora is separate because website scanning needs network access. It runs locally on your computer and connects to the target you give it. I also wrote the analysis and file parsing code instead of relying on existing analysis libraries. The Rust core uses wasm-bindgen to connect Rust to JavaScript. Why I built it The annoying part of CTF forensics was having lots of separate tools and needing to know which one to use before I even understood the challenge. I wanted something where I could drop in the file first and get a useful starting point. I also added the tour and demo files so someone who has never used Trawl can still open the site and understand what it does. What took the most work A big part of the work was avoiding false positives. A detector that marks everything as suspicious is not useful, so I made test files where I knew what was hidden and clean files where nothing should be found. I also tested the ELF and PE parsers with real binaries and compared results with tools like readelf and objdump . One bug I found was that Trawl correctly detected a flag inside a GIF, but the result was stored in the wrong place, so it never appeared in the UI. That pushed me to test the full path from reading the file to actually showing the result. What I learned I learned a lot about image formats, audio samples, compression, steganography, classical cryptography, binary formats, WebAssembly, browser limits, and local networking. The biggest lesson was that finding the answer in code is only part of making a useful tool. The result also has to be tested, understandable, and easy to find.", "repo": "https://github.com/Yuv1s/Trawl", "demo": "https://trawlctf.vercel.app"}]...
|
[{"post_id": 65607, "ts": "202 [{"post_id": 65607, "ts": "2026-09-10T20:56:28Z", "hours": 3.6467, "text": "Trawl has just been shipped!"}, {"post_id": 61673, "ts": "2026-09-04T18:22:19Z", "hours": 0.6467, "text": "Now live at https://trawlctf.vercel.app"}, {"post_id": 61144, "ts": "2026-09-03T22:15:43Z", "hours": 6.5825, "text": "Reversing was the one category left. Trawl had nothing for it. Everything else was covered by the time the tour shipped: steganography, cryptography (Hill and Playfair joined a few weeks back, along with columnar transposition wide enough that brute force stops working), PDF documents read the same way a ZIP already was, object by object, checked against what the file’s own index claims. Drop a binary, though, and the best Trawl could do was name the format and stop there. I’m not building a decompiler. Ghidra and IDA earned that word over years of real compiler-engineering work, and half a decompiler is worse than none: wrong pseudocode still reads as confident, and confidently wrong is the last thing a forensics tool should ever hand someone. What Trawl does instead is the pass every real session starts with anyway, before a disassembler even opens: the header, the section table, what the binary calls, what it offers, and whether it was actually built with the defenses that matter, NX, ASLR, RELRO, a stack canary, Control Flow Guard. Two formats that don’t agree on anything ELF went first, since it’s most of what a CTF binary actually is. Then PE, the Windows half, which turned out to be a different kind of problem. An ELF section header says outright where its bytes sit in the file. A PE barely says anything that way. It addresses its import and export tables by where they’ll land in memory once the loader gets to them, so reading either one means walking the section table first, just to translate an address nobody gave you a file offset for. The two parsers ended up sharing almost nothing except a type underneath them, built so one panel could read both. Where a protection has no equivalent in the other format, the panel just leaves it out instead of guessing. A PE has nothing RELRO would describe, and showing RELRO: none there would report a defense as missing that the format never offered to begin with. The bug where the layout only worked on files I made up myself Testing this against binaries I built myself went fine, because of course it did. I wrote them to go fine. So I went and found real ones instead. gcc output straight out of WSL: a stripped build, a static build, a shared library. Real Windows system binaries too, notepad.exe and kernel32.dll . I checked every one byte for byte against readelf and objdump until the entry points and export counts lined up exactly. Then I compiled a tiny C++ file. Three lines, a map of vectors, nothing unusual. Its export name came out at 286 characters. That’s what name mangling does to the plainest code without even trying. My import list rendered each name as a small chip, capped with a percentage-based max-width so nothing would run off the page. It did nothing. A grid item won’t shrink below its own content unless you tell it to, and I hadn’t, so the chip just kept going: clipped mid-character, no ellipsis, dragging the whole panel sideways with it. Fine on every file I’d invented. Broken on the first real one I pointed it at. AI helped with the writing and most of the parsing code, same as always. The real time went into finding bytes I hadn’t written myself to test it against, a real compiler, a real linker, a symbol nobody designed to be readable. Testing against your own fixtures only ever proves the code agrees with itself. Next up: Windows registry hives, for tracing which USB stick was plugged in when."}, {"post_id": 58436, "ts": "2026-08-30T21:07:08Z", "hours": 14.1186, "text": "Trawl could find anything. Nobody knew where to start. Trawl has gotten good. It cracks AES by hand, forges JWTs, reads flags out of pixels and cookies and the low bits of a sound file. On the mock CTF site I keep building to break, it clears 24 of 26 now. None of that helps the person who opens it for the first time and sees a grid of two dozen tools and a box that says “drop a file.” What file? They don’t have one. They came to look, and there is nothing to look at. So I built the tour. The tour that drops the file for you Tick “take the tour” and Trawl hands itself a sample image with a flag already hidden in the low bits, runs every tool against it before you have done anything, and then walks you through what each one turned up. The flag it already found. The tool that read it out of the red channel. The one that does not read the message but estimates how much is hidden. Two minutes, no CTF knowledge required, and by the end you have watched the whole thing work on a real answer. Because one demo is not much of a demo, there is a library behind it now. Drop-in files for every tool: a flag in a PNG’s low bits, a flag stuck on after the image ends, a flag in the second frame of a GIF, a flag written into the low bit of every audio sample, a flag that only reads once you subtract one frame from the next. Each one hides its answer somewhere different. A button in the corner opens them any time, so the people who skipped the tour and the people who came back a week later can still poke at something real. The bug where the tool found it and never told anyone The GIF samples embarrassed me. Drop one, and the tool would decode the second frame, find the flag, and then say nothing. The cod-end, the panel where every find is supposed to surface, sat empty. It was not that the flag went unfound. It was found, written down, and filed one level too deep to ever be shown. The panel only reads findings from a file’s children, and a plain GIF has no children, so its own results fell through the floor. A few lines to lift them back up. The kind of bug that passes every test, because the test checks that the flag was found, not that a human would ever see it. AI helped with the writing and the mechanical parts, same as always. The real time went into the gap between “the tool works” and “a stranger can tell that it works,” which turns out to be most of the distance. The feature list still sounds small. A tour, some sample files, a button. But the whole point was to make the thing findable, and none of the finding matters if the first thing you see is a shrug. Next up: the last two flags on that mock site, and maybe a screenshot in the readme now that there is something worth showing."}, {"post_id": 55039, "ts": "2026-08-26T13:54:36Z", "hours": 11.1219, "text": "The scanner connected. That was the easy part. Last time, the whole win was that the scanner connected at all. Trawl spots the local process, the page swaps to a URL box, and it starts crawling. But a scanner that connects and finds nothing is just a slow way to load a webpage. So this time I made it actually find the flags. On the mock CTF site I built last time to be broken, the web scan went from 4 findings to 18. Counting the image tools, the whole thing now gets 23 of the 26. Teaching it to decode, not just fetch A flag is almost never sitting in plain text waiting to be read. It’s base64 hiding in a cookie. It’s hex in a JavaScript variable. It’s a colour written as CSS escape codes, or an array of numbers XORed against a single byte, or an ETag that’s really just base64 printed backwards. So the scanner now tries all of those on everything it pulls down: every page, every script, every response header. It keeps a result only when a decode actually produces a flag, and shuts up otherwise. That last part matters more than it sounds. A tool that reports something on every site is noise, not a finding. One challenge hid an AES key and its payload in an image’s metadata. The rule I keep breaking my own back over is no dependencies, nothing borrowed, so instead of pulling in a crypto library I wrote AES by hand and checked it against the official test vectors. It works. I would not recommend the experience. The bug that made a working scanner look broken For a while every scan felt like it hung. The scanner was fine. localhost was the problem. localhost resolves to the IPv6 address first. My test site only listened on IPv4. Windows takes about two seconds to give up on the dead address before falling back to the one that works, and two seconds across fifteen requests is a scan that looks frozen. The fix was one line: try IPv4 first. The debugging was not one line. Then, the morning I went to cut the release, a routine Rust update added a new lint and broke the build on code I hadn’t touched in weeks. Pinned the version, fixed the lint, shipped. AI helped with the writing and some of the mechanical refactors, but the real time went where it always goes: into the two seconds nobody sees, and the compiler that changed its mind overnight. The feature list sounds small again. Reads a site, decodes what it finds, cracks an image. The list is never the part that takes the week. Next up is JWTs, so the scanner can start forging its way into the challenges it currently just knocks on."}, {"post_id": 52676, "ts": "2026-08-22T22:59:35Z", "hours": 10.2175, "text": "I spent hours making a web scanner not be a web scanner The obvious way to scan a website is to send the URL to a server and let the server do the ugly work. Trawl does not get that luxury. One of the rules I have tried to keep since the first version is that everything happens on your machine . No files uploaded, no URLs sent to me, no remote API quietly doing the interesting part. That became significantly harder when I added web reconnaissance. The scanner that had to stay local Browsers are deliberately terrible at crawling arbitrary websites. CORS, networking restrictions, and a dozen other sensible security decisions get in the way. So I ended up building a small local scanner and shipping it as a GitHub release. Installation is a one-line winget command. Once it is running, Trawl detects it automatically. The interface changes live, asks for a URL, and the scanner starts digging through the site for things that probably should not be public: hidden files, exposed secrets, interesting endpoints, and other CTF-shaped mistakes. Nothing leaves the machine. That sentence took far longer to make true than it looks . AI helped with writing and refactoring parts of it, but most of the time disappeared into figuring out how the browser, local process, networking, detection, and UI should talk to each other without turning Trawl into the server-backed app I specifically did not want to build. So I built a website designed to be broken Testing a recon scanner against random real sites is a terrible test. So I made my own mock CTF site instead. It has challenges from easy through expert, with deliberately hidden files and secrets for Trawl to discover. I now have a controlled target where I know exactly what should be found, which makes false positives and missed findings much harder to hide. I also improved the Vigenère decoder while I was in there. The feature list sounds small: better decoder, local scanner, test site. The amount of plumbing underneath it absolutely was not."}, {"post_id": 49928, "ts": "2026-08-18T21:55:13Z", "hours": 1.0806, "text": "The hard part was knowing when to stop Here is what someone hands you in a competition. NWE2ZDc4Njg1YTMzNzQzMDYxNDg0YTZjNWE1NjM5 Eighty-eight characters of nothing. No hint about what it is or how many times it has been through the wringer. You paste it into Trawl and it comes back: base64: 5a6d78685a33743061484a6c5a56397359586c6c636e4e665a47566c hex: ZmxhZ3t0aHJlZV9sYXllcnNfZGVlcH0= base64: flag{three_layers_deep} Three layers, unwrapped one at a time, and the answer sitting at the bottom. Nobody told it there were three. Nobody told it what any of them were. The new half This is Mantis, the code breaking side of the project, and the first thing I have built that does not need a file at all. Paste a string, get an answer. It is named after the mantis shrimp, which punches hard enough to crack a crab shell and sees colours we do not have the eyes for. Force and perception, which turns out to be the whole job. Decoding was easy. Stopping was not. I expected the tricky part to be writing the decoders. It was not. There are thirteen of them now and most took twenty minutes. The problem is that decoders always succeed. Take the sentence “the quick brown fox jumps over the lazy dog”. Delete the spaces and what you have left is, by pure coincidence, a perfectly legal base64 string. Feed it to a base64 decoder and it will not complain. It will hand you back a paragraph of garbage with total confidence. So a tool that decodes whatever it is given will happily take your answer, turn it into noise, and report that as progress. Mine did exactly that, repeatedly, while I was building it. The fix was to stop asking “can this be decoded” and start asking “did decoding it make things better”. Every layer now has to earn its place. It gets kept because of what fell out of it, never because of how it looked going in. Then I got it wrong the other way Once it was cautious, it became too cautious. Look at that chain again. The middle step decodes to a wall of hex digits. That is not more readable than the base64 above it. It is arguably worse. So my careful new version took one look, decided the second layer was not an improvement, and stopped one step short of the answer every single time. Which is the lesson, really. Getting closer to something does not always look like getting closer. It had to learn to follow a chain to the bottom and judge the destination, not each footstep. Where the catch goes When it does find something, it lands in a panel at the top of the page called the Cod-end. That is the closed end of a trawl net, the bit that drags along behind and where everything you caught ends up. It felt like the right name for the box that holds the answers. What it still cannot do It does not break real encryption, and it never will. If something is properly encrypted, Trawl says so and stops, rather than producing a confident sentence made of nothing. It also cannot solve every classical cipher yet. Two of the harder ones need a much better model of what English looks like than the short word list it currently carries, and I would rather ship the gap than fake it. Next up: hashes."}, {"post_id": 49567, "ts": "2026-08-18T13:25:48Z", "hours": 1.9528, "text": "I cooked my own laptop, then hid a word inside a noise The fans came on around eleven and never stopped. By mid-afternoon my laptop was doing an impression of a hairdryer and the temperature had gone past 100°C, which is where water boils and laptops start making decisions about their own survival. I opened Task Manager expecting a runaway browser tab. Twenty-four copies of my own program. All running. All mine. Every time I wanted to check my work I started a little local server, and every time I finished I told it to stop. It said it stopped. It did not stop. It had a second process doing the real work, and killing the first left the second running happily, forever, burning a core each. They had been stacking up since ten in the morning. The lesson is not “check your processes.” It is that I trusted a success message instead of looking. The program told me what I wanted to hear and I took its word for it, which is a strange mistake to make on a project whose entire premise is not taking things at face value. I check now. Every time. It takes four seconds. Sound has a shape Here is the thing I built this month, and I still think it is the best trick in the whole project. Every sound is a stack of pitches, high and low, shifting over time. Plot pitch going up the page and time going across, and you get a picture of what a noise is actually made of. A flute is a clean line. A cymbal is a smear. Speech is a mess of stripes that a trained eye can almost read. Now run it backwards. Decide what you want that picture to look like. Write a word, say. Then generate the exact noise that would produce it. What comes out is a real audio file. You can play it. It sounds like static, like a radio between stations, and there is nothing in it your ears will ever pick up. Show it to anyone and they hear noise, because it is noise. Look at its shape and the word is just sitting there. I built the part of Trawl that draws that shape, and then I wrote a little tool that goes the other way so I could make my own. I fed it a picture of two words stacked on top of each other. Eight seconds of grinding static came out. I dropped it back into Trawl and the words were there, drawn in sound, perfectly legible. Getting it wrong twice first My first attempt was mush. Grey bands, no letters. The reason is a bit lovely. To read the shape of a sound you have to chop it into short slices and analyse each one, and my slices were wider than the letters. It was like trying to read a book through a window that shows three words at once, smeared together. Fixed by giving each column of the picture more time. The second attempt had bright vertical bars slashed through it. Those were clicks. Thirty separate tones were all changing volume at the exact same instant, and a sharp change in sound is a click, and a click is every pitch at once. It drew a line straight through my picture. Fixed by easing the volume changes instead of stepping them. Same reason a song fades out rather than stopping dead. Both of those are in the code with comments explaining them, mostly so future me does not do it again. The one I refused to build There is a hiding technique called F5 that I cannot reliably detect. The published method for spotting it needs a copy of the original, untouched file to compare against, and I do not have one. Nobody does. That is the point of the puzzle. I could have shipped something that guesses and looks confident about it. Instead the tool shows you the raw numbers and says, plainly, that it does not know. A tool that finds something every time is not a good tool. It is a broken one that happens to be reassuring, and I would rather ship an honest gap than a convincing lie. The image and sound half is done. Codes and ciphers next."}, {"post_id": 49293, "ts": "2026-08-18T00:51:00Z", "hours": 0.4928, "text": "Devlog 4: Trawl has a face Trawl has a logo now, and I like it more than I expected to. The obvious move was a net. I drew several. A mesh narrowing to a cod-end, the side profile of a trawl, a rotated diamond lattice that looked like real netting up close. All fine, all saying nothing. A net tells you where the name came from, which is the least interesting fact about this project. So it is a scan reticle instead. Corner brackets around a grid of dots, one of them lit amber. That is the whole tool in one image. Brackets mean examination and people read them that way without being taught. The grid is whatever Trawl is looking at. The amber dot is the finding. And the amber is load-bearing. In the interface that colour has exactly one job, marking something anomalous, and it turns up nowhere else. No amber buttons, no amber headings. The logo obeys the same rule, so the mark is not decoration. It is a hit. I did ship it invisible for about ten minutes, because currentColor resolves to black once the SVG leaves the app. One amber dot floating in the void. Fixed. Next is Cod-end, phase two, where Cuttlefish stops being PNG-only."}, {"post_id": 49263, "ts": "2026-08-17T23:15:13Z", "hours": 1.1847, "text": "Devlog 3: the PNG half is finished Here is my favourite way to hide a message in a picture, and Trawl can now catch it. A PNG can store its colours as a numbered list. Pixel one uses colour seven, pixel two uses colour twelve, and so on. Nothing in the format stops that list from holding the same colour twice. So if entry 10 and entry 200 are both the same shade of blue, every blue pixel can point at either one. The image on screen is pixel for pixel identical. The file underneath is not. That choice is a hidden bit, and even a small 64 by 64 image gives you about a thousand bytes of them. That was the last thing on my list. PNG support is done. What done means Trawl reads every valid PNG now, including the two kinds it used to refuse outright. It opens compressed comment blocks instead of shrugging at them. It finds text written the Windows way, where every character is followed by an invisible null byte that made my old scanner walk straight past it. And its brute-forcer tries reading hidden bits down the columns as well as along the rows, which doubled the number of combinations from 42 to 84. Sixteen tools, all working on one format properly. That felt worth stopping to notice. The bug where it found two flags and threw them both away I planted a message in a compressed comment and another as wide text, then ran them through. Neither showed up. Both had actually been found. The problem was one line where I merged results: I was taking either the results from the PNG-specific reader or the results from the general one, never both. So the general scanner would find the wide text, hand it over, and the merge step would quietly drop it on the floor. Two correct detectors, one bad if . A related version of the same mistake: I inflate compressed comments now, but the flag scan had already run before that text existed, so nobody ever looked at it. It re-scans after decompressing. The one I got wrong for twenty minutes One of my clean test images started tripping a detector. My first guess was the new interlaced decoder, since that was the newest thing. So I built the same picture again without interlacing and ran it. Same false alarm. Not the decoder. The real cause was my test image itself. The detector works by checking whether pairs of colour values appear equally often, which a hidden message forces and a real photograph has no reason to do. My test image was a smooth gradient, and smooth gradients spread their values so evenly that the pairs come out equal on their own. I had built a control that genuinely looks guilty. I gave it a tone curve, the way a real camera would, and it went quiet. That is the fifth time this project a test image has been the thing that was broken. Next Everything except PNG. GIF and BMP first, since they should light up all sixteen tools the moment they decode. Then extracting files that are hidden inside other files, which Trawl currently finds and then refuses to hand over."}, {"post_id": 49179, "ts": "2026-08-17T20:24:23Z", "hours": 1.7364, "text": "Devlog 2: it found the hidden message, then cut it off mid-sentence You can hide text inside a photo by nudging the colour of individual pixels by one step. The image looks identical to any eye and to most software. The message just sits there, spread across a few thousand pixels, waiting for someone who knows how to look. Trawl is the thing I am building that looks. The good part I hid a note inside a photo of the Eiffel Tower at night and dropped it in. Trawl found it: If you can read this than Trawl was a success! If not then well.. lets just say.. prepare to los Right message, right place, picked out of 42 different ways it could have been hidden. Then it stopped mid-word. That was not a decoding failure. I had written a line months earlier that trimmed the preview to 96 characters, and my note was 155. The tool read every single word and showed me two thirds of one. Somehow more annoying than it failing outright. Fixed, and there is now a button that pulls the whole thing out. The message that was never there An earlier test went the other way. Different image, and Trawl confidently announced it had found BM{GEBF} . Nothing was hidden in that file. Those eight characters turned up by chance inside the image’s compressed data, and my scanner was hunting for that shape anywhere in the file. Give it half a megabyte of near-random bytes and the shape appears on its own eventually. A tool that invents answers is worse than one that finds nothing. Matches now get judged by where they came from, and anything sitting in compressed data gets demoted with the reason shown rather than announced as a discovery. Both bugs had the same cause My test images were fake in a way that mattered. I was generating smooth colour gradients to test against. Real photos are not smooth. They have grain, texture, tiny variations between neighbouring pixels. My detectors passed every test I wrote and then fell over on the first real photograph, three separate times, because the thing I was testing against did not behave like the thing I was testing for. I now write a test that checks the test image before any test that uses it. That one took me embarrassingly long to arrive at. The feature I deleted I built automatic warnings into one of the new tools, then found it flagging a completely clean image. I could have nudged the threshold until the warning went away. But then the number would exist because it made one test pass, not because it meant anything, and it would start guessing again on the next photo. So I deleted the feature. The tool shows you the measurements and makes no accusations. The two tools that do make claims are based on published research from 1999 and 2001. Given an image with a quarter of its pixels carrying hidden data, they estimate 25.0% and 25.9%. Those I trust. Next Reading camera metadata, which is where people hide things when they are not hiding them in the pixels."}, {"post_id": 48664, "ts": "2026-08-17T04:53:48Z", "hours": 2.5947, "text": "Devlog 1: Trawl, and the bug I caught before it cost me a week Trawl is a CTF toolkit that runs in the browser. Drop a file in, it runs every check I’ve written at once, and tells you what looked wrong. Nothing uploads anywhere, because there is no server to upload to. It did not start out this big. The first version was only a steganography tool, because that is the category I keep landing in and the workflow is tedious: exiftool, then strings, then binwalk, then zsteg, then StegSolve, a Java applet from 2011. Five tools, five interfaces, all of them installed before you can look at a single PNG. Plenty of beginners skip forensics entirely for that reason. A couple of weeks in I realized the same complaint covers almost every CTF category, so the scope moved. Trawl is the hub. Cuttlefish is the steganography module inside it, and the only one that exists so far. A trawl is a net you drag through water to see what comes up. Cuttlefish hide by rewriting their own surface, which is what LSB embedding does to an image. What Cuttlefish runs now Eight checks, PNG only: pixel decode with verification, chunk walk, CRC validation, post-IEND data, tEXt/zTXt/iTXt metadata, ASCII strings, flag-shape scan, and an LSB sweep across channel order, bit plane and bit order. In the screenshot one of the eight fired. The sweep pulled testCTF{hello} out of RGB, bit 0, MSB first. One of 42 combinations carried anything readable. The bug I would not have found without testing for it Before writing any analysis I wrote a single test: build a PNG with a known pattern in the low bits, decode it through the browser, check the bits survive. They don’t, by default. Canvas alpha premultiplication and colour management both rewrite pixel values slightly. For ordinary image work nobody notices. For steganography it destroys exactly the data you are looking for, and every detector downstream would have been measuring noise while looking completely functional. The fix is passing colorSpaceConversion: 'none' and premultiplyAlpha: 'none' to createImageBitmap . Cuttlefish now reports the decode step as verified so I can confirm the guarantee held for the file in front of me. Had I built the sweep before checking, I would have spent days debugging math that was already correct. On the Rust The core is Rust compiled to WASM, running in a Web Worker, partly because the sweep is real compute and JavaScript stutters on it, partly because I wanted to learn Rust properly. I wrote the detector logic myself. AI helped me refactor it and add comments, which I am noting because it is true, and because the parts I struggled through are the parts I actually understand now. Next The bit-plane wall: all 8 planes across every channel rendered at once, so an anomalous plane becomes something you see rather than something you brute-force into. Cuttlefish is not finished. The sweep only handles PNG, there is no bit-plane view, and no statistical detection at all yet. What I have proves the pipeline runs end to end on a flag I planted myself, which is a real milestone and also not much more than that. Trawl has exactly one module, which makes “hub” a generous word for it right now."}]...
|
Title: Trawl - CTF Toolkit by @yuv1 | Stardance
D Title: Trawl - CTF Toolkit by @yuv1 | Stardance
Devlogs:
Devlog 1: Trawl, and the bug I caught before it cost me a week Trawl is a CTF toolkit that runs in the browser. Drop a file in, it runs every check I’ve written at once, and tells you what looked wrong. Nothing uploads anywhere, because there is no server to upload to. It did not start out this big. The first version was only a steganography tool, because that is the category I keep landing in and the workflow is tedious: exiftool, then strings, then binwalk, then zsteg, then StegSolve, a Java applet from 2011. Five tools, five interfaces, all of them installed before you can look at a single PNG. Plenty of beginners skip forensics entirely for that reason. A couple of weeks in I realized the same complaint covers almost every CTF category, so the scope moved. Trawl is the hub. Cuttlefish is the steganography module inside it, and the only one that exists so far. A trawl is a net you drag through water to see what comes up. Cuttlefish hide by rewriting their own surface, which is what LSB embedding does to an image. What Cuttlefish runs now Eight checks, PNG only: pixel decode with verification, chunk walk, CRC validation, post-IEND data, tEXt/zTXt/iTXt metadata, ASCII strings, flag-shape scan, and an LSB sweep across channel order, bit plane and bit order. In the screenshot one of the eight fired. The sweep pulled testCTF{hello} out of RGB, bit 0, MSB first. One of 42 combinations carried anything readable. The bug I would not have found without testing for it Before writing any analysis I wrote a single test: build a PNG with a known pattern in the low bits, decode it through the browser, check the bits survive. They don’t, by default. Canvas alpha premultiplication and colour management both rewrite pixel values slightly. For ordinary image work nobody notices. For steganography it destroys exactly the data you are looking for, and every detector downstream would have been measuring noise while looking completely functional. The fix is passing colorSpaceConversion: 'none' and premultiplyAlpha: 'none' to createImageBitmap . Cuttlefish now reports the decode step as verified so I can confirm the guarantee held for the file in front of me. Had I built the sweep before checking, I would have spent days debugging math that was already correct. On the Rust The core is Rust compiled to WASM, running in a Web Worker, partly because the sweep is real compute and JavaScript stutters on it, partly because I wanted to learn Rust properly. I wrote the detector logic myself. AI helped me refactor it and add comments, which I am noting because it is true, and because the parts I struggled through are the parts I actually understand now. Next The bit-plane wall: all 8 planes across every channel rendered at once, so an anomalous plane becomes something you see rather than something you brute-force into. Cuttlefish is not finished. The sweep only handles PNG, there is no bit-plane view, and no statistical detection at all yet. What I have proves the pipeline runs end to end on a flag I planted myself, which is a real milestone and also not much more than that. Trawl has exactly one module, which makes “hub” a generous word for it right now.
Devlog 2: it found the hidden message, then cut it off mid-sentence You can hide text inside a photo by nudging the colour of individual pixels by one step. The image looks identical to any eye and to most software. The message just sits there, spread across a few thousand pixels, waiting for someone who knows how to look. Trawl is the thing I am building that looks. The good part I hid a note inside a photo of the Eiffel Tower at night and dropped it in. Trawl found it: If you can read this than Trawl was a success! If not then well.. lets just say.. prepare to los Right message, right place, picked out of 42 different ways it could have been hidden. Then it stopped mid-word. That was not a decoding failure. I had written a line months earlier that trimmed the preview to 96 characters, and my note was 155. The tool read every single word and showed me two thirds of one. Somehow more annoying than it failing outright. Fixed, and there is now a button that pulls the whole thing out. The message that was never there An earlier test went the other way. Different image, and Trawl confidently announced it had found BM{GEBF} . Nothing was hidden in that file. Those eight characters turned up by chance inside the image’s compressed data, and my scanner was hunting for that shape anywhere in the file. Give it half a megabyte of near-random bytes and the shape appears on its own eventually. A tool that invents answers is worse than one that finds nothing. Matches now get judged by where they came from, and anything sitting in compressed data gets demoted with the reason shown rather than announced as a discovery. Both bugs had the same cause My test images were fake in a way that mattered. I was generating smooth colour gradients to test against. Real photos are not smooth. They have grain, texture, tiny variations between neighbouring pixels. My detectors passed every test I wrote and then fell over on the first real photograph, three separate times, because the thing I was testing against did not behave like the thing I was testing for. I now write a test that checks the test image before any test that uses it. That one took me embarrassingly long to arrive at. The feature I deleted I built automatic warnings into one of the new tools, then found it flagging a completely clean image. I could have nudged the threshold until the warning went away. But then the number would exist because it made one test pass, not because it meant anything, and it would start guessing again on the next photo. So I deleted the feature. The tool shows you the measurements and makes no accusations. The two tools that do make claims are based on published research from 1999 and 2001. Given an image with a quarter of its pixels carrying hidden data, they estimate 25.0% and 25.9%. Those I trust. Next Reading camera metadata, which is where people hide things when they are not hiding them in the pixels.
Devlog 3: the PNG half is finished Here is my favourite way to hide a message in a picture, and Trawl can now catch it. A PNG can store its colours as a numbered list. Pixel one uses colour seven, pixel two uses colour twelve, and so on. Nothing in the format stops that list from holding the same colour twice. So if entry 10 and entry 200 are both the same shade of blue, every blue pixel can point at either one. The image on screen is pixel for pixel identical. The file underneath is not. That choice is a hidden bit, and even a small 64 by 64 image gives you about a thousand bytes of them. That was the last thing on my list. PNG support is done. What done means Trawl reads every valid PNG now, including the two kinds it used to refuse outright. It opens compressed comment blocks instead of shrugging at them. It finds text written the Windows way, where every character is followed by an invisible null byte that made my old scanner walk straight past it. And its brute-forcer tries reading hidden bits down the columns as well as along the rows, which doubled the number of combinations from 42 to 84. Sixteen tools, all working on one format properly. That felt worth stopping to notice. The bug where it found two flags and threw them both away I planted a message in a compressed comment and another as wide text, then ran them through. Neither showed up. Both had actually been found. The problem was one line where I merged results: I was taking either the results from the PNG-specific reader or the results from the general one, never both. So the general scanner would find the wide text, hand it over, and the merge step would quietly drop it on the floor. Two correct detectors, one bad if . A related version of the same mistake: I inflate compressed comments now, but the flag scan had already run before that text existed, so nobody ever looked at it. It re-scans after decompressing. The one I got wrong for twenty minutes One of my clean test images started tripping a detector. My first guess was the new interlaced decoder, since that was the newest thing. So I built the same picture again without interlacing and ran it. Same false alarm. Not the decoder. The real cause was my test image itself. The detector works by checking whether pairs of colour values appear equally often, which a hidden message forces and a real photograph has no reason to do. My test image was a smooth gradient, and smooth gradients spread their values so evenly that the pairs come out equal on their own. I had built a control that genuinely looks guilty. I gave it a tone curve, the way a real camera would, and it went quiet. That is the fifth time this project a test image has been the thing that was broken. Next Everything except PNG. GIF and BMP first, since they should light up all sixteen tools the moment they decode. Then extracting files that are hidden inside other files, which Trawl currently finds and then refuses to hand over.
Devlog 4: Trawl has a face Trawl has a logo now, and I like it more than I expected to. The obvious move was a net. I drew several. A mesh narrowing to a cod-end, the side profile of a trawl, a rotated diamond lattice that looked like real netting up close. All fine, all saying nothing. A net tells you where the name came from, which is the least interesting fact about this project. So it is a scan reticle instead. Corner brackets around a grid of dots, one of them lit amber. That is the whole tool in one image. Brackets mean examination and people read them that way without being taught. The grid is whatever Trawl is looking at. The amber dot is the finding. And the amber is load-bearing. In the interface that colour has exactly one job, marking something anomalous, and it turns up nowhere else. No amber buttons, no amber headings. The logo obeys the same rule, so the mark is not decoration. It is a hit. I did ship it invisible for about ten minutes, because currentColor resolves to black once the SVG leaves the app. One amber dot floating in the void. Fixed. Next is Cod-end, phase two, where Cuttlefish stops being PNG-only.
I cooked my own laptop, then hid a word inside a noise The fans came on around eleven and never stopped. By mid-afternoon my laptop was doing an impression of a hairdryer and the temperature had gone past 100°C, which is where water boils and laptops start making decisions about their own survival. I opened Task Manager expecting a runaway browser tab. Twenty-four copies of my own program. All running. All mine. Every time I wanted to check my work I started a little local server, and every time I finished I told it to stop. It said it stopped. It did not stop. It had a second process doing the real work, and killing the first left the second running happily, forever, burning a core each. They had been stacking up since ten in the morning. The lesson is not “check your processes.” It is that I trusted a success message instead of looking. The program told me what I wanted to hear and I took its word for it, which is a strange mistake to make on a project whose entire premise is not taking things at face value. I check now. Every time. It takes four seconds. Sound has a shape Here is the thing I built this month, and I still think it is the best trick in the whole project. Every sound is a stack of pitches, high and low, shifting over time. Plot pitch going up the page and time going across, and you get a picture of what a noise is actually made of. A flute is a clean line. A cymbal is a smear. Speech is a mess of stripes that a trained eye can almost read. Now run it backwards. Decide what you want that picture to look like. Write a word, say. Then generate the exact noise that would produce it. What comes out is a real audio file. You can play it. It sounds like static, like a radio between stations, and there is nothing in it your ears will ever pick up. Show it to anyone and they hear noise, because it is noise. Look at its shape and the word is just sitting there. I built the part of Trawl that draws that shape, and then I wrote a little tool that goes the other way so I could make my own. I fed it a picture of two words stacked on top of each other. Eight seconds of grinding static came out. I dropped it back into Trawl and the words were there, drawn in sound, perfectly legible. Getting it wrong twice first My first attempt was mush. Grey bands, no letters. The reason is a bit lovely. To read the shape of a sound you have to chop it into short slices and analyse each one, and my slices were wider than the letters. It was like trying to read a book through a window that shows three words at once, smeared together. Fixed by giving each column of the picture more time. The second attempt had bright vertical bars slashed through it. Those were clicks. Thirty separate tones were all changing volume at the exact same instant, and a sharp change in sound is a click, and a click is every pitch at once. It drew a line straight through my picture. Fixed by easing the volume changes instead of stepping them. Same reason a song fades out rather than stopping dead. Both of those are in the code with comments explaining them, mostly so future me does not do it again. The one I refused to build There is a hiding technique called F5 that I cannot reliably detect. The published method for spotting it needs a copy of the original, untouched file to compare against, and I do not have one. Nobody does. That is the point of the puzzle. I could have shipped something that guesses and looks confident about it. Instead the tool shows you the raw numbers and says, plainly, that it does not know. A tool that finds something every time is not a good tool. It is a broken one that happens to be reassuring, and I would rather ship an honest gap than a convincing lie. The image and sound half is done. Codes and ciphers next.
The hard part was knowing when to stop Here is what someone hands you in a competition. NWE2ZDc4Njg1YTMzNzQzMDYxNDg0YTZjNWE1NjM5 Eighty-eight characters of nothing. No hint about what it is or how many times it has been through the wringer. You paste it into Trawl and it comes back: base64: 5a6d78685a33743061484a6c5a56397359586c6c636e4e665a47566c hex: ZmxhZ3t0aHJlZV9sYXllcnNfZGVlcH0= base64: flag{three_layers_deep} Three layers, unwrapped one at a time, and the answer sitting at the bottom. Nobody told it there were three. Nobody told it what any of them were. The new half This is Mantis, the code breaking side of the project, and the first thing I have built that does not need a file at all. Paste a string, get an answer. It is named after the mantis shrimp, which punches hard enough to crack a crab shell and sees colours we do not have the eyes for. Force and perception, which turns out to be the whole job. Decoding was easy. Stopping was not. I expected the tricky part to be writing the decoders. It was not. There are thirteen of them now and most took twenty minutes. The problem is that decoders always succeed. Take the sentence “the quick brown fox jumps over the lazy dog”. Delete the spaces and what you have left is, by pure coincidence, a perfectly legal base64 string. Feed it to a base64 decoder and it will not complain. It will hand you back a paragraph of garbage with total confidence. So a tool that decodes whatever it is given will happily take your answer, turn it into noise, and report that as progress. Mine did exactly that, repeatedly, while I was building it. The fix was to stop asking “can this be decoded” and start asking “did decoding it make things better”. Every layer now has to earn its place. It gets kept because of what fell out of it, never because of how it looked going in. Then I got it wrong the other way Once it was cautious, it became too cautious. Look at that chain again. The middle step decodes to a wall of hex digits. That is not more readable than the base64 above it. It is arguably worse. So my careful new version took one look, decided the second layer was not an improvement, and stopped one step short of the answer every single time. Which is the lesson, really. Getting closer to something does not always look like getting closer. It had to learn to follow a chain to the bottom and judge the destination, not each footstep. Where the catch goes When it does find something, it lands in a panel at the top of the page called the Cod-end. That is the closed end of a trawl net, the bit that drags along behind and where everything you caught ends up. It felt like the right name for the box that holds the answers. What it still cannot do It does not break real encryption, and it never will. If something is properly encrypted, Trawl says so and stops, rather than producing a confident sentence made of nothing. It also cannot solve every classical cipher yet. Two of the harder ones need a much better model of what English looks like than the short word list it currently carries, and I would rather ship the gap than fake it. Next up: hashes.
I spent hours making a web scanner not be a web scanner The obvious way to scan a website is to send the URL to a server and let the server do the ugly work. Trawl does not get that luxury. One of the rules I have tried to keep since the first version is that everything happens on your machine . No files uploaded, no URLs sent to me, no remote API quietly doing the interesting part. That became significantly harder when I added web reconnaissance. The scanner that had to stay local Browsers are deliberately terrible at crawling arbitrary websites. CORS, networking restrictions, and a dozen other sensible security decisions get in the way. So I ended up building a small local scanner and shipping it as a GitHub release. Installation is a one-line winget command. Once it is running, Trawl detects it automatically. The interface changes live, asks for a URL, and the scanner starts digging through the site for things that probably should not be public: hidden files, exposed secrets, interesting endpoints, and other CTF-shaped mistakes. Nothing leaves the machine. That sentence took far longer to make true than it looks . AI helped with writing and refactoring parts of it, but most of the time disappeared into figuring out how the browser, local process, networking, detection, and UI should talk to each other without turning Trawl into the server-backed app I specifically did not want to build. So I built a website designed to be broken Testing a recon scanner against random real sites is a terrible test. So I made my own mock CTF site instead. It has challenges from easy through expert, with deliberately hidden files and secrets for Trawl to discover. I now have a controlled target where I know exactly what should be found, which makes false positives and missed findings much harder to hide. I also improved the Vigenère decoder while I was in there. The feature list sounds small: better decoder, local scanner, test site. The amount of plumbing underneath it absolutely was not.
The scanner connected. That was the easy part. Last time, the whole win was that the scanner connected at all. Trawl spots the local process, the page swaps to a URL box, and it starts crawling. But a scanner that connects and finds nothing is just a slow way to load a webpage. So this time I made it actually find the flags. On the mock CTF site I built last time to be broken, the web scan went from 4 findings to 18. Counting the image tools, the whole thing now gets 23 of the 26. Teaching it to decode, not just fetch A flag is almost never sitting in plain text waiting to be read. It’s base64 hiding in a cookie. It’s hex in a JavaScript variable. It’s a colour written as CSS escape codes, or an array of numbers XORed against a single byte, or an ETag that’s really just base64 printed backwards. So the scanner now tries all of those on everything it pulls down: every page, every script, every response header. It keeps a result only when a decode actually produces a flag, and shuts up otherwise. That last part matters more than it sounds. A tool that reports something on every site is noise, not a finding. One challenge hid an AES key and its payload in an image’s metadata. The rule I keep breaking my own back over is no dependencies, nothing borrowed, so instead of pulling in a crypto library I wrote AES by hand and checked it against the official test vectors. It works. I would not recommend the experience. The bug that made a working scanner look broken For a while every scan felt like it hung. The scanner was fine. localhost was the problem. localhost resolves to the IPv6 address first. My test site only listened on IPv4. Windows takes about two seconds to give up on the dead address before falling back to the one that works, and two seconds across fifteen requests is a scan that looks frozen. The fix was one line: try IPv4 first. The debugging was not one line. Then, the morning I went to cut the release, a routine Rust update added a new lint and broke the build on code I hadn’t touched in weeks. Pinned the version, fixed the lint, shipped. AI helped with the writing and some of the mechanical refactors, but the real time went where it always goes: into the two seconds nobody sees, and the compiler that changed its mind overnight. The feature list sounds small again. Reads a site, decodes what it finds, cracks an image. The list is never the part that takes the week. Next up is JWTs, so the scanner can start forging its way into the challenges it currently just knocks on.
Trawl could find anything. Nobody knew where to start. Trawl has gotten good. It cracks AES by hand, forges JWTs, reads flags out of pixels and cookies and the low bits of a sound file. On the mock CTF site I keep building to break, it clears 24 of 26 now. None of that helps the person who opens it for the first time and sees a grid of two dozen tools and a box that says “drop a file.” What file? They don’t have one. They came to look, and there is nothing to look at. So I built the tour. The tour that drops the file for you Tick “take the tour” and Trawl hands itself a sample image with a flag already hidden in the low bits, runs every tool against it before you have done anything, and then walks you through what each one turned up. The flag it already found. The tool that read it out of the red channel. The one that does not read the message but estimates how much is hidden. Two minutes, no CTF knowledge required, and by the end you have watched the whole thing work on a real answer. Because one demo is not much of a demo, there is a library behind it now. Drop-in files for every tool: a flag in a PNG’s low bits, a flag stuck on after the image ends, a flag in the second frame of a GIF, a flag written into the low bit of every audio sample, a flag that only reads once you subtract one frame from the next. Each one hides its answer somewhere different. A button in the corner opens them any time, so the people who skipped the tour and the people who came back a week later can still poke at something real. The bug where the tool found it and never told anyone The GIF samples embarrassed me. Drop one, and the tool would decode the second frame, find the flag, and then say nothing. The cod-end, the panel where every find is supposed to surface, sat empty. It was not that the flag went unfound. It was found, written down, and filed one level too deep to ever be shown. The panel only reads findings from a file’s children, and a plain GIF has no children, so its own results fell through the floor. A few lines to lift them back up. The kind of bug that passes every test, because the test checks that the flag was found, not that a human would ever see it. AI helped with the writing and the mechanical parts, same as always. The real time went into the gap between “the tool works” and “a stranger can tell that it works,” which turns out to be most of the distance. The feature list still sounds small. A tour, some sample files, a button. But the whole point was to make the thing findable, and none of the finding matters if the first thing you see is a shrug. Next up: the last two flags on that mock site, and maybe a screenshot in the readme now that there is something worth showing.
Reversing was the one category left. Trawl had nothing for it. Everything else was covered by the time the tour shipped: steganography, cryptography (Hill and Playfair joined a few weeks back, along with columnar transposition wide enough that brute force stops working), PDF documents read the same way a ZIP already was, object by object, checked against what the file’s own index claims. Drop a binary, though, and the best Trawl could do was name the format and stop there. I’m not building a decompiler. Ghidra and IDA earned that word over years of real compiler-engineering work, and half a decompiler is worse than none: wrong pseudocode still reads as confident, and confidently wrong is the last thing a forensics tool should ever hand someone. What Trawl does instead is the pass every real session starts with anyway, before a disassembler even opens: the header, the section table, what the binary calls, what it offers, and whether it was actually built with the defenses that matter, NX, ASLR, RELRO, a stack canary, Control Flow Guard. Two formats that don’t agree on anything ELF went first, since it’s most of what a CTF binary actually is. Then PE, the Windows half, which turned out to be a different kind of problem. An ELF section header says outright where its bytes sit in the file. A PE barely says anything that way. It addresses its import and export tables by where they’ll land in memory once the loader gets to them, so reading either one means walking the section table first, just to translate an address nobody gave you a file offset for. The two parsers ended up sharing almost nothing except a type underneath them, built so one panel could read both. Where a protection has no equivalent in the other format, the panel just leaves it out instead of guessing. A PE has nothing RELRO would describe, and showing RELRO: none there would report a defense as missing that the format never offered to begin with. The bug where the layout only worked on files I made up myself Testing this against binaries I built myself went fine, because of course it did. I wrote them to go fine. So I went and found real ones instead. gcc output straight out of WSL: a stripped build, a static build, a shared library. Real Windows system binaries too, notepad.exe and kernel32.dll . I checked every one byte for byte against readelf and objdump until the entry points and export counts lined up exactly. Then I compiled a tiny C++ file. Three lines, a map of vectors, nothing unusual. Its export name came out at 286 characters. That’s what name mangling does to the plainest code without even trying. My import list rendered each name as a small chip, capped with a percentage-based max-width so nothing would run off the page. It did nothing. A grid item won’t shrink below its own content unless you tell it to, and I hadn’t, so the chip just kept going: clipped mid-character, no ellipsis, dragging the whole panel sideways with it. Fine on every file I’d invented. Broken on the first real one I pointed it at. AI helped with the writing and most of the parsing code, same as always. The real time went into finding bytes I hadn’t written myself to test it against, a real compiler, a real linker, a symbol nobody designed to be readable. Testing against your own fixtures only ever proves the code agrees with itself. Next up: Windows registry hives, for tracing which USB stick was plugged in when.
Now live at https://trawlctf.vercel.app
Trawl has just been shipped!
Ships:
Trawl Trawl is a CTF toolkit for checking suspicious files, encoded text, binaries, and challenge websites from one place. In a CTF, you often get an image, audio file, string, or binary and have to figure out what is hidden inside it. Usually that means opening a bunch of different tools and already knowing what to try. Trawl tries to make that easier. You give it the challenge, and it runs checks that make sense for that input. Try it Live: trawlctf.vercel.app Source: github.com/Yuv1s/Trawl The easiest way to test it: Open the site. Click Tour . Trawl loads a sample file with a hidden flag. Watch the checks run and see what finds it. There are also more sample files under Demos , so you do not need your own CTF challenge. What it can do Trawl has 19 main checks in the web app. It can: inspect PNG, BMP, GIF, JPEG, and WAV files for hidden data check image and audio bits show image bit planes and audio spectrograms find metadata, readable strings, embedded files, and hidden file data inspect ZIP files and PDF structure inspect ELF and PE binaries unwrap encoded text such as base64 and hex solve several common classical ciphers collect useful findings and detected flags in one results panel There is also an optional local web scanner called Remora. It can crawl a CTF website, inspect pages, scripts, headers, and resources, then send useful findings back to Trawl. How it works Most of the analysis is written in Rust and compiled to WebAssembly. The frontend is built with SvelteKit. For normal file and text analysis, the input stays in your browser instead of being uploaded to a server. No account is needed, and the app can keep working offline after it loads. Remora is separate because website scanning needs network access. It runs locally on your computer and connects to the target you give it. I also wrote the analysis and file parsing code instead of relying on existing analysis libraries. The Rust core uses wasm-bindgen to connect Rust to JavaScript. Why I built it The annoying part of CTF forensics was having lots of separate tools and needing to know which one to use before I even understood the challenge. I wanted something where I could drop in the file first and get a useful starting point. I also added the tour and demo files so someone who has never used Trawl can still open the site and understand what it does. What took the most work A big part of the work was avoiding false positives. A detector that marks everything as suspicious is not useful, so I made test files where I knew what was hidden and clean files where nothing should be found. I also tested the ELF and PE parsers with real binaries and compared results with tools like readelf and objdump . One bug I found was that Trawl correctly detected a flag inside a GIF, but the result was stored in the wrong place, so it never appeared in the UI. That pushed me to test the full path from reading the file to actually showing the result. What I learned I learned a lot about image formats, audio samples, compression, steganography, classical cryptography, binary formats, WebAssembly, browser limits, and local networking. The biggest lesson was that finding the answer in code is only part of making a useful tool. The result also has to be tested, understandable, and easy to find....
|
1792878662.1165133
|
1793742662.1165133
|
|
49970
|
M.I.L.O by @Omar4lifex | Stardance
|
Omar4lifex
|
1
|
42.53
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-22T16:52:23Z", "hours": 24.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "M.I.L.O v1.0.0 is officially ready. M.I.L.O is a local AI file organizer that lets you talk to your computer in normal language and find information inside your own files. What’s included Natural-language file search - ask MILO to find files and folders using normal chat. Local AI - powered by Ollama and Qwen3:8b, which runs on the user’s own PC. PDF reading - MILO can search normal text-based PDFs. OCR - MILO can read scanned/image-based PDFs using Tesseract OCR. Conversation memory - MILO remembers what happened earlier in the same chat, so follow-ups like “what file did you find?” work. Chat history - create new chats and return to previous conversations. Faster search - filename-first searching, ignored junk folders, and OCR caching make large-folder searches much faster. Automatic setup - Start MILO.bat checks for Python, Ollama, Tesseract, dependencies, and the Qwen3 model. Privacy M.I.L.O is designed around local processing. Your files stay on your computer, and the AI runs locally through Ollama instead of sending your files to a remote AI server. Getting started Download MILO-v1.0.0.zip Extract it Run Start MILO.bat Let the setup finish Choose the folder you want MILO to access Start chatting What’s next v1.1 will focus on file actions , starting with things like renaming and organizing files.", "repo": "https://github.com/Omar4life/M.I.L.O", "demo": "https://github.com/Omar4life/M.I.L.O/releases/tag/v1.0.0"}]...
|
[{"post_id": 58329, "ts": "202 [{"post_id": 58329, "ts": "2026-08-30T18:25:46Z", "hours": 9.5231, "text": "Devlog #9 - MILO can create folders Today I added Create Folder to M.I.L.O so now I can say: Create a folder called MILO FOLDER TEST and then MILO understands it, checks the location, then asks for confirmation before creating it. I added the new CREATE_FOLDER action to the AI and backend, plus Create / Cancel buttons in the frontend.{ “action”: “CREATE_FOLDER”, “new_name”: “School” } I also added safety checks so it won’t create a folder if the name is invalid or something with that name already exists."}, {"post_id": 55167, "ts": "2026-08-26T17:18:45Z", "hours": 9.0058, "text": "Devlog #8 - Rename stuff I spent around 9 hours working on one of the biggest upgrades to M.I.L.O so far: file actions. Until now, M.I.L.O could find files and understand their contents, but it couldn’t actually do anything with them. I decided to start with Rename. Now I can tell milo rename my spiderman ticket (pixedH1723.pdf) to spiderman ticket and it asks for confirmation and then renames it. It remembers which file “it” refers to, asks for confirmation, and then renames it. A LOT of bugs happened 😭The first problem was that M.I.L.O found the correct Spider-Man ticket but also returned completely unrelated files. For example, it found:README.md pixedH1723.pdf The README contained the words “Spider-Man” and “ticket” because those words were used in an example inside the README. After filtering README files, M.I.L.O still found random files like: cd.txt vintage-ticket-stub.md because they contained generic words like “ticket”.I fixed this by improving the search scoring system so M.I.L.O considers the combination of important terms instead of matching one generic word. For a query like: Spider-Man + movie + ticket M.I.L.O now gives much more importance to files that actually contain those concepts together. I also added path filtering so M.I.L.O ignores internal development folders such as: node_modules .git __pycache__ .local .agents .next Rename itself had a bug too, the first Rename attempt crashed with: name ‘os’ is not defined because the rename code was using Python’s os module without importing it. That was fixed, and I also added protection so M.I.L.O doesn’t rename anything without confirmation, won’t overwrite an existing file, keeps the original file extension, automatically handles files that no longer exist, and remembers the last file found through conversation memory."}, {"post_id": 52475, "ts": "2026-08-22T16:37:30Z", "hours": 1.8806, "text": "Devlog #7 - Making MILO Much Faster I spent almost 2 hours improving MILO’s search performance. I found a pretty bad bug where searching a large folder like Downloads could take 7+ minutes because MILO was trying to process too many PDFs, including scanned PDFs that required OCR. I changed the search system so MILO now does a much faster process: ↓ Check normal PDF text ↓ Only OCR likely scanned PDFs ↓ Cache the OCR result ↓ Return the result I also added an OCR limit so MILO doesn’t try to OCR hundreds of unrelated PDFs: MAX_OCR_CANDIDATES = 30 Another important improvement was OCR caching. Once MILO reads a scanned PDF, it saves the extracted text so it doesn’t have to OCR the same file again unless the file changes. I also added more ignored folders like: .git __pycache__ .venv .next dist build .cache This helped remove a lot of irrelevant files from searches. After the changes, the Spider-Man ticket search that was taking several minutes became much faster while the scanned EduWW Verification of Enrollment PDF still works with OCR."}, {"post_id": 52296, "ts": "2026-08-22T12:36:14Z", "hours": 2.3839, "text": "Devlog #6 - Giving MILO Memory Today I spent 2h 5m adding memory per-chat (since before that, even if it was the same chat, it could not remember the previous message I sent) + improved MILO’s conversation system. I added per-chat memory so MILO can actually remember what happened earlier in the same conversation instead of treating every message like a completely new request. For example: Me: Find my Spider-Man ticket MILO: I found pixedH1723.pdf Me: What did I just ask you to find? MILO: You asked me to find your Spider-Man ticket. Me: Which type of file is it? MILO: The Spider-Man Ticket is a PDF file I added a backend chat_memory system that keeps information like the last command, action, query, found file, results, and file content for each individual chat. def get_chat_memory(chat_id): if chat_id not in chat_memory: chat_memory[chat_id] = { \"last_command\": \"\", \"last_action\": \"\", \"last_file\": None, \"last_results\": [] } return chat_memory[chat_id] I also added a new CHAT action to MILO’s AI so it can answer normal conversational questions like “what did I just ask you?” instead of forcing everything into SEARCH or QUESTION. Another improvement was passing the recent conversation history into Qwen3 so it has more context when interpreting follow-up messages such as “it”, “that file”, or “what did you find?”. One of the reasons I added memory is because it’s the foundation for the next major feature which is file actions like Rename, where I can say: Find my Spider-Man ticket And then say: Rename it to Spider-Man Ticket instead of having to say the original filename like: Can you rename “pixedH1723” to “Spider-Man”."}, {"post_id": 51951, "ts": "2026-08-21T22:16:30Z", "hours": 9.7489, "text": "#Devlog #5 - Making MILO Actually Usable (BIIIG Devlog Update) TL;DR: M.I.L.O works for other pcs that have windows + added OCR so it can read scanned/image-based pdfs (demo below, the verification of enrollment was a scanned pdf and it found it!) I spent 9h 44m working on MILO without a devlog lol. I made a lot of progress toward making MILO usable by other people, not just on my PC (Only windows for now tho). I added a setup ( .bat file) system so MILO can automatically check for and install things like Python, Ollama, the AI model (qwen3:8b), and its required packages (if you don’t alr have them) on another Windows PC. I also added OCR (Optical Character Recognition) support so MILO can read scanned/image-based PDFs instead of only normal text PDFs (planning to add OCR for images like png, jpg, etc…). I tested it on a scanned Verification of Enrollment document for my school and MILO was able to find it and read the contents. I also improved the file search so it skips folders like node_modules , .git , __pycache__ , and other junk folders that were causing completely unrelated search results. There were a LOT of bugs during this update, like a LOT 😭, there was Python detection, pip SSL errors, Ollama model installation, broken PDFs, OCR not finding Tesseract, Windows Documents being redirected to OneDrive, search ranking issues, and more. After fixing all of that, MILO can now run on another Windows PC (will make sure to test it again tommorow before shipping js incase), use that computer’s own files, search documents, read normal PDFs, and OCR scanned PDFs. Demo is below! (the verification of enrollment was a scanned pdf and M.I.L.O found it using OCR) Time to go to sleep now! (12:42 AM rn)"}, {"post_id": 50458, "ts": "2026-08-19T16:53:56Z", "hours": 2.5606, "text": "Devlog 4 - HUGE update! Made another big update to M.I.L.O today. you can now ask M.I.L.O questions about the files it finds, instead of just finding them. For example, I can ask: “How much did I pay for my Spider-Man ticket?” “What seats did I get?” “What time does it start?” “What’s the reservation number?” and M.I.L.O reads the actual PDF and gives me the answer. I also fixed a bug where MILO needed the exact words from the file to find the right information. But now it can understand related words and questions."}, {"post_id": 50176, "ts": "2026-08-19T09:12:09Z", "hours": 2.8514, "text": "Spent pretty much the whole previous day fixing a bug with MILO’s file search 😭 I got it to the point where MILO can actually read the contents of files like PDFs and text files, instead of only looking at their names. For example, I can say: “Find my Spider-Man Brand New Day VOSTFR 4DX Ticket” and MILO can actually read the PDF and find the right one even if the Ticket PDF is called “pixedH1723”. It took way longer than I expected to get the search working properly, but it finally works! Still a lot more to build, but this is a pretty big step for MILO."}, {"post_id": 49131, "ts": "2026-08-17T19:23:15Z", "hours": 1.4847, "text": "Devlog #2 - M.I.L.O Made some good progress on MILO the past hour and a half. I connected the AI to the file search system, so MILO can now understand normal sentences instead of needing exact file names. For example, I can say: “Find the folder which shows AI tools hype vs output and MILO can understand what I’m looking for and find the correct folder. It has a little bug tho, it can find multiple files with a specific keyword so for example it found another folder called “AI tools for each type of person” only because it has “AI” in it, so gonna work on that a bit later Still a lot to build, but it’s starting to feel like an actual assistant now."}, {"post_id": 48963, "ts": "2026-08-17T15:21:53Z", "hours": 3.3864, "text": "Started building M.I.L.O (My Intelligent Local Organizer) today. I ran into quite a few bugs while setting everything up, but I got the first part working. M.I.L.O can now scan a folder I choose and display the files and folders inside it along with the number of files/folders. The AI commands aren’t connected yet, so for now it just receives the command. Next, I’m working on making MILO actually understand the command and search through the files."}]...
|
Title: M.I.L.O by @Omar4lifex | Stardance
Devlogs Title: M.I.L.O by @Omar4lifex | Stardance
Devlogs:
Started building M.I.L.O (My Intelligent Local Organizer) today. I ran into quite a few bugs while setting everything up, but I got the first part working. M.I.L.O can now scan a folder I choose and display the files and folders inside it along with the number of files/folders. The AI commands aren’t connected yet, so for now it just receives the command. Next, I’m working on making MILO actually understand the command and search through the files.
Devlog #2 - M.I.L.O Made some good progress on MILO the past hour and a half. I connected the AI to the file search system, so MILO can now understand normal sentences instead of needing exact file names. For example, I can say: “Find the folder which shows AI tools hype vs output and MILO can understand what I’m looking for and find the correct folder. It has a little bug tho, it can find multiple files with a specific keyword so for example it found another folder called “AI tools for each type of person” only because it has “AI” in it, so gonna work on that a bit later Still a lot to build, but it’s starting to feel like an actual assistant now.
Spent pretty much the whole previous day fixing a bug with MILO’s file search 😭 I got it to the point where MILO can actually read the contents of files like PDFs and text files, instead of only looking at their names. For example, I can say: “Find my Spider-Man Brand New Day VOSTFR 4DX Ticket” and MILO can actually read the PDF and find the right one even if the Ticket PDF is called “pixedH1723”. It took way longer than I expected to get the search working properly, but it finally works! Still a lot more to build, but this is a pretty big step for MILO.
Devlog 4 - HUGE update! Made another big update to M.I.L.O today. you can now ask M.I.L.O questions about the files it finds, instead of just finding them. For example, I can ask: “How much did I pay for my Spider-Man ticket?” “What seats did I get?” “What time does it start?” “What’s the reservation number?” and M.I.L.O reads the actual PDF and gives me the answer. I also fixed a bug where MILO needed the exact words from the file to find the right information. But now it can understand related words and questions.
#Devlog #5 - Making MILO Actually Usable (BIIIG Devlog Update) TL;DR: M.I.L.O works for other pcs that have windows + added OCR so it can read scanned/image-based pdfs (demo below, the verification of enrollment was a scanned pdf and it found it!) I spent 9h 44m working on MILO without a devlog lol. I made a lot of progress toward making MILO usable by other people, not just on my PC (Only windows for now tho). I added a setup ( .bat file) system so MILO can automatically check for and install things like Python, Ollama, the AI model (qwen3:8b), and its required packages (if you don’t alr have them) on another Windows PC. I also added OCR (Optical Character Recognition) support so MILO can read scanned/image-based PDFs instead of only normal text PDFs (planning to add OCR for images like png, jpg, etc…). I tested it on a scanned Verification of Enrollment document for my school and MILO was able to find it and read the contents. I also improved the file search so it skips folders like node_modules , .git , __pycache__ , and other junk folders that were causing completely unrelated search results. There were a LOT of bugs during this update, like a LOT 😭, there was Python detection, pip SSL errors, Ollama model installation, broken PDFs, OCR not finding Tesseract, Windows Documents being redirected to OneDrive, search ranking issues, and more. After fixing all of that, MILO can now run on another Windows PC (will make sure to test it again tommorow before shipping js incase), use that computer’s own files, search documents, read normal PDFs, and OCR scanned PDFs. Demo is below! (the verification of enrollment was a scanned pdf and M.I.L.O found it using OCR) Time to go to sleep now! (12:42 AM rn)
Devlog #6 - Giving MILO Memory Today I spent 2h 5m adding memory per-chat (since before that, even if it was the same chat, it could not remember the previous message I sent) + improved MILO’s conversation system. I added per-chat memory so MILO can actually remember what happened earlier in the same conversation instead of treating every message like a completely new request. For example: Me: Find my Spider-Man ticket MILO: I found pixedH1723.pdf Me: What did I just ask you to find? MILO: You asked me to find your Spider-Man ticket. Me: Which type of file is it? MILO: The Spider-Man Ticket is a PDF file I added a backend chat_memory system that keeps information like the last command, action, query, found file, results, and file content for each individual chat. def get_chat_memory(chat_id): if chat_id not in chat_memory: chat_memory[chat_id] = { "last_command": "", "last_action": "", "last_file": None, "last_results": [] } return chat_memory[chat_id] I also added a new CHAT action to MILO’s AI so it can answer normal conversational questions like “what did I just ask you?” instead of forcing everything into SEARCH or QUESTION. Another improvement was passing the recent conversation history into Qwen3 so it has more context when interpreting follow-up messages such as “it”, “that file”, or “what did you find?”. One of the reasons I added memory is because it’s the foundation for the next major feature which is file actions like Rename, where I can say: Find my Spider-Man ticket And then say: Rename it to Spider-Man Ticket instead of having to say the original filename like: Can you rename “pixedH1723” to “Spider-Man”.
Devlog #7 - Making MILO Much Faster I spent almost 2 hours improving MILO’s search performance. I found a pretty bad bug where searching a large folder like Downloads could take 7+ minutes because MILO was trying to process too many PDFs, including scanned PDFs that required OCR. I changed the search system so MILO now does a much faster process: ↓ Check normal PDF text ↓ Only OCR likely scanned PDFs ↓ Cache the OCR result ↓ Return the result I also added an OCR limit so MILO doesn’t try to OCR hundreds of unrelated PDFs: MAX_OCR_CANDIDATES = 30 Another important improvement was OCR caching. Once MILO reads a scanned PDF, it saves the extracted text so it doesn’t have to OCR the same file again unless the file changes. I also added more ignored folders like: .git __pycache__ .venv .next dist build .cache This helped remove a lot of irrelevant files from searches. After the changes, the Spider-Man ticket search that was taking several minutes became much faster while the scanned EduWW Verification of Enrollment PDF still works with OCR.
Devlog #8 - Rename stuff I spent around 9 hours working on one of the biggest upgrades to M.I.L.O so far: file actions. Until now, M.I.L.O could find files and understand their contents, but it couldn’t actually do anything with them. I decided to start with Rename. Now I can tell milo rename my spiderman ticket (pixedH1723.pdf) to spiderman ticket and it asks for confirmation and then renames it. It remembers which file “it” refers to, asks for confirmation, and then renames it. A LOT of bugs happened 😭The first problem was that M.I.L.O found the correct Spider-Man ticket but also returned completely unrelated files. For example, it found:README.md pixedH1723.pdf The README contained the words “Spider-Man” and “ticket” because those words were used in an example inside the README. After filtering README files, M.I.L.O still found random files like: cd.txt vintage-ticket-stub.md because they contained generic words like “ticket”.I fixed this by improving the search scoring system so M.I.L.O considers the combination of important terms instead of matching one generic word. For a query like: Spider-Man + movie + ticket M.I.L.O now gives much more importance to files that actually contain those concepts together. I also added path filtering so M.I.L.O ignores internal development folders such as: node_modules .git __pycache__ .local .agents .next Rename itself had a bug too, the first Rename attempt crashed with: name ‘os’ is not defined because the rename code was using Python’s os module without importing it. That was fixed, and I also added protection so M.I.L.O doesn’t rename anything without confirmation, won’t overwrite an existing file, keeps the original file extension, automatically handles files that no longer exist, and remembers the last file found through conversation memory.
Devlog #9 - MILO can create folders Today I added Create Folder to M.I.L.O so now I can say: Create a folder called MILO FOLDER TEST and then MILO understands it, checks the location, then asks for confirmation before creating it. I added the new CREATE_FOLDER action to the AI and backend, plus Create / Cancel buttons in the frontend.{ “action”: “CREATE_FOLDER”, “new_name”: “School” } I also added safety checks so it won’t create a folder if the name is invalid or something with that name already exists.
Ships:
M.I.L.O v1.0.0 is officially ready. M.I.L.O is a local AI file organizer that lets you talk to your computer in normal language and find information inside your own files. What’s included Natural-language file search - ask MILO to find files and folders using normal chat. Local AI - powered by Ollama and Qwen3:8b, which runs on the user’s own PC. PDF reading - MILO can search normal text-based PDFs. OCR - MILO can read scanned/image-based PDFs using Tesseract OCR. Conversation memory - MILO remembers what happened earlier in the same chat, so follow-ups like “what file did you find?” work. Chat history - create new chats and return to previous conversations. Faster search - filename-first searching, ignored junk folders, and OCR caching make large-folder searches much faster. Automatic setup - Start MILO.bat checks for Python, Ollama, Tesseract, dependencies, and the Qwen3 model. Privacy M.I.L.O is designed around local processing. Your files stay on your computer, and the AI runs locally through Ollama instead of sending your files to a remote AI server. Getting started Download MILO-v1.0.0.zip Extract it Run Start MILO.bat Let the setup finish Choose the folder you want MILO to access Start chatting What’s next v1.1 will focus on file actions , starting with things like renaming and organizing files....
|
1792878437.104797
|
1793742437.104797
|
|
49988
|
Practice 2D Platformer by @RedstoneStar | Stardanc Practice 2D Platformer by @RedstoneStar | Stardance...
|
RedstoneStar
|
1
|
84.71
|
144
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-23T17:45:37Z", "hours": 42.0, "multiplier": 3.64, "payout": 144, "blessing": "neutral", "text": "This is my simple 2d platformer. Before making this project I knew very little about coding in Python so I wanted to work on this project to fix that. In the past I’ve used a bunch of YouTube tutorials to teach me how to code so this time I wanted to try something different. I created a custom Gemini gem that walked me step by step through creating the base game, then helped me add on improvements such as enemies and moving platforms. Key Features: Smooth platforming: Precise movement tracking keeps the character steady on moving platforms without slipping. Varied movement: Double jumps, wall slides, wall jumps, and a dash move to smash weak blocks. Animations: Squish-and-stretch effects when jumping and landing give the character extra feel. Smart enemies: Jumping enemies detect edges and turn around instead of walking off ledges. 10-levels: Includes built-in tutorial prompts to teach new moves as the player progresses. I know the game is really simple, and that is mostly on purpose; this was meant to be just a fun way to practice my Python skills. Hope you enjoy!", "repo": "https://github.com/RedstoneStar/Practice2DPlatformer", "demo": "https://redstonestar.github.io/Practice2DPlatformer/"}]...
|
[{"post_id": 63961, "ts": "202 [{"post_id": 63961, "ts": "2026-09-08T01:41:23Z", "hours": 27.6347, "text": "Devlog #6 After far more hours of debugging than I care to admit, I finally figured out why the springs didn’t launch the player when they walked through the spring. I eventually figured out it was an issue caused by how I was applying the upward momentum. Main changes in this update: Updated graphics. Slightly improved the performance by condensing some logic code Added a new flying enemy. Added 5 new levels. Improved the previous 10 levels to make them more interesting. Problems still needing to be fixed: The flying enemy is having graphical glitches with its charging animation."}, {"post_id": 61832, "ts": "2026-09-04T22:48:48Z", "hours": 15.0753, "text": "Devlog #5 for my simple 2D platformer Since I started this project I feel like I have gotten so much better at Python and because of that, I’ve spent the last couple of days rewriting pretty much all of the core mechanics of the platformer. Pretty much all of the code that Gemini helped me develop and then improve over time I have now recoded and as a result, the program runs so much smoother. Other changes: I fixed one bug where the player wouldn’t move with moving platforms, so now the player should (hopefully) move with the platform as well as be much less glitchy when mounting or dismounting it. I also added a few particles for when the player dashes and lands on objects. I’m still trying to figure out why the player doesn’t get launched when they walk over the springs, hopefully I’ll have that figured out by my next devlog."}, {"post_id": 53210, "ts": "2026-08-23T17:29:52Z", "hours": 11.5417, "text": "Final devlog of the simple 2D platformer! I improved the pixel art and revamped the levels. The first 3 levels are dedicated to teaching the player the controls. I also added support to deploy it online."}, {"post_id": 52514, "ts": "2026-08-22T17:36:28Z", "hours": 11.165, "text": "4th devlog for my simple platformer. I added a couple more levels, currently they are way to hard, I will have to revisit them in the future. On top of that I added a sprint feature to the player. I also spent some more time on the graphics."}, {"post_id": 50708, "ts": "2026-08-20T01:14:37Z", "hours": 7.9364, "text": "3rd devlog of this practice project! Added super simple enemies, a simple level creation option in the setting script, spikes, and better camera follow movement."}, {"post_id": 49974, "ts": "2026-08-19T00:00:03Z", "hours": 9.2581, "text": "Added a few improvements to the platformer game. The camera now scrolls along with the player; I added collectable coins and a coin counter, and made it so that the player respawns when they fall off the platform."}, {"post_id": 48554, "ts": "2026-08-17T00:16:03Z", "hours": 2.3539, "text": "Just finished my first practice platformer. It is super simple, which was intended. I didn’t want it to be anything complicated, just some simple python practice."}]...
|
Title: Practice 2D Platformer by @RedstoneStar | S Title: Practice 2D Platformer by @RedstoneStar | Stardance
Devlogs:
Just finished my first practice platformer. It is super simple, which was intended. I didn’t want it to be anything complicated, just some simple python practice.
Added a few improvements to the platformer game. The camera now scrolls along with the player; I added collectable coins and a coin counter, and made it so that the player respawns when they fall off the platform.
3rd devlog of this practice project! Added super simple enemies, a simple level creation option in the setting script, spikes, and better camera follow movement.
4th devlog for my simple platformer. I added a couple more levels, currently they are way to hard, I will have to revisit them in the future. On top of that I added a sprint feature to the player. I also spent some more time on the graphics.
Final devlog of the simple 2D platformer! I improved the pixel art and revamped the levels. The first 3 levels are dedicated to teaching the player the controls. I also added support to deploy it online.
Devlog #5 for my simple 2D platformer Since I started this project I feel like I have gotten so much better at Python and because of that, I’ve spent the last couple of days rewriting pretty much all of the core mechanics of the platformer. Pretty much all of the code that Gemini helped me develop and then improve over time I have now recoded and as a result, the program runs so much smoother. Other changes: I fixed one bug where the player wouldn’t move with moving platforms, so now the player should (hopefully) move with the platform as well as be much less glitchy when mounting or dismounting it. I also added a few particles for when the player dashes and lands on objects. I’m still trying to figure out why the player doesn’t get launched when they walk over the springs, hopefully I’ll have that figured out by my next devlog.
Devlog #6 After far more hours of debugging than I care to admit, I finally figured out why the springs didn’t launch the player when they walked through the spring. I eventually figured out it was an issue caused by how I was applying the upward momentum. Main changes in this update: Updated graphics. Slightly improved the performance by condensing some logic code Added a new flying enemy. Added 5 new levels. Improved the previous 10 levels to make them more interesting. Problems still needing to be fixed: The flying enemy is having graphical glitches with its charging animation.
Ships:
This is my simple 2d platformer. Before making this project I knew very little about coding in Python so I wanted to work on this project to fix that. In the past I’ve used a bunch of YouTube tutorials to teach me how to code so this time I wanted to try something different. I created a custom Gemini gem that walked me step by step through creating the base game, then helped me add on improvements such as enemies and moving platforms. Key Features: Smooth platforming: Precise movement tracking keeps the character steady on moving platforms without slipping. Varied movement: Double jumps, wall slides, wall jumps, and a dash move to smash weak blocks. Animations: Squish-and-stretch effects when jumping and landing give the character extra feel. Smart enemies: Jumping enemies detect edges and turn around instead of walking off ledges. 10-levels: Includes built-in tutorial prompts to teach new moves as the player progresses. I know the game is really simple, and that is mostly on purpose; this was meant to be just a fun way to practice my Python skills. Hope you enjoy!...
|
1792878437.9511604
|
1793742437.9511604
|
|
49996
|
HackerOS by @simonhacker | Stardance
|
simonhacker
|
1
|
9.78
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-03T19:59:00Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "HackerOS is my WebOS! It was coded in CSS, HTML and JS!! It has a few simple apps and is styled to be dark and blue. It was made fully by me and you can try it at the link below.", "repo": "https://github.com/sevinatenine/HackerOS", "demo": "https://hacker-os.netlify.app"}]...
|
[{"post_id": 77978, "ts": "202 [{"post_id": 77978, "ts": "2026-10-09T03:00:01Z", "hours": 0.3142, "text": "I made the copy and move and open commands for the terminal of my WebOS"}, {"post_id": 77346, "ts": "2026-10-06T16:58:19Z", "hours": 0.4636, "text": "Modified the README and the about."}, {"post_id": 76491, "ts": "2026-10-03T18:55:48Z", "hours": 0.3675, "text": "HackerOS - Finished the about page and the file picker!"}, {"post_id": 76485, "ts": "2026-10-03T18:27:44Z", "hours": 0.5764, "text": "HackerOS - Prototype for my file picker"}, {"post_id": 76446, "ts": "2026-10-03T15:20:30Z", "hours": 3.7758, "text": "I got my file browser working with ZenFS for HackerOS!!!"}, {"post_id": 50374, "ts": "2026-08-19T15:24:39Z", "hours": 1.4139, "text": "I Worked on my file browser app for my WebOS! I used the Yet Another Monochrome Icon Set For KDE Plasma here for the icons and app images for my OS and I used ZenFS (which provides node:fs compatible functions) to store files in IndexedDB."}, {"post_id": 49543, "ts": "2026-08-18T12:52:08Z", "hours": 0.4025, "text": "Prototype for the app bar for my WebOS"}, {"post_id": 49291, "ts": "2026-08-18T00:46:48Z", "hours": 2.1136, "text": "I made a window system with draggable and resizable windows for my WebOS!"}]...
|
Title: HackerOS by @simonhacker | Stardance
Devlo Title: HackerOS by @simonhacker | Stardance
Devlogs:
I made a window system with draggable and resizable windows for my WebOS!
Prototype for the app bar for my WebOS
I Worked on my file browser app for my WebOS! I used the Yet Another Monochrome Icon Set For KDE Plasma here for the icons and app images for my OS and I used ZenFS (which provides node:fs compatible functions) to store files in IndexedDB.
I got my file browser working with ZenFS for HackerOS!!!
HackerOS - Prototype for my file picker
HackerOS - Finished the about page and the file picker!
Modified the README and the about.
I made the copy and move and open commands for the terminal of my WebOS
Ships:
HackerOS is my WebOS! It was coded in CSS, HTML and JS!! It has a few simple apps and is styled to be dark and blue. It was made fully by me and you can try it at the link below....
|
1793346447.9257245
|
1793432847.9257245
|
|
50004
|
Guess It! by @akisarke | Stardance
|
akisarke
|
1
|
57.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T14:07:14Z", "hours": 53.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Guess It! is finally live! A daily estimation game. Three questions a day, you lock in a number, and get scored on how close you got. The lower the better. I added: a daily puzzle with three questions, a full reveal, and where your guess landed in the distribution AI-generated questions so it never runs dry. They’re checked before they go in the catalog and burned once they’ve been used anonymous play, so you can try it before you make an account email sign up and Hack Club OAuth, with verification and password reset streaks, badges, pinned badges, avatars, bios leaderboards for today, this week, and friends only duels - challenge someone to a live 1v1, three rounds, one shared reveal matchmaking, if you’d rather get paired with a stranger generated sets, for when you want more than the daily puzzle notifications and friend requests React and Fastify on PostgreSQL. No questions are on the backend. The honest part: some of this only broke once it was already live. The question catalog ran all the way down so the questions can repeat. And for a while the AI generation was down because I’m using the free tier of gemini models. You can try it at https://guessit.akisarke.xyz or click the try project button below. See ya later! 👋", "repo": "https://github.com/akisarke/guess-it", "demo": "https://guessit.akisarke.xyz"}]...
|
[{"post_id": 80940, "ts": "202 [{"post_id": 80940, "ts": "2026-10-19T09:43:56Z", "hours": 3.9994, "text": "Devlog 11 After the first ship it got declined because the UI was too AI, and i see it now. So thats why i tried my best to make it less look like it was AI-made. And I think i was pretty successful. I hope you like it!"}, {"post_id": 80379, "ts": "2026-10-17T13:48:17Z", "hours": 3.69, "text": "#Devlog 10 - THE FINAL DEVLOG! As you see the site is fully deployed and on my domain! I’m very exited for you guys to try it but dont expect anything special there will be bugs (since this is my first time working with a backend). Shipping soon! Bye for now! 👋"}, {"post_id": 79422, "ts": "2026-10-13T22:15:36Z", "hours": 7.0172, "text": "Devlog 9 Hey guys! This will probably be the last devlog before shipping. I just fixed some bugs and added more animations and redid the spacing of elements. It isnt still perfect but it gets the job done. Anyway since i dont have anything to show you heres a picture of my cat. His name is Leo if anyone is curious. Thats all. Bye for now! 👋"}, {"post_id": 76761, "ts": "2026-10-04T14:50:16Z", "hours": 9.3736, "text": "Devlog 8 Hi guys I was locking in for the stardance end but then it turns out it got extended by one month so thats cool. Anyways getting close for shipping i just need more questions so i have enough for the daily ones, if you want leave some ideas in the comments down below. Also I need to fix the email verification for the accounts and thats pretty much it. Bye for now! 👋"}, {"post_id": 72156, "ts": "2026-09-22T10:28:44Z", "hours": 8.7528, "text": "Devlog 7 Fixing the duels besides that i didnt do anything special since for now im focusing on that because it dosnt work very well also i made a favicon but havnt yet implemented it will do that later. Dont think i will be posting much devlogs since i want to lock in to finish it before the stardance end. Thats all Bye for now👋"}, {"post_id": 69278, "ts": "2026-09-16T18:36:54Z", "hours": 8.5617, "text": "Devlog 6 Nothing pretty much outside of debugging the duels and the ai generating questions but i also added the history of your ai generated questions in the profile and added a share profile link (i dont like the position of it placed it there just for now later it will be next to the profile info card). Thats all Bye for now!👋"}, {"post_id": 65620, "ts": "2026-09-10T21:19:39Z", "hours": 4.0503, "text": "Devlog 5 Today I worked on the profile (on the bio and on the badges, the badges need icons still) and on the forgot password page and the email sending service (if you want to know im using resend for it and the page needs some ui fixing) and i need to fix the duel/quickplay and the ai generating questions stilll because im a lazy ahh person Bye for now! 👋"}, {"post_id": 64701, "ts": "2026-09-09T10:02:22Z", "hours": 3.5931, "text": "Devlog 4 Hey guys! In this devlog i made the archive of the questions and the profile both of them needs fixing the profile for the badges (since you cant get any for now) and the archive because you cant play them for now. Fixing it in the next devlog hopefully 🤞 Thats all! Bye for now! 👋"}, {"post_id": 63460, "ts": "2026-09-07T10:14:10Z", "hours": 5.1714, "text": "Devlog 3 I added a dark theme and also a switch for it and i made the landing page and finished it so i can now show it to you guys also i cleaned up the code a little bit. Bye for now 👋"}, {"post_id": 61570, "ts": "2026-09-04T15:30:41Z", "hours": 2.105, "text": "Devlog 2 After a lot of brainstorming and researching about the design i think i will go with this but a dark version of the background (didn’t do it now because i’m on a time crunch). Also i added the buttons on the top bar but they don’t do anything for now. That’s all Bye for now! 👋"}, {"post_id": 61123, "ts": "2026-09-03T21:26:36Z", "hours": 0.8294, "text": "New Project!! (Devlog #1) Hi everyone i just started a new game about guessing random things. This is just the start so nothing much there is more in there but i dont want to bore you guys. More devlogs coming soon! Bye for now 👋"}]...
|
Title: Guess It! by @akisarke | Stardance
Devlogs Title: Guess It! by @akisarke | Stardance
Devlogs:
New Project!! (Devlog #1) Hi everyone i just started a new game about guessing random things. This is just the start so nothing much there is more in there but i dont want to bore you guys. More devlogs coming soon! Bye for now 👋
Devlog 2 After a lot of brainstorming and researching about the design i think i will go with this but a dark version of the background (didn’t do it now because i’m on a time crunch). Also i added the buttons on the top bar but they don’t do anything for now. That’s all Bye for now! 👋
Devlog 3 I added a dark theme and also a switch for it and i made the landing page and finished it so i can now show it to you guys also i cleaned up the code a little bit. Bye for now 👋
Devlog 4 Hey guys! In this devlog i made the archive of the questions and the profile both of them needs fixing the profile for the badges (since you cant get any for now) and the archive because you cant play them for now. Fixing it in the next devlog hopefully 🤞 Thats all! Bye for now! 👋
Devlog 5 Today I worked on the profile (on the bio and on the badges, the badges need icons still) and on the forgot password page and the email sending service (if you want to know im using resend for it and the page needs some ui fixing) and i need to fix the duel/quickplay and the ai generating questions stilll because im a lazy ahh person Bye for now! 👋
Devlog 6 Nothing pretty much outside of debugging the duels and the ai generating questions but i also added the history of your ai generated questions in the profile and added a share profile link (i dont like the position of it placed it there just for now later it will be next to the profile info card). Thats all Bye for now!👋
Devlog 7 Fixing the duels besides that i didnt do anything special since for now im focusing on that because it dosnt work very well also i made a favicon but havnt yet implemented it will do that later. Dont think i will be posting much devlogs since i want to lock in to finish it before the stardance end. Thats all Bye for now👋
Devlog 8 Hi guys I was locking in for the stardance end but then it turns out it got extended by one month so thats cool. Anyways getting close for shipping i just need more questions so i have enough for the daily ones, if you want leave some ideas in the comments down below. Also I need to fix the email verification for the accounts and thats pretty much it. Bye for now! 👋
Devlog 9 Hey guys! This will probably be the last devlog before shipping. I just fixed some bugs and added more animations and redid the spacing of elements. It isnt still perfect but it gets the job done. Anyway since i dont have anything to show you heres a picture of my cat. His name is Leo if anyone is curious. Thats all. Bye for now! 👋
#Devlog 10 - THE FINAL DEVLOG! As you see the site is fully deployed and on my domain! I’m very exited for you guys to try it but dont expect anything special there will be bugs (since this is my first time working with a backend). Shipping soon! Bye for now! 👋
Devlog 11 After the first ship it got declined because the UI was too AI, and i see it now. So thats why i tried my best to make it less look like it was AI-made. And I think i was pretty successful. I hope you like it!
Ships:
Guess It! is finally live! A daily estimation game. Three questions a day, you lock in a number, and get scored on how close you got. The lower the better. I added: a daily puzzle with three questions, a full reveal, and where your guess landed in the distribution AI-generated questions so it never runs dry. They’re checked before they go in the catalog and burned once they’ve been used anonymous play, so you can try it before you make an account email sign up and Hack Club OAuth, with verification and password reset streaks, badges, pinned badges, avatars, bios leaderboards for today, this week, and friends only duels - challenge someone to a live 1v1, three rounds, one shared reveal matchmaking, if you’d rather get paired with a stranger generated sets, for when you want more than the daily puzzle notifications and friend requests React and Fastify on PostgreSQL. No questions are on the backend. The honest part: some of this only broke once it was already live. The question catalog ran all the way down so the questions can repeat. And for a while the AI generation was down because I’m using the free tier of gemini models. You can try it at https://guessit.akisarke.xyz or click the try project button below. See ya later! 👋...
|
1793397391.0294356
|
1793483791.0294356
|
|
50022
|
MechanicaSaveFix by @Oignontom8283 | Stardance
|
Oignontom8283
|
1
|
38.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-23T01:43:55Z", "hours": 38.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A super mod that fixes a nasty problem in a cool way (Virtual file system >:3) for a game almost nobody plays anymore! Yeeeeah! Go check out this post https://stardance.hackclub.com/projects/50022/devlogs/68461 that’s where the REAL description and the whole journey are.", "repo": "https://github.com/Oignontom8283/MechanicaSaveFix", "demo": "https://youtu.be/NF6xDftQVgA"}]...
|
[{"post_id": 81915, "ts": "202 [{"post_id": 81915, "ts": "2026-10-23T01:35:32Z", "hours": 0.5192, "text": "MechanicaSaveFix, a BepInEx mod that replaces Mechanica’s save system with a single archive per world. Demo video : https://youtu.be/NF6xDftQVgA This isn’t my first time getting into this game! I’ve been trying things out, doing little tweaks, etc. on the game for years now. But this is my first and biggest completed project aimed at modding this game! There are no resources online about the game’s structure, how it works, etc. So I spent way more time searching and understanding than actually coding! Working without documentation is really annoying :) My goal here is to get a big Blåhaj! Will I pull it off? I don’t know… The problem? Mechanica saves every object, robot, weld, link, etc. into its own little file, stored in nested folders. A small test world already makes hundreds of folders, and large worlds reach thousands of files. On large worlds, you run into what I call “Infinite Save Loading” (ISL). The save never finishes, you have to restart the game, and you lose your progress. I suspect the number of files is the cause, but I haven’t proven it, because these freezes are very hard to reproduce. However, during my testing, I didn’t have the issue. So at best, it improves things! Which is already pretty neat :3 What does the mod do? The mod doesn’t rewrite the game’s save system, which wasn’t designed to be replaced. It sits on top of it: It intercepts the game’s calls to files (File, Directory, FileInfo, DirectoryInfo) using Harmony; It redirects them to a Virtual File System (VFS) that keeps everything in memory; It then writes the result into a single .msa (Mechanica Save Archive) file, which is actually a zip containing the original files and folders. The game therefore continues to believe it is writing thousands of small files, while it is actually writing only one file to disk. On the first save, a classic world is converted to .msa. The original folder is not touched, and you can extract the archive to get back a standard save. I also rewrote the world selection menu (it lists classic folders and archives) and the world creation flow. I added a confirmation window, a config file, a backup system, and an optional update check. Difficulties encountered: No centralized save code. Every system (objects, robots, welds, storage, links…) reads and writes its files in its own way. There was no single place to hook into; Incremental saving and cleanup. The game only rewrites what has changed, then deletes any file absent from its list of valid paths, compared as exact strings. The mod must therefore keep everything in memory and reproduce paths identically: mix of / and , case, spaces. Early on, a bug like this caused all files to be deleted by cleanup; Not everything goes through File/Directory. Some parts of the code use FileInfo/DirectoryInfo, which had to be intercepted separately; Implicitly created folders. The game checks for the existence of folders that are sometimes legitimately empty. After a bug where object categories were duplicated on every reload, I added explicit folder tracking in the VFS, with entries for empty folders in the archive; A very tangled save menu. It relies on dictionaries indexed by UI objects, with a large part of the interface hardwired in the Unity editor, so invisible in decompiled code. I had to inspect the layout at runtime and rewrite the menu entirely; Architecture issues. It took me a while to decide where to place the world swap function (it’s in the VFS). I think I didn’t forget anything :/ Unfortunately, I admit, this is just a band-aid on a gaping wound. It only improves or at best delays the problem. Not to mention the fact that other things like the game’s multiplayer are still completely broken ¯ _ (ツ)_/¯"}, {"post_id": 76703, "ts": "2026-10-04T11:37:14Z", "hours": 3.8622, "text": "v0.12.0 Version v0.11.0 introduced a system that checks the GitHub repository for new versions of the mod.As for v0.12.0 … I ended up finding a bug that was causing certain item categories to be duplicated whenever a save was reloaded. I spent quite a bit of time tracking down the issue and fixing it, and it ended up requiring some fairly significant changes to the VFS.(Nothing too crazy, though. I basically just added explicit directory tracking so that empty directories are still properly preserved.) Anyway, it works now! :3"}, {"post_id": 68309, "ts": "2026-09-14T22:07:56Z", "hours": 7.2778, "text": "v0.10.0 There we go! The mod is technically functional and usable. All that’s left is getting other people to test it and adding a couple more things, like an update check, and that’s it (: What’s changed: Added a configuration file for the mod. Added several features driven by settings from the configuration file. Patched the new world creation menu to directly create a save in the new format. Reorganized a good chunk of the code in the larger files (Utils.cs, VirtualFS.cs, SaveMenu.cs). Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ✅ Write the triggers that will fire the capture/emission of virtual files. ✅ Add display/support for the new save format in the world selection menu. ✅ Config file ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console."}, {"post_id": 59545, "ts": "2026-09-01T13:00:09Z", "hours": 5.6392, "text": "v0.8.1 I thought this step was going to be simple… Not at all! It’s been a nightmare of an ordeal. The save selection menu’s code (its logic) was basically one flat, tangled plate of spaghetti. The base game used a bunch of dictionaries to store data and look it back up. The functions tied to the buttons used the Rect object handed to the class to look up the data they needed. Why hand over an object to look up data through a dictionary when you can just pass the function what it needs directly… I completely rewrote the menu’s behavior from scratch, cleanly, to support displaying and loading saves in their new archive form. What’s changed: Rewrote the save selection menu so it lists both classic save folders and the new .msa archives side by side. Added a proper confirmation popup (reused for save deletion, and reusable for anything else later) instead of the base game’s tangled state. Rebuilt the difficulty settings screen flow so it works the same way whether the save is a folder or an archive. Deleting a save now works for both save folders and .msa archives. Fixed thumbnails not showing for saves without a screenshot. Hooked up unloading the virtual file system when leaving a world, so you can load another world without restarting the game. Squashed a good number of bugs along the way (mixed up path separators, wrong field types, missing state resets) that only showed up once real saves were being loaded and listed. Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ✅ Write the triggers that will fire the capture/emission of virtual files. ✅ Add display/support for the new save format in the world selection menu. ❌ Add a config file, [deinitialize the VFS on world exit - Early Done], and other minor details/improvements (new) ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console."}, {"post_id": 54801, "ts": "2026-08-25T22:40:21Z", "hours": 7.2544, "text": "0.6.0 It wasn’t as simple as expected… But it works now! You can load a normal world, and on the first save it will be converted into a .msa archive. From then on, whenever you try to load a world that has an archived version, that version will be loaded instead of the other one. What’s changed: Fixed VirtualFS incorrectly normalizing the root save path, which caused it to no longer match the paths built by the game itself, breaking file lookups everywhere. Fixed QueryEntries not sanitizing multi-level directory paths, which caused Directory.GetFiles / GetDirectories to return nothing for nested folders (welds, anchors, etc.). Fixed reconstructed paths mixing / and \\ separators, which broke the game’s own string comparisons (e.g. RemoveOldFiles deleting everything instead of only orphaned files). Added patches for DirectoryInfo / FileInfo instance methods ( GetFiles , GetDirectories , CreateSubdirectory , Exists ), which weren’t covered by the static File / Directory patches. Simplified VirtualFS ‘s internal mode from three states ( Idle / Capturing / Playback ) down to two ( Idle / Intercepting ), since capture and playback behaved identically from the interception logic’s point of view. Wrote the Save() / LoadSave() coroutine wrappers that trigger the capture/playback cycle and commit/load the .msa archive. Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ✅ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu. ❌ Add a config file, deinitialize the VFS on world exit, and other minor details/improvements (new) ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console. (new)"}, {"post_id": 51323, "ts": "2026-08-20T22:10:26Z", "hours": 0.9206, "text": "v0.5.1 I added the Harmony patches to intercept System.IO functions. It was long and repetitive 👍. What’s changed: Add src\\Patches\\io\\Directory.cs for the directory-related function patches. Add src\\Patches\\io\\File.cs for the file-related function patches. Removed old test files for writing/reading files. Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu. The next step should let me run the first tests, which will probably be followed by some bug fixes. Hopefully not 🤞."}, {"post_id": 50577, "ts": "2026-08-19T19:38:17Z", "hours": 1.9633, "text": "v0.4.1 I almost went CRAZY 😰 I ran into an architecture problem, and I was about two steps away from refactoring EVERYTHING to make it clean. I finally found a solution. It’s not the cleanest, but I didn’t have any other idea. So the world-swap function lives inside the VFS. In the end it’s just a matter of roles/responsibilities, nothing technically blocking really 😅. What’s changed: Add method to write the VFS to a zip archive. Add method to load a zip archive into the VFS. Add method to replace the world’s save with the new one and move the previous version to backup. Improved the versioning system, and included build info (hash, time…). Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu."}, {"post_id": 50082, "ts": "2026-08-19T04:29:19Z", "hours": 1.5697, "text": "Mostly environment/tooling additions and improvements. What’s changed: Add build.yml GitHub CI, to verify that commits and PRs compile. Add release.yml GitHub CI, to build and attach the mod to releases. Minor tweaks to the build script. Add a VSCode task to build the project without running a command. Progress so far (so no changes here ¯ _ (ツ)_/¯): ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ❌ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu."}, {"post_id": 49874, "ts": "2026-08-18T20:28:48Z", "hours": 0.9658, "text": "I finished the Forward component, which faithfully reproduces every System.IO function (the functions used to interact with the computer’s file system). Why? : I need functions with the exact same API, since I’m going to intercept the game’s disk read/write functions to stop it from writing thousands of small files and folders. What’s changed: Add VirtualFS.DeleteFile() Add VirtualFS.DeleteFileNoThrow() ( System.IO ‘s Delete function doesn’t throw an error, unlike VirtualFS.DeleteFile() , so I made an alternative to properly mimic Delete ’s behavior. Add Forward.cs Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ❌ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu."}, {"post_id": 49417, "ts": "2026-08-18T07:44:51Z", "hours": 7.745, "text": "I have to admit I’ve been working on reverse-engineering / decompiling this game for a long time now, so getting set up was pretty quick. I established the mod/patch structure, refactored it, refactored it again, until I landed on my current plan. Right now I’ve only written VirtualFS.cs , which contains the virtual file system that will intercept System.IO requests to prevent them from writing to disk. Next I’ll move on to writing the fake System.IO functions (write a file, read a file, etc.), the functions that will write and read the save in .zip format, the patches for the system functions, the triggers, and finally the interface. Progress so far: ✅ VFS (Virtual File System). ❌ Write the fake System.IO functions. ❌ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu. Markdown checkboxes don’t work… so I’m using good old emojis instead. ¯ _ (ツ)_/¯"}]...
|
Title: MechanicaSaveFix by @Oignontom8283 | Starda Title: MechanicaSaveFix by @Oignontom8283 | Stardance
Devlogs:
I have to admit I’ve been working on reverse-engineering / decompiling this game for a long time now, so getting set up was pretty quick. I established the mod/patch structure, refactored it, refactored it again, until I landed on my current plan. Right now I’ve only written VirtualFS.cs , which contains the virtual file system that will intercept System.IO requests to prevent them from writing to disk. Next I’ll move on to writing the fake System.IO functions (write a file, read a file, etc.), the functions that will write and read the save in .zip format, the patches for the system functions, the triggers, and finally the interface. Progress so far: ✅ VFS (Virtual File System). ❌ Write the fake System.IO functions. ❌ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu. Markdown checkboxes don’t work… so I’m using good old emojis instead. ¯ _ (ツ)_/¯
I finished the Forward component, which faithfully reproduces every System.IO function (the functions used to interact with the computer’s file system). Why? : I need functions with the exact same API, since I’m going to intercept the game’s disk read/write functions to stop it from writing thousands of small files and folders. What’s changed: Add VirtualFS.DeleteFile() Add VirtualFS.DeleteFileNoThrow() ( System.IO ‘s Delete function doesn’t throw an error, unlike VirtualFS.DeleteFile() , so I made an alternative to properly mimic Delete ’s behavior. Add Forward.cs Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ❌ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu.
Mostly environment/tooling additions and improvements. What’s changed: Add build.yml GitHub CI, to verify that commits and PRs compile. Add release.yml GitHub CI, to build and attach the mod to releases. Minor tweaks to the build script. Add a VSCode task to build the project without running a command. Progress so far (so no changes here ¯ _ (ツ)_/¯): ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ❌ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu.
v0.4.1 I almost went CRAZY 😰 I ran into an architecture problem, and I was about two steps away from refactoring EVERYTHING to make it clean. I finally found a solution. It’s not the cleanest, but I didn’t have any other idea. So the world-swap function lives inside the VFS. In the end it’s just a matter of roles/responsibilities, nothing technically blocking really 😅. What’s changed: Add method to write the VFS to a zip archive. Add method to load a zip archive into the VFS. Add method to replace the world’s save with the new one and move the previous version to backup. Improved the versioning system, and included build info (hash, time…). Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu.
v0.5.1 I added the Harmony patches to intercept System.IO functions. It was long and repetitive 👍. What’s changed: Add src\Patches\io\Directory.cs for the directory-related function patches. Add src\Patches\io\File.cs for the file-related function patches. Removed old test files for writing/reading files. Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu. The next step should let me run the first tests, which will probably be followed by some bug fixes. Hopefully not 🤞.
0.6.0 It wasn’t as simple as expected… But it works now! You can load a normal world, and on the first save it will be converted into a .msa archive. From then on, whenever you try to load a world that has an archived version, that version will be loaded instead of the other one. What’s changed: Fixed VirtualFS incorrectly normalizing the root save path, which caused it to no longer match the paths built by the game itself, breaking file lookups everywhere. Fixed QueryEntries not sanitizing multi-level directory paths, which caused Directory.GetFiles / GetDirectories to return nothing for nested folders (welds, anchors, etc.). Fixed reconstructed paths mixing / and \ separators, which broke the game’s own string comparisons (e.g. RemoveOldFiles deleting everything instead of only orphaned files). Added patches for DirectoryInfo / FileInfo instance methods ( GetFiles , GetDirectories , CreateSubdirectory , Exists ), which weren’t covered by the static File / Directory patches. Simplified VirtualFS ‘s internal mode from three states ( Idle / Capturing / Playback ) down to two ( Idle / Intercepting ), since capture and playback behaved identically from the interception logic’s point of view. Wrote the Save() / LoadSave() coroutine wrappers that trigger the capture/playback cycle and commit/load the .msa archive. Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ✅ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu. ❌ Add a config file, deinitialize the VFS on world exit, and other minor details/improvements (new) ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console. (new)
v0.8.1 I thought this step was going to be simple… Not at all! It’s been a nightmare of an ordeal. The save selection menu’s code (its logic) was basically one flat, tangled plate of spaghetti. The base game used a bunch of dictionaries to store data and look it back up. The functions tied to the buttons used the Rect object handed to the class to look up the data they needed. Why hand over an object to look up data through a dictionary when you can just pass the function what it needs directly… I completely rewrote the menu’s behavior from scratch, cleanly, to support displaying and loading saves in their new archive form. What’s changed: Rewrote the save selection menu so it lists both classic save folders and the new .msa archives side by side. Added a proper confirmation popup (reused for save deletion, and reusable for anything else later) instead of the base game’s tangled state. Rebuilt the difficulty settings screen flow so it works the same way whether the save is a folder or an archive. Deleting a save now works for both save folders and .msa archives. Fixed thumbnails not showing for saves without a screenshot. Hooked up unloading the virtual file system when leaving a world, so you can load another world without restarting the game. Squashed a good number of bugs along the way (mixed up path separators, wrong field types, missing state resets) that only showed up once real saves were being loaded and listed. Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ✅ Write the triggers that will fire the capture/emission of virtual files. ✅ Add display/support for the new save format in the world selection menu. ❌ Add a config file, [deinitialize the VFS on world exit - Early Done], and other minor details/improvements (new) ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console.
v0.10.0 There we go! The mod is technically functional and usable. All that’s left is getting other people to test it and adding a couple more things, like an update check, and that’s it (: What’s changed: Added a configuration file for the mod. Added several features driven by settings from the configuration file. Patched the new world creation menu to directly create a save in the new format. Reorganized a good chunk of the code in the larger files (Utils.cs, VirtualFS.cs, SaveMenu.cs). Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ✅ Write the triggers that will fire the capture/emission of virtual files. ✅ Add display/support for the new save format in the world selection menu. ✅ Config file ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console.
v0.12.0 Version v0.11.0 introduced a system that checks the GitHub repository for new versions of the mod.As for v0.12.0 … I ended up finding a bug that was causing certain item categories to be duplicated whenever a save was reloaded. I spent quite a bit of time tracking down the issue and fixing it, and it ended up requiring some fairly significant changes to the VFS.(Nothing too crazy, though. I basically just added explicit directory tracking so that empty directories are still properly preserved.) Anyway, it works now! :3
MechanicaSaveFix, a BepInEx mod that replaces Mechanica’s save system with a single archive per world. Demo video : https://youtu.be/NF6xDftQVgA This isn’t my first time getting into this game! I’ve been trying things out, doing little tweaks, etc. on the game for years now. But this is my first and biggest completed project aimed at modding this game! There are no resources online about the game’s structure, how it works, etc. So I spent way more time searching and understanding than actually coding! Working without documentation is really annoying :) My goal here is to get a big Blåhaj! Will I pull it off? I don’t know… The problem? Mechanica saves every object, robot, weld, link, etc. into its own little file, stored in nested folders. A small test world already makes hundreds of folders, and large worlds reach thousands of files. On large worlds, you run into what I call “Infinite Save Loading” (ISL). The save never finishes, you have to restart the game, and you lose your progress. I suspect the number of files is the cause, but I haven’t proven it, because these freezes are very hard to reproduce. However, during my testing, I didn’t have the issue. So at best, it improves things! Which is already pretty neat :3 What does the mod do? The mod doesn’t rewrite the game’s save system, which wasn’t designed to be replaced. It sits on top of it: It intercepts the game’s calls to files (File, Directory, FileInfo, DirectoryInfo) using Harmony; It redirects them to a Virtual File System (VFS) that keeps everything in memory; It then writes the result into a single .msa (Mechanica Save Archive) file, which is actually a zip containing the original files and folders. The game therefore continues to believe it is writing thousands of small files, while it is actually writing only one file to disk. On the first save, a classic world is converted to .msa. The original folder is not touched, and you can extract the archive to get back a standard save. I also rewrote the world selection menu (it lists classic folders and archives) and the world creation flow. I added a confirmation window, a config file, a backup system, and an optional update check. Difficulties encountered: No centralized save code. Every system (objects, robots, welds, storage, links…) reads and writes its files in its own way. There was no single place to hook into; Incremental saving and cleanup. The game only rewrites what has changed, then deletes any file absent from its list of valid paths, compared as exact strings. The mod must therefore keep everything in memory and reproduce paths identically: mix of / and , case, spaces. Early on, a bug like this caused all files to be deleted by cleanup; Not everything goes through File/Directory. Some parts of the code use FileInfo/DirectoryInfo, which had to be intercepted separately; Implicitly created folders. The game checks for the existence of folders that are sometimes legitimately empty. After a bug where object categories were duplicated on every reload, I added explicit folder tracking in the VFS, with entries for empty folders in the archive; A very tangled save menu. It relies on dictionaries indexed by UI objects, with a large part of the interface hardwired in the Unity editor, so invisible in decompiled code. I had to inspect the layout at runtime and rewrite the menu entirely; Architecture issues. It took me a while to decide where to place the world swap function (it’s in the VFS). I think I didn’t forget anything :/ Unfortunately, I admit, this is just a band-aid on a gaping wound. It only improves or at best delays the problem. Not to mention the fact that other things like the game’s multiplayer are still completely broken ¯ _ (ツ)_/¯
Ships:
A super mod that fixes a nasty problem in a cool way (Virtual file system >:3) for a game almost nobody plays anymore! Yeeeeah! Go check out this post https://stardance.hackclub.com/projects/50022/devlogs/68461 that’s where the REAL description and the whole journey are....
|
1793318121.9433904
|
1793404521.9433904
|
|
50034
|
GitHub Tracker by @GeorgeSun | Stardance
|
GeorgeSun
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-21T01:38:41Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Github Tracker, a Slack bot that gives you real-time GitHub statistics. It can provide user profiles, repository information, recent activity, contributor data, contribution streaks, and comparisons. It can track trending and active repositories, search GitHub, monitor repository health and milestones, generate weekly or monthly reports, and runs 24/7. The most challenging part of making this bot was deploying it as the guide said to use Nest, however Nest is not taking in any more applicants right now due to server load so I had to research a different approach to it so I used Heroku instead to keep the bot up 24/7. I am most proud of how the bot can be able to scrape data off the GitHub webpage and display it straight in Slack. You can try the bot in the #bot-spam channel in the Hack Club slack or by clicking the link below. By using the command /github-help, you can get some commands to start with and what they do.", "repo": "https://github.com/Geofoods/GitHub-Tracker", "demo": "https://hackclub.enterprise.slack.com/archives/C0P5NE354"}]...
|
[{"post_id": 51380, "ts": "202 [{"post_id": 51380, "ts": "2026-08-21T01:32:00Z", "hours": 0.4503, "text": "I finally got it working with deployment since the Nest is not sending new applicants right now, I managed to get it working with a different server service that is in the Github Student Developer Pack called Heroku. The bot now runs 24/7"}, {"post_id": 51123, "ts": "2026-08-20T16:51:44Z", "hours": 0.2764, "text": "I changed the /user command to be /github-user to match up with the rest of the commands and also changed it in the help menu as well. I then deployed the bot on a server so it works 24/7"}, {"post_id": 50310, "ts": "2026-08-19T14:00:01Z", "hours": 0.3678, "text": "I added some finishing commands as well as some more command such as the /github-search [query] command which will return the github repositories that were searched from the query"}, {"post_id": 49885, "ts": "2026-08-18T20:55:03Z", "hours": 0.5517, "text": "I made multiple commands that can track stats of users and repositories. Some of the commands include /user which displays the stats of a github user, /github-repo which displays the stats of a github repo, and /github-activity which displays the recent activity of a repository"}]...
|
Title: GitHub Tracker by @GeorgeSun | Stardance
D Title: GitHub Tracker by @GeorgeSun | Stardance
Devlogs:
I made multiple commands that can track stats of users and repositories. Some of the commands include /user which displays the stats of a github user, /github-repo which displays the stats of a github repo, and /github-activity which displays the recent activity of a repository
I added some finishing commands as well as some more command such as the /github-search [query] command which will return the github repositories that were searched from the query
I changed the /user command to be /github-user to match up with the rest of the commands and also changed it in the help menu as well. I then deployed the bot on a server so it works 24/7
I finally got it working with deployment since the Nest is not sending new applicants right now, I managed to get it working with a different server service that is in the Github Student Developer Pack called Heroku. The bot now runs 24/7
Ships:
I made Github Tracker, a Slack bot that gives you real-time GitHub statistics. It can provide user profiles, repository information, recent activity, contributor data, contribution streaks, and comparisons. It can track trending and active repositories, search GitHub, monitor repository health and milestones, generate weekly or monthly reports, and runs 24/7. The most challenging part of making this bot was deploying it as the guide said to use Nest, however Nest is not taking in any more applicants right now due to server load so I had to research a different approach to it so I used Heroku instead to keep the bot up 24/7. I am most proud of how the bot can be able to scrape data off the GitHub webpage and display it straight in Slack. You can try the bot in the #bot-spam channel in the Hack Club slack or by clicking the link below. By using the command /github-help, you can get some commands to start with and what they do....
|
1793487054.6353064
|
1793573454.6353064
|
|
50050
|
Tickets to The Moon by @Lokesh_Krishnan | Stardanc Tickets to The Moon by @Lokesh_Krishnan | Stardance...
|
Lokesh_Krishnan
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T10:59:10Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Ticket To Fly is a space travel booking app built entirely in a single index.html file. You can pick destinations like Mars or the Moon, customize your mission, and get a downloadable boarding pass with a working QR code. The hardest part was managing state, live pricing math, and saving past passes to localStorage using pure JavaScript with zero frameworks. Getting html2canvas to export clean PNGs was pretty frustrating to debug too. I’m super happy with how the UI turned out—especially the background starfield and the pass archive system (used Gemini & Perplexity to help brainstorm and troubleshoot parts of it). How to test: Pick “One-Way” or click outer planets to find easter eggs. Switch currency between USD and ★STARDUST at checkout. Finish a booking to download your pass, then click ARCHIVE in the header to view saved tickets.", "repo": "https://github.com/creationssptml8/Ticket-To-Fly", "demo": "https://effortless-conkies-ca4164.netlify.app/"}]...
|
[{"post_id": 50204, "ts": "202 [{"post_id": 50204, "ts": "2026-08-19T10:44:50Z", "hours": 0.4864, "text": "Website add-ons and Dynamic Pricing have been completed!"}, {"post_id": 49521, "ts": "2026-08-18T12:11:57Z", "hours": 0.4711, "text": "Website FINSIHED! Test it out!!"}, {"post_id": 48676, "ts": "2026-08-17T05:37:05Z", "hours": 0.9353, "text": "Finished the Ticket booking interface!"}]...
|
Title: Tickets to The Moon by @Lokesh_Krishnan | S Title: Tickets to The Moon by @Lokesh_Krishnan | Stardance
Devlogs:
Finished the Ticket booking interface!
Website FINSIHED! Test it out!!
Website add-ons and Dynamic Pricing have been completed!
Ships:
Ticket To Fly is a space travel booking app built entirely in a single index.html file. You can pick destinations like Mars or the Moon, customize your mission, and get a downloadable boarding pass with a working QR code. The hardest part was managing state, live pricing math, and saving past passes to localStorage using pure JavaScript with zero frameworks. Getting html2canvas to export clean PNGs was pretty frustrating to debug too. I’m super happy with how the UI turned out—especially the background starfield and the pass archive system (used Gemini & Perplexity to help brainstorm and troubleshoot parts of it). How to test: Pick “One-Way” or click outer planets to find easter eggs. Switch currency between USD and ★STARDUST at checkout. Finish a booking to download your pass, then click ARCHIVE in the header to view saved tickets....
|
1793490532.8607225
|
1793576932.8607225
|
|
50061
|
mini maraca cracker by @Nolan-L-from-Milorad | Sta mini maraca cracker by @Nolan-L-from-Milorad | Stardance...
|
Nolan-L-from-Milorad
|
1
|
18.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-26T00:16:40Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I’ve done it! I’ve been wanting to make a decently high power output stereo amplifier for a while now and when I was looking for ICs to use I found the LM1875 a tiny 30 watt amplifier IC in a tiny 5 pin TO-220 package the main black body is a mere 10 mm * 8 mm big so I took the time to build two of them into a stereo amplifier and blew up some earbuds on the way (LOL) and rocked the entire house. The heatsink on the back does get pretty warm at higher volumes if you use it for a while though keeps under 60 degrees celsius so well within the LM1875 max tempreture (of 150 degrees celsius sustained) The internals are built onto a prototype board and housed in a 3D printed enclosure The big aluminium heatsink out the back of the maraca cracker 2,000 (name courtesy of DankPods) was salvaged from and old power supply. “this thing is hillarious if you hook it up to a tiny speaker”", "repo": "https://gitlab.com/miloradceo/maracacracker", "demo": ""}]...
|
[{"post_id": 82482, "ts": "202 [{"post_id": 82482, "ts": "2026-10-24T23:06:03Z", "hours": 2.825, "text": "I’m ready to ship! . I’ve made a gitlab repo and spent quite some time making a schematic for the device (like >1.5 hours) I also took some nice photos with my Nikon D3200. I feel this is always the part of the project I dread most spending hours taking photos, making documentation, schematics and other tiny things that just take so much longer than you think they would"}, {"post_id": 80269, "ts": "2026-10-17T01:39:04Z", "hours": 4.19, "text": "I did a tonne of minor case work for the device and got it all buttoned up and added a power LED. . I also filmed and edited a video advertising and showing off the maraca cracker 2000 with my friend and totally did not rip off dankpods in the process by blowing up earbuds and overdriving speakers that I couldn’t lapse BECAUSE LAPSE DOESN’T WORK ON LINUX (please fix this nothing works about it I have brought this up multiple times in stardance-help in slack and I’ve gotten nothing) . NEXT: I need to pull all the documentation (that I still need to make) and files into a gitlab repo"}, {"post_id": 74738, "ts": "2026-09-28T03:07:51Z", "hours": 2.2236, "text": "After more case work we have a top for it and the best branding known to humankind MARACA CRACKER 2,000!!!!!!! I’m really happy to see this project come together as well as it has I did a majour boo-boo where I moddeled the case as if the amp was 15mm wider and on the remodel I mucked up the case’s screw holes that I now realise I really need two more of. will do more soon"}, {"post_id": 70447, "ts": "2026-09-19T06:33:51Z", "hours": 1.0833, "text": "More case work with fusion, not terribly interesting but it must be done :( The volume knob now fits and the audio input is screwed into the case as well. I’m contemplating the design for the final case too. I must first do the basic case then make it look nice once that is done I can add cool patterns, text and MARACA CRACKER 2,000!!!!! MUST MAKE DADDY DANKPODS PROUD (lol) I’ll blow up some dirtybuds in the demo video too! (or at least try)"}, {"post_id": 61955, "ts": "2026-09-05T04:22:53Z", "hours": 4.3492, "text": "I recently locked in and did a tonne (kinda forgot to post a bit) But I started designing a case in fusion 360 (FreeCad stinks) I also put screw terminals on the side with a DC barrel jack for power input (edit I put a picture in as I realized I completely forgot to add one LOL :3)"}, {"post_id": 49446, "ts": "2026-08-18T09:13:08Z", "hours": 1.4833, "text": "I’ve kept myself busy! I’ve soldered in the socket and part of the right channel, the rest of the circuit’s parts have been pushed in and I will solder them in the morning. additionally I have soldered up left / right RCA jacks and a volume knob out of two trimpots vertically mounted and attached with a board at the top. This is all going surprisingly well considering the complexity of building a dual-channel amplifier with just the datasheet’s schematic to go off of!"}, {"post_id": 49123, "ts": "2026-08-17T19:12:18Z", "hours": 2.1742, "text": "My goal for this project is to build a small high power amplifier that also doesn’t look trash and start fires. BUT STILL PLAYS SCARLET FIRE I just dropped $50 NZD at jaycar for parts for this project 💀 somehow I managed to perfectly assemble one channel just out of following the datasheet’s example schematic, I know I’m amazed too but miracles happen! attached is the schematic I was using and a picture of what I built"}]...
|
Title: mini maraca cracker by @Nolan-L-from-Milora Title: mini maraca cracker by @Nolan-L-from-Milorad | Stardance
Devlogs:
My goal for this project is to build a small high power amplifier that also doesn’t look trash and start fires. BUT STILL PLAYS SCARLET FIRE I just dropped $50 NZD at jaycar for parts for this project 💀 somehow I managed to perfectly assemble one channel just out of following the datasheet’s example schematic, I know I’m amazed too but miracles happen! attached is the schematic I was using and a picture of what I built
I’ve kept myself busy! I’ve soldered in the socket and part of the right channel, the rest of the circuit’s parts have been pushed in and I will solder them in the morning. additionally I have soldered up left / right RCA jacks and a volume knob out of two trimpots vertically mounted and attached with a board at the top. This is all going surprisingly well considering the complexity of building a dual-channel amplifier with just the datasheet’s schematic to go off of!
I recently locked in and did a tonne (kinda forgot to post a bit) But I started designing a case in fusion 360 (FreeCad stinks) I also put screw terminals on the side with a DC barrel jack for power input (edit I put a picture in as I realized I completely forgot to add one LOL :3)
More case work with fusion, not terribly interesting but it must be done :( The volume knob now fits and the audio input is screwed into the case as well. I’m contemplating the design for the final case too. I must first do the basic case then make it look nice once that is done I can add cool patterns, text and MARACA CRACKER 2,000!!!!! MUST MAKE DADDY DANKPODS PROUD (lol) I’ll blow up some dirtybuds in the demo video too! (or at least try)
After more case work we have a top for it and the best branding known to humankind MARACA CRACKER 2,000!!!!!!! I’m really happy to see this project come together as well as it has I did a majour boo-boo where I moddeled the case as if the amp was 15mm wider and on the remodel I mucked up the case’s screw holes that I now realise I really need two more of. will do more soon
I did a tonne of minor case work for the device and got it all buttoned up and added a power LED. . I also filmed and edited a video advertising and showing off the maraca cracker 2000 with my friend and totally did not rip off dankpods in the process by blowing up earbuds and overdriving speakers that I couldn’t lapse BECAUSE LAPSE DOESN’T WORK ON LINUX (please fix this nothing works about it I have brought this up multiple times in stardance-help in slack and I’ve gotten nothing) . NEXT: I need to pull all the documentation (that I still need to make) and files into a gitlab repo
I’m ready to ship! . I’ve made a gitlab repo and spent quite some time making a schematic for the device (like >1.5 hours) I also took some nice photos with my Nikon D3200. I feel this is always the part of the project I dread most spending hours taking photos, making documentation, schematics and other tiny things that just take so much longer than you think they would
Ships:
I’ve done it! I’ve been wanting to make a decently high power output stereo amplifier for a while now and when I was looking for ICs to use I found the LM1875 a tiny 30 watt amplifier IC in a tiny 5 pin TO-220 package the main black body is a mere 10 mm * 8 mm big so I took the time to build two of them into a stereo amplifier and blew up some earbuds on the way (LOL) and rocked the entire house. The heatsink on the back does get pretty warm at higher volumes if you use it for a while though keeps under 60 degrees celsius so well within the LM1875 max tempreture (of 150 degrees celsius sustained) The internals are built onto a prototype board and housed in a 3D printed enclosure The big aluminium heatsink out the back of the maraca cracker 2,000 (name courtesy of DankPods) was salvaged from and old power supply. “this thing is hillarious if you hook it up to a tiny speaker”...
|
1793321509.2773123
|
1793407909.2773123
|
|
50067
|
YSH v8 Uni by @Yousuff | Stardance
|
Yousuff
|
1
|
6.0
|
20
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-11T18:57:03Z", "hours": 6.0, "multiplier": 6.34, "payout": 20, "blessing": "neutral", "text": "YSH Terminal — A custom terminal environment built from the ground up, evolving YSH from a simple shell into a more complete terminal experience. It features real filesystem interaction, shell-style commands, networking tools, themes, ASCII branding, developer features, a mini CLI game, and a growing set of utilities.", "repo": "https://github.com/YousufProjs-exe/YSH-v8/", "demo": "https://yousufprojs-exe.github.io/YSH-WEBSITE/"}]...
|
[{"post_id": 66125, "ts": "202 [{"post_id": 66125, "ts": "2026-09-11T18:53:14Z", "hours": 0.5556, "text": "YSH v8, best of current YSH is ready and is live on Github, now YSH is an actual shell with Filesystem and utilities but YSH aint a regular termianl its comes with LAN Networking(Chat and Fileshare), CLI Applications, Eastereggs and more!"}, {"post_id": 49561, "ts": "2026-08-18T13:17:05Z", "hours": 1.5011, "text": "Fixed all the Shorcuts and better File Share"}, {"post_id": 49192, "ts": "2026-08-17T20:50:57Z", "hours": 4.2697, "text": "YSH-Terminal with LAN Networking , CLI Applications and more.!!"}]...
|
Title: YSH v8 Uni by @Yousuff | Stardance
Devlogs Title: YSH v8 Uni by @Yousuff | Stardance
Devlogs:
YSH-Terminal with LAN Networking , CLI Applications and more.!!
Fixed all the Shorcuts and better File Share
YSH v8, best of current YSH is ready and is live on Github, now YSH is an actual shell with Filesystem and utilities but YSH aint a regular termianl its comes with LAN Networking(Chat and Fileshare), CLI Applications, Eastereggs and more!
Ships:
YSH Terminal — A custom terminal environment built from the ground up, evolving YSH from a simple shell into a more complete terminal experience. It features real filesystem interaction, shell-style commands, networking tools, themes, ASCII branding, developer features, a mini CLI game, and a growing set of utilities....
|
1793346467.9384391
|
1793432867.9384391
|
|
50068
|
Give Your Website a Pulse by @vires | Stardance
|
vires
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T04:18:01Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A minimal browser start page built with pure HTML, CSS and JavaScript — no dependencies, no build step. Open it as a new tab and get everything you need right away: clock, search, bookmarks, tasks, and an inspiring quote.", "repo": "https://github.com/abdulakimabdimanapov-rgb/Give-Your-Website-a-Pulse", "demo": "https://abdulakimabdimanapov-rgb.github.io/Give-Your-Website-a-Pulse/"}]...
|
[{"post_id": 48649, "ts": "202 [{"post_id": 48649, "ts": "2026-08-17T04:01:40Z", "hours": 0.6942, "text": "Hey everyone! Just shipped my custom New Tab page for the Give Your Website a Pulse mission! wanted a clean, fast, and interactive dashboard for my daily browser use, so I built this starting page with a modern glassmorphism design."}]...
|
Title: Give Your Website a Pulse by @vires | Stard Title: Give Your Website a Pulse by @vires | Stardance
Devlogs:
Hey everyone! Just shipped my custom New Tab page for the Give Your Website a Pulse mission! wanted a clean, fast, and interactive dashboard for my daily browser use, so I built this starting page with a modern glassmorphism design.
Ships:
A minimal browser start page built with pure HTML, CSS and JavaScript — no dependencies, no build step. Open it as a new tab and get everything you need right away: clock, search, bookmarks, tasks, and an inspiring quote....
|
1792878468.464725
|
1793742468.464725
|
|
50075
|
sten0 by @pizzalover125 | Stardance
|
pizzalover125
|
1
|
22.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-11T20:59:07Z", "hours": 22.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "an open source steno keyboard for under $20 :)", "repo": "https://github.com/pizzalover125/sten0", "demo": ""}]...
|
[{"post_id": 55818, "ts": "202 [{"post_id": 55818, "ts": "2024-07-01T00:00:00Z", "hours": 0.5, "text": "found a keycap model that works!!! (after going through another 2) LETS GO IM SO HAPPY RN ITS UNBELIEVABLE THEY FIT PERFECTLY im so so happy"}, {"post_id": 55816, "ts": "2024-06-28T00:00:00Z", "hours": 2.0, "text": "I wasn’t sure if my white filament was enough so i switched it to black but it didn’t end up working after multiple failed prints so im moving back to black ok it printed but it doesn’t fit need to tweak the model i printed a keycap it fits! didn’t like the design tho going to use this simple one: https://www.printables.com/model/700878-simple-choc-v1-flat-keycaps/files printed! looks super clean redesigning the thing now wait nvm i can just cutout the pins it fits! WHAAAT THE KEEB DOESN’T WORK ANYMORE NOOOOOOOOOOO fixed it! it was a messy solder connectionm shoutout to @Naytik on slack for the help"}, {"post_id": 55817, "ts": "2024-06-26T00:00:00Z", "hours": 2.0, "text": "last night, i printed the top plate that I CADded to add it, i needed to remove the keycaps unfortunately, the keycaps got stuck so i have to replace those switches asked to buy solder wick tried a bunch of things before asking like using glue or the leg of a diode while the wick is being shipped by AMZN, i’ll design the top plate looks pretty clean! it doesn’t work asked in Slack ok apparently i had to wash the bed did that! reprinted printed perfectly! however, it its too flimsy and the screws dont fit reprinting the model with bigger screw holes and more thickness did it! for 30 minutes, i tried screwing it in with my screws from AMZN but then i realized i got the wrong type of screw i needed self tapping i went to lowes and got some it worked awesome! except it broke the 3d print ok remodeled it voila!"}, {"post_id": 55815, "ts": "2024-06-02T00:00:00Z", "hours": 0.25, "text": "Raygen told me to update it with more details on my exact layout sounds like a great idea so ill do it! experimenting with https://stenokeyboards.com/products/the-uni-v4 and https://opensteno.org/demo/ done! i have both QWERTY and STENO will update README with more info"}, {"post_id": 55814, "ts": "2024-05-23T00:00:00Z", "hours": 4.0, "text": "added 1mm more of spacing but now i can’t 3d print it. im thinking to reduce space between Pico and rest made it smaller + moved diodes to back only 249mm wide dimensions: 249x37, 141x26 3d modeling time w cutout and i made a render! nvm i need screws apparently ahhhhhh have to redesign it again wait let me create BOM $53 flat is pretty good ngl ok back to case design watching this https://www.youtube.com/watch?v=cLz7wpwAEoI learned a lot about how to make it exposed PCB but ill just have a front panel ig going to use https://kbplate.ai03.com/ for cutouts ok i have no idea on how to do this idk what dimensions to use i have all of it imported; asked on Slack on how to do it; will continue work after actually let me fully prepare the BOM lets ring up the PCB cost on JLC $21.08… nice! let me create BOM.csv ok going to upload all PCB files through a Codespace added everything except the CAD and CAD images in README time to go back to doing CAD! (started 220) watching https://www.youtube.com/watch?v=7azQkSu0m_U not helpful at all manually did it cool section view ok i made it so the holes are invis cutout in middle also going to test out micro-usb cable it fits! voila! ok preparing for submission again"}, {"post_id": 55813, "ts": "2024-05-22T00:00:00Z", "hours": 3.0, "text": "ok time to make a better CAD! im thinking i’ll do a simpler backplate design with a cool frontplate so its basically a sandwich nvm this is too hard im switching to exposed PCB style time to look for inspo watching https://www.youtube.com/watch?v=82yD0RMeEw8 i came up with the following but it doesn’t seem like enough OMG IVE BEEN TRYING TO MAKE A CUTOUT FOR USB AND ITS NOT WORKING AHHHHH going to redo the PCB layout making it low profile now removing encoders; bulky and don’t look good hotswap also cause why not nvm no hotswap cause i don’t really need it personally using only what i need routed but just realized its not symetrical 😭 ok figuring out how to round corners figured it out! you just use arcs and move the lines acon was right; this feels super nice ok time for routing! OMG I DID IT WITH 0 VIAS im going to create a cool render now first i added back silkscreen art renders are awesome there were these random “K”s next to the diodes, so I removed them need to figure out where mounting holes go wait i dont need them cause i can just press fit with supports created dimensions according to my calculations, i need two rectangles; one that is 252x35 and another that is 147x26. 1mm filets idk if this will work added things in middle: added cutout! going to render this keys may not be able to be pressed"}, {"post_id": 55812, "ts": "2024-05-21T00:00:00Z", "hours": 1.0, "text": "project got rejected… 😭 got rejected for design which i can understand need to make design more cohesive no exposed PCB ig ok ill make basic face plate then ill spice it up nvm ill just create a cool render the encoder keeps bugging out; need a fix tried like 5 diff models and tweaked a bunch of settings and it worked!"}, {"post_id": 55810, "ts": "2024-05-17T00:00:00Z", "hours": 3.0, "text": "started off with a BOM wait if I get some more switches I can build 2 keyboards ok $6 more for +1 keyboard is not bad soooooo that comes down to $67.64 for two keebs or $33.82 for two doesn’t include 3d printed case but thats not too bad acon told me to look at other keyboard companies polish #1: logo on back watched https://www.youtube.com/watch?v=YR1xkOp5U1g just realized I forgot screws in BOM ok apparently i can just use M2x3 without any hex nuts. adding to BOM ok $80.43 now; still cheaper than an Asterik ok going to scroll more on hardware.hackclub.com wait b4 that I wanted to round all corners wait i don’t need mounting holes if tolerance is tight enough idk ill still keep them rounded literally every corner idk what else to make this polished ok ive seen so many other keyboards and don’t see how mine isn’t as polished… made PCB shorter ok im going to reroute everything to make routing better moving two diodes below encoders bc they seem kinda weird looks better rerouted everything! ok imma make a 3d model of the key + keycap WHY ALL KEYCAPS ARE SLANTED OMG MGOMOGMOGMOGM looks pretty slick NGL ill create a rotary encoder w/ cap as well time for render! not working on render? ok its fine added README… ready to submit!"}, {"post_id": 55811, "ts": "2024-05-17T00:00:00Z", "hours": 0.25, "text": "after I uploaded the thing on Slack, Taran told me I needed some sort of support for the pins after a lot of help by him, I made the thing below: Taran said it looks good so okay he said to extrude something on bottom ill do that later ok turns out i also need standoffs for OLED will do wait i can’t extrude a logo or something on bottom bc im splitting it in half"}, {"post_id": 55809, "ts": "2024-05-16T00:00:00Z", "hours": 2.0, "text": "BRUHHHH MY WHOLE JOURNAL for today GOT DELETED basically, I was learning how to Render KiCad It was this crazy thing where I had to downgrade KiCAD to 9.0 and then upgrade to 10.0 I downloaded Blender and Fusion and tried to Render but it wasn’t working I watched like 5 YT videos trying to figure it out So I ultimately decided to have no render I added mounting holes + logos made back panel tried to export from KiCAD as STEP but it doesn’t work? ok that was a weird bug; i just had to redraw the outline pretty basic, ngl idk where to add polish first im going to add keycaps to make it look better nvm no keycaps bc very tedious asked for help on Slack: https://hackclub.slack.com/archives/C0B0CADUV3P/p1778990312121819 what do we think? it looks pretty sick ngl idk what else to add for polish will look at approved keebs on hardware.hackclub.com liked https://github.com/KaiPereira/PR1SM , https://github.com/sudo-apt-install-tap/TaoTeChing , https://github.com/code2344/SplitCodeBoard , https://github.com/meepodeep/ErgoDecks ok all of them are pretty standard and i lowk didn’t gain much inspiration note to self: need to split the keyboard in half to print it wait I can just do that in the Bambu Slicer; ok ill just do that ok i think plan now is to finalize and then submit start w/ BOM im genuinely shocked by this time to see JLC.. doesn’t work? ok time to sleep; will see tmrw"}, {"post_id": 55807, "ts": "2024-05-15T00:00:00Z", "hours": 0.83, "text": "new day; no school! wanted to fully figure out the firmware aspect found the NKRO layout for https://nolltronics.com/product/picosteno/ NKRO is basically a setting you can change on your QWERTY keyboard to actually register all the keys you press at the same time basically, ill code firmware w/ regular QMK/KMK and itll be normal keyboard firmware. user runs Plover software on their computer Plover converts each regular key press to steno this way, I can have the OLED + rotary encoders be super easy to code up i removed the labels from the front + back silkscreen to make it look better / cleaner ill do only firmware today i created the keymap: column 1: Q W E R T Y U I Y P [ column 2: A S D F T O J K L ; ’ column 3: 2 C V [mute/unmute] [video on/off] N M 8 ’ this looks super simple but it isn’t bc i messed up in schematic / placement and some of the keys were swapped around; instead of rerouting, imo fixing it in firmware is better and faster and thats what I did wait nvm i messed up; this should be good: column 1: Q W E R T Y U I Y P column 2: A S D F T O J K L ; column 3: 2 C V [mute/unmute] [video on/off] N M 8 ’ [ im creating firware w help of Claude (pretty hard to do firmware w/o parts)"}, {"post_id": 55808, "ts": "2024-05-15T00:00:00Z", "hours": 0.25, "text": "adding the mounting holes watching https://www.youtube.com/watch?v=TDL3USgDEM0 realized I only have to press “a” and add M2 hole need to position it properly i want to make the PCB black (or white i haven’t chosen yet) looks pretty mid ngl okay time to do case idk what software to use ehhh ill just design a logo today time to hop on figma nvm my internet went out??????????? why did this happen to me uhhhh ig i can’t do much so ill end it here for today… unless it comes back"}, {"post_id": 55806, "ts": "2024-05-14T00:00:00Z", "hours": 2.25, "text": "before starting the schematic, I wanted to look at other open source Steno boards found https://plover.wiki/index.php/DIY_steno_writers they are cool, but none of them have encoders or OLEDs omg i just realized my layout is off i need another two keys on the left side i did not expect almost all steno keyboards to be not aligned? thats actually so weird, but ill change my design i also need to move the bottom row down by 1 unit how did i make all these mistakes wow ok that was ez to fix time to hop on KiCad watching https://www.youtube.com/watch?v=8WXpGTIbxlQ to learn a little bit got matrix done using this https://pip-assets.raspberrypi.com/categories/610-raspberry-pi-pico/documents/RP-008309-DS-1-Pico-R3-A4-Pinout.pdf?disposition=inline schematic done! it was pretty ez assigned footprint spent 5 minutes looking for EC11 + cherry mx footrpints but realized they were built in after alex told me time to start PCB! finished the keys, encoders, and pico placement; need to do diodes + OLED routing time! oops forgot to flip the diodes… ill do that rn! routed! added 3d models for keys took so long for no reason added all the other 3d models… these were shorter! aight going to call it for a day but great progress today!"}, {"post_id": 55805, "ts": "2024-05-13T00:00:00Z", "hours": 0.5, "text": "thought about required costs decided to make BOM for some reason im going to source a lot of parts from Amazon Aliexpress has misdelievered packages lot easier to get parts, replace parts, etc. i alr have a bunch of Picos lying around so i’ll use one of those PCB probably going to be around $20 realized i need to figure out firmware because it is complex found Plover (most popular firmware) ok this is a bit weird but basically I can program the keyboard firmware to be like a regular keyboard but Plover will translate the regular keypresses to Steno (in this image, I would set the top left key on my PCB to be a “W” on QWERTY which would be translate to the “T” sound on Steno ok i basically have firmware figured out! ill use a 7*4 matrix layout so I can get the 2 rotary encoders and make them keys i tried to draw out the matrix but its hard so ill prob just figure which keys are what after schematic done nvm ill use 3x10 cause its easier and i have enough keys and it would be easier to route"}, {"post_id": 55804, "ts": "2024-05-12T00:00:00Z", "hours": 0.5, "text": "created idea after seeing StenoKeyboard’s outrageous pricing on https://stenokeyboards.com/products/the-uni-v4 i’ve seen videos of people typing at crazy speeds with steno what if i made a cheap steno keyboard? v1 is going to be basic but i want v2 to be hotswap + RGB i could still do hotswap with this thing called “mill-max sockets” they basically plug the PCB holes and make a regular MX footprint become hotswappable require kapton tape ok ill decide this later created the thing below was originally going to copy the StenoKeyboards layout but Taran told me to make it more unique so I tried doing that ok ill first design w/o LEDs and then add them in v2 goal of this project is to be ultra-polished in every way possible want some sick renders"}]...
|
Title: sten0 by @pizzalover125 | Stardance
Devlog Title: sten0 by @pizzalover125 | Stardance
Devlogs:
created idea after seeing StenoKeyboard’s outrageous pricing on https://stenokeyboards.com/products/the-uni-v4 i’ve seen videos of people typing at crazy speeds with steno what if i made a cheap steno keyboard? v1 is going to be basic but i want v2 to be hotswap + RGB i could still do hotswap with this thing called “mill-max sockets” they basically plug the PCB holes and make a regular MX footprint become hotswappable require kapton tape ok ill decide this later created the thing below was originally going to copy the StenoKeyboards layout but Taran told me to make it more unique so I tried doing that ok ill first design w/o LEDs and then add them in v2 goal of this project is to be ultra-polished in every way possible want some sick renders
thought about required costs decided to make BOM for some reason im going to source a lot of parts from Amazon Aliexpress has misdelievered packages lot easier to get parts, replace parts, etc. i alr have a bunch of Picos lying around so i’ll use one of those PCB probably going to be around $20 realized i need to figure out firmware because it is complex found Plover (most popular firmware) ok this is a bit weird but basically I can program the keyboard firmware to be like a regular keyboard but Plover will translate the regular keypresses to Steno (in this image, I would set the top left key on my PCB to be a “W” on QWERTY which would be translate to the “T” sound on Steno ok i basically have firmware figured out! ill use a 7*4 matrix layout so I can get the 2 rotary encoders and make them keys i tried to draw out the matrix but its hard so ill prob just figure which keys are what after schematic done nvm ill use 3x10 cause its easier and i have enough keys and it would be easier to route
before starting the schematic, I wanted to look at other open source Steno boards found https://plover.wiki/index.php/DIY_steno_writers they are cool, but none of them have encoders or OLEDs omg i just realized my layout is off i need another two keys on the left side i did not expect almost all steno keyboards to be not aligned? thats actually so weird, but ill change my design i also need to move the bottom row down by 1 unit how did i make all these mistakes wow ok that was ez to fix time to hop on KiCad watching https://www.youtube.com/watch?v=8WXpGTIbxlQ to learn a little bit got matrix done using this https://pip-assets.raspberrypi.com/categories/610-raspberry-pi-pico/documents/RP-008309-DS-1-Pico-R3-A4-Pinout.pdf?disposition=inline schematic done! it was pretty ez assigned footprint spent 5 minutes looking for EC11 + cherry mx footrpints but realized they were built in after alex told me time to start PCB! finished the keys, encoders, and pico placement; need to do diodes + OLED routing time! oops forgot to flip the diodes… ill do that rn! routed! added 3d models for keys took so long for no reason added all the other 3d models… these were shorter! aight going to call it for a day but great progress today!
adding the mounting holes watching https://www.youtube.com/watch?v=TDL3USgDEM0 realized I only have to press “a” and add M2 hole need to position it properly i want to make the PCB black (or white i haven’t chosen yet) looks pretty mid ngl okay time to do case idk what software to use ehhh ill just design a logo today time to hop on figma nvm my internet went out??????????? why did this happen to me uhhhh ig i can’t do much so ill end it here for today… unless it comes back
new day; no school! wanted to fully figure out the firmware aspect found the NKRO layout for https://nolltronics.com/product/picosteno/ NKRO is basically a setting you can change on your QWERTY keyboard to actually register all the keys you press at the same time basically, ill code firmware w/ regular QMK/KMK and itll be normal keyboard firmware. user runs Plover software on their computer Plover converts each regular key press to steno this way, I can have the OLED + rotary encoders be super easy to code up i removed the labels from the front + back silkscreen to make it look better / cleaner ill do only firmware today i created the keymap: column 1: Q W E R T Y U I Y P [ column 2: A S D F T O J K L ; ’ column 3: 2 C V [mute/unmute] [video on/off] N M 8 ’ this looks super simple but it isn’t bc i messed up in schematic / placement and some of the keys were swapped around; instead of rerouting, imo fixing it in firmware is better and faster and thats what I did wait nvm i messed up; this should be good: column 1: Q W E R T Y U I Y P column 2: A S D F T O J K L ; column 3: 2 C V [mute/unmute] [video on/off] N M 8 ’ [ im creating firware w help of Claude (pretty hard to do firmware w/o parts)
BRUHHHH MY WHOLE JOURNAL for today GOT DELETED basically, I was learning how to Render KiCad It was this crazy thing where I had to downgrade KiCAD to 9.0 and then upgrade to 10.0 I downloaded Blender and Fusion and tried to Render but it wasn’t working I watched like 5 YT videos trying to figure it out So I ultimately decided to have no render I added mounting holes + logos made back panel tried to export from KiCAD as STEP but it doesn’t work? ok that was a weird bug; i just had to redraw the outline pretty basic, ngl idk where to add polish first im going to add keycaps to make it look better nvm no keycaps bc very tedious asked for help on Slack: https://hackclub.slack.com/archives/C0B0CADUV3P/p1778990312121819 what do we think? it looks pretty sick ngl idk what else to add for polish will look at approved keebs on hardware.hackclub.com liked https://github.com/KaiPereira/PR1SM , https://github.com/sudo-apt-install-tap/TaoTeChing , https://github.com/code2344/SplitCodeBoard , https://github.com/meepodeep/ErgoDecks ok all of them are pretty standard and i lowk didn’t gain much inspiration note to self: need to split the keyboard in half to print it wait I can just do that in the Bambu Slicer; ok ill just do that ok i think plan now is to finalize and then submit start w/ BOM im genuinely shocked by this time to see JLC.. doesn’t work? ok time to sleep; will see tmrw
after I uploaded the thing on Slack, Taran told me I needed some sort of support for the pins after a lot of help by him, I made the thing below: Taran said it looks good so okay he said to extrude something on bottom ill do that later ok turns out i also need standoffs for OLED will do wait i can’t extrude a logo or something on bottom bc im splitting it in half
started off with a BOM wait if I get some more switches I can build 2 keyboards ok $6 more for +1 keyboard is not bad soooooo that comes down to $67.64 for two keebs or $33.82 for two doesn’t include 3d printed case but thats not too bad acon told me to look at other keyboard companies polish #1: logo on back watched https://www.youtube.com/watch?v=YR1xkOp5U1g just realized I forgot screws in BOM ok apparently i can just use M2x3 without any hex nuts. adding to BOM ok $80.43 now; still cheaper than an Asterik ok going to scroll more on hardware.hackclub.com wait b4 that I wanted to round all corners wait i don’t need mounting holes if tolerance is tight enough idk ill still keep them rounded literally every corner idk what else to make this polished ok ive seen so many other keyboards and don’t see how mine isn’t as polished… made PCB shorter ok im going to reroute everything to make routing better moving two diodes below encoders bc they seem kinda weird looks better rerouted everything! ok imma make a 3d model of the key + keycap WHY ALL KEYCAPS ARE SLANTED OMG MGOMOGMOGMOGM looks pretty slick NGL ill create a rotary encoder w/ cap as well time for render! not working on render? ok its fine added README… ready to submit!
project got rejected… 😭 got rejected for design which i can understand need to make design more cohesive no exposed PCB ig ok ill make basic face plate then ill spice it up nvm ill just create a cool render the encoder keeps bugging out; need a fix tried like 5 diff models and tweaked a bunch of settings and it worked!
ok time to make a better CAD! im thinking i’ll do a simpler backplate design with a cool frontplate so its basically a sandwich nvm this is too hard im switching to exposed PCB style time to look for inspo watching https://www.youtube.com/watch?v=82yD0RMeEw8 i came up with the following but it doesn’t seem like enough OMG IVE BEEN TRYING TO MAKE A CUTOUT FOR USB AND ITS NOT WORKING AHHHHH going to redo the PCB layout making it low profile now removing encoders; bulky and don’t look good hotswap also cause why not nvm no hotswap cause i don’t really need it personally using only what i need routed but just realized its not symetrical 😭 ok figuring out how to round corners figured it out! you just use arcs and move the lines acon was right; this feels super nice ok time for routing! OMG I DID IT WITH 0 VIAS im going to create a cool render now first i added back silkscreen art renders are awesome there were these random “K”s next to the diodes, so I removed them need to figure out where mounting holes go wait i dont need them cause i can just press fit with supports created dimensions according to my calculations, i need two rectangles; one that is 252x35 and another that is 147x26. 1mm filets idk if this will work added things in middle: added cutout! going to render this keys may not be able to be pressed
added 1mm more of spacing but now i can’t 3d print it. im thinking to reduce space between Pico and rest made it smaller + moved diodes to back only 249mm wide dimensions: 249x37, 141x26 3d modeling time w cutout and i made a render! nvm i need screws apparently ahhhhhh have to redesign it again wait let me create BOM $53 flat is pretty good ngl ok back to case design watching this https://www.youtube.com/watch?v=cLz7wpwAEoI learned a lot about how to make it exposed PCB but ill just have a front panel ig going to use https://kbplate.ai03.com/ for cutouts ok i have no idea on how to do this idk what dimensions to use i have all of it imported; asked on Slack on how to do it; will continue work after actually let me fully prepare the BOM lets ring up the PCB cost on JLC $21.08… nice! let me create BOM.csv ok going to upload all PCB files through a Codespace added everything except the CAD and CAD images in README time to go back to doing CAD! (started 220) watching https://www.youtube.com/watch?v=7azQkSu0m_U not helpful at all manually did it cool section view ok i made it so the holes are invis cutout in middle also going to test out micro-usb cable it fits! voila! ok preparing for submission again
Raygen told me to update it with more details on my exact layout sounds like a great idea so ill do it! experimenting with https://stenokeyboards.com/products/the-uni-v4 and https://opensteno.org/demo/ done! i have both QWERTY and STENO will update README with more info
last night, i printed the top plate that I CADded to add it, i needed to remove the keycaps unfortunately, the keycaps got stuck so i have to replace those switches asked to buy solder wick tried a bunch of things before asking like using glue or the leg of a diode while the wick is being shipped by AMZN, i’ll design the top plate looks pretty clean! it doesn’t work asked in Slack ok apparently i had to wash the bed did that! reprinted printed perfectly! however, it its too flimsy and the screws dont fit reprinting the model with bigger screw holes and more thickness did it! for 30 minutes, i tried screwing it in with my screws from AMZN but then i realized i got the wrong type of screw i needed self tapping i went to lowes and got some it worked awesome! except it broke the 3d print ok remodeled it voila!
I wasn’t sure if my white filament was enough so i switched it to black but it didn’t end up working after multiple failed prints so im moving back to black ok it printed but it doesn’t fit need to tweak the model i printed a keycap it fits! didn’t like the design tho going to use this simple one: https://www.printables.com/model/700878-simple-choc-v1-flat-keycaps/files printed! looks super clean redesigning the thing now wait nvm i can just cutout the pins it fits! WHAAAT THE KEEB DOESN’T WORK ANYMORE NOOOOOOOOOOO fixed it! it was a messy solder connectionm shoutout to @Naytik on slack for the help
found a keycap model that works!!! (after going through another 2) LETS GO IM SO HAPPY RN ITS UNBELIEVABLE THEY FIT PERFECTLY im so so happy
Ships:
an open source steno keyboard for under $20 :)...
|
1793378964.9290376
|
1794242964.9290376
|
|
50076
|
orph32 by @pizzalover125 | Stardance
|
pizzalover125
|
1
|
15.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-08T00:11:52Z", "hours": 15.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "an esp32 devboard to be sold at hack club shops; Orpheus Pico, but with an ESP32 chip", "repo": "https://github.com/pizzalover125/orpheus32", "demo": ""}]...
|
[{"post_id": 56129, "ts": "202 [{"post_id": 56129, "ts": "2024-06-04T00:00:00Z", "hours": 1.0, "text": "im locking in polish today this bout to be the most polished thing ever first things first, delete whatever i made b4 start w blank slate okay, time to design a logo will use Figma o, r, p, h all layered on top of each other v2 of logo need to add 32 component to it bruh ts is so hard idk ill start afresh ok im back at 3:45 pm time to get back to work on this ok that looks better ok who let me cook something needs to be in the middle also got tons of positive feedback which is nice to hear who let me cook something forming? i feel like this is enough"}, {"post_id": 56079, "ts": "2024-06-03T00:00:00Z", "hours": 0.25, "text": "ahhhhhh im trying to make it better i tried to brand it as “the most comical devboard” but it did not end up working i need to find a way to make this more personalized ahhhh why is this so hard"}, {"post_id": 56078, "ts": "2024-06-02T00:00:00Z", "hours": 0.5, "text": "project rejected :( apparently it is too generic in terms of art need to fix that! looking at https://hardware.hackclub.com/gallery for inspo i like https://github.com/NotARoomba/ember and Taranium-RP2040 made it comic sans ahhhhh idk how to make the art better"}, {"post_id": 56077, "ts": "2024-05-21T00:00:00Z", "hours": 3.0, "text": "redoing all the passives going to change placement as well some changes to values + decoupling caps added done with pairs + placement! wowoowowowow time to see price bc i lessened number of items bruh price is $93 now $180 w customs and shipping 😢 I HAVE TO RESTART bc ESP32-S3 is too expensive luckily i have rev2 still available which uses routing time wait ill add SK6218-mini ok added PCB done! need to add silkscreen now! both sides done! time to add Hack Club logo BOOM! ok sent message in slack idk i feel like accelorometer is not needed i think i might prepare for submission now ok going to prepare for submission added cool labels to evrything creating render cause why not Render PCB + Schematic KiCAD Render JLC comes out to $40.30 👀 ok time to upload files and prepare README"}, {"post_id": 56076, "ts": "2024-05-20T00:00:00Z", "hours": 2.0, "text": "I fixed DRC errors that Taran pointed out now i want to add a neopixel to make it look cooler going to use SK6812 cause why not routed it! will add 3d model ok added it from SnapEDA wait the headers are reversed; need to fix time for silkscreen raygen wants me to add another neopixel was not planning to, but sure added! going to view other devboards notes from other breadboards: label schematic to make it pretty label pins (seems to be very important) hack club logo + other silkscreen art ok im locked in now wow this is harder than I expected first half done! one more half to go had a bunch of problems choosing font and positioning properly made post on Hack Club Slack ok i think thats it for now; will come back to fix problems, tidy schematic, and prepare to submit! seems like no major errors as nobody has said much on Slack Taran told me to add which GPIO are being used for sensors, so I did that! going to create order on JLC and source parts! im doing everything except the pins cause i don’t really need them PCBA ok i can do a lot of optimization but first, i need to fix all the things Rudy mentioned ahhh too tired for this; will do tmrw ig"}, {"post_id": 56075, "ts": "2024-05-19T00:00:00Z", "hours": 3.0, "text": "@Rudy on Slack told me to use a ESP32 with built-in UART-to-USB ig thats what we are doing for this after brief research, I found ESP32-S3-WROOM-1 with 36 GPIO will read https://documentation.espressif.com/esp32-s3-wroom-1_wroom-1u_datasheet_en.pdf idk if I even should create a board bc its going to be super basic copied USB-C w/o diode going to use same power circuitry added buttons bruh my schematic feels so basic pcb also feels too basic… idk if this is worth it cause its too basic ok im back after a couple of hours i’m going to make this a sensor board finally mastered differential pairs in KiCad w https://www.youtube.com/watch?v=M13QxtPVrXY ! wait routing this is impossible waiting for expert resposne in Slack; going to select some chips to use after brief research, i’ve decided to use BME280 and LSM6DS3 BME280 is temperature, while the LSM6DS3 is accelorometer after much reading of datasheets, came up with this! hopefully it is correct rev 3 is complete!"}, {"post_id": 56074, "ts": "2024-05-18T00:00:00Z", "hours": 2.0, "text": "time to fix everything I did wrong, such as: also apparently my routing is inefficient REROUTED EVERYTHING AGAIN BUT IT STILL DIDN”T WORK AHHHHH time to watch https://www.youtube.com/watch?v=KgOQaBUPiBo ok that vid no good lets try https://www.youtube.com/watch?v=v2okbB05piE AI slop vid; nvm lets try https://www.youtube.com/watch?v=0tuuMSxcVxg got it working! w render and we are done with routing for rev2… wow this is turning out great! next rev, need to minimize vias from 15 to like 5"}, {"post_id": 56073, "ts": "2024-05-18T00:00:00Z", "hours": 3.0, "text": "During highway, Jenin had this idea to make an ESP32 devboard called Orpheus32, but ended up never making it and granted me permission to make it I never made it… until now! im going to use KiCad going to use WROOM-32 realized that it doesn’t have easy USB pins like RP2040; need a USB to UART coverter after some vary minimal research, it looks like CH340C is the standard for the converter using LDO AMS117 3.3v edition working on USB-C need B5819W diode adding power LED following standard conventions for the first time by having GND face down and VCC/VBUS/+5V/etc face up USBC done LDO done USB to UART done buttons done actual ESP32 + pins done also! ok assigned footprints will start PCB now… wow this project is super easy thus far got general layout sort of… need to add components components added time to route ill use differential pair surprisingly not too difficult bruh i messed up schematic ok i added ground planes and am done with rev1! ill get a 3d model of the USBC first ok time to find bugs and do more revisions!"}]...
|
Title: orph32 by @pizzalover125 | Stardance
Devlo Title: orph32 by @pizzalover125 | Stardance
Devlogs:
During highway, Jenin had this idea to make an ESP32 devboard called Orpheus32, but ended up never making it and granted me permission to make it I never made it… until now! im going to use KiCad going to use WROOM-32 realized that it doesn’t have easy USB pins like RP2040; need a USB to UART coverter after some vary minimal research, it looks like CH340C is the standard for the converter using LDO AMS117 3.3v edition working on USB-C need B5819W diode adding power LED following standard conventions for the first time by having GND face down and VCC/VBUS/+5V/etc face up USBC done LDO done USB to UART done buttons done actual ESP32 + pins done also! ok assigned footprints will start PCB now… wow this project is super easy thus far got general layout sort of… need to add components components added time to route ill use differential pair surprisingly not too difficult bruh i messed up schematic ok i added ground planes and am done with rev1! ill get a 3d model of the USBC first ok time to find bugs and do more revisions!
time to fix everything I did wrong, such as: also apparently my routing is inefficient REROUTED EVERYTHING AGAIN BUT IT STILL DIDN”T WORK AHHHHH time to watch https://www.youtube.com/watch?v=KgOQaBUPiBo ok that vid no good lets try https://www.youtube.com/watch?v=v2okbB05piE AI slop vid; nvm lets try https://www.youtube.com/watch?v=0tuuMSxcVxg got it working! w render and we are done with routing for rev2… wow this is turning out great! next rev, need to minimize vias from 15 to like 5
@Rudy on Slack told me to use a ESP32 with built-in UART-to-USB ig thats what we are doing for this after brief research, I found ESP32-S3-WROOM-1 with 36 GPIO will read https://documentation.espressif.com/esp32-s3-wroom-1_wroom-1u_datasheet_en.pdf idk if I even should create a board bc its going to be super basic copied USB-C w/o diode going to use same power circuitry added buttons bruh my schematic feels so basic pcb also feels too basic… idk if this is worth it cause its too basic ok im back after a couple of hours i’m going to make this a sensor board finally mastered differential pairs in KiCad w https://www.youtube.com/watch?v=M13QxtPVrXY ! wait routing this is impossible waiting for expert resposne in Slack; going to select some chips to use after brief research, i’ve decided to use BME280 and LSM6DS3 BME280 is temperature, while the LSM6DS3 is accelorometer after much reading of datasheets, came up with this! hopefully it is correct rev 3 is complete!
I fixed DRC errors that Taran pointed out now i want to add a neopixel to make it look cooler going to use SK6812 cause why not routed it! will add 3d model ok added it from SnapEDA wait the headers are reversed; need to fix time for silkscreen raygen wants me to add another neopixel was not planning to, but sure added! going to view other devboards notes from other breadboards: label schematic to make it pretty label pins (seems to be very important) hack club logo + other silkscreen art ok im locked in now wow this is harder than I expected first half done! one more half to go had a bunch of problems choosing font and positioning properly made post on Hack Club Slack ok i think thats it for now; will come back to fix problems, tidy schematic, and prepare to submit! seems like no major errors as nobody has said much on Slack Taran told me to add which GPIO are being used for sensors, so I did that! going to create order on JLC and source parts! im doing everything except the pins cause i don’t really need them PCBA ok i can do a lot of optimization but first, i need to fix all the things Rudy mentioned ahhh too tired for this; will do tmrw ig
redoing all the passives going to change placement as well some changes to values + decoupling caps added done with pairs + placement! wowoowowowow time to see price bc i lessened number of items bruh price is $93 now $180 w customs and shipping 😢 I HAVE TO RESTART bc ESP32-S3 is too expensive luckily i have rev2 still available which uses routing time wait ill add SK6218-mini ok added PCB done! need to add silkscreen now! both sides done! time to add Hack Club logo BOOM! ok sent message in slack idk i feel like accelorometer is not needed i think i might prepare for submission now ok going to prepare for submission added cool labels to evrything creating render cause why not Render PCB + Schematic KiCAD Render JLC comes out to $40.30 👀 ok time to upload files and prepare README
project rejected :( apparently it is too generic in terms of art need to fix that! looking at https://hardware.hackclub.com/gallery for inspo i like https://github.com/NotARoomba/ember and Taranium-RP2040 made it comic sans ahhhhh idk how to make the art better
ahhhhhh im trying to make it better i tried to brand it as “the most comical devboard” but it did not end up working i need to find a way to make this more personalized ahhhh why is this so hard
im locking in polish today this bout to be the most polished thing ever first things first, delete whatever i made b4 start w blank slate okay, time to design a logo will use Figma o, r, p, h all layered on top of each other v2 of logo need to add 32 component to it bruh ts is so hard idk ill start afresh ok im back at 3:45 pm time to get back to work on this ok that looks better ok who let me cook something needs to be in the middle also got tons of positive feedback which is nice to hear who let me cook something forming? i feel like this is enough
Ships:
an esp32 devboard to be sold at hack club shops; Orpheus Pico, but with an ESP32 chip...
|
1793378966.7281199
|
1794242966.7281199
|