|
53116
|
Risc-V Compiler by @kphoherz | Stardance
|
kphoherz
|
0
|
43.79
|
0
|
[]
|
[{"post_id": 79445, "ts": "202 [{"post_id": 79445, "ts": "2026-10-14T00:54:26Z", "hours": 8.8428, "text": "I have done a lot of work on functions, variables, and control flow. I have also set up the required functions included automatically in each program. This part of the program manages things such as memory and function calls, which are essential to the execution of user code. This allowed me to generate functions, variables, and if statements now. The compiler outputted a 173 line program, but below shows a small section of the output. As you can see, the compiler is working!"}, {"post_id": 75412, "ts": "2026-09-30T00:52:42Z", "hours": 8.0597, "text": "I made a lot of progress on the special parser. It converts the input into postfix notation, with the operators after the operands. Then, the ASM Generator uses the postfix notation to generate actual assembly! As you can see from the ✨Beautiful✨ picture I drew, this simple equation actually expands into many assembly instructions. Unfortunately, to make the special parser I had to get rid of most of the type checking.😐"}, {"post_id": 71305, "ts": "2026-09-20T16:30:44Z", "hours": 9.7256, "text": "I worked on adding type checking. It is still missing a lot but if I don’t move on I am going to run out of time. I was able to get it to check for type errors within equations and assignments. I also started working on converting the tree into actual assembly, but I realized that it was parsing my addition right to left 🥀🥀. So I started the process of making a dedicated shunting yard parser for the equations"}, {"post_id": 65706, "ts": "2026-09-11T01:15:09Z", "hours": 7.7964, "text": "Big progress!!! The syntax checking is done! I spent quite a long time creating the context-free grammar in an excel sheet. This defines all of the syntax rules allowed, and outlines which result in errors. This means that all of the functions/symbols for the language have been defined. I also added some error messages and started the semantic analyzer, which checks type errors."}, {"post_id": 58597, "ts": "2026-08-31T02:19:35Z", "hours": 3.1114, "text": "I received my two Pico 2s today. I spent some time trying out examples and modifying them, and I managed to get the LED to blink, which was surprisingly difficult to find examples for because I needed it in Risc-V assembly. Then I worked on generating a tree from the parser I made in the last devblog. It seems to work well, but it is kind of hard to tell. Next I think I’ll either do semantic error checking, or skip right to the assembly generation and worry about the semantics later :)"}, {"post_id": 54782, "ts": "2026-08-25T21:56:19Z", "hours": 3.4928, "text": "I worked on creating the Syntax analyzer for my Risc-V compiler. This stage checks the structure of the program and any grammatical errors. I had to do a lot of research on CFGs (Context free grammars). They define the rules for the language. Below is a spreadsheet of the CFG. I will improve it in the future to add more functions. I implemented an LL(1) parser. I was successfully able to check the grammar of a simple program. I still need to make the parser construct an abstract syntax tree. I realized that it is quite difficult to find pictures to post because it mostly happens in the console, but trust me, interesting things are happening!"}, {"post_id": 52787, "ts": "2026-08-23T04:03:52Z", "hours": 2.7661, "text": "I have just started working on my first compiler. I have coded a couple of interpreters before, but this is my first time creating a compiler. I am designing it for the Pico 2 W and will be translating a modified C into Risc-V assembly. So far I have created the lexer which separates the source code into tokens. I have also set up a nice starting infrastructure including some error tracing. Below is the output of a test source code tokenized. Funnily enough, I’m running this compiler on a Pico as well. In the future, I hope to incorporate this compiler into a Pico based OS."}]...
|
Title: Risc-V Compiler by @kphoherz | Stardance
D Title: Risc-V Compiler by @kphoherz | Stardance
Devlogs:
I have just started working on my first compiler. I have coded a couple of interpreters before, but this is my first time creating a compiler. I am designing it for the Pico 2 W and will be translating a modified C into Risc-V assembly. So far I have created the lexer which separates the source code into tokens. I have also set up a nice starting infrastructure including some error tracing. Below is the output of a test source code tokenized. Funnily enough, I’m running this compiler on a Pico as well. In the future, I hope to incorporate this compiler into a Pico based OS.
I worked on creating the Syntax analyzer for my Risc-V compiler. This stage checks the structure of the program and any grammatical errors. I had to do a lot of research on CFGs (Context free grammars). They define the rules for the language. Below is a spreadsheet of the CFG. I will improve it in the future to add more functions. I implemented an LL(1) parser. I was successfully able to check the grammar of a simple program. I still need to make the parser construct an abstract syntax tree. I realized that it is quite difficult to find pictures to post because it mostly happens in the console, but trust me, interesting things are happening!
I received my two Pico 2s today. I spent some time trying out examples and modifying them, and I managed to get the LED to blink, which was surprisingly difficult to find examples for because I needed it in Risc-V assembly. Then I worked on generating a tree from the parser I made in the last devblog. It seems to work well, but it is kind of hard to tell. Next I think I’ll either do semantic error checking, or skip right to the assembly generation and worry about the semantics later :)
Big progress!!! The syntax checking is done! I spent quite a long time creating the context-free grammar in an excel sheet. This defines all of the syntax rules allowed, and outlines which result in errors. This means that all of the functions/symbols for the language have been defined. I also added some error messages and started the semantic analyzer, which checks type errors.
I worked on adding type checking. It is still missing a lot but if I don’t move on I am going to run out of time. I was able to get it to check for type errors within equations and assignments. I also started working on converting the tree into actual assembly, but I realized that it was parsing my addition right to left 🥀🥀. So I started the process of making a dedicated shunting yard parser for the equations
I made a lot of progress on the special parser. It converts the input into postfix notation, with the operators after the operands. Then, the ASM Generator uses the postfix notation to generate actual assembly! As you can see from the ✨Beautiful✨ picture I drew, this simple equation actually expands into many assembly instructions. Unfortunately, to make the special parser I had to get rid of most of the type checking.😐
I have done a lot of work on functions, variables, and control flow. I have also set up the required functions included automatically in each program. This part of the program manages things such as memory and function calls, which are essential to the execution of user code. This allowed me to generate functions, variables, and if statements now. The compiler outputted a 173 line program, but below shows a small section of the output. As you can see, the compiler is working!...
|
1792738116.0978436
|
1793342916.0978436
|
|
69379
|
Student-Exam-Predictor by @Hadi | Stardance
|
Hadi
|
0
|
1.56
|
0
|
[]
|
[{"post_id": 79437, "ts": "202 [{"post_id": 79437, "ts": "2026-10-13T23:57:11Z", "hours": 0.8994, "text": "Today i learned several ML concepts like giving a test grade, calculating how far it is from my real grade, and averaging it out based on all my data. Next steps are learning how to take steps to calculating a lower loss value, and also finishing main.py so i can start linear regression. Thats still a long way though since I am trying to learn everything while doing it so hopefully i will be able to do it but not anytime soon."}, {"post_id": 79101, "ts": "2026-10-12T17:43:37Z", "hours": 0.6583, "text": "Made a model class, added sample data and started to make the graph using matplotlib and pandas. I have never done anything like this before and I’m trying to learn by building so I’m asking a lot of guidance from AI. The end goal is to finish this project and start a new one where I can apply my learning."}]...
|
Title: Student-Exam-Predictor by @Hadi | Stardance Title: Student-Exam-Predictor by @Hadi | Stardance
Devlogs:
Made a model class, added sample data and started to make the graph using matplotlib and pandas. I have never done anything like this before and I’m trying to learn by building so I’m asking a lot of guidance from AI. The end goal is to finish this project and start a new one where I can apply my learning.
Today i learned several ML concepts like giving a test grade, calculating how far it is from my real grade, and averaging it out based on all my data. Next steps are learning how to take steps to calculating a lower loss value, and also finishing main.py so i can start linear regression. Thats still a long way though since I am trying to learn everything while doing it so hopefully i will be able to do it but not anytime soon....
|
1792810311.3613183
|
1793415111.3613183
|
|
69001
|
cool python rock paper scissors game by @swee02856 cool python rock paper scissors game by @swee02856 | Stardance...
|
swee02856
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-13T23:51:51Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created a really simple python game that may look very simple and “not professional” but in my opinion this project helped me learn many stuff about python like fixing code, finding out about functions and modules, and so much more!", "repo": "https://github.com/swee02856-prog/Python-Rock-Paper-Scissors", "demo": "https://github.com/swee02856-prog/Python-Rock-Paper-Scissors/releases/tag/v1"}]...
|
[{"post_id": 79435, "ts": "202 [{"post_id": 79435, "ts": "2026-10-13T23:49:06Z", "hours": 4.8722, "text": "Made it so that the characters do a greeting right after you pick who your opponent will be, some stay to the plot and act tough, others will ruin the plot and completely say random stuff."}]...
|
Title: cool python rock paper scissors game by @sw Title: cool python rock paper scissors game by @swee02856 | Stardance
Devlogs:
Made it so that the characters do a greeting right after you pick who your opponent will be, some stay to the plot and act tough, others will ruin the plot and completely say random stuff.
Ships:
I created a really simple python game that may look very simple and “not professional” but in my opinion this project helped me learn many stuff about python like fixing code, finding out about functions and modules, and so much more!...
|
1793155888.3007843
|
1793242288.3007843
|
|
69439
|
MacPPCEmulator by @ianl | Stardance
|
ianl
|
0
|
7.4
|
0
|
[]
|
[{"post_id": 79432, "ts": "202 [{"post_id": 79432, "ts": "2026-10-13T23:12:58Z", "hours": 2.1286, "text": "The PowerPC Vintage OS Emulator Distro is complete! When users build from the HDD, they are met with this simple install window to aid them in their installation! Now, working on emulation via QEMU!"}, {"post_id": 79251, "ts": "2026-10-13T06:29:01Z", "hours": 2.1803, "text": "Lots and lots of debugging! I am trying to get Debian to run smoothly on actual Intel Mac hardware. It’s been a challenge for sure, lots and lots of debugging! (9 disk image revisions so far 😔). Also, i’ve learned that it may be able to run on Apple Silicon, which I think would be pretty cool, but I don’t have an Apple silicon computer unfortunately :/"}, {"post_id": 79226, "ts": "2026-10-13T03:06:23Z", "hours": 3.0922, "text": "I just started my vintage PowerPC Emulator project! it is based off of Debian 12. I used github’s copilot in order to layout the basic debian distro and nececarry dependencies. There are many errors/mistakes that I am slowly but surely working out!"}]...
|
Title: MacPPCEmulator by @ianl | Stardance
Devlog Title: MacPPCEmulator by @ianl | Stardance
Devlogs:
I just started my vintage PowerPC Emulator project! it is based off of Debian 12. I used github’s copilot in order to layout the basic debian distro and nececarry dependencies. There are many errors/mistakes that I am slowly but surely working out!
Lots and lots of debugging! I am trying to get Debian to run smoothly on actual Intel Mac hardware. It’s been a challenge for sure, lots and lots of debugging! (9 disk image revisions so far 😔). Also, i’ve learned that it may be able to run on Apple Silicon, which I think would be pretty cool, but I don’t have an Apple silicon computer unfortunately :/
The PowerPC Vintage OS Emulator Distro is complete! When users build from the HDD, they are met with this simple install window to aid them in their installation! Now, working on emulation via QEMU!...
|
1792835414.6038945
|
1793440214.6038945
|
|
9546
|
VBooks by @vaishal_anil | Stardance
|
vaishal_anil
|
0
|
5.31
|
0
|
[]
|
[{"post_id": 7943, "ts": "2026 [{"post_id": 7943, "ts": "2026-06-13T07:54:26Z", "hours": 5.3078, "text": "VBooks Devlog #1 — The Journey Begins June 2026 Today marks an exciting milestone for VBooks. Over the past few days, I’ve been working on building the foundation of what I hope will become a platform for curious minds around the world. The first version of the VBooks landing page is now complete and serves as the starting point for a much larger vision. What is VBooks? VBooks is a digital publishing platform focused on delivering premium knowledge and content. The goal is to provide: Premium books Insightful blogs Original stories AI & technology magazines Exclusive educational content Future products and experiences for lifelong learners The vision is simple: create a place where curiosity is rewarded and learning never stops. Progress So Far ✅ Brand concept finalized ✅ Core product structure planned ✅ Initial pricing strategy drafted ✅ Landing page completed ✅ Development roadmap outlined The current landing page is only the first step, but it gives a glimpse into the direction VBooks is heading. Feel free to share your thoughts. What’s Next? The focus now shifts toward building the actual platform. Some of the major features planned include: User accounts Digital library system Secure content delivery Subscription plans Magazine publishing system Blog platform AI-powered features (hopefully) Payment integration Analytics and creator tools There is still a significant amount of work ahead, but development has officially begun. Target Launch My current goal is to have the full VBooks platform built and operational by September 2026 , although timelines can always change as development progresses. The priority is building something reliable, useful, and genuinely valuable rather than rushing features. Looking Ahead This is only Devlog #1. There will undoubtedly be challenges, redesigns, bugs, and lessons along the way, but every great platform starts somewhere. For now, the journey has begun. See you in the next update. — Vaishal, Founder of VBooks"}]...
|
Title: VBooks by @vaishal_anil | Stardance
Devlog Title: VBooks by @vaishal_anil | Stardance
Devlogs:
VBooks Devlog #1 — The Journey Begins June 2026 Today marks an exciting milestone for VBooks. Over the past few days, I’ve been working on building the foundation of what I hope will become a platform for curious minds around the world. The first version of the VBooks landing page is now complete and serves as the starting point for a much larger vision. What is VBooks? VBooks is a digital publishing platform focused on delivering premium knowledge and content. The goal is to provide: Premium books Insightful blogs Original stories AI & technology magazines Exclusive educational content Future products and experiences for lifelong learners The vision is simple: create a place where curiosity is rewarded and learning never stops. Progress So Far ✅ Brand concept finalized ✅ Core product structure planned ✅ Initial pricing strategy drafted ✅ Landing page completed ✅ Development roadmap outlined The current landing page is only the first step, but it gives a glimpse into the direction VBooks is heading. Feel free to share your thoughts. What’s Next? The focus now shifts toward building the actual platform. Some of the major features planned include: User accounts Digital library system Secure content delivery Subscription plans Magazine publishing system Blog platform AI-powered features (hopefully) Payment integration Analytics and creator tools There is still a significant amount of work ahead, but development has officially begun. Target Launch My current goal is to have the full VBooks platform built and operational by September 2026 , although timelines can always change as development progresses. The priority is building something reliable, useful, and genuinely valuable rather than rushing features. Looking Ahead This is only Devlog #1. There will undoubtedly be challenges, redesigns, bugs, and lessons along the way, but every great platform starts somewhere. For now, the journey has begun. See you in the next update. — Vaishal, Founder of VBooks...
|
1792651814.24951
|
1793256614.24951
|
|
68696
|
Unrealism shaders by @sadevlokunarangoda | Stardan Unrealism shaders by @sadevlokunarangoda | Stardance...
|
sadevlokunarangoda
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-13T23:23:34Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Minecraft 26.2 (and 26.3) shaders to help me learn GLSL. Originally made for Hack Club Lumen, until I found out that it was closed Major features (copied from my GitHub readme) Stylized borders (adds some depth) fog (just fog) shadows (just shadows) Brighter caves than most shader packs (this is one of the things I hate the most about most shader packs. I don’t want to choose between my game being beautiful and being able to see the ores) Water ripples Slightly upped vibrance Waving leaves Unlisted Showcase video: https://youtu.be/2plQ0L1emYk My original vision: Stylized yet subtle outlines, plus some extra depth and vibrance To be clear, I did spend more than 2 hours on this, they were just on a different computer and synced via GitHub to the computer that I have Hackatime installed on", "repo": "https://github.com/naran-579/unrealism-shaders", "demo": "https://github.com/naran-579/unrealism-shaders/releases/tag/beta"}]...
|
[{"post_id": 79429, "ts": "202 [{"post_id": 79429, "ts": "2026-10-13T22:50:45Z", "hours": 0.5036, "text": "Got the pack ready to ship, now contains fog, slight block depth and highlights, and fixed all known bugs"}, {"post_id": 77953, "ts": "2026-10-08T22:57:02Z", "hours": 1.5356, "text": "Working on making a minecraft shader to help me learn GLSL, this project was started using the Lumen tutorial, until I found out that Lumen ended :(. Attached is an image of one of the (currently) worst bugs I’ve run into."}]...
|
Title: Unrealism shaders by @sadevlokunarangoda | Title: Unrealism shaders by @sadevlokunarangoda | Stardance
Devlogs:
Working on making a minecraft shader to help me learn GLSL, this project was started using the Lumen tutorial, until I found out that Lumen ended :(. Attached is an image of one of the (currently) worst bugs I’ve run into.
Got the pack ready to ship, now contains fog, slight block depth and highlights, and fixed all known bugs
Ships:
Minecraft 26.2 (and 26.3) shaders to help me learn GLSL. Originally made for Hack Club Lumen, until I found out that it was closed Major features (copied from my GitHub readme) Stylized borders (adds some depth) fog (just fog) shadows (just shadows) Brighter caves than most shader packs (this is one of the things I hate the most about most shader packs. I don’t want to choose between my game being beautiful and being able to see the ores) Water ripples Slightly upped vibrance Waving leaves Unlisted Showcase video: https://youtu.be/2plQ0L1emYk My original vision: Stylized yet subtle outlines, plus some extra depth and vibrance To be clear, I did spend more than 2 hours on this, they were just on a different computer and synced via GitHub to the computer that I have Hackatime installed on...
|
1793155867.9668095
|
1793242267.9668095
|
|
55244
|
CNC (jank edition) by @FormulaCarbon | Stardance
|
FormulaCarbon
|
0
|
7.84
|
0
|
[]
|
[{"post_id": 79425, "ts": "202 [{"post_id": 79425, "ts": "2026-10-13T22:33:40Z", "hours": 1.6167, "text": "Redesign of Z-Axis After reading the feedback, I beefed up my z-axis using HGR20 rails and an SFU1204 lead screw, similar to what is used on the PrintNC. From my rough estimates, this should be enough for basic cutting starting out, and the spindle won’t really be under too much force given the low torque of the X- and Y- axis steppers. More support can be easily added to design to reinforce the Z-axis as needed."}, {"post_id": 65638, "ts": "2026-09-10T22:06:31Z", "hours": 3.6386, "text": "Big Progress Update - CAD and Electronics finished CAD Progress: I attached the Z-axis, added necessary mount points, and added screw holes and guides where necessary. I also started the build by attaching a piece of wood to the bedplate. Electronics: For the control system, I am using the CNC Shield V3 since it is extremely cost effective, with DRV8825 drivers such that I have the option to easily upgrade the steppers in the future if needed. The spindle will use the WS55-220 driver and have its own 48v @ 12.5a power supply. The rest of the electronics will be powered by the TAZ Pro’s original PSU, 24v @ 21a. Parts: Now that the CAD is finished, I am planning to submit for funding. I will include some part justifications below for stuff that may seem unnecessarily expensive at first. Spindle: the $150 spindle bundle includes the actual spindle, a PSU, and a driver. This is the cheapest option that uses a true spindle rather than a DC motor with a collet holder attached on the end ( you can tell because it lacks a set screw on the end)."}, {"post_id": 57042, "ts": "2026-08-29T03:37:39Z", "hours": 1.65, "text": "Remade Z-axis I realized the first version was stupid, and it would be much better if I kept the motor and extrusion on the spindle mount so I could get much more z-axis space. Since this mill is going to be super small, having the extra Z-axis space will be very nice. For more detail: Having the rollers and threaded rod nut on the carriage would mean that the threaded rod and extrusions would need to extend all the way to the lowest z-axis position, severly limiting the maximum z-axis height. By keeping the motor and extrusion on the carriage, they extend up away from the work area, meaning the amount of z-axis space is only limited by the length of the extrusions and threaded rod. I also swapped to using the clamping mount meant for these motors instead of screwing plates to the face. This lets me mount the carriage higher to get even more space. The next part is attaching it to the rest of the CNC"}, {"post_id": 56345, "ts": "2026-08-28T02:39:53Z", "hours": 0.9333, "text": "Added Z-Axis Prototype for the CNC Background (since this is the first devpost): I had planned to build a large CNC (42x42in) for my robotics team, but, due to tariffs and our team’s budget getting cut, we would be unable to fund it even with hackclub help. While we may have little money, we have about 13 years of junk in a workshop. We have a bunch of broken 3d printers, one of which I am repurposing to make a CNC. I know its super underpowered and jank, but it would be fun and will probably work if I am careful with the design. Today I designed the carriage for the spindle. I based my design off of an Ender-3 Z-axis, using its threaded rod and v-rollers. However, after some reconsideration, I will probably swap the grey plate with the clamping mount included with the spindle so it can be mounted higher up."}]...
|
Title: CNC (jank edition) by @FormulaCarbon | Star Title: CNC (jank edition) by @FormulaCarbon | Stardance
Devlogs:
Added Z-Axis Prototype for the CNC Background (since this is the first devpost): I had planned to build a large CNC (42x42in) for my robotics team, but, due to tariffs and our team’s budget getting cut, we would be unable to fund it even with hackclub help. While we may have little money, we have about 13 years of junk in a workshop. We have a bunch of broken 3d printers, one of which I am repurposing to make a CNC. I know its super underpowered and jank, but it would be fun and will probably work if I am careful with the design. Today I designed the carriage for the spindle. I based my design off of an Ender-3 Z-axis, using its threaded rod and v-rollers. However, after some reconsideration, I will probably swap the grey plate with the clamping mount included with the spindle so it can be mounted higher up.
Remade Z-axis I realized the first version was stupid, and it would be much better if I kept the motor and extrusion on the spindle mount so I could get much more z-axis space. Since this mill is going to be super small, having the extra Z-axis space will be very nice. For more detail: Having the rollers and threaded rod nut on the carriage would mean that the threaded rod and extrusions would need to extend all the way to the lowest z-axis position, severly limiting the maximum z-axis height. By keeping the motor and extrusion on the carriage, they extend up away from the work area, meaning the amount of z-axis space is only limited by the length of the extrusions and threaded rod. I also swapped to using the clamping mount meant for these motors instead of screwing plates to the face. This lets me mount the carriage higher to get even more space. The next part is attaching it to the rest of the CNC
Big Progress Update - CAD and Electronics finished CAD Progress: I attached the Z-axis, added necessary mount points, and added screw holes and guides where necessary. I also started the build by attaching a piece of wood to the bedplate. Electronics: For the control system, I am using the CNC Shield V3 since it is extremely cost effective, with DRV8825 drivers such that I have the option to easily upgrade the steppers in the future if needed. The spindle will use the WS55-220 driver and have its own 48v @ 12.5a power supply. The rest of the electronics will be powered by the TAZ Pro’s original PSU, 24v @ 21a. Parts: Now that the CAD is finished, I am planning to submit for funding. I will include some part justifications below for stuff that may seem unnecessarily expensive at first. Spindle: the $150 spindle bundle includes the actual spindle, a PSU, and a driver. This is the cheapest option that uses a true spindle rather than a DC motor with a collet holder attached on the end ( you can tell because it lacks a set screw on the end).
Redesign of Z-Axis After reading the feedback, I beefed up my z-axis using HGR20 rails and an SFU1204 lead screw, similar to what is used on the PrintNC. From my rough estimates, this should be enough for basic cutting starting out, and the spindle won’t really be under too much force given the low torque of the X- and Y- axis steppers. More support can be easily added to design to reinforce the Z-axis as needed....
|
1793152387.6655667
|
1793757187.6655667
|
|
15804
|
Crunchyroll Multi Sub by @AndyNoob | Stardance
|
AndyNoob
|
1
|
46.9
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T22:15:32Z", "hours": 46.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Alright, it’s been a pretty long ride, so let me try to sum this up. - The idea for this extension sprang forth when I was trying to watch Frieren. For context, on Crunchyroll dubbed shows, there are two types of subtitles (for the most part, AD subs also exist but are very uncommon), closed caption and on screen translation subtitles: closed caption captures only character dialogues (generally), whereas the on screen translation subs translate signs and such on screen, typically using ASS subtitles (so fancy typesetting texts). - As it so turned out, you can’t pick both subtitles at the same time, which makes it really annoying for me to hear what the dialogues are saying if there are a lot of sound effects and BGM. So, I decided to look into how I can render both types of subtitles. - After a long course of development, and many hurdles (mostly related to Crunchyroll’s internal API being very not external developer friendly, I wonder why…), I was able to ship this little extension, which currently has about 200 or so active users? - -TLDR: Crunchyroll default subtitle system sucks so I made it better. Also if you don’t have Crunchyroll just watch this slightly outdated demo video: https://www.youtube.com/watch?v=C6fvmeJ0SoM", "repo": "https://github.com/AndyNoob/crunchyroll-dual-subs", "demo": "https://chromewebstore.google.com/detail/crunchyroll-dual-subs/mahcmkjllaabldhminilhldfiickigmi"}]...
|
[{"post_id": 79415, "ts": "202 [{"post_id": 79415, "ts": "2026-10-13T21:22:25Z", "hours": 0.9047, "text": "NEW FEATURE ALERT - Due to popular requests (one person on Github who opened an issue), I have added a spanking new feature to move subtitles up and down. LIFE CHANGING, I know. - Rahaha, more stuff incoming. Also the more I work on tis the more I realize my code sucks."}, {"post_id": 72422, "ts": "2026-09-22T22:05:42Z", "hours": 1.7556, "text": "Yoo - Kind of forgot to post this one. Basically, I just made it so the subtitles loaded from the original audio are marked as [original] , you can pick either or. - That’s about it. Yay"}, {"post_id": 39304, "ts": "2026-08-02T06:02:52Z", "hours": 9.5822, "text": "Been a minute. - Let’s see what I worked on… Mostly fixing minor issues. LIke subtitles being unmovable. And after that fixed it teleporting to Narnia when being moved. While I was doing that, I actually finished the subtitle editor in last devlog that I actually didn’t finish. - Aside from the UI, there’s also numerous minor bugs that sometimes causes the side bar to malfunction. And some that causes the extension to not load. All that good stuff. - The biggest update, however, is that the extension, using a very, very sneaky method, now loads additional subtitles for dubbed episodes. Typically, the majority of subtitles are made for the original audio language (Japanese mostly), and they are usually drag-and-drop ready for other audio languages. The idea is nothing new, but I had to brainstorm a new way of achieving that. - Essentially, the extension “mimics” the Crunchyroll player by making a stream request to the original audio language, and capturing the subtitles. All before the actual player starts its own stream request. This way, we don’t trigger the concurrent stream limit. Pretty neat! - Also added a on/off switch because you never know when this might break. Peak CSS right here haha."}, {"post_id": 33250, "ts": "2026-07-23T00:31:38Z", "hours": 7.1061, "text": "Worked on a bunch of stuff, mostly random issues: extension broken on Opera, extension randomly not updating subtitles, features of extension randomly bricking if you do a specific set of stuff (like adding and deleting masks really fast). - Other than that, I added a new subtitle style editor. I thought it was gonna be a 30min quick change. And then it ended up being like 4 hours long. The font selector is so damn annoying to add because there’s really only one way to do it, and that’s through Google. And of course it’s going to be a pain in the rear when it’s Google. - Whatever, at least it looks good."}, {"post_id": 29868, "ts": "2026-07-17T00:59:24Z", "hours": 3.2006, "text": "Fixed a bunnnnnch of issues as an aftermath of the last devlog… Took a minute but I finally released 0.12.0 (and immediately realized there’s more bugs. Also cleaned up the README and made it look real fancy."}, {"post_id": 28206, "ts": "2026-07-14T10:49:37Z", "hours": 7.2869, "text": "Ok, it’s been a minute, so let me go over the changes. (also i finally figured out you need to shift + enter to do new line bruh) Firstly, in preparation for the subtitle masking feature, I changed the extension popup to be a side bar/panel instead. This way, you can keep it open while you interact with the page. Secondly, I swapped the old “Reset subtitle position” button (which didn’t even work LMAO) with the new “Edit subtitle configuration” button. When you click it, a new section expands. This is where my other project (move-it) plays in! (see video). When you add a mask, it will block out subtitles using the CSS clip-path property, which is pretty neat! I also fixed a bunch of random issues along the way, so yay!"}, {"post_id": 25032, "ts": "2026-07-08T23:35:26Z", "hours": 6.48, "text": "Forgot to post devlogs ngl… Anyways, I fixed a bunch of weird bugs and compatibility issues with other extensions and userscripts. And then, I spent a few hours restyling the scoped options menu. Look at it moveee- Anyways, the moving part is made with a see through ::after element that is moved using the CSS transform: translateX element. I am able to move it programmatically by changing a CSS property/variable that translateX reads from. And then, I slapped a fancy transition on there. Works like a charm! (I had considered doing slide effect on the actual options, but that seemed like too much work haha.)"}, {"post_id": 10370, "ts": "2026-06-17T01:40:31Z", "hours": 3.7725, "text": "Working on the prerequisite parts of implementing a subtitle masking feature (hide subtitle base on defined areas). Also released 0.11.0 of the extension. Out on chrome already but firefox will probably be another month :sigh:"}, {"post_id": 8287, "ts": "2026-06-13T19:39:02Z", "hours": 0.7133, "text": "Nice… negative notes. The users’ll absolutely adore this."}, {"post_id": 7889, "ts": "2026-06-13T05:08:58Z", "hours": 3.8869, "text": "IT MOVESSS!! What’s happening here is that the extension loads JSON data from an unlisted Gist and reads the developer notes that I put down every 5 hours. Once it does, it populates the popup with those notes. The “1 new notes” thing isn’t actively updated yet, so I’ll implement that next. Just need to keep track of opened notes using their slug. Only took 4 hrs 🫠"}, {"post_id": 7250, "ts": "2026-06-12T02:53:56Z", "hours": 2.3333, "text": "Currently trying to add a dev note/changelog system by loading a gist that I have loaded on my system as a git repo and then symlinked as a file in my actual project. I actually did not know you could do that, learned it from Claude ha! Anyways, adding a new section to the popup menu, so I had to make some space. My solution: SMOOOOTH drop down. Note how the border-radius on the bottom of the overlay settings change from 0 to rounded at different speed depending on if the drop down is retracting vs. extending. CSS is a pain in the rear even when AI is helping…"}]...
|
Title: Crunchyroll Multi Sub by @AndyNoob | Starda Title: Crunchyroll Multi Sub by @AndyNoob | Stardance
Devlogs:
Currently trying to add a dev note/changelog system by loading a gist that I have loaded on my system as a git repo and then symlinked as a file in my actual project. I actually did not know you could do that, learned it from Claude ha! Anyways, adding a new section to the popup menu, so I had to make some space. My solution: SMOOOOTH drop down. Note how the border-radius on the bottom of the overlay settings change from 0 to rounded at different speed depending on if the drop down is retracting vs. extending. CSS is a pain in the rear even when AI is helping…
IT MOVESSS!! What’s happening here is that the extension loads JSON data from an unlisted Gist and reads the developer notes that I put down every 5 hours. Once it does, it populates the popup with those notes. The “1 new notes” thing isn’t actively updated yet, so I’ll implement that next. Just need to keep track of opened notes using their slug. Only took 4 hrs 🫠
Nice… negative notes. The users’ll absolutely adore this.
Working on the prerequisite parts of implementing a subtitle masking feature (hide subtitle base on defined areas). Also released 0.11.0 of the extension. Out on chrome already but firefox will probably be another month :sigh:
Forgot to post devlogs ngl… Anyways, I fixed a bunch of weird bugs and compatibility issues with other extensions and userscripts. And then, I spent a few hours restyling the scoped options menu. Look at it moveee- Anyways, the moving part is made with a see through ::after element that is moved using the CSS transform: translateX element. I am able to move it programmatically by changing a CSS property/variable that translateX reads from. And then, I slapped a fancy transition on there. Works like a charm! (I had considered doing slide effect on the actual options, but that seemed like too much work haha.)
Ok, it’s been a minute, so let me go over the changes. (also i finally figured out you need to shift + enter to do new line bruh) Firstly, in preparation for the subtitle masking feature, I changed the extension popup to be a side bar/panel instead. This way, you can keep it open while you interact with the page. Secondly, I swapped the old “Reset subtitle position” button (which didn’t even work LMAO) with the new “Edit subtitle configuration” button. When you click it, a new section expands. This is where my other project (move-it) plays in! (see video). When you add a mask, it will block out subtitles using the CSS clip-path property, which is pretty neat! I also fixed a bunch of random issues along the way, so yay!
Fixed a bunnnnnch of issues as an aftermath of the last devlog… Took a minute but I finally released 0.12.0 (and immediately realized there’s more bugs. Also cleaned up the README and made it look real fancy.
Worked on a bunch of stuff, mostly random issues: extension broken on Opera, extension randomly not updating subtitles, features of extension randomly bricking if you do a specific set of stuff (like adding and deleting masks really fast). - Other than that, I added a new subtitle style editor. I thought it was gonna be a 30min quick change. And then it ended up being like 4 hours long. The font selector is so damn annoying to add because there’s really only one way to do it, and that’s through Google. And of course it’s going to be a pain in the rear when it’s Google. - Whatever, at least it looks good.
Been a minute. - Let’s see what I worked on… Mostly fixing minor issues. LIke subtitles being unmovable. And after that fixed it teleporting to Narnia when being moved. While I was doing that, I actually finished the subtitle editor in last devlog that I actually didn’t finish. - Aside from the UI, there’s also numerous minor bugs that sometimes causes the side bar to malfunction. And some that causes the extension to not load. All that good stuff. - The biggest update, however, is that the extension, using a very, very sneaky method, now loads additional subtitles for dubbed episodes. Typically, the majority of subtitles are made for the original audio language (Japanese mostly), and they are usually drag-and-drop ready for other audio languages. The idea is nothing new, but I had to brainstorm a new way of achieving that. - Essentially, the extension “mimics” the Crunchyroll player by making a stream request to the original audio language, and capturing the subtitles. All before the actual player starts its own stream request. This way, we don’t trigger the concurrent stream limit. Pretty neat! - Also added a on/off switch because you never know when this might break. Peak CSS right here haha.
Yoo - Kind of forgot to post this one. Basically, I just made it so the subtitles loaded from the original audio are marked as [original] , you can pick either or. - That’s about it. Yay
NEW FEATURE ALERT - Due to popular requests (one person on Github who opened an issue), I have added a spanking new feature to move subtitles up and down. LIFE CHANGING, I know. - Rahaha, more stuff incoming. Also the more I work on tis the more I realize my code sucks.
Ships:
Alright, it’s been a pretty long ride, so let me try to sum this up. - The idea for this extension sprang forth when I was trying to watch Frieren. For context, on Crunchyroll dubbed shows, there are two types of subtitles (for the most part, AD subs also exist but are very uncommon), closed caption and on screen translation subtitles: closed caption captures only character dialogues (generally), whereas the on screen translation subs translate signs and such on screen, typically using ASS subtitles (so fancy typesetting texts). - As it so turned out, you can’t pick both subtitles at the same time, which makes it really annoying for me to hear what the dialogues are saying if there are a lot of sound effects and BGM. So, I decided to look into how I can render both types of subtitles. - After a long course of development, and many hurdles (mostly related to Crunchyroll’s internal API being very not external developer friendly, I wonder why…), I was able to ship this little extension, which currently has about 200 or so active users? - -TLDR: Crunchyroll default subtitle system sucks so I made it better. Also if you don’t have Crunchyroll just watch this slightly outdated demo video: https://www.youtube.com/watch?v=C6fvmeJ0SoM...
|
1793148944.4409976
|
1793235344.4409976
|
|
69561
|
WebBuilder by @futurus | Stardance
|
futurus
|
0
|
68.83
|
0
|
[]
|
[{"post_id": 79413, "ts": "202 [{"post_id": 79413, "ts": "2026-10-13T21:16:55Z", "hours": 68.8281, "text": "I did this project for the Macondo event, but it was handled terribly, they banned me from the Fraud Squad, I proved my innocence, they unbanned me, and now, they kicked me straight out of the event, don’t ask me why, I have no idea, so im shipping this project here, so yeah, this projec is already finished, idk what to say, all in the readme, i had even a video for a small tutorial, but i can’t upload it here bc it is 80mb and i can load here max 50mb"}]...
|
Title: WebBuilder by @futurus | Stardance
Devlogs Title: WebBuilder by @futurus | Stardance
Devlogs:
I did this project for the Macondo event, but it was handled terribly, they banned me from the Fraud Squad, I proved my innocence, they unbanned me, and now, they kicked me straight out of the event, don’t ask me why, I have no idea, so im shipping this project here, so yeah, this projec is already finished, idk what to say, all in the readme, i had even a video for a small tutorial, but i can’t upload it here bc it is 80mb and i can load here max 50mb...
|
1792857123.352126
|
1793721123.352126
|
|
50665
|
Hermes Vision by @rayyanfaiq | Stardance
|
rayyanfaiq
|
0
|
115.88
|
0
|
[]
|
[{"post_id": 79412, "ts": "202 [{"post_id": 79412, "ts": "2026-10-13T21:14:22Z", "hours": 11.8667, "text": "#Update 22 #Started Coding — Part 7 Hopefully the final stretch! In my next session, I am going to squash this last annoying gray-screen bug on the video feed (fingers crossed it’s just a loose camera wire or a Windows firewall issue). Once the video is perfectly stable, the real fun begins: integrating MediaPipe! I’ll be adding actual eye tracking so the AI can fuse my iris movements with my head movements. This will give the system an exact, pinpoint location of where I am actually looking, rather than just where my head is pointing. I also need to verify the MAX30102 heart rate sensor against my Apple Watch to see if the readings are actually accurate, or if my heart rate just naturally spikes while troubleshooting hardware lol. Getting so close to the finish line with this AI fusion model! :)"}, {"post_id": 78894, "ts": "2026-10-11T22:28:08Z", "hours": 10.9019, "text": "Update 21 Started Coding — Part 6 Another super long session today, but this was a major breakthrough! I completely overhauled how the system thinks. The ESP32 was doing way too much math and crashing the video stream, so I moved all the heavy lifting to the Python script on my laptop. I also fixed the crazy false alarms on the crash detection (turning my head is definitely not a 10G car crash lol) and stopped the video feed from freezing whenever I moved my head too fast. The code also talks to me to map out exactly where the center road and mirrors are based on my specific seat, and actively warns me if I look away for more than 2 seconds. Next up: Fixing one last gray-screen video bug and finally starting the AI fusion model to combine the head and eye tracking! :)"}, {"post_id": 78117, "ts": "2026-10-09T16:53:32Z", "hours": 13.1947, "text": "Update 20 Started Coding — Part 5 Oops, I think I got carried away, 13 hours is crazy lol. In this session, I was able to fix all the code, and work on all the parts of the project! The project works perfectly now, and I even got video stream onto my laptop :) The ESP can now decide whether the driver is looking at the road and/or the side mirrors or he is distracted. This is a major breakthrough because now I can work on the stream directly. Next up: AI fusion model."}, {"post_id": 77917, "ts": "2026-10-08T19:06:54Z", "hours": 10.4125, "text": "Update 19 Started Coding — Part 4 I think I just need one more session before I am done with this! In today’s session, I fixed all abnormal values, wired it everything together and added a callibration time to the gyroscope (so it knows when the driver is looking at the road and when not). Now, everything works pretty well together, but I still need to work on the AI model which fuses it together :)"}, {"post_id": 77498, "ts": "2026-10-07T07:59:58Z", "hours": 9.3403, "text": "Update 18 Started Coding — Part 3 This is my 4th, almost 10 hour session in a row, and honestly saying, I have no idea where time goes once I start working on this project. I worked more on the code, fixed most of the abnormal values, yet somehow I still sometimes get a heart rate of 12 bpm (i am well and alive) from the sensor :( Apart from that, I was able to start work on the personalised AI model, which fuses all the readings from the sensors to create a personal baseline. I will work more on trying to get as accurate readings as possible, but for now I think I have to work on the AI model (I have attached how I think the AI model will function and display the values)."}, {"post_id": 77237, "ts": "2026-10-06T07:23:30Z", "hours": 9.8667, "text": "Update 18 Started Coding — Part 3 I’m lowk addicted. I got a new heartrate sensor for my project because I JUST found out, all that time where I though something was wrong with my code, it was just that the previous black heart rate sensor was known to have I2C issues :/ Anyway, I got a new one and soldered it (pretty clean ngl, I’ve learned so much this project). I have also assembled the glasses, with zipties, for a first prototype!! I still get abnormal values sometimes though, so that is something I will have to fix :)"}, {"post_id": 77018, "ts": "2026-10-05T11:46:18Z", "hours": 9.3594, "text": "Update 17 Started Coding — Part 2 I completed the code from last session, including the indiviual codes for the ESP32S3, sensors and the ethernet module. I had to rewrite a lot of the code from last session because of how inefficient it was :/ Then, I wired all the components together like my sketch from a while ago, but I was getting I2C issues with the heart rate sensor :( I’ll review the code again, and perhaps replace this heart rate sensor for a new one. I am very excited though because the project is finally coming to life!!!"}, {"post_id": 76835, "ts": "2026-10-04T19:28:35Z", "hours": 7.7314, "text": "Update 16 Started Coding — Part 1 I took a break from stardance to work on my school midterms. However, WE ARE BACK BABY!! Today I started work on coding the ESP32S3 microcontroller. Coding is much more time consuming than making PCBs but I am starting to enjoy writing all these codes. It feels I am connecting puzzle pieces, where with each right one, I am able to a real picture of how the project will turn out. In today’s session, I worked on trying to get the ESP32S3-Cam feed, along with the values from the sensor to my laptop through ethernet. Using ethernet allowed for a more seamless data transfer (internet speeds where I live are pretty trash). Next session, I have to work on making the AI for this thing which will help create a personalised baseline!"}, {"post_id": 72887, "ts": "2026-09-23T22:58:16Z", "hours": 5.4336, "text": "Update 15 KiCAD; Making My First Ever PCB! — Part 2 Today, I was finally able to complete reading the paper on the PCB editor to learn everything (might have over learnt it) about it. I also spent some time on an ESP32S3 pins sketch to make sure I had the wiring correct before I felt ready to make the final PCB! Then on the PCB editor, I spent about an hour to make wire the ESP32S3 to the sensors and the W5500. I have now completed both of the PCBs needed for the project :)"}, {"post_id": 72255, "ts": "2026-09-22T15:18:18Z", "hours": 2.69, "text": "Update 14: KiCAD; Making My First Ever PCB! — Part 1 Knowing nothing about the PCB editor yesterday, to making my first PCB today was quite a fun journey. I started the session by reading a guide to the PCB editor in KiCAD, which helped me learn all the basics I needed to make 1 out of the 3 total PCBs! Even though, I will have to learn a little more about the editor before I can make the PCB for the left temple (ESP32S3, W5500 & MAX 30102) and the front side (MPU6050), I am happy that I was able to complete the PCB for the right temple (Battery, TP4056 & TPS63020) of the glasses :)"}, {"post_id": 72007, "ts": "2026-09-22T00:10:08Z", "hours": 3.2003, "text": "Update 13 KiCAD; Making Footprints but Accurately! — Part 2 Starting from where I left yesterday, I began work on the remaining footprints. TPS63020 proved to kinda difficult to make the footprint for because it followed unconventional pin spacing but I was able to find a workaround using my newly attained knowledge(I had to read a little more :/ lol) I am now done with all the footprints including the battery and the switch. I have placed these footprints in the PCB editor but I unfortunately have no idea how to make the editor work :( I’ll read about it tomorrow and hopefully make the PCB by tomorrow!"}, {"post_id": 71567, "ts": "2026-09-21T02:13:10Z", "hours": 3.7281, "text": "Update 12 KiCAD; Making Footprints but Accurately! — Part 1 I started the session off by reading a paper on how to use the PCB editor in KiCAD. However, mid-way through, I realised that the footprints I custom-made for my parts are not accurate :( So instead of working on the PCB, I spent the rest of the session to remake the footprints 1:1. I was able to make the footprint for the ESP32S3, MPU6050, MAX30102, TP4056 & W5500. This leaved behind a footprint for the battery, the button (no clue how that works) and the TPS63020. Hopefully, in the next session, I’ll be able to complete the footprints for the remaining components, however given that I don’t currently own the TPS63020, I’ll have to research more on its dimensions."}, {"post_id": 71409, "ts": "2026-09-20T19:28:50Z", "hours": 1.4336, "text": "Update 11: KiCAD; Introducing Power! To start the session, I redesigned the ESP32S3’s footprint (I forgot to save the last one). I then moved on to make the footprint for MAX30102 heartrate sensor. Then, I also included the symbol designs for the battery, battery charger and the voltage regulator. The schematic is fully wired now comprising of the sensors, esp, ethernet and the power :) I have placed some of the footprints in the PCB editor on KiCAD but honestly, I have no idea how the PCB editor works. Next session I will read some papers on the PCB editor in KiCAD and start working (finally lol) on the actual PCB!"}, {"post_id": 70677, "ts": "2026-09-19T15:58:30Z", "hours": 2.5575, "text": "Update 10: KiCAD; Fixing all errors & assigning footprints! I started the session off by running an Electric Rule Checker test, which unfortunately gave me 4 errors :( Not sure what to do, I read a paper on wiring in KiCAD, which even though was VERY boring, I was able to pinpoint all 4 errors down to their causes. Thankfully, after debugging for a bit, I was able to get rid of all errors! I also started assigning footprints to all my sensors and components (had to custom make one for ESP32-S3 because they did not have my exact model), so that I can finally move towards making the PCB come to life :)"}, {"post_id": 68945, "ts": "2026-09-16T02:55:59Z", "hours": 2.4594, "text": "Update 9: KiCAD; We Started Wiring! — Part 1 I started this session off by reading some papers on how to wire components in KiCAD. I am getting bored of reading so much lol but reading these papers are really helpful in trying to understand how the wiring works :) Following the reference drawings I made, I was able to connect all the components through wires (or so I thought because the first ERC test showed 19 errors lol). I still have 4 errors left to fix, which I will hopefully do tomorrow before I can move on to the PCB!"}, {"post_id": 68840, "ts": "2026-09-15T20:53:25Z", "hours": 1.7828, "text": "Update 8: Learning KiCAD; but I finally understand it! — Part 2 Starting off where I left last session, I built the scematic designs for all the remaining components (i.e., W5500, ESP32-S3, MPU6050). The ESP32-S3 turned out quite tedious because of the 40 number of pins on it :/ but that wasn’t as bad the W5500 component design vanishing out of no where :( I was able to complete all the components though, which is a plus! I’ll now have to learn how to wire scematics so I can finally wire all the components together and build the PCB :)"}, {"post_id": 68744, "ts": "2026-09-15T17:38:14Z", "hours": 1.1314, "text": "Update 7: Learning KiCAD; but I finally understand it! — Part 1 After yesterday’s uneventful KiCAD session, I looked for more knowledge on KiCAD. That’s where I found a presentation by Oxford University on KiCAD. Reading through the paper was helpful in actually understanding the basics and learning how to design my own components! Hopefully, later today I’ll be able to finish all 4 component designs and place them in one schematic :)"}, {"post_id": 68410, "ts": "2026-09-15T02:15:17Z", "hours": 0.8669, "text": "Update 6: Learning KiCAD — from the basics! I started the session off by reading a paper on KiCAD and PCBs. The paper gave me an overview of how PCBs work and what exactly is KiCAD (I knew nothing about either before this). Then, I tried to make the schematic for the project in KiCAD, but I could not find the exact model of my ESP32-S3 :( Looks like I’ll have to manually make it. Hopefully, by tomorrow I’ll be able to get the models of ESP32-S3, MPU6050, MAX30102 and W5500 in KiCAD!"}, {"post_id": 68337, "ts": "2026-09-14T23:25:23Z", "hours": 1.6547, "text": "Update 5: Hermes Vision; Drawn to Scale! — Part 2 I started a 1:1 scaled drawing of Hermes Vision yesterday. Today I was able to complete the full drawing including the left-outward side, the right-inward side and the right-outward side of the glasses. This complete design will hopefully help out in the making of the CAD for the glasses frame. I was also drew a wiring diagram of the whole project, providing a reference for when I want to make the PCB for these glasses!"}, {"post_id": 67763, "ts": "2026-09-14T00:27:44Z", "hours": 1.5167, "text": "Update 5: Hermes Vision; Drawn to Scale! — Part 1 On my tab, I started a 1:1 scaled drawing of Hermes Vision. The process was fun but tedious because I had to measure the length of each component by hand using a meter rule (I don’t have digital vernier calipars lol). In around 1.5 hours, I was able to complete the front alongwith the left-inward side of the glasses! Hopefully by tomorrow I’ll have the complete drawing so I can move on to properly and accurately designing the CAD for my glasses frame :)"}, {"post_id": 67722, "ts": "2026-09-13T22:38:18Z", "hours": 1.1333, "text": "Update 4: CAD; but I finally can make shapes! In update 1, I started work on bringing the prototype to life, but honestly speaking, I couldn’t even make a shape. Thankfully, this CAD session was a bit better because I was able to make shapes and cut shapes into them! The prototype is far from alive, but I was able to give it a shape. Hopefully I will be able to build on this design in future as I learn more and more about CAD."}, {"post_id": 67684, "ts": "2026-09-13T21:06:21Z", "hours": 1.7497, "text": "Update 3: MPU Soldering — again! I thought the first time I soldering my mpu6050 I did an excellent job, but it was only when I tried turning it on, I realised I had completely fried the SDA and SCL on the chip :/ Hopefully this time I wont get the same I2C issues, letting me proceed to the CAD design and soldering other components."}, {"post_id": 51439, "ts": "2026-08-21T04:44:27Z", "hours": 1.0672, "text": "Upadate 2: First Time Soldering! Who knew melting lead and copper would be this fun haha. I soldered the MPU 6050 Gyroscope with its pins so I could connect it to the breadboard. Now using jumper wires I can easily connect the Gyroscope to the ESP32 for a life feed on the exact coordinates of the chip. I am still trying to debug some I2C wiring issue, which hopefully, will be done by tomorrow."}, {"post_id": 50021, "ts": "2026-08-19T01:35:00Z", "hours": 0.8, "text": "Update 1: Bringing the Prototype to Life! I experimented with CAD (first time lol) to create a 3D model of the glasses. To start things off, I measured the exact dimensions of the front of the glasses I want. Then (after quite a lot of research) I decided to use Onshape to design them. I drew the main lines and construction lines based on the measurements I took, just to get the general shape and size right. It definitely wasn’t perfect at first lol, so I changed a few things around and tried different measurements.I also played around with some basic 3D shapes and features in Onshape just to get a feel for how everything works. Nothing super advanced yet, but it helped me understand the tools and gave me a better idea of how I can build the actual glasses later :))"}]...
|
Title: Hermes Vision by @rayyanfaiq | Stardance
D Title: Hermes Vision by @rayyanfaiq | Stardance
Devlogs:
Update 1: Bringing the Prototype to Life! I experimented with CAD (first time lol) to create a 3D model of the glasses. To start things off, I measured the exact dimensions of the front of the glasses I want. Then (after quite a lot of research) I decided to use Onshape to design them. I drew the main lines and construction lines based on the measurements I took, just to get the general shape and size right. It definitely wasn’t perfect at first lol, so I changed a few things around and tried different measurements.I also played around with some basic 3D shapes and features in Onshape just to get a feel for how everything works. Nothing super advanced yet, but it helped me understand the tools and gave me a better idea of how I can build the actual glasses later :))
Upadate 2: First Time Soldering! Who knew melting lead and copper would be this fun haha. I soldered the MPU 6050 Gyroscope with its pins so I could connect it to the breadboard. Now using jumper wires I can easily connect the Gyroscope to the ESP32 for a life feed on the exact coordinates of the chip. I am still trying to debug some I2C wiring issue, which hopefully, will be done by tomorrow.
Update 3: MPU Soldering — again! I thought the first time I soldering my mpu6050 I did an excellent job, but it was only when I tried turning it on, I realised I had completely fried the SDA and SCL on the chip :/ Hopefully this time I wont get the same I2C issues, letting me proceed to the CAD design and soldering other components.
Update 4: CAD; but I finally can make shapes! In update 1, I started work on bringing the prototype to life, but honestly speaking, I couldn’t even make a shape. Thankfully, this CAD session was a bit better because I was able to make shapes and cut shapes into them! The prototype is far from alive, but I was able to give it a shape. Hopefully I will be able to build on this design in future as I learn more and more about CAD.
Update 5: Hermes Vision; Drawn to Scale! — Part 1 On my tab, I started a 1:1 scaled drawing of Hermes Vision. The process was fun but tedious because I had to measure the length of each component by hand using a meter rule (I don’t have digital vernier calipars lol). In around 1.5 hours, I was able to complete the front alongwith the left-inward side of the glasses! Hopefully by tomorrow I’ll have the complete drawing so I can move on to properly and accurately designing the CAD for my glasses frame :)
Update 5: Hermes Vision; Drawn to Scale! — Part 2 I started a 1:1 scaled drawing of Hermes Vision yesterday. Today I was able to complete the full drawing including the left-outward side, the right-inward side and the right-outward side of the glasses. This complete design will hopefully help out in the making of the CAD for the glasses frame. I was also drew a wiring diagram of the whole project, providing a reference for when I want to make the PCB for these glasses!
Update 6: Learning KiCAD — from the basics! I started the session off by reading a paper on KiCAD and PCBs. The paper gave me an overview of how PCBs work and what exactly is KiCAD (I knew nothing about either before this). Then, I tried to make the schematic for the project in KiCAD, but I could not find the exact model of my ESP32-S3 :( Looks like I’ll have to manually make it. Hopefully, by tomorrow I’ll be able to get the models of ESP32-S3, MPU6050, MAX30102 and W5500 in KiCAD!
Update 7: Learning KiCAD; but I finally understand it! — Part 1 After yesterday’s uneventful KiCAD session, I looked for more knowledge on KiCAD. That’s where I found a presentation by Oxford University on KiCAD. Reading through the paper was helpful in actually understanding the basics and learning how to design my own components! Hopefully, later today I’ll be able to finish all 4 component designs and place them in one schematic :)
Update 8: Learning KiCAD; but I finally understand it! — Part 2 Starting off where I left last session, I built the scematic designs for all the remaining components (i.e., W5500, ESP32-S3, MPU6050). The ESP32-S3 turned out quite tedious because of the 40 number of pins on it :/ but that wasn’t as bad the W5500 component design vanishing out of no where :( I was able to complete all the components though, which is a plus! I’ll now have to learn how to wire scematics so I can finally wire all the components together and build the PCB :)
Update 9: KiCAD; We Started Wiring! — Part 1 I started this session off by reading some papers on how to wire components in KiCAD. I am getting bored of reading so much lol but reading these papers are really helpful in trying to understand how the wiring works :) Following the reference drawings I made, I was able to connect all the components through wires (or so I thought because the first ERC test showed 19 errors lol). I still have 4 errors left to fix, which I will hopefully do tomorrow before I can move on to the PCB!
Update 10: KiCAD; Fixing all errors & assigning footprints! I started the session off by running an Electric Rule Checker test, which unfortunately gave me 4 errors :( Not sure what to do, I read a paper on wiring in KiCAD, which even though was VERY boring, I was able to pinpoint all 4 errors down to their causes. Thankfully, after debugging for a bit, I was able to get rid of all errors! I also started assigning footprints to all my sensors and components (had to custom make one for ESP32-S3 because they did not have my exact model), so that I can finally move towards making the PCB come to life :)
Update 11: KiCAD; Introducing Power! To start the session, I redesigned the ESP32S3’s footprint (I forgot to save the last one). I then moved on to make the footprint for MAX30102 heartrate sensor. Then, I also included the symbol designs for the battery, battery charger and the voltage regulator. The schematic is fully wired now comprising of the sensors, esp, ethernet and the power :) I have placed some of the footprints in the PCB editor on KiCAD but honestly, I have no idea how the PCB editor works. Next session I will read some papers on the PCB editor in KiCAD and start working (finally lol) on the actual PCB!
Update 12 KiCAD; Making Footprints but Accurately! — Part 1 I started the session off by reading a paper on how to use the PCB editor in KiCAD. However, mid-way through, I realised that the footprints I custom-made for my parts are not accurate :( So instead of working on the PCB, I spent the rest of the session to remake the footprints 1:1. I was able to make the footprint for the ESP32S3, MPU6050, MAX30102, TP4056 & W5500. This leaved behind a footprint for the battery, the button (no clue how that works) and the TPS63020. Hopefully, in the next session, I’ll be able to complete the footprints for the remaining components, however given that I don’t currently own the TPS63020, I’ll have to research more on its dimensions.
Update 13 KiCAD; Making Footprints but Accurately! — Part 2 Starting from where I left yesterday, I began work on the remaining footprints. TPS63020 proved to kinda difficult to make the footprint for because it followed unconventional pin spacing but I was able to find a workaround using my newly attained knowledge(I had to read a little more :/ lol) I am now done with all the footprints including the battery and the switch. I have placed these footprints in the PCB editor but I unfortunately have no idea how to make the editor work :( I’ll read about it tomorrow and hopefully make the PCB by tomorrow!
Update 14: KiCAD; Making My First Ever PCB! — Part 1 Knowing nothing about the PCB editor yesterday, to making my first PCB today was quite a fun journey. I started the session by reading a guide to the PCB editor in KiCAD, which helped me learn all the basics I needed to make 1 out of the 3 total PCBs! Even though, I will have to learn a little more about the editor before I can make the PCB for the left temple (ESP32S3, W5500 & MAX 30102) and the front side (MPU6050), I am happy that I was able to complete the PCB for the right temple (Battery, TP4056 & TPS63020) of the glasses :)
Update 15 KiCAD; Making My First Ever PCB! — Part 2 Today, I was finally able to complete reading the paper on the PCB editor to learn everything (might have over learnt it) about it. I also spent some time on an ESP32S3 pins sketch to make sure I had the wiring correct before I felt ready to make the final PCB! Then on the PCB editor, I spent about an hour to make wire the ESP32S3 to the sensors and the W5500. I have now completed both of the PCBs needed for the project :)
Update 16 Started Coding — Part 1 I took a break from stardance to work on my school midterms. However, WE ARE BACK BABY!! Today I started work on coding the ESP32S3 microcontroller. Coding is much more time consuming than making PCBs but I am starting to enjoy writing all these codes. It feels I am connecting puzzle pieces, where with each right one, I am able to a real picture of how the project will turn out. In today’s session, I worked on trying to get the ESP32S3-Cam feed, along with the values from the sensor to my laptop through ethernet. Using ethernet allowed for a more seamless data transfer (internet speeds where I live are pretty trash). Next session, I have to work on making the AI for this thing which will help create a personalised baseline!
Update 17 Started Coding — Part 2 I completed the code from last session, including the indiviual codes for the ESP32S3, sensors and the ethernet module. I had to rewrite a lot of the code from last session because of how inefficient it was :/ Then, I wired all the components together like my sketch from a while ago, but I was getting I2C issues with the heart rate sensor :( I’ll review the code again, and perhaps replace this heart rate sensor for a new one. I am very excited though because the project is finally coming to life!!!
Update 18 Started Coding — Part 3 I’m lowk addicted. I got a new heartrate sensor for my project because I JUST found out, all that time where I though something was wrong with my code, it was just that the previous black heart rate sensor was known to have I2C issues :/ Anyway, I got a new one and soldered it (pretty clean ngl, I’ve learned so much this project). I have also assembled the glasses, with zipties, for a first prototype!! I still get abnormal values sometimes though, so that is something I will have to fix :)
Update 18 Started Coding — Part 3 This is my 4th, almost 10 hour session in a row, and honestly saying, I have no idea where time goes once I start working on this project. I worked more on the code, fixed most of the abnormal values, yet somehow I still sometimes get a heart rate of 12 bpm (i am well and alive) from the sensor :( Apart from that, I was able to start work on the personalised AI model, which fuses all the readings from the sensors to create a personal baseline. I will work more on trying to get as accurate readings as possible, but for now I think I have to work on the AI model (I have attached how I think the AI model will function and display the values).
Update 19 Started Coding — Part 4 I think I just need one more session before I am done with this! In today’s session, I fixed all abnormal values, wired it everything together and added a callibration time to the gyroscope (so it knows when the driver is looking at the road and when not). Now, everything works pretty well together, but I still need to work on the AI model which fuses it together :)
Update 20 Started Coding — Part 5 Oops, I think I got carried away, 13 hours is crazy lol. In this session, I was able to fix all the code, and work on all the parts of the project! The project works perfectly now, and I even got video stream onto my laptop :) The ESP can now decide whether the driver is looking at the road and/or the side mirrors or he is distracted. This is a major breakthrough because now I can work on the stream directly. Next up: AI fusion model.
Update 21 Started Coding — Part 6 Another super long session today, but this was a major breakthrough! I completely overhauled how the system thinks. The ESP32 was doing way too much math and crashing the video stream, so I moved all the heavy lifting to the Python script on my laptop. I also fixed the crazy false alarms on the crash detection (turning my head is definitely not a 10G car crash lol) and stopped the video feed from freezing whenever I moved my head too fast. The code also talks to me to map out exactly where the center road and mirrors are based on my specific seat, and actively warns me if I look away for more than 2 seconds. Next up: Fixing one last gray-screen video bug and finally starting the AI fusion model to combine the head and eye tracking! :)
#Update 22 #Started Coding — Part 7 Hopefully the final stretch! In my next session, I am going to squash this last annoying gray-screen bug on the video feed (fingers crossed it’s just a loose camera wire or a Windows firewall issue). Once the video is perfectly stable, the real fun begins: integrating MediaPipe! I’ll be adding actual eye tracking so the AI can fuse my iris movements with my head movements. This will give the system an exact, pinpoint location of where I am actually looking, rather than just where my head is pointing. I also need to verify the MAX30102 heart rate sensor against my Apple Watch to see if the readings are actually accurate, or if my heart rate just naturally spikes while troubleshooting hardware lol. Getting so close to the finish line with this AI fusion model! :)...
|
1792640866.0266342
|
1793245666.0266342
|
|
48301
|
YSH Terminal by @Yousuff | Stardance
|
Yousuff
|
1
|
54.63
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T16:31:46Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "visit github/YousufProjs-exe/YSH for better details", "repo": "https://github.com/YousufProjs-exe/YSH-v8", "demo": "https://github.com/YousufProjs-exe/YSH-v8/releases/tag/v8-stable"}]...
|
[{"post_id": 79411, "ts": "202 [{"post_id": 79411, "ts": "2026-10-13T21:05:26Z", "hours": 3.3569, "text": "YSH v10 - is live !!!! also 100+ hours on YSH development and 24+ hours on YSH v10 as per Hackatime is being recorded ! the new YSH 10 is a must test ! refer the repo for more details but its now got better structure with expanded tree!"}, {"post_id": 78863, "ts": "2026-10-11T20:05:22Z", "hours": 3.5956, "text": "Now - the Fileshare host and get ip bind together with preceding fileshare command with must ip and exact file with extension - more secured and Shell-ish."}, {"post_id": 77887, "ts": "2026-10-08T17:29:41Z", "hours": 2.2839, "text": "although the theme apply and set is fixed and replaced v10s tab completion with v8s as its the better one - i ended with new bug theme not found."}, {"post_id": 77667, "ts": "2026-10-07T19:36:22Z", "hours": 2.1581, "text": "YSH v10 - MAJOR UPDATES - Arch mode and some more themes - all literally all bugs fixed and v10 is said to be ready as BETA and DEMO to the upcoming versions!"}, {"post_id": 77395, "ts": "2026-10-06T19:47:34Z", "hours": 1.7189, "text": "tried adding more themes but the terminal remains terminal - either way its not what YSH aims for. but this devlog states the addition for beta Arch Mode."}, {"post_id": 76158, "ts": "2026-10-02T15:10:12Z", "hours": 0.7289, "text": "fixed Ctrl L, F1, “?”, Tab completes and utilities bugs - released YSH v8.1.4 to the repo !"}, {"post_id": 75339, "ts": "2026-09-29T19:39:39Z", "hours": 2.0822, "text": "Networking using new commands is back , scan , chat host , fileshare , ports , are now arranged into newer and better handlers!"}, {"post_id": 71620, "ts": "2026-09-21T05:40:00Z", "hours": 2.9861, "text": "tryna update led to downgrade , changing networking commands and protocol got Networking broken."}, {"post_id": 65497, "ts": "2026-09-10T17:57:24Z", "hours": 4.1744, "text": "Caped YSH v10 with check, run, sysinfo, whatsup, clac, notes (add / view / list / edit / delete), multiple command alias, pwd, home, major file and directory commands and with a lot of working shortcuts: Tab to complete, ctrl+l to clear, arrow up / down for history, ctrl+up / down to scroll and more."}, {"post_id": 64429, "ts": "2026-09-08T20:01:48Z", "hours": 3.0739, "text": "Some Builds happen Late. The more you explore the more you get to see some interesting stuff, try YSH [ Live on GitHub ] @ YousufProjs-exe/YSH-v8/releases"}, {"post_id": 63781, "ts": "2026-09-07T18:57:01Z", "hours": 4.9856, "text": "YSH v8 was one of the versions where the project started becoming much more than a basic terminal. This version brought major work around the GUI and filesystem, while also pushing YSH toward a more complete and usable environment. It became an important foundation for the features and architecture that came later in v10. Looking back at v8 now, it’s pretty cool seeing how much the project has evolved from this point."}, {"post_id": 60431, "ts": "2026-09-02T19:09:50Z", "hours": 6.6158, "text": "YSH v10 ( LAN Networking ) update : LAN Chat is fine back to v10 with additional features like chat history and better with easy to join system , upcoming File Share is also coming with… its a secret."}, {"post_id": 56590, "ts": "2026-08-28T12:27:27Z", "hours": 3.8936, "text": "YSH v10 - Equalizing With v8 Today, I focused on bringing the newly rebuilt YSH v10.GUI closer to the feature set and usability of YSH v8.GUI. Worked on bringing YSH v10.GUI closer to YSH v8 by restoring command history, clear, home, time/date, calculator, system commands, terminal shortcuts, Tab completion, themes, late-night behaviour, and better prompt protection. Also improved filesystem navigation while keeping v10’s new modular architecture."}, {"post_id": 55101, "ts": "2026-08-26T15:39:36Z", "hours": 3.8436, "text": "YSH v10 - Rearrangement and better file system and with a new milestone to achieve ; YSH v10 for now says Hello!!! and ‘echo’ butttt theres alot more to come, CLI and Lightweight Task Manager too."}, {"post_id": 53073, "ts": "2026-08-23T14:09:00Z", "hours": 7.1344, "text": "YSH - Terminal , built in Java with versions all having a great vision and stories to remember and with this I completed the LAN Chat better with new Announcement , Kick , Listusers and other Admin only commands."}, {"post_id": 48282, "ts": "2026-08-16T16:19:53Z", "hours": 1.54, "text": "YSH - Terminal"}]...
|
Title: YSH Terminal by @Yousuff | Stardance
Devlo Title: YSH Terminal by @Yousuff | Stardance
Devlogs:
YSH - Terminal
YSH - Terminal , built in Java with versions all having a great vision and stories to remember and with this I completed the LAN Chat better with new Announcement , Kick , Listusers and other Admin only commands.
YSH v10 - Rearrangement and better file system and with a new milestone to achieve ; YSH v10 for now says Hello!!! and ‘echo’ butttt theres alot more to come, CLI and Lightweight Task Manager too.
YSH v10 - Equalizing With v8 Today, I focused on bringing the newly rebuilt YSH v10.GUI closer to the feature set and usability of YSH v8.GUI. Worked on bringing YSH v10.GUI closer to YSH v8 by restoring command history, clear, home, time/date, calculator, system commands, terminal shortcuts, Tab completion, themes, late-night behaviour, and better prompt protection. Also improved filesystem navigation while keeping v10’s new modular architecture.
YSH v10 ( LAN Networking ) update : LAN Chat is fine back to v10 with additional features like chat history and better with easy to join system , upcoming File Share is also coming with… its a secret.
YSH v8 was one of the versions where the project started becoming much more than a basic terminal. This version brought major work around the GUI and filesystem, while also pushing YSH toward a more complete and usable environment. It became an important foundation for the features and architecture that came later in v10. Looking back at v8 now, it’s pretty cool seeing how much the project has evolved from this point.
Some Builds happen Late. The more you explore the more you get to see some interesting stuff, try YSH [ Live on GitHub ] @ YousufProjs-exe/YSH-v8/releases
Caped YSH v10 with check, run, sysinfo, whatsup, clac, notes (add / view / list / edit / delete), multiple command alias, pwd, home, major file and directory commands and with a lot of working shortcuts: Tab to complete, ctrl+l to clear, arrow up / down for history, ctrl+up / down to scroll and more.
tryna update led to downgrade , changing networking commands and protocol got Networking broken.
Networking using new commands is back , scan , chat host , fileshare , ports , are now arranged into newer and better handlers!
fixed Ctrl L, F1, “?”, Tab completes and utilities bugs - released YSH v8.1.4 to the repo !
tried adding more themes but the terminal remains terminal - either way its not what YSH aims for. but this devlog states the addition for beta Arch Mode.
YSH v10 - MAJOR UPDATES - Arch mode and some more themes - all literally all bugs fixed and v10 is said to be ready as BETA and DEMO to the upcoming versions!
although the theme apply and set is fixed and replaced v10s tab completion with v8s as its the better one - i ended with new bug theme not found.
Now - the Fileshare host and get ip bind together with preceding fileshare command with must ip and exact file with extension - more secured and Shell-ish.
YSH v10 - is live !!!! also 100+ hours on YSH development and 24+ hours on YSH v10 as per Hackatime is being recorded ! the new YSH 10 is a must test ! refer the repo for more details but its now got better structure with expanded tree!
Ships:
visit github/YousufProjs-exe/YSH for better details...
|
1793206096.6375651
|
1793292496.6375651
|
|
875
|
Sigma Slack Bot by @sarcasmking | Stardance
|
sarcasmking
|
1
|
7.0
|
39
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T19:00:17Z", "hours": 7.0, "multiplier": 5.9, "payout": 39, "blessing": "neutral", "text": "In this project, I made a pretty simple slackbot with some neat features! It was pretty tough for me coz I didn’t really know javascript, but i wanted to try it in js anyways. Overall it was a fun learning experience for me as it taught me about using modules in javascript and even how to use github, which i hadn’t really used before this. I also got to know about setting up services on vps, so that was pretty cool too!", "repo": "https://github.com/S4RC45MK1NG/sigma_bot_slack", "demo": "https://app.slack.com/client/E09V59WQY1E/C0APH2MMHH7"}]...
|
[{"post_id": 7941, "ts": "2026 [{"post_id": 7941, "ts": "2026-06-13T07:52:44Z", "hours": 1.0769, "text": "made some finishing changes, and worked out how to get my bot permissions to dm someone"}, {"post_id": 3767, "ts": "2026-06-06T20:19:34Z", "hours": 1.48, "text": "added ai response commands… coz why not 😔 but mainly worked on the reminder command which is rather useful if i say so myself! i did face some problems coz of the bot permissions, but i worked around it :>"}, {"post_id": 3398, "ts": "2026-06-06T09:46:30Z", "hours": 2.9994, "text": "i never knew making even things as simple as a weather data fetching service can be so confusing, i had to experiment quite a lot to finally get how to fetch the response from the ai and how to send it the parameters. Also, I didn’t at all know what JSON actually was till now 💀, so overall, it was a great challenge that taught me about json and how its used to send and receive data from api’s!!"}, {"post_id": 1733, "ts": "2026-06-03T22:17:10Z", "hours": 0.7394, "text": "FINALLY I UNDERSTOOD HOW API’S WORK!!! it felt like ages trying to figure out how to request data from the weather api but i finally figured it out! I’ll try to implement it into the bot after processing the data provided by the api :)"}, {"post_id": 863, "ts": "2026-06-02T16:02:59Z", "hours": 0.4333, "text": "finally finished the tutorial! i dont rlly have much experience with javascript or using hosting bots online.. so this felt rlly nice when it finally worked! XD"}]...
|
Title: Sigma Slack Bot by @sarcasmking | Stardance Title: Sigma Slack Bot by @sarcasmking | Stardance
Devlogs:
finally finished the tutorial! i dont rlly have much experience with javascript or using hosting bots online.. so this felt rlly nice when it finally worked! XD
FINALLY I UNDERSTOOD HOW API’S WORK!!! it felt like ages trying to figure out how to request data from the weather api but i finally figured it out! I’ll try to implement it into the bot after processing the data provided by the api :)
i never knew making even things as simple as a weather data fetching service can be so confusing, i had to experiment quite a lot to finally get how to fetch the response from the ai and how to send it the parameters. Also, I didn’t at all know what JSON actually was till now 💀, so overall, it was a great challenge that taught me about json and how its used to send and receive data from api’s!!
added ai response commands… coz why not 😔 but mainly worked on the reminder command which is rather useful if i say so myself! i did face some problems coz of the bot permissions, but i worked around it :>
made some finishing changes, and worked out how to get my bot permissions to dm someone
Ships:
In this project, I made a pretty simple slackbot with some neat features! It was pretty tough for me coz I didn’t really know javascript, but i wanted to try it in js anyways. Overall it was a fun learning experience for me as it taught me about using modules in javascript and even how to use github, which i hadn’t really used before this. I also got to know about setting up services on vps, so that was pretty cool too!...
|
1793224549.7637846
|
1793310949.7637846
|
|
69557
|
DisonBOT by @yoru_ayan | Stardance
|
yoru_ayan
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-14T13:08:40Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Yop after finding a hosting for the bot it finally 24/7 online now. The bto is named after my stuff toy Dison. Soon i will add new commands which definatly going to be great", "repo": "https://github.com/aniway89/Dison-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0C94B0GX70"}]...
|
[{"post_id": 79409, "ts": "202 [{"post_id": 79409, "ts": "2026-10-13T20:53:37Z", "hours": 2.2353, "text": "Yo Guys I Built DisonBot with four slash commands: ping, help, cat facts, and random jokes. Waiting for the NEST account so I can make it 24/7……"}]...
|
Title: DisonBOT by @yoru_ayan | Stardance
Devlogs Title: DisonBOT by @yoru_ayan | Stardance
Devlogs:
Yo Guys I Built DisonBot with four slash commands: ping, help, cat facts, and random jokes. Waiting for the NEST account so I can make it 24/7……
Ships:
Yop after finding a hosting for the bot it finally 24/7 online now. The bto is named after my stuff toy Dison. Soon i will add new commands which definatly going to be great...
|
1793155787.718276
|
1793242187.718276
|
|
69522
|
WebOS by @ikhublall0610 | Stardance
|
ikhublall0610
|
0
|
0.41
|
0
|
[]
|
[{"post_id": 79407, "ts": "202 [{"post_id": 79407, "ts": "2026-10-13T20:47:09Z", "hours": 0.4083, "text": "WebOS"}]...
|
Title: WebOS by @ikhublall0610 | Stardance
Devlog Title: WebOS by @ikhublall0610 | Stardance
Devlogs:
WebOS...
|
1792857078.7540677
|
1793461878.7540677
|
|
68008
|
gettoknowme!!! by @kingkev | Stardance
|
kingkev
|
0
|
4.29
|
0
|
[]
|
[{"post_id": 79405, "ts": "202 [{"post_id": 79405, "ts": "2026-10-13T20:45:29Z", "hours": 0.6042, "text": "yeyy. ok so now things are working properly, i hope. js one thing: cd covers stay zoomed in until you click on another one of them. i gotta fix it, it bothers me so much. other than that YEYYY, i will next work on the pages for this three characters (abby sciuto, luna lovegood, and peter parker but andrew’s version) cuz its blank for now D: 🌈"}, {"post_id": 79160, "ts": "2026-10-12T20:47:22Z", "hours": 0.3289, "text": "okayyyyyy. as i said, it was time for the characters i loveee and wanna be like - kinda. the first two pictures are my inspo i made on canva. and now i just want the actual page to be exactly like that. so at first, i tried adding it as a whole image for background. but ofc it was nothing proper (you can pretty much understand that from the last ss i added to this devlog) so im gonna do it the hard but better way i guess. just not today :P (note: the idea was that, when you click on any of the three cd cover-ish thingys, it would become like the second image, with only a single character left and a lighter/pastel palette. and i am planning to give info about what i like in those characters: styles, personal traits, vibe,mindset etc etc)"}, {"post_id": 78891, "ts": "2026-10-11T21:50:25Z", "hours": 0.5967, "text": "NEW PAGE ON ITS WAY!!!!!"}, {"post_id": 78177, "ts": "2026-10-09T21:35:59Z", "hours": 0.3358, "text": "changed the whimsical part a bit. one day i was at a food court with my friend and we were ordering smt. there was a cashier who seemed just a bit older than us. her eyeshadow was GLITTERY PURPLE. i loved it so much. tho, she seemed a little tense(?) so i hesitated to compliment at first. but i did anyway.eventually (after i insisted on keeping a smile on my face while looking at her) she smiled in the most genuinest way to ever be genuine. and it really felt like she needed to hear that, cuz later, her sharp face appeared rather as a sad one to me. anyway spread the magic, if you tell people they are cringe or any other bad thing, sadly, they usually believe it s true. HOWEVER, if you tell them something positive and sincere, chances are, they will take that seriously as well. this is so important for me, thats why i wrote this much thing rather than writing about the functionality or the code or smt like that. if there are people reading this, thanks a lot and please, you can affect people and if you just choose to affect them in a good way it could change a lot. a few words that easily come out of your mouth could mean much more than you think to someone else :D (ok now talking about the design process: it took more time than i thought to design the window(?)/frame im gonna put behind the writing. i am planning to add more pictures, especially something glittery. “whimsy” is not really an aesthetic matter for me, i connect it deeply to not losing hope in people, and that takes a lot of space in my mind, and since the aim of this website is to show who i am outside academic or stem related interests and projects, the contents naturally differ from other projects. not only for the project itself, but also for the devlogs. so thx A LOT for your patience)"}, {"post_id": 77935, "ts": "2026-10-08T20:47:36Z", "hours": 0.4747, "text": "played with the music thingy design (gonna change it again, soon, i guess) and organized my code ? a bit. thats all for today :D"}, {"post_id": 77684, "ts": "2026-10-07T21:12:09Z", "hours": 0.9914, "text": "new section (is that the name for it?) !!!!!!!!!!!!!!!!!!!!! music is REALLLLLLLLLLLLLYY important for me, i wanted to do smt about it asap. soooooo now, you can listen to some of my fav tracks on the site :P"}, {"post_id": 77411, "ts": "2026-10-06T21:21:33Z", "hours": 0.5269, "text": "yeyyyyy. some changes for the background!!!!!!!! now theres the spiral thingy that turns around itself, but since its too dizzy that way, you can stop/start the movement by clicking on anywhere :D also floating starsss Yuppiiii"}, {"post_id": 77163, "ts": "2026-10-05T20:57:37Z", "hours": 0.4331, "text": "yeyyy, new project!!!!!!!! i dont want my personal site to be like a portfolio, instead, i want it to show my fav characters, interests or things that i like in general so that when someone checks it, it would demonstrate my personality - in a way beyond all that tech stuff :D YEYY"}]...
|
Title: gettoknowme!!! by @kingkev | Stardance
Dev Title: gettoknowme!!! by @kingkev | Stardance
Devlogs:
yeyyy, new project!!!!!!!! i dont want my personal site to be like a portfolio, instead, i want it to show my fav characters, interests or things that i like in general so that when someone checks it, it would demonstrate my personality - in a way beyond all that tech stuff :D YEYY
yeyyyyy. some changes for the background!!!!!!!! now theres the spiral thingy that turns around itself, but since its too dizzy that way, you can stop/start the movement by clicking on anywhere :D also floating starsss Yuppiiii
new section (is that the name for it?) !!!!!!!!!!!!!!!!!!!!! music is REALLLLLLLLLLLLLYY important for me, i wanted to do smt about it asap. soooooo now, you can listen to some of my fav tracks on the site :P
played with the music thingy design (gonna change it again, soon, i guess) and organized my code ? a bit. thats all for today :D
changed the whimsical part a bit. one day i was at a food court with my friend and we were ordering smt. there was a cashier who seemed just a bit older than us. her eyeshadow was GLITTERY PURPLE. i loved it so much. tho, she seemed a little tense(?) so i hesitated to compliment at first. but i did anyway.eventually (after i insisted on keeping a smile on my face while looking at her) she smiled in the most genuinest way to ever be genuine. and it really felt like she needed to hear that, cuz later, her sharp face appeared rather as a sad one to me. anyway spread the magic, if you tell people they are cringe or any other bad thing, sadly, they usually believe it s true. HOWEVER, if you tell them something positive and sincere, chances are, they will take that seriously as well. this is so important for me, thats why i wrote this much thing rather than writing about the functionality or the code or smt like that. if there are people reading this, thanks a lot and please, you can affect people and if you just choose to affect them in a good way it could change a lot. a few words that easily come out of your mouth could mean much more than you think to someone else :D (ok now talking about the design process: it took more time than i thought to design the window(?)/frame im gonna put behind the writing. i am planning to add more pictures, especially something glittery. “whimsy” is not really an aesthetic matter for me, i connect it deeply to not losing hope in people, and that takes a lot of space in my mind, and since the aim of this website is to show who i am outside academic or stem related interests and projects, the contents naturally differ from other projects. not only for the project itself, but also for the devlogs. so thx A LOT for your patience)
NEW PAGE ON ITS WAY!!!!!
okayyyyyy. as i said, it was time for the characters i loveee and wanna be like - kinda. the first two pictures are my inspo i made on canva. and now i just want the actual page to be exactly like that. so at first, i tried adding it as a whole image for background. but ofc it was nothing proper (you can pretty much understand that from the last ss i added to this devlog) so im gonna do it the hard but better way i guess. just not today :P (note: the idea was that, when you click on any of the three cd cover-ish thingys, it would become like the second image, with only a single character left and a lighter/pastel palette. and i am planning to give info about what i like in those characters: styles, personal traits, vibe,mindset etc etc)
yeyy. ok so now things are working properly, i hope. js one thing: cd covers stay zoomed in until you click on another one of them. i gotta fix it, it bothers me so much. other than that YEYYY, i will next work on the pages for this three characters (abby sciuto, luna lovegood, and peter parker but andrew’s version) cuz its blank for now D: 🌈...
|
1793116339.9127119
|
1793721139.9127119
|
|
5020
|
FLOWS by @UntitledMacaw | Stardance
|
UntitledMacaw
|
1
|
34.44
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T18:21:49Z", "hours": 29.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is FLOWS. It is a program that takes in terrain data and water infiltration data and finds bowl-like depressions (or simply “basins”). Why is that useful: for each basin, water-height doesn’t change (for the same rainfall). This means we can pre-calculate various rainfall scenarios and store their results, so we can have a simple and quick way of estimating flood risk. Compilation was also made focusing on lower-end hardware, were we avoid feeding the entire data into the RAM, and instead partition the dataset in smart ways so we can make it all fit within our constrains!", "repo": "https://github.com/UntitledMacaw/FLOWS", "demo": "https://github.com/UntitledMacaw/FLOWS/releases/tag/Beta"}]...
|
[{"post_id": 79403, "ts": "202 [{"post_id": 79403, "ts": "2026-10-13T20:29:07Z", "hours": 0.9344, "text": "Alright, so new changes! Today I tried to make a DEMO for my project! Since the user is originally intended to provided topological files (that for demonstration purposes may not be available), I have also packaged inside the .sh file a DEMO version, that has its own very small dataset, so everyone can see the project in action even without the needed files."}, {"post_id": 77692, "ts": "2026-10-07T22:54:32Z", "hours": 0.6186, "text": "Another day and guess what: another feature! I added a new function to the code that takes in a “starting point” for basin compilation. What this does is, given a starting point integer provided by the user (call it S), it skips all basins with an ID lower than S. This is good ’cuz we can stop the code with control + C and later keep on where we left by choosing our last compiled basin as our starting point! I probably should have done this a long time ago instead of right know when I actually needed it, but hey: Better late than never am i right?"}, {"post_id": 74665, "ts": "2026-09-27T22:24:01Z", "hours": 2.655, "text": "YEEEEAAAAH! I decided to try and create an executable for my script, and boy was hard. The problem was that major libraries like gdal and whitebox required a bunch of other system libraries to work. This means I had to try to get them into the executable, and let me tell ya: This took a lot of time. But finally, it works (i hope)! I will be posting the executable (linux only of course) on github later!"}, {"post_id": 74018, "ts": "2026-09-26T15:19:42Z", "hours": 1.2344, "text": "Update on compilation: Well, a lot of stuff happened. I can’t really keep my computer running non stop all day and night, so I was resorting to suspending the laptop so runtime would keep frozen in RAM. But today, after a week of running the program and almost halfway left, I woke up to find the computer out of battery (probably it kept running in suspend mode and just died). That was quite devastating, but the only thing I could do was to update my code with checkpoints so that if that happens again, I won’t need to run everything again like I’m about to do now. I took that chance to also fix some typos in my README and my github pages, so I guess I got something good out of this!"}, {"post_id": 71782, "ts": "2026-09-21T15:16:55Z", "hours": 5.7964, "text": "Making some minor changes so my github before posting my project!"}, {"post_id": 63759, "ts": "2026-09-07T18:33:58Z", "hours": 8.0975, "text": "Finally able to find bowl-like depressions now"}, {"post_id": 40144, "ts": "2026-08-03T15:27:42Z", "hours": 9.9969, "text": "Writing a pdf devlog for my project!"}, {"post_id": 36462, "ts": "2026-07-28T16:19:12Z", "hours": 4.8508, "text": "Just discovered this nice tool called WhiteBoxTools, and was also able to find its user manual! Now I won’t need to process terrain from scratch, and instead get I can all the data I’m looking for without reinventing the wheel."}, {"post_id": 878, "ts": "2026-06-02T16:27:54Z", "hours": 0.3542, "text": "Figured out how to read a digital elevation model with python"}]...
|
Title: FLOWS by @UntitledMacaw | Stardance
Devlog Title: FLOWS by @UntitledMacaw | Stardance
Devlogs:
Figured out how to read a digital elevation model with python
Just discovered this nice tool called WhiteBoxTools, and was also able to find its user manual! Now I won’t need to process terrain from scratch, and instead get I can all the data I’m looking for without reinventing the wheel.
Writing a pdf devlog for my project!
Finally able to find bowl-like depressions now
Making some minor changes so my github before posting my project!
Update on compilation: Well, a lot of stuff happened. I can’t really keep my computer running non stop all day and night, so I was resorting to suspending the laptop so runtime would keep frozen in RAM. But today, after a week of running the program and almost halfway left, I woke up to find the computer out of battery (probably it kept running in suspend mode and just died). That was quite devastating, but the only thing I could do was to update my code with checkpoints so that if that happens again, I won’t need to run everything again like I’m about to do now. I took that chance to also fix some typos in my README and my github pages, so I guess I got something good out of this!
YEEEEAAAAH! I decided to try and create an executable for my script, and boy was hard. The problem was that major libraries like gdal and whitebox required a bunch of other system libraries to work. This means I had to try to get them into the executable, and let me tell ya: This took a lot of time. But finally, it works (i hope)! I will be posting the executable (linux only of course) on github later!
Another day and guess what: another feature! I added a new function to the code that takes in a “starting point” for basin compilation. What this does is, given a starting point integer provided by the user (call it S), it skips all basins with an ID lower than S. This is good ’cuz we can stop the code with control + C and later keep on where we left by choosing our last compiled basin as our starting point! I probably should have done this a long time ago instead of right know when I actually needed it, but hey: Better late than never am i right?
Alright, so new changes! Today I tried to make a DEMO for my project! Since the user is originally intended to provided topological files (that for demonstration purposes may not be available), I have also packaged inside the .sh file a DEMO version, that has its own very small dataset, so everyone can see the project in action even without the needed files.
Ships:
This is FLOWS. It is a program that takes in terrain data and water infiltration data and finds bowl-like depressions (or simply “basins”). Why is that useful: for each basin, water-height doesn’t change (for the same rainfall). This means we can pre-calculate various rainfall scenarios and store their results, so we can have a simple and quick way of estimating flood risk. Compilation was also made focusing on lower-end hardware, were we avoid feeding the entire data into the RAM, and instead partition the dataset in smart ways so we can make it all fit within our constrains!...
|
1793148455.7809806
|
1793234855.7809806
|
|
8808
|
Graph Neural Networks Textbook by @Anvith | Starda Graph Neural Networks Textbook by @Anvith | Stardance...
|
Anvith
|
1
|
6.08
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-05T20:11:19Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Built a full interactive textbook on Graph Neural Networks — 27 chapters, 300 concepts, 37 p5.js MicroSims you can play with directly in the browser (watch message passing animate, tune GAT attention weights, step through WL color refinement live). 301k words, 746 equations, all with full math derivations and runnable PyTorch Geometric code. Hardest part: wiring a dependency-aware learning graph of 300 concepts so every chapter respects prerequisites, and building the MicroSims so they actually teach the intuition rather than just looking cool. Most proud of the MicroSims — especially the GCN message passing visualizer and the WL color refinement stepper. Abstract concepts that are genuinely hard to explain with equations alone become obvious when you can manipulate them.", "repo": "https://github.com/AnvithPothula/graph-neural-networks-textbook", "demo": "https://anvithpothula.github.io/graph-neural-networks-textbook/"}]...
|
[{"post_id": 79396, "ts": "202 [{"post_id": 79396, "ts": "2026-10-13T20:04:15Z", "hours": 1.1422, "text": "Fixed a few bugs"}, {"post_id": 3887, "ts": "2026-06-06T23:53:17Z", "hours": 0.9336, "text": "I finished writing my intelligent textbook on Graph Neural Networks (GNNs)."}, {"post_id": 2900, "ts": "2026-06-05T20:08:34Z", "hours": 4.3156, "text": "This is a comprehensive, interactive intelligent textbook on Graph Neural Networks designed for graduate and advanced undergraduate students in machine learning, data mining, and network science. Built with MkDocs Material, it covers the full arc of the field — from graph theory and classical graph algorithms through modern architectures including graph transformers, knowledge graph models, and LLM+GNN integration. Every chapter leads with a real-world motivating example, builds intuition before equations, provides full mathematical derivations, and includes complete runnable PyTorch Geometric code. 37 interactive MicroSims — p5.js simulations embedded directly in the browser — let you manipulate GNN internals hands-on: watch message passing animate across layers, tune attention weights in real time, and step through WL color refinement iteration by iteration. The textbook is structured around a dependency-aware learning graph of 300 concepts, ensuring prerequisite sequencing is respected across all 27 chapters. Quizzes, glossary terms, and FAQs cover every major concept, with exercises distributed across all six levels of Bloom’s Taxonomy."}]...
|
Title: Graph Neural Networks Textbook by @Anvith | Title: Graph Neural Networks Textbook by @Anvith | Stardance
Devlogs:
This is a comprehensive, interactive intelligent textbook on Graph Neural Networks designed for graduate and advanced undergraduate students in machine learning, data mining, and network science. Built with MkDocs Material, it covers the full arc of the field — from graph theory and classical graph algorithms through modern architectures including graph transformers, knowledge graph models, and LLM+GNN integration. Every chapter leads with a real-world motivating example, builds intuition before equations, provides full mathematical derivations, and includes complete runnable PyTorch Geometric code. 37 interactive MicroSims — p5.js simulations embedded directly in the browser — let you manipulate GNN internals hands-on: watch message passing animate across layers, tune attention weights in real time, and step through WL color refinement iteration by iteration. The textbook is structured around a dependency-aware learning graph of 300 concepts, ensuring prerequisite sequencing is respected across all 27 chapters. Quizzes, glossary terms, and FAQs cover every major concept, with exercises distributed across all six levels of Bloom’s Taxonomy.
I finished writing my intelligent textbook on Graph Neural Networks (GNNs).
Fixed a few bugs
Ships:
Built a full interactive textbook on Graph Neural Networks — 27 chapters, 300 concepts, 37 p5.js MicroSims you can play with directly in the browser (watch message passing animate, tune GAT attention weights, step through WL color refinement live). 301k words, 746 equations, all with full math derivations and runnable PyTorch Geometric code. Hardest part: wiring a dependency-aware learning graph of 300 concepts so every chapter respects prerequisites, and building the MicroSims so they actually teach the intuition rather than just looking cool. Most proud of the MicroSims — especially the GCN message passing visualizer and the WL color refinement stepper. Abstract concepts that are genuinely hard to explain with equations alone become obvious when you can manipulate them....
|
1793119812.2886868
|
1793206212.2886868
|
|
69298
|
MicroPad by @yoru_ayan | Stardance
|
yoru_ayan
|
0
|
5.87
|
0
|
[]
|
[{"post_id": 79395, "ts": "202 [{"post_id": 79395, "ts": "2026-10-13T19:57:45Z", "hours": 1.3039, "text": "Yop Finally complete the 3d Casing and modeling and also I give it a new look hop you like it……….."}, {"post_id": 79134, "ts": "2026-10-12T19:42:07Z", "hours": 2.1406, "text": "Yop Guys i Complete the design for the Hack pad. I design it more like a cntroller so i can use it to play some retor game……"}, {"post_id": 79091, "ts": "2026-10-12T17:07:47Z", "hours": 1.7911, "text": "Guys look I made new design and 3D modeling the case rn……."}, {"post_id": 78987, "ts": "2026-10-12T08:18:52Z", "hours": 0.6294, "text": "I think we are cooking guys!!!!!!!!!"}]...
|
Title: MicroPad by @yoru_ayan | Stardance
Devlogs Title: MicroPad by @yoru_ayan | Stardance
Devlogs:
I think we are cooking guys!!!!!!!!!
Guys look I made new design and 3D modeling the case rn…….
Yop Guys i Complete the design for the Hack pad. I design it more like a cntroller so i can use it to play some retor game……
Yop Finally complete the 3d Casing and modeling and also I give it a new look hop you like it……….....
|
1793130878.4557765
|
1793735678.4557765
|
|
692
|
Pinball by @jms | Stardance
|
jms
|
1
|
10.46
|
19
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-13T03:36:43Z", "hours": 10.0, "multiplier": 1.99, "payout": 19, "blessing": "neutral", "text": "This is a game of pinball. Some problems with this game are the button at the start may not load quickly so you may need to wait a few seconds and with everything with collision there may be some bugs in relation to collision", "repo": "https://github.com/Chickenhatter/pinball", "demo": "https://chickenhatter.itch.io/pinball"}]...
|
[{"post_id": 7939, "ts": "2026 [{"post_id": 7939, "ts": "2026-06-13T07:48:14Z", "hours": 0.4619, "text": "Fixed something about conrol nodes stealing clicks and added a smacker in start scene"}, {"post_id": 7852, "ts": "2026-06-13T02:56:28Z", "hours": 1.0372, "text": "Game Finished with also start scene"}, {"post_id": 7809, "ts": "2026-06-13T01:06:14Z", "hours": 0.7289, "text": "Making main scene ready to be shipped"}, {"post_id": 7389, "ts": "2026-06-12T09:58:24Z", "hours": 0.5383, "text": "Ball loop now works"}, {"post_id": 6783, "ts": "2026-06-11T11:12:08Z", "hours": 0.5767, "text": "Coded the second ball"}, {"post_id": 6135, "ts": "2026-06-10T10:07:12Z", "hours": 0.5706, "text": "I added a second ball and the path works"}, {"post_id": 5510, "ts": "2026-06-09T09:50:16Z", "hours": 0.5864, "text": "Added images"}, {"post_id": 4829, "ts": "2026-06-08T10:45:15Z", "hours": 0.6136, "text": "First few sprites being done"}, {"post_id": 4093, "ts": "2026-06-07T09:03:19Z", "hours": 0.61, "text": "Code for all boosters and path"}, {"post_id": 3439, "ts": "2026-06-06T11:41:27Z", "hours": 0.5353, "text": "Added boosters and added an area that makes the ramp physical"}, {"post_id": 2708, "ts": "2026-06-05T12:48:53Z", "hours": 0.6819, "text": "Mapshape starting to look like a normal one"}, {"post_id": 2673, "ts": "2026-06-05T10:56:11Z", "hours": 0.5731, "text": "better map shape"}, {"post_id": 2057, "ts": "2026-06-04T11:14:28Z", "hours": 0.6503, "text": "added shoot and finally made the hooks work when flat"}, {"post_id": 1342, "ts": "2026-06-03T09:09:05Z", "hours": 0.6597, "text": "I started working on the plunger/some extra code"}, {"post_id": 672, "ts": "2026-06-02T06:55:12Z", "hours": 0.6336, "text": "I have now added the hooks(whatever the swinging parts are called)"}, {"post_id": 190, "ts": "2026-06-01T07:00:27Z", "hours": 0.5636, "text": "I have made the pinball drop and collide so my next goal will be to have it have different collisions with specific objects"}]...
|
Title: Pinball by @jms | Stardance
Devlogs:
I hav Title: Pinball by @jms | Stardance
Devlogs:
I have made the pinball drop and collide so my next goal will be to have it have different collisions with specific objects
I have now added the hooks(whatever the swinging parts are called)
I started working on the plunger/some extra code
added shoot and finally made the hooks work when flat
better map shape
Mapshape starting to look like a normal one
Added boosters and added an area that makes the ramp physical
Code for all boosters and path
First few sprites being done
Added images
I added a second ball and the path works
Coded the second ball
Ball loop now works
Making main scene ready to be shipped
Game Finished with also start scene
Fixed something about conrol nodes stealing clicks and added a smacker in start scene
Ships:
This is a game of pinball. Some problems with this game are the button at the start may not load quickly so you may need to wait a few seconds and with everything with collision there may be some bugs in relation to collision...
|
1793101705.7692478
|
1793188105.7692478
|
|
69548
|
LWPV by @bartoszkasyna | Stardance
|
bartoszkasyna
|
0
|
1.23
|
0
|
[]
|
[{"post_id": 79387, "ts": "202 [{"post_id": 79387, "ts": "2026-10-13T19:25:37Z", "hours": 1.2275, "text": "I made simple photo viewer. Now I have to work on upscaling and other basic features."}]...
|
Title: LWPV by @bartoszkasyna | Stardance
Devlogs Title: LWPV by @bartoszkasyna | Stardance
Devlogs:
I made simple photo viewer. Now I have to work on upscaling and other basic features....
|
1792857110.4291174
|
1793461910.4291174
|
|
67976
|
Orbit OS by @Frostymist | Stardance
|
Frostymist
|
3
|
3.0
|
2
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-13T18:56:34Z", "hours": 1.0, "multiplier": 1.7, "payout": 1, "blessing": "neutral", "text": "Orbit OS is a minimal, macOS-inspired desktop environment that runs directly in your browser. I added apps like Finder, Calculator, Terminal, Notes, a browser launcher, and System Settings to make the desktop interactive. One challenge was getting the app icons to display correctly on the live Vercel deployment, which I managed to fix. I’m proud of how the project has grown into something people can actually explore online without downloading anything. Try the live project and open the different apps to explore Orbit OS!", "repo": "https://github.com/0xAvaneesh/Orbit-OS", "demo": "https://orbit-os-nine.vercel.app/"}, {"ship_num": 2, "ts": "2026-10-11T11:20:47Z", "hours": 0.0, "multiplier": 2.33, "payout": 1, "blessing": "neutral", "text": "Built Orbit OS, a web-based desktop using HTML, CSS, and JavaScript. Added draggable, resizable, and minimizable windows, a working calculator, terminal, browser search, notes with local storage, files, settings, a live clock, and an app dock.", "repo": "https://github.com/0xAvaneesh/Orbit-OS", "demo": "https://orbit-os-nine.vercel.app/"}, {"ship_num": 3, "ts": "2026-10-07T17:57:10Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made orbit os its a webos it was very fun i took inspiration from macos minizmize and close buttons but everything else is original", "repo": "https://github.com/0xAvaneesh/Orbit-OS", "demo": "https://orbit-os-nine.vercel.app/"}]...
|
[{"post_id": 79380, "ts": "202 [{"post_id": 79380, "ts": "2026-10-13T18:54:22Z", "hours": 0.2672, "text": "Devlog #6 — Orbit OS Is Live!I successfully deployed Orbit OS on Vercel, making it accessible directly through a browser without needing to download or run anything locally.I also fixed the app icon loading issue on the deployed website, so the desktop looks the way it should online and locally. The goal was to make Orbit OS feel like a clean, minimal desktop environment while keeping everything simple and functional.Next, I’ll continue testing the live version and polishing the user experience."}, {"post_id": 79372, "ts": "2026-10-13T18:06:31Z", "hours": 0.4778, "text": "Orbit OS — Devlog #5 I started working on Orbit OS after getting feedback on the first version.A lot of people liked the UI, but there were problems with dragging windows and some apps didn’t do much.I focused on improving the functionality while keeping the same dark space theme. I also started reworking the window controls so opening, closing, minimizing, and maximizing feel more consistent."}, {"post_id": 78706, "ts": "2026-10-11T11:18:55Z", "hours": 0.2803, "text": "Going to Ship Orbit OS today!"}, {"post_id": 77626, "ts": "2026-10-07T17:55:01Z", "hours": 0.2806, "text": "Going to ship Orbit OS today"}, {"post_id": 77337, "ts": "2026-10-06T16:36:41Z", "hours": 1.1128, "text": "ORBIT OS — Devlog #2 Today I started making ORBIT OS feel more like an actual desktop"}, {"post_id": 76816, "ts": "2026-10-04T17:59:32Z", "hours": 0.3739, "text": "I just started building my personal os i named it Orbit OS,and i just finished making the welcome screen"}]...
|
Title: Orbit OS by @Frostymist | Stardance
Devlog Title: Orbit OS by @Frostymist | Stardance
Devlogs:
I just started building my personal os i named it Orbit OS,and i just finished making the welcome screen
ORBIT OS — Devlog #2 Today I started making ORBIT OS feel more like an actual desktop
Going to ship Orbit OS today
Going to Ship Orbit OS today!
Orbit OS — Devlog #5 I started working on Orbit OS after getting feedback on the first version.A lot of people liked the UI, but there were problems with dragging windows and some apps didn’t do much.I focused on improving the functionality while keeping the same dark space theme. I also started reworking the window controls so opening, closing, minimizing, and maximizing feel more consistent.
Devlog #6 — Orbit OS Is Live!I successfully deployed Orbit OS on Vercel, making it accessible directly through a browser without needing to download or run anything locally.I also fixed the app icon loading issue on the deployed website, so the desktop looks the way it should online and locally. The goal was to make Orbit OS feel like a clean, minimal desktop environment while keeping everything simple and functional.Next, I’ll continue testing the live version and polishing the user experience.
Ships:
I made orbit os its a webos it was very fun i took inspiration from macos minizmize and close buttons but everything else is original
Built Orbit OS, a web-based desktop using HTML, CSS, and JavaScript. Added draggable, resizable, and minimizable windows, a working calculator, terminal, browser search, notes with local storage, files, settings, a live clock, and an app dock.
Orbit OS is a minimal, macOS-inspired desktop environment that runs directly in your browser. I added apps like Finder, Calculator, Terminal, Notes, a browser launcher, and System Settings to make the desktop interactive. One challenge was getting the app icons to display correctly on the live Vercel deployment, which I managed to fix. I’m proud of how the project has grown into something people can actually explore online without downloading anything. Try the live project and open the different apps to explore Orbit OS!...
|
1793217179.6143036
|
1793303579.6143036
|
|
17879
|
PINBALL by @Pocket_Thopter | Stardance
|
Pocket_Thopter
|
0
|
2.0
|
0
|
[]
|
[{"post_id": 7937, "ts": "2026 [{"post_id": 7937, "ts": "2026-06-13T07:44:56Z", "hours": 1.9989, "text": "Day 0&1 After linking everything together and getting the basics done, I’ve now got a small working prototype for my game! There’s a lot more to be done but the fact that it’s already kind of fun to mess around with the debug version of the game means I’m getting somewhere."}]...
|
Title: PINBALL by @Pocket_Thopter | Stardance
Dev Title: PINBALL by @Pocket_Thopter | Stardance
Devlogs:
Day 0&1 After linking everything together and getting the basics done, I’ve now got a small working prototype for my game! There’s a lot more to be done but the fact that it’s already kind of fun to mess around with the debug version of the game means I’m getting somewhere....
|
1792759911.1801293
|
1793364711.1801293
|
|
68816
|
royalty free cartoon streaming by @LeFi | Stardanc royalty free cartoon streaming by @LeFi | Stardance...
|
LeFi
|
0
|
3.88
|
0
|
[]
|
[{"post_id": 79364, "ts": "202 [{"post_id": 79364, "ts": "2026-10-13T17:28:59Z", "hours": 0.7953, "text": "i wanted to get the buttons in the main menue to change the screen working ,but then i realized i have no idea how a “screen” works…. i tried just hiding the id for the html i wrote, but now i’m stuck. i’ll continue tomorrow-"}, {"post_id": 78777, "ts": "2026-10-11T16:05:27Z", "hours": 1.9297, "text": "made it prettier but the btns still dont work. i’ll fix it later my head is about to pop"}, {"post_id": 78106, "ts": "2026-10-09T15:54:15Z", "hours": 1.1514, "text": "i’m building like a mini web-based streaming platform for royalty free cartoons!!!! i just a base to start with using html and css. I have no idea what i’m doing but it should work eventually!!!"}]...
|
Title: royalty free cartoon streaming by @LeFi | S Title: royalty free cartoon streaming by @LeFi | Stardance
Devlogs:
i’m building like a mini web-based streaming platform for royalty free cartoons!!!! i just a base to start with using html and css. I have no idea what i’m doing but it should work eventually!!!
made it prettier but the btns still dont work. i’ll fix it later my head is about to pop
i wanted to get the buttons in the main menue to change the screen working ,but then i realized i have no idea how a “screen” works…. i tried just hiding the id for the html i wrote, but now i’m stuck. i’ll continue tomorrow-...
|
1793126967.7807972
|
1793731767.7807972
|
|
67318
|
unique by @vashi_21 | Stardance
|
vashi_21
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-13T18:02:20Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built XIAO-MAO, an interactive desktop cat pet developed in Godot! Getting the input handling right was the trickiest part. Initially dragging the pet or dropping her would accidentally trigger her to open my website. Adding right clicks (website link) using precise input logic took some debugging. Also the main issue I ran into while working on this project was getting the sizes of the window correct but i eventually figured it out. I am really proud of making a complete, functional desktop pet from scratch and getting my very first virtual pet project published! Her working behavior turned out super clean. Download: cat_pet.exe from my itch.io page. Controls: 1. Right click to open my custom website. 2. Click & Drag to move her anywhere across the screen. OS: Windows PC.", "repo": "https://github.com/wizard21-sudo/meow", "demo": "https://wookwink.itch.io/xiao-mao"}]...
|
[{"post_id": 79361, "ts": "202 [{"post_id": 79361, "ts": "2026-10-13T17:10:33Z", "hours": 1.1278, "text": "Today I worked on refining my desktop cat’s movements and interactions. I fixed the landing behavior so the cat rests cleanly right above the Windows taskbar when dropped . I also fixed the code so my cat will open my website only when right clicked . Lastly I updated the export setup and published the final standalone build on itch.io <3"}, {"post_id": 79049, "ts": "2026-10-12T14:19:54Z", "hours": 0.9861, "text": "I scaled up my desktop pet cat sprite and updated the collision shape to restore smooth drag-and-drop functioning. Also fixed the idle animation freeze by adding timer countdown logic and correcting a variable name typo. Added a cool feature for my pet from the given guide , I think it is really thoughtful that they included how to add more interesting features to the desktop pet in the guide so we all can level up our project !"}, {"post_id": 78813, "ts": "2026-10-11T17:51:21Z", "hours": 2.0822, "text": "Added boundary movements and drag controls. Resolved node hierarchy paths by just dragging it onto the main node, mismatched animation name from the guide (silly me) by just inserting my name in the code , and runtime errors. Fixed active debugger pauses and successfully got up to point 6 in the guide lets see if I can ship it before playground ends. lol !!"}, {"post_id": 78126, "ts": "2026-10-09T17:09:46Z", "hours": 0.8847, "text": "Just finished up to point 3 in the guide “Art and Script” and my Cat sprite setup is complete now the next step remains to make my sprite move. I also want to credit julesleech.itch.io for this free to use cute cat sprite animation <3"}]...
|
Title: unique by @vashi_21 | Stardance
Devlogs:
J Title: unique by @vashi_21 | Stardance
Devlogs:
Just finished up to point 3 in the guide “Art and Script” and my Cat sprite setup is complete now the next step remains to make my sprite move. I also want to credit julesleech.itch.io for this free to use cute cat sprite animation <3
Added boundary movements and drag controls. Resolved node hierarchy paths by just dragging it onto the main node, mismatched animation name from the guide (silly me) by just inserting my name in the code , and runtime errors. Fixed active debugger pauses and successfully got up to point 6 in the guide lets see if I can ship it before playground ends. lol !!
I scaled up my desktop pet cat sprite and updated the collision shape to restore smooth drag-and-drop functioning. Also fixed the idle animation freeze by adding timer countdown logic and correcting a variable name typo. Added a cool feature for my pet from the given guide , I think it is really thoughtful that they included how to add more interesting features to the desktop pet in the guide so we all can level up our project !
Today I worked on refining my desktop cat’s movements and interactions. I fixed the landing behavior so the cat rests cleanly right above the Windows taskbar when dropped . I also fixed the code so my cat will open my website only when right clicked . Lastly I updated the export setup and published the final standalone build on itch.io <3
Ships:
I built XIAO-MAO, an interactive desktop cat pet developed in Godot! Getting the input handling right was the trickiest part. Initially dragging the pet or dropping her would accidentally trigger her to open my website. Adding right clicks (website link) using precise input logic took some debugging. Also the main issue I ran into while working on this project was getting the sizes of the window correct but i eventually figured it out. I am really proud of making a complete, functional desktop pet from scratch and getting my very first virtual pet project published! Her working behavior turned out super clean. Download: cat_pet.exe from my itch.io page. Controls: 1. Right click to open my custom website. 2. Click & Drag to move her anywhere across the screen. OS: Windows PC....
|
1793155818.5213726
|
1793242218.5213726
|
|
17170
|
Sega Genesis Hackpad by @parker9145 | Stardance
|
parker9145
|
0
|
4.09
|
0
|
[]
|
[{"post_id": 7936, "ts": "2026 [{"post_id": 7936, "ts": "2026-06-13T07:38:51Z", "hours": 4.0878, "text": "Im so glad whomever decided to make the rule that the board needs to be 100mm x 100mm put it in the instructions right after you design everything. Like are you fr?😠"}]...
|
Title: Sega Genesis Hackpad by @parker9145 | Stard Title: Sega Genesis Hackpad by @parker9145 | Stardance
Devlogs:
Im so glad whomever decided to make the rule that the board needs to be 100mm x 100mm put it in the instructions right after you design everything. Like are you fr?😠...
|
1792767248.7019238
|
1793372048.7019238
|
|
68967
|
astrawatch by @Ahad_Ghanchi | Stardance
|
Ahad_Ghanchi
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-13T16:57:24Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Building AstraWatch involved engineering a feature-rich, high-performance space telemetry dashboard using Vite, HTML, and Vanilla JavaScript, complete with live-updating digital clocks, custom Google search capabilities, modular DOM binding, and glassmorphism UI widgets that deliver a modern command-center aesthetic. The technical hurdles encountered along the way included orchestrating complex asynchronous NASA APOD API fetch pipelines to gracefully handle varying media types—ranging from standard images to direct video files and embedded YouTube players—while also troubleshooting local Git version control workflows, fixing branch synchronization errors, and resolving merge conflicts between local files and remote GitHub repositories. What stands out as the ultimate point of pride is the meticulous execution of advanced CSS design patterns, combining Google Fonts with intricate pseudo-element polygon clip-paths to create custom, striking geometric side decorations that elevate the visual presentation. For anyone looking to test or run the project locally, they should know that they need to clone the repository, install the required packages using npm, supply their own API key inside a secure local environment variable file, and launch the Vite development server to fully experience the interactive date picker and explore historical astronomy records.", "repo": "https://github.com/codewith876/astra-watch", "demo": "https://astrawatch.vercel.app/"}]...
|
[{"post_id": 79356, "ts": "202 [{"post_id": 79356, "ts": "2026-10-13T16:54:46Z", "hours": 2.3036, "text": "The development process involved setting up a modular Vite environment where local JavaScript files seamlessly bound to the DOM elements, managing asynchronous API calls to fetch JSON telemetry payloads from NASA while gracefully handling fallback states when media types varied between static images and dynamic videos. Special attention was dedicated to optimizing the user interface responsiveness, ensuring that the glassmorphism widgets, custom typography, and complex CSS layout properties rendered correctly across different viewports.Navigating the version control lifecycle further required initializing local Git repositories, configuring robust ignore rules to safeguard sensitive API keys and heavy dependency folders, and resolving remote merge conflicts during GitHub synchronization. Through careful branch management, commit organization, and final pushing, the complete frontend application was successfully archived and shared publicly, marking the culmination of an immersive coding and design journey."}]...
|
Title: astrawatch by @Ahad_Ghanchi | Stardance
De Title: astrawatch by @Ahad_Ghanchi | Stardance
Devlogs:
The development process involved setting up a modular Vite environment where local JavaScript files seamlessly bound to the DOM elements, managing asynchronous API calls to fetch JSON telemetry payloads from NASA while gracefully handling fallback states when media types varied between static images and dynamic videos. Special attention was dedicated to optimizing the user interface responsiveness, ensuring that the glassmorphism widgets, custom typography, and complex CSS layout properties rendered correctly across different viewports.Navigating the version control lifecycle further required initializing local Git repositories, configuring robust ignore rules to safeguard sensitive API keys and heavy dependency folders, and resolving remote merge conflicts during GitHub synchronization. Through careful branch management, commit organization, and final pushing, the complete frontend application was successfully archived and shared publicly, marking the culmination of an immersive coding and design journey.
Ships:
Building AstraWatch involved engineering a feature-rich, high-performance space telemetry dashboard using Vite, HTML, and Vanilla JavaScript, complete with live-updating digital clocks, custom Google search capabilities, modular DOM binding, and glassmorphism UI widgets that deliver a modern command-center aesthetic. The technical hurdles encountered along the way included orchestrating complex asynchronous NASA APOD API fetch pipelines to gracefully handle varying media types—ranging from standard images to direct video files and embedded YouTube players—while also troubleshooting local Git version control workflows, fixing branch synchronization errors, and resolving merge conflicts between local files and remote GitHub repositories. What stands out as the ultimate point of pride is the meticulous execution of advanced CSS design patterns, combining Google Fonts with intricate pseudo-element polygon clip-paths to create custom, striking geometric side decorations that elevate the visual presentation. For anyone looking to test or run the project locally, they should know that they need to clone the repository, install the required packages using npm, supply their own API key inside a secure local environment variable file, and launch the Vite development server to fully experience the interactive date picker and explore historical astronomy records....
|
1793155886.231615
|
1793242286.231615
|
|
68067
|
dropbin by @nishank | Stardance
|
nishank
|
1
|
12.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-13T17:03:42Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i have made a small clipboard of sort where a person can paste their files and send it over the internet with the help of a code", "repo": "https://github.com/Devnish0/dropbin", "demo": "https://dropbin.vercel.app/"}]...
|
[{"post_id": 79355, "ts": "202 [{"post_id": 79355, "ts": "2026-10-13T16:49:59Z", "hours": 1.0842, "text": "completed the frontend"}, {"post_id": 79185, "ts": "2026-10-12T22:56:25Z", "hours": 5.5033, "text": "made the frontend"}, {"post_id": 77927, "ts": "2026-10-08T20:12:58Z", "hours": 4.3019, "text": "completed the drop route"}, {"post_id": 76988, "ts": "2026-10-05T08:22:49Z", "hours": 1.3953, "text": "initialised project with drizzle orm and postgresql"}]...
|
Title: dropbin by @nishank | Stardance
Devlogs:
i Title: dropbin by @nishank | Stardance
Devlogs:
initialised project with drizzle orm and postgresql
completed the drop route
made the frontend
completed the frontend
Ships:
i have made a small clipboard of sort where a person can paste their files and send it over the internet with the help of a code...
|
1793155843.0124943
|
1793242243.0124943
|
|
69535
|
dampenerss by @makeme44 | Stardance
|
makeme44
|
0
|
0.82
|
0
|
[]
|
[{"post_id": 79353, "ts": "202 [{"post_id": 79353, "ts": "2026-10-13T16:34:59Z", "hours": 0.8225, "text": "this is a dampener im trying to se what is the best way to keep vibrations at bay"}]...
|
Title: dampenerss by @makeme44 | Stardance
Devlog Title: dampenerss by @makeme44 | Stardance
Devlogs:
this is a dampener im trying to se what is the best way to keep vibrations at bay...
|
1792857091.581373
|
1793461891.581373
|
|
69446
|
Roblox Combat Game by @axyprism | Stardance
|
axyprism
|
0
|
7.43
|
0
|
[]
|
[{"post_id": 79349, "ts": "202 [{"post_id": 79349, "ts": "2026-10-13T16:24:29Z", "hours": 7.43, "text": "I added a basic main menu to test the game, began work on the weapon class system by making melee weapons with directional attacks, and made the round, game modes, and map voting systems."}]...
|
Title: Roblox Combat Game by @axyprism | Stardance Title: Roblox Combat Game by @axyprism | Stardance
Devlogs:
I added a basic main menu to test the game, began work on the weapon class system by making melee weapons with directional attacks, and made the round, game modes, and map voting systems....
|
1792839014.9838219
|
1793443814.9838219
|
|
51482
|
termsite by @ngarnsworthy | Stardance
|
ngarnsworthy
|
0
|
14.49
|
0
|
[]
|
[{"post_id": 79347, "ts": "202 [{"post_id": 79347, "ts": "2026-10-13T16:09:29Z", "hours": 4.4386, "text": "Release 1.1.0 Done Fixed NPM releases Added environment to commands Test and coverage reports in gitlab TODO Test re-renders Add useful commands (echo, env, ls, etc.) Add filesystem Broken The npm releases have issues with importing other files from within the package. Retrospective I did a much better job with small commits and using branches. I also improved my use of CI/CD with better test and coverage reporting. Despite the improvements in my test flow I still need to work on improving coverage. Some tests I tried to get to cover cases for the execution component did not cover the lines I intended them to. This combines with my lack of a good debug tooling in my editor, NeoVim, to make it difficult to write tests for specific lines. Reasoning The execution component exists as a result of the way preact checks props updates. Because the function for changing the env is passed with a bind it returns a new reference every time as a result the command re-renders which may cause a change to the env forcing the terminal to re-render. Yay, state loop :( /sar. To prevent this the execution component uses lifecycle methods to abort the render before it happens if there are no changes in the env.env, command, and commands props. This prevents re-renders that cause state loops, yay!"}, {"post_id": 78942, "ts": "2026-10-12T03:32:05Z", "hours": 10.0539, "text": "Done Tests are now working! There is a fake terminal working! Commitizen and Semantic Release worked! TODO Get persistent environmental variables working Decrease unneeded re-renders Broken Releases to npm are currently empty for some reason? Retrospective In the future one thing I need to work more on is small commits. The commit for the terminal component grew a lot and got out of hand as I was finally beginning to use systems like tests in context. I also need to use branches and issue driven development more especially because semantic release pushes to npm with every commit to main. Reasoning I am using preact because it is very light. Overall I want this package to focus on remaining as light as possible so it can be put into websites with no performance impact AI Disclosure AI was used when I was figuring out how to setup jest with preact. No other AI was used in this devlog."}]...
|
Title: termsite by @ngarnsworthy | Stardance
Devl Title: termsite by @ngarnsworthy | Stardance
Devlogs:
Done Tests are now working! There is a fake terminal working! Commitizen and Semantic Release worked! TODO Get persistent environmental variables working Decrease unneeded re-renders Broken Releases to npm are currently empty for some reason? Retrospective In the future one thing I need to work more on is small commits. The commit for the terminal component grew a lot and got out of hand as I was finally beginning to use systems like tests in context. I also need to use branches and issue driven development more especially because semantic release pushes to npm with every commit to main. Reasoning I am using preact because it is very light. Overall I want this package to focus on remaining as light as possible so it can be put into websites with no performance impact AI Disclosure AI was used when I was figuring out how to setup jest with preact. No other AI was used in this devlog.
Release 1.1.0 Done Fixed NPM releases Added environment to commands Test and coverage reports in gitlab TODO Test re-renders Add useful commands (echo, env, ls, etc.) Add filesystem Broken The npm releases have issues with importing other files from within the package. Retrospective I did a much better job with small commits and using branches. I also improved my use of CI/CD with better test and coverage reporting. Despite the improvements in my test flow I still need to work on improving coverage. Some tests I tried to get to cover cases for the execution component did not cover the lines I intended them to. This combines with my lack of a good debug tooling in my editor, NeoVim, to make it difficult to write tests for specific lines. Reasoning The execution component exists as a result of the way preact checks props updates. Because the function for changing the env is passed with a bind it returns a new reference every time as a result the command re-renders which may cause a change to the env forcing the terminal to re-render. Yay, state loop :( /sar. To prevent this the execution component uses lifecycle methods to abort the render before it happens if there are no changes in the env.env, command, and commands props. This prevents re-renders that cause state loops, yay!...
|
1792673372.9696357
|
1793278172.9696357
|
|
69524
|
Onshape Vehicles by @anushka_singh_ares | Stardanc Onshape Vehicles by @anushka_singh_ares | Stardance...
|
anushka_singh_ares
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-13T22:32:49Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So I didn’t really make anything world changing, just a few tiny toy vehicles people can 3D print. The most challenging thing was that I had ZERO CAD experience before this… I didn’t really create this project to do anything really, it was more of a byproduct of learning CAD. I’m personally really happy, considering I learned how to do it myself.", "repo": "https://github.com/anushkasinghares-jpg/CAD-stuff", "demo": "https://cad.onshape.com/documents/91001b3aa7e5d967b1bd58a7/w/ee9ffd1dbf3c0d0f37524257/e/1fca395ebe6d2bbee28a1002"}]...
|
[{"post_id": 79339, "ts": "202 [{"post_id": 79339, "ts": "2026-10-13T15:38:52Z", "hours": 5.2236, "text": "So I just started learning CAD…my first few projects are vehicles (since I love them) and the first one I made is this toy plane!"}]...
|
Title: Onshape Vehicles by @anushka_singh_ares | S Title: Onshape Vehicles by @anushka_singh_ares | Stardance
Devlogs:
So I just started learning CAD…my first few projects are vehicles (since I love them) and the first one I made is this toy plane!
Ships:
So I didn’t really make anything world changing, just a few tiny toy vehicles people can 3D print. The most challenging thing was that I had ZERO CAD experience before this… I didn’t really create this project to do anything really, it was more of a byproduct of learning CAD. I’m personally really happy, considering I learned how to do it myself....
|
1793155748.4953792
|
1793242148.4953792
|
|
66814
|
My own site! by @amarnath | Stardance
|
amarnath
|
2
|
5.0
|
5
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-15T10:51:49Z", "hours": 4.0, "multiplier": 1.07, "payout": 5, "blessing": "neutral", "text": "This is a Cool Website Model , Html and css are used to build the website model , I realize and corrected so many errors in the work of mine . ’ my readme.md ’ file in my repository is the creation of me . i learned so many lessons from this project, and the website is filled with hover effect in buttons and hyperlinks. and sure did you like my cool project, thank you.", "repo": "https://github.com/Shadow-X-TECH/AMAR-PROJECT.git", "demo": "https://shadow-x-tech.github.io/AMAR-PROJECT/"}, {"ship_num": 2, "ts": "2026-10-03T12:58:31Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is my First website ,please give your support & it is in under Development…", "repo": "https://github.com/Shadow-X-TECH/AMAR-PROJECT.git", "demo": "https://shadow-x-tech.github.io/AMAR-PROJECT/"}]...
|
[{"post_id": 79333, "ts": "202 [{"post_id": 79333, "ts": "2026-10-13T15:27:40Z", "hours": 0.8208, "text": "NEW UPDATES ARE OUT NOW."}, {"post_id": 78252, "ts": "2026-10-10T04:39:45Z", "hours": 1.1547, "text": "Buttons ,Hyperlinks And the readme is updated…"}, {"post_id": 78129, "ts": "2026-10-09T17:31:11Z", "hours": 2.3167, "text": "The Some buttons are updated and some pages are created . and also it is in underdevelopment."}, {"post_id": 76050, "ts": "2026-10-02T06:03:02Z", "hours": 0.6844, "text": "My First Website & it is under development…"}]...
|
Title: My own site! by @amarnath | Stardance
Devl Title: My own site! by @amarnath | Stardance
Devlogs:
My First Website & it is under development…
The Some buttons are updated and some pages are created . and also it is in underdevelopment.
Buttons ,Hyperlinks And the readme is updated…
NEW UPDATES ARE OUT NOW.
Ships:
This is my First website ,please give your support & it is in under Development…
This is a Cool Website Model , Html and css are used to build the website model , I realize and corrected so many errors in the work of mine . ’ my readme.md ’ file in my repository is the creation of me . i learned so many lessons from this project, and the website is filled with hover effect in buttons and hyperlinks. and sure did you like my cool project, thank you....
|
1792817361.2840717
|
1793681361.2840717
|
|
54347
|
susOS by @bako | Stardance
|
bako
|
1
|
7.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-13T15:42:58Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a WebOS which is in my opinion pretty funny. This sussy OS has everything you need (mainly the current hour- time is money eh?).", "repo": "https://github.com/Bakoxddd/SusOS", "demo": "https://bakoxddd.github.io/SusOS/"}]...
|
[{"post_id": 79331, "ts": "202 [{"post_id": 79331, "ts": "2026-10-13T15:27:05Z", "hours": 0.9803, "text": "Just finished!"}, {"post_id": 61764, "ts": "2026-09-04T20:29:08Z", "hours": 5.0439, "text": "Finally finished with the susOS!"}, {"post_id": 55751, "ts": "2026-08-27T18:48:29Z", "hours": 0.4486, "text": "Glowup of the year!"}, {"post_id": 54776, "ts": "2026-08-25T21:45:25Z", "hours": 0.4331, "text": "My Sussy OS is coming together"}]...
|
Title: susOS by @bako | Stardance
Devlogs:
My Sus Title: susOS by @bako | Stardance
Devlogs:
My Sussy OS is coming together
Glowup of the year!
Finally finished with the susOS!
Just finished!
Ships:
I made a WebOS which is in my opinion pretty funny. This sussy OS has everything you need (mainly the current hour- time is money eh?)....
|
1793199357.412509
|
1793285757.412509
|
|
63637
|
Slack Bot by @maitreya | Stardance
|
maitreya
|
0
|
0.29
|
0
|
[]
|
[{"post_id": 79330, "ts": "202 [{"post_id": 79330, "ts": "2026-10-13T15:23:16Z", "hours": 0.2858, "text": "Fixing errors on tokens in slack bot"}]...
|
Title: Slack Bot by @maitreya | Stardance
Devlogs Title: Slack Bot by @maitreya | Stardance
Devlogs:
Fixing errors on tokens in slack bot...
|
1793051710.7427497
|
1793656510.7427497
|
|
69506
|
Ian's slackbot by @ianl | Stardance
|
ianl
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-13T15:36:01Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I just finished my AstronBot. This is a simple slackbot that interfaces with NASA API to pull some images! Go check it out by calling /astronbot-help!", "repo": "https://github.com/ilaws/AstronBot/", "demo": "https://hackclub.enterprise.slack.com/archives/C0C9094SFSQ"}]...
|
[{"post_id": 79322, "ts": "202 [{"post_id": 79322, "ts": "2026-10-13T15:01:43Z", "hours": 0.7308, "text": "I am making a slackbot that uses data from NASA (such as APOD and EPIC). you should check it out by calling /astronbot-help!"}]...
|
Title: Ian's slackbot by @ianl | Stardance
De Title: Ian's slackbot by @ianl | Stardance
Devlogs:
I am making a slackbot that uses data from NASA (such as APOD and EPIC). you should check it out by calling /astronbot-help!
Ships:
I just finished my AstronBot. This is a simple slackbot that interfaces with NASA API to pull some images! Go check it out by calling /astronbot-help!...
|
1793155742.5396686
|
1793242142.5396686
|
|
67920
|
GitDpro's Amazing site by @GitDpro | Stardance
|
GitDpro
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-13T14:44:28Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my own personal website yay! The hardest part was learning some maths T_T I always wanted to create one so i finally made it! Things I learnt! I learnt Html, Css and JS framework ( Been like 3 years lol) How to use some cool maths to make some movement! How animation works I will continue to update it with more of my works in the future!", "repo": "https://github.com/GitDpro/portfolio", "demo": "https://gitdpro.github.io/portfolio/"}]...
|
[{"post_id": 79316, "ts": "202 [{"post_id": 79316, "ts": "2026-10-13T14:34:55Z", "hours": 2.7747, "text": "Devlog 2: Finally added interactive stars! I used a bunch of cool maths to simulate the movement of stars towards the pointer I added 4 sections To be added in future ( My other works)"}, {"post_id": 77582, "ts": "2026-10-07T15:23:31Z", "hours": 1.0492, "text": "Devlog 1: I started to make my own website! Added the core functionality - Header- Main- Footer Added basic navbar Added main parts and sections To be added soon are pictures, full skills, and projects."}]...
|
Title: GitDpro's Amazing site by @GitDpro | St Title: GitDpro's Amazing site by @GitDpro | Stardance
Devlogs:
Devlog 1: I started to make my own website! Added the core functionality - Header- Main- Footer Added basic navbar Added main parts and sections To be added soon are pictures, full skills, and projects.
Devlog 2: Finally added interactive stars! I used a bunch of cool maths to simulate the movement of stars towards the pointer I added 4 sections To be added in future ( My other works)
Ships:
I made my own personal website yay! The hardest part was learning some maths T_T I always wanted to create one so i finally made it! Things I learnt! I learnt Html, Css and JS framework ( Been like 3 years lol) How to use some cool maths to make some movement! How animation works I will continue to update it with more of my works in the future!...
|
1793155839.1317952
|
1793242239.1317952
|
|
69332
|
The farmer's Crops Advisor by @dilesh596 | Sta The farmer's Crops Advisor by @dilesh596 | Stardance...
|
dilesh596
|
0
|
1.95
|
0
|
[]
|
[{"post_id": 79311, "ts": "202 [{"post_id": 79311, "ts": "2026-10-13T14:12:33Z", "hours": 1.9472, "text": "✍️ Revised Devlog EntryProject Name: The Farmer’s AdvisorTarget Audience: Farmers in the Vidarbha region of Maharashtra, IndiaHello everyone, we meet again!Today, I am working on a project called “The Farmer’s Advisor.” As the name suggests, it is an AI model specifically designed for farmers in the Vidarbha region of Maharashtra, India. I inspired to build this project for farmers like my dad. In many rural areas across India, there is little to no internet connectivity, which means farmers cannot access standard online AI tools to help solve their daily problems.To bridge this gap, I am building this as an Offline AI model. It is strictly focused on agriculture and will answer farming-specific questions, such as:What crops should I sow this month?What specific farming activities or maintenance should I focus on right now?How do I address localized crop diseases or soil issues?"}]...
|
Title: The farmer's Crops Advisor by @dilesh59 Title: The farmer's Crops Advisor by @dilesh596 | Stardance
Devlogs:
✍️ Revised Devlog EntryProject Name: The Farmer’s AdvisorTarget Audience: Farmers in the Vidarbha region of Maharashtra, IndiaHello everyone, we meet again!Today, I am working on a project called “The Farmer’s Advisor.” As the name suggests, it is an AI model specifically designed for farmers in the Vidarbha region of Maharashtra, India. I inspired to build this project for farmers like my dad. In many rural areas across India, there is little to no internet connectivity, which means farmers cannot access standard online AI tools to help solve their daily problems.To bridge this gap, I am building this as an Offline AI model. It is strictly focused on agriculture and will answer farming-specific questions, such as:What crops should I sow this month?What specific farming activities or maintenance should I focus on right now?How do I address localized crop diseases or soil issues?...
|
1793130901.7421603
|
1793735701.7421603
|
|
69292
|
arkademaskin by @Sepkatt | Stardance
|
Sepkatt
|
0
|
2.54
|
0
|
[]
|
[{"post_id": 79308, "ts": "202 [{"post_id": 79308, "ts": "2026-10-13T13:40:04Z", "hours": 0.6892, "text": "Tried to find out how to use the rasbery pie 4. But still cant find it out"}, {"post_id": 79045, "ts": "2026-10-12T14:11:08Z", "hours": 1.85, "text": "My friend and I built an arcade machine. We started by taking it apart—since it had already been built—and then put it back together with better cable management. Next time, we’re going to start with a Raspberry Pi."}]...
|
Title: arkademaskin by @Sepkatt | Stardance
Devlo Title: arkademaskin by @Sepkatt | Stardance
Devlogs:
My friend and I built an arcade machine. We started by taking it apart—since it had already been built—and then put it back together with better cable management. Next time, we’re going to start with a Raspberry Pi.
Tried to find out how to use the rasbery pie 4. But still cant find it out...
|
1793130875.092312
|
1793994875.092312
|
|
56270
|
ProjectGen - Powered by HackAI by @fanouriakisharr ProjectGen - Powered by HackAI by @fanouriakisharry | Stardance...
|
fanouriakisharry
|
1
|
19.94
|
293
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T19:43:06Z", "hours": 19.0, "multiplier": 15.43, "payout": 293, "blessing": "neutral", "text": "ProjectGen - AI Powered Project Idea Generator Hey there! I’ve had the idea to build this for a while, and I finally did it! ProjectGen is a desktop app, coded in Python and packaged both for mac and windows using Pyinstaller . In simple words, it’s an app powered by artificial intelligence, that can generate your next project ideas tailored to your exact requirements (project type, time, budget, difficulty level, etc.). It’s built to solve a specific problem I, and I’m sure all other tinkerers have: we have this feeling that we wanna start a new project, but have no idea what, and when we finally land on a specific idea, we often realize that we don’t have the right components, enough time, or the budget to actually build it. It is powered using HackAI, HackClub’s own free LLM API, and using gemini-3.8-flash as the model. How it works! When you open the app, you are met with the main screen, which features separate entry boxes and dropdown menus for the project type (software or hardware), difficulty level, available components if it’s a hardware project, and programming language if it’s software. There are also input fields for the time you can devote and your budget for the project. Oh, something I forgot to mention is that there’s an upload image button for the components, to avoid the hassle of having to type each and every one of your parts manually, and just upload an image of your components drawer. When you click “Generate ideas!”, after some time, 5 ideas will show up. Each one of those ideas has a “Build this!” button under it, that once pressed, generates a complete build guide for the specific project, covering everything you’ll need to build it yourself (overview, parts, wiring, code, instructions, etc.). What was challenging? The biggest challenge for this project, was probably packaging everything. The macOS dock icon constantly refused to work properly, because when I was launching the app, it would show the actual app icon for half a second and then switch to the deafult ttkbootstrap icon. Eventually, after asking AI, I ended up using PyObjC to keep re-applying the icon every 500ms while the app was running. Since I’m developing on a Mac, I also couldn’t build the Windows .exe myself on my computer, so I used GitHub Actions and a workflow written by ChatGpt to build it for me. I then created a Windows VM using UTM to make sure the .exe actually worked properly. What I’m happy with! I genuinely feel pretty happy with how the finished app turned out, especially considering how it started as a 70-line terminal-based Python script that only worked through VS code, and evolved into a proper packaged app that people can download and use without even needing Python installed. I’m also really happy with the component image upload feature, cause it just saves so much time! Instead of having to manually type out each one of the components you have, you can just take a picture of your components drawer and let the AI figure out what you have. How can you test it? Windows release: https://github.com/HarFProFour12/projectgen/releases/tag/v1.0.0_Windows Extract the ZIP file and run ProjectGen.exe . MacOS release: https://github.com/HarFProFour12/projectgen/releases/tag/v1.0.0 When you double click to open the app, it will refuse saying that Apple can’t verify it doesn’t contain malware. Go to Settings, then click Privacy & Security, scroll down, find the section about ProjectGen and click “Open anyway”.", "repo": "https://github.com/HarFProFour12/projectgen", "demo": "https://github.com/HarFProFour12/projectgen/releases/tag/v1.0.0"}]...
|
[{"post_id": 79303, "ts": "202 [{"post_id": 79303, "ts": "2026-10-13T13:10:49Z", "hours": 0.3097, "text": "Added back the API key dialog, so the app uses the user’s key, instead of leaking mine."}, {"post_id": 74851, "ts": "2026-09-28T13:20:20Z", "hours": 0.6281, "text": "Updated the github releases (both for Windows and MacOS), so the app runs straight out the box without needing the user to input their own api key. This was done upon request from the Shipwrights."}, {"post_id": 71185, "ts": "2026-09-20T12:35:23Z", "hours": 4.4536, "text": "Devlog #7: Packaging the app and shipping! Heyy there! Continuing from what I said on the next devlog, what I did today was finally turn ProjectGen into an actual app that people can download and run on their pc instead of just through VS code, as well as add some new features. Then, I used PyInstaller to package everything into a proper macOS .app , including the fonts and icon. The biggest problem I ran into was the dock icon not working for some reason. My actual ProjectGen icon would appear for half a second before default ttkbootstrap icon would take its place. After asking AI to help me find a solution, I ended up using PyObjC to keep re-applying my icon while the app is running, which sometimes works and sometimes just doesn’t, but I decided not to give it too much attention. Since, I am on mac, I couldn’t locally create the .exe file using pyinstaller , so I used Github Actions plus a script Chatgpt wrote to create it from there. Then I set up a windows vm in UTM, to check if the .exe file works properly. Thankfully it does, so that’s great! Other than that, there were some errosr with indentation and syntax, which I easily fixed. Finally, I made a .gitignore , added requirements.txt , uploaded everything to GitHub, and uploaded the packaged .app as a github release so people can download and run ProjectGen without needing Python or VS Code installed. I used AI a lot in this step, because the icon issue was driving me insane and also to create help create the Windows app. That’s it for now, see you on the next devlog!"}, {"post_id": 66790, "ts": "2026-09-12T17:52:31Z", "hours": 1.9661, "text": "Devlog #6: Photo upload for the components + copy code button! Hey there! Following up on what I said in the last devlog, what I did today what add a way to uplaod a photo of your components drawer instead of typing each componetn manually. There’s nwo an “or” and an “upload image” button right next to the components field, so the user can pick whichever way is more convenient for them. I used base64 to then encode the image and send it to the AI along with the rest of the prompt, along with some extra instructions. When an image is picked, the components field just shows “Image uploaded” so the user can tell the AI will be looking at the photo instead of reading from the entry field, plus I added a red X button next to the upload button so the user can cancel it to pick another image or use txet instead. Other than that, I also added a “Copy code” button to the build guide’s code section, so you don’t have to manually select text out of the text box anymore to copy it. Later, I found out that command=self._copy_code(code) doesn’t work the way it looks like it would, since the parentheses call the function immediately instead of waiting for a the button to be cliced. To solve that, I wrapped it in a lambda function so it only runs when the button’s actually pressed. I used AI to create the new prompt for the image upload and also to help me understand some errors the terminal was showing. That’s for now, see you on the next devlog!"}, {"post_id": 65299, "ts": "2026-09-10T10:41:54Z", "hours": 2.8261, "text": "Devlog #5: Build guide screen, project types, and caching! Heyyy! I’ve been putting off writing this devlog, since there’s a lot off stuff I need to talk about. So, picking up from where I left off in devlog #4, since I said I’d give the build guide it’s own screen and fix the colors, that’s mostly what this devlog is about. The build guide now renders as a seperate screen with seperate sections (Overview, Components, Wiring, Build Steps, Code), pulled from the AI call that returns structured json. I also fixed the fact that the build guide screen was using a blue theme instead of my olive green one, which was because I was using bootstyle=\"primary\" that pulls from ttkbootstrap ’s default theme instead of my custom styles. I also added a project type dropdown in the beginning of the home screen, so the user can choose whether they want a hardware or a software project. Picking software, hides the budget field (since software projects are mostly free), and relabels the components field to programming language. I fixed another annoying bug where clicking “Build this!” twice on the same project, re-called the AI every time, instead of using the old response. To fix tat, I added a small cache keyed my project name, so if it detects that the build button has already been pressed for the specific project, it displays the old instructions instead of creating new ones every time. I also fixed a small bug with the “Back to ideas” button and debugged some typos. Next time, I’m thinking of letting users upload a photo of their components drawer and having the AI think of ideas using those components. That’s it for now, see you on the next devlog!"}, {"post_id": 63443, "ts": "2026-09-07T09:17:41Z", "hours": 3.5797, "text": "Devlog #4: Moving to ttkbootstrap + adding a “Build this!“button Heyyyy! I was gonna write this devlog yesterday, but it was getting kinda late, so I decided to do it toady. So here’s what’s new: First of all, I switched the app over from plain tkinter widgets to ttkbootstrap , to basically just make things easier. Before, the “Generate ideas!” button was just a label pretending to be a button, with custom hover colors and click bindings, because MacOS (my operating system) was applying an ugly outdated gray/silverish button with no styling, and I wasn’t able to change it. The switch was relatively smooth, since for most commands, I just had to change the prefix from tk. to tb. Only problem was that these new widgets don’t take bg= / fg= like my previous ones did, so I had to define named styled in the beginning instead. I also added a difficulty field in the beginning, so the user can control the difficulty level of the project ideas, and also a progress bar along with the cycling messages, so the user actually knows when the Ai is thinking. I also gave each card a “Build this! button, which once pressed, sends another prompt to the ai asking for a full guide, including components, wiring, build instructions, and code if needed. I ran into some errors along the way, mostly typos, which I debugged with the help of Ai. Next time I’ll give the build guide it’s own screen instead of sitting underneath the entry fields, and make the colors of the app consistent between all the screens. That’s it for now, see you on the next devlog!"}, {"post_id": 62750, "ts": "2026-09-06T08:23:14Z", "hours": 3.7319, "text": "Devlog #3: Displaying each idea in it’s own dedicated card Hey there! Today, I switched from dumping all he project ideas the AI gave me into one big ScrolledText box, since just a wall of text with no specific layout or format isn’t excactly great UX. The main thing I changed, was swapping the text box with a scrollable list of widgets (boxes), with each widget having its own colored background, border, a Label for the project name, one for the description and the extra components and lastly one for the time and cost to make. Since tkinter frames don’t scroll by default, I had to create a seperate canvas with a scrollbar bound to it and the cards embedded inside it. Because cards are real widgets now instead of just plain text you can use .delete() , when the user clicked the button again to regenerate ideas, it also had to clean up the previous cards before drawing the new ones, since otherwise all the ideas would just pile up one after the other. I ran into quite some bugs along the way, such as small syntax errors and typos, which I used AI to help me debug. Next time I’ll probably add some buttons for each card, such as a “copy idea” or a “build this one” button. That’s it for now, see you on the next devlog!"}, {"post_id": 59863, "ts": "2026-09-01T20:51:27Z", "hours": 1.5997, "text": "Devlog #2: Transferring project to tkinter ! Today I moved the project from a terminal-based script to an actual GUI using the tkinter library, since typing into input() prompts and just reading a wall of terminal text isn’t exactly a great user experience. The main structure translated pretty easily: text boxes (entry widgets) for components, hours and budget, a “Generate Ideas!” button and an output area for the results. The most difficult part was keeping the window responsive: calling the AI API directly would freeze the whole window until the response came back, so the request now runs in the background, with the result handed back to the main thread safely using root.after(). I used the same rotating status messages from the terminal version (“Brainstorming…”, “Thinking”, etc.), which now update live in the GUI while it waits. Because this was my first time using tkinter , I used Claude to get me up to speed with the core concepts (widgets, entries, `.pack(), etc.). Once I wrote the code, I also used it to help me debug it. Next time I’m probably gonna make the ai output structures json so I can display each project idea in it’s own “card”, and generally work in making the GUI look prettier. That’s it for today, see you on the next devlog!"}, {"post_id": 59186, "ts": "2026-08-31T20:42:01Z", "hours": 0.8419, "text": "Devlog #1: Coding MVP Hey there! First devlog for this project! So the idea of this project is that you write what components you have, how much time you can devote and what your budget is, and AI brainstorms 5 different project ideas you can make that fit those criteria. The project is coded in Python. First, I generated a new API key from HackAi to use as the brain, and integrated it. Then I wrote 1 master prompt which gets sent to the AI every time and includes the info the user has given (components, time available, budget), along with instructions on what format to return each idea in (name, description, extra components needed, cost, and time estimate). I used the rich library to make the terminal output look prettier: rendering the AI’s response as formatted markdown instead of plain text, adding colors and even a colored spinner along with some phrases (such as thinking... , brainstorming... , ect.) so the user knows somethings is happening instead of just guessing if the program has frozen or not. I used AI to help make the prompt and debug. Next up: I’ll probably switch to Tkinter to give it an actual GUI instead of a terminal prompt. Probably gonna have text boxes for components/time/budget, a “Generate Ideas” button, and each idea shown in its own card instead of one long markdown dump. Follow along to see how it turns out!"}]...
|
Title: ProjectGen - Powered by HackAI by @fanouria Title: ProjectGen - Powered by HackAI by @fanouriakisharry | Stardance
Devlogs:
Devlog #1: Coding MVP Hey there! First devlog for this project! So the idea of this project is that you write what components you have, how much time you can devote and what your budget is, and AI brainstorms 5 different project ideas you can make that fit those criteria. The project is coded in Python. First, I generated a new API key from HackAi to use as the brain, and integrated it. Then I wrote 1 master prompt which gets sent to the AI every time and includes the info the user has given (components, time available, budget), along with instructions on what format to return each idea in (name, description, extra components needed, cost, and time estimate). I used the rich library to make the terminal output look prettier: rendering the AI’s response as formatted markdown instead of plain text, adding colors and even a colored spinner along with some phrases (such as thinking... , brainstorming... , ect.) so the user knows somethings is happening instead of just guessing if the program has frozen or not. I used AI to help make the prompt and debug. Next up: I’ll probably switch to Tkinter to give it an actual GUI instead of a terminal prompt. Probably gonna have text boxes for components/time/budget, a “Generate Ideas” button, and each idea shown in its own card instead of one long markdown dump. Follow along to see how it turns out!
Devlog #2: Transferring project to tkinter ! Today I moved the project from a terminal-based script to an actual GUI using the tkinter library, since typing into input() prompts and just reading a wall of terminal text isn’t exactly a great user experience. The main structure translated pretty easily: text boxes (entry widgets) for components, hours and budget, a “Generate Ideas!” button and an output area for the results. The most difficult part was keeping the window responsive: calling the AI API directly would freeze the whole window until the response came back, so the request now runs in the background, with the result handed back to the main thread safely using root.after(). I used the same rotating status messages from the terminal version (“Brainstorming…”, “Thinking”, etc.), which now update live in the GUI while it waits. Because this was my first time using tkinter , I used Claude to get me up to speed with the core concepts (widgets, entries, `.pack(), etc.). Once I wrote the code, I also used it to help me debug it. Next time I’m probably gonna make the ai output structures json so I can display each project idea in it’s own “card”, and generally work in making the GUI look prettier. That’s it for today, see you on the next devlog!
Devlog #3: Displaying each idea in it’s own dedicated card Hey there! Today, I switched from dumping all he project ideas the AI gave me into one big ScrolledText box, since just a wall of text with no specific layout or format isn’t excactly great UX. The main thing I changed, was swapping the text box with a scrollable list of widgets (boxes), with each widget having its own colored background, border, a Label for the project name, one for the description and the extra components and lastly one for the time and cost to make. Since tkinter frames don’t scroll by default, I had to create a seperate canvas with a scrollbar bound to it and the cards embedded inside it. Because cards are real widgets now instead of just plain text you can use .delete() , when the user clicked the button again to regenerate ideas, it also had to clean up the previous cards before drawing the new ones, since otherwise all the ideas would just pile up one after the other. I ran into quite some bugs along the way, such as small syntax errors and typos, which I used AI to help me debug. Next time I’ll probably add some buttons for each card, such as a “copy idea” or a “build this one” button. That’s it for now, see you on the next devlog!
Devlog #4: Moving to ttkbootstrap + adding a “Build this!“button Heyyyy! I was gonna write this devlog yesterday, but it was getting kinda late, so I decided to do it toady. So here’s what’s new: First of all, I switched the app over from plain tkinter widgets to ttkbootstrap , to basically just make things easier. Before, the “Generate ideas!” button was just a label pretending to be a button, with custom hover colors and click bindings, because MacOS (my operating system) was applying an ugly outdated gray/silverish button with no styling, and I wasn’t able to change it. The switch was relatively smooth, since for most commands, I just had to change the prefix from tk. to tb. Only problem was that these new widgets don’t take bg= / fg= like my previous ones did, so I had to define named styled in the beginning instead. I also added a difficulty field in the beginning, so the user can control the difficulty level of the project ideas, and also a progress bar along with the cycling messages, so the user actually knows when the Ai is thinking. I also gave each card a “Build this! button, which once pressed, sends another prompt to the ai asking for a full guide, including components, wiring, build instructions, and code if needed. I ran into some errors along the way, mostly typos, which I debugged with the help of Ai. Next time I’ll give the build guide it’s own screen instead of sitting underneath the entry fields, and make the colors of the app consistent between all the screens. That’s it for now, see you on the next devlog!
Devlog #5: Build guide screen, project types, and caching! Heyyy! I’ve been putting off writing this devlog, since there’s a lot off stuff I need to talk about. So, picking up from where I left off in devlog #4, since I said I’d give the build guide it’s own screen and fix the colors, that’s mostly what this devlog is about. The build guide now renders as a seperate screen with seperate sections (Overview, Components, Wiring, Build Steps, Code), pulled from the AI call that returns structured json. I also fixed the fact that the build guide screen was using a blue theme instead of my olive green one, which was because I was using bootstyle="primary" that pulls from ttkbootstrap ’s default theme instead of my custom styles. I also added a project type dropdown in the beginning of the home screen, so the user can choose whether they want a hardware or a software project. Picking software, hides the budget field (since software projects are mostly free), and relabels the components field to programming language. I fixed another annoying bug where clicking “Build this!” twice on the same project, re-called the AI every time, instead of using the old response. To fix tat, I added a small cache keyed my project name, so if it detects that the build button has already been pressed for the specific project, it displays the old instructions instead of creating new ones every time. I also fixed a small bug with the “Back to ideas” button and debugged some typos. Next time, I’m thinking of letting users upload a photo of their components drawer and having the AI think of ideas using those components. That’s it for now, see you on the next devlog!
Devlog #6: Photo upload for the components + copy code button! Hey there! Following up on what I said in the last devlog, what I did today what add a way to uplaod a photo of your components drawer instead of typing each componetn manually. There’s nwo an “or” and an “upload image” button right next to the components field, so the user can pick whichever way is more convenient for them. I used base64 to then encode the image and send it to the AI along with the rest of the prompt, along with some extra instructions. When an image is picked, the components field just shows “Image uploaded” so the user can tell the AI will be looking at the photo instead of reading from the entry field, plus I added a red X button next to the upload button so the user can cancel it to pick another image or use txet instead. Other than that, I also added a “Copy code” button to the build guide’s code section, so you don’t have to manually select text out of the text box anymore to copy it. Later, I found out that command=self._copy_code(code) doesn’t work the way it looks like it would, since the parentheses call the function immediately instead of waiting for a the button to be cliced. To solve that, I wrapped it in a lambda function so it only runs when the button’s actually pressed. I used AI to create the new prompt for the image upload and also to help me understand some errors the terminal was showing. That’s for now, see you on the next devlog!
Devlog #7: Packaging the app and shipping! Heyy there! Continuing from what I said on the next devlog, what I did today was finally turn ProjectGen into an actual app that people can download and run on their pc instead of just through VS code, as well as add some new features. Then, I used PyInstaller to package everything into a proper macOS .app , including the fonts and icon. The biggest problem I ran into was the dock icon not working for some reason. My actual ProjectGen icon would appear for half a second before default ttkbootstrap icon would take its place. After asking AI to help me find a solution, I ended up using PyObjC to keep re-applying my icon while the app is running, which sometimes works and sometimes just doesn’t, but I decided not to give it too much attention. Since, I am on mac, I couldn’t locally create the .exe file using pyinstaller , so I used Github Actions plus a script Chatgpt wrote to create it from there. Then I set up a windows vm in UTM, to check if the .exe file works properly. Thankfully it does, so that’s great! Other than that, there were some errosr with indentation and syntax, which I easily fixed. Finally, I made a .gitignore , added requirements.txt , uploaded everything to GitHub, and uploaded the packaged .app as a github release so people can download and run ProjectGen without needing Python or VS Code installed. I used AI a lot in this step, because the icon issue was driving me insane and also to create help create the Windows app. That’s it for now, see you on the next devlog!
Updated the github releases (both for Windows and MacOS), so the app runs straight out the box without needing the user to input their own api key. This was done upon request from the Shipwrights.
Added back the API key dialog, so the app uses the user’s key, instead of leaking mine.
Ships:
ProjectGen - AI Powered Project Idea Generator Hey there! I’ve had the idea to build this for a while, and I finally did it! ProjectGen is a desktop app, coded in Python and packaged both for mac and windows using Pyinstaller . In simple words, it’s an app powered by artificial intelligence, that can generate your next project ideas tailored to your exact requirements (project type, time, budget, difficulty level, etc.). It’s built to solve a specific problem I, and I’m sure all other tinkerers have: we have this feeling that we wanna start a new project, but have no idea what, and when we finally land on a specific idea, we often realize that we don’t have the right components, enough time, or the budget to actually build it. It is powered using HackAI, HackClub’s own free LLM API, and using gemini-3.8-flash as the model. How it works! When you open the app, you are met with the main screen, which features separate entry boxes and dropdown menus for the project type (software or hardware), difficulty level, available components if it’s a hardware project, and programming language if it’s software. There are also input fields for the time you can devote and your budget for the project. Oh, something I forgot to mention is that there’s an upload image button for the components, to avoid the hassle of having to type each and every one of your parts manually, and just upload an image of your components drawer. When you click “Generate ideas!”, after some time, 5 ideas will show up. Each one of those ideas has a “Build this!” button under it, that once pressed, generates a complete build guide for the specific project, covering everything you’ll need to build it yourself (overview, parts, wiring, code, instructions, etc.). What was challenging? The biggest challenge for this project, was probably packaging everything. The macOS dock icon constantly refused to work properly, because when I was launching the app, it would show the actual app icon for half a second and then switch to the deafult ttkbootstrap icon. Eventually, after asking AI, I ended up using PyObjC to keep re-applying the icon every 500ms while the app was running. Since I’m developing on a Mac, I also couldn’t build the Windows .exe myself on my computer, so I used GitHub Actions and a workflow written by ChatGpt to build it for me. I then created a Windows VM using UTM to make sure the .exe actually worked properly. What I’m happy with! I genuinely feel pretty happy with how the finished app turned out, especially considering how it started as a 70-line terminal-based Python script that only worked through VS code, and evolved into a proper packaged app that people can download and use without even needing Python installed. I’m also really happy with the component image upload feature, cause it just saves so much time! Instead of having to manually type out each one of the components you have, you can just take a picture of your components drawer and let the AI figure out what you have. How can you test it? Windows release: https://github.com/HarFProFour12/projectgen/releases/tag/v1.0.0_Windows Extract the ZIP file and run ProjectGen.exe . MacOS release: https://github.com/HarFProFour12/projectgen/releases/tag/v1.0.0 When you double click to open the app, it will refuse saying that Apple can’t verify it doesn’t contain malware. Go to Settings, then click Privacy & Security, scroll down, find the section about ProjectGen and click “Open anyway”....
|
1793149013.8142765
|
1793235413.8142765
|
|
69500
|
nodeseed by @anshpatel9720 | Stardance
|
anshpatel9720
|
1
|
7.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-13T13:14:44Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I make a engineer calculator that’s calculate everything it’s hard but I completed in seven hours ,good.", "repo": "https://github.com/anshpatel9720-cmd/nodeseed", "demo": "https://anshpatel9720-cmd.github.io/nodeseed/"}]...
|
[{"post_id": 79302, "ts": "202 [{"post_id": 79302, "ts": "2026-10-13T13:10:22Z", "hours": 7.2858, "text": "something is working now"}]...
|
Title: nodeseed by @anshpatel9720 | Stardance
Dev Title: nodeseed by @anshpatel9720 | Stardance
Devlogs:
something is working now
Ships:
I make a engineer calculator that’s calculate everything it’s hard but I completed in seven hours ,good....
|
1793001139.9802473
|
1793865139.9802473
|
|
68969
|
darakhtnamah by @ibrahim- | Stardance
|
ibrahim-
|
0
|
4.46
|
0
|
[]
|
[{"post_id": 79299, "ts": "202 [{"post_id": 79299, "ts": "2026-10-13T12:19:59Z", "hours": 0.3597, "text": "Devlog #8 Added the rest of the missing pages, fixed mobile view and a few other bugs."}, {"post_id": 79034, "ts": "2026-10-12T13:26:19Z", "hours": 0.2886, "text": "Devlog #7 Moved the images to a CDN, styled the plant of the day page, fixed a few bugs, and finally, added the maximum height field"}, {"post_id": 79024, "ts": "2026-10-12T12:07:43Z", "hours": 0.8367, "text": "Devlog #6 Added Punjabi calendar months, with the fruiting season highlighted, and seed type mentioned. Also added a field for cultural importance"}, {"post_id": 79015, "ts": "2026-10-12T11:06:46Z", "hours": 0.2817, "text": "Devlog #5 Added a distribution map using UMap embeds."}, {"post_id": 78408, "ts": "2026-10-10T17:41:30Z", "hours": 0.5333, "text": "Devlog #4 Added the individual plant details page. Looks good"}, {"post_id": 78332, "ts": "2026-10-10T13:58:47Z", "hours": 0.9964, "text": "Devlog #3 Added and formatted a list of native plants (i compiled it earlier) + images Made the search feature work!"}, {"post_id": 78319, "ts": "2026-10-10T12:18:41Z", "hours": 0.5256, "text": "Devlog #2 Added a plant of the day banner alongside a navbar that is present on both the landing page and the plants page"}, {"post_id": 78304, "ts": "2026-10-10T11:28:24Z", "hours": 0.6364, "text": "Devlog #1 Made the landing page, need feedback on what can be done better!"}]...
|
Title: darakhtnamah by @ibrahim- | Stardance
Devl Title: darakhtnamah by @ibrahim- | Stardance
Devlogs:
Devlog #1 Made the landing page, need feedback on what can be done better!
Devlog #2 Added a plant of the day banner alongside a navbar that is present on both the landing page and the plants page
Devlog #3 Added and formatted a list of native plants (i compiled it earlier) + images Made the search feature work!
Devlog #4 Added the individual plant details page. Looks good
Devlog #5 Added a distribution map using UMap embeds.
Devlog #6 Added Punjabi calendar months, with the fruiting season highlighted, and seed type mentioned. Also added a field for cultural importance
Devlog #7 Moved the images to a CDN, styled the plant of the day page, fixed a few bugs, and finally, added the maximum height field
Devlog #8 Added the rest of the missing pages, fixed mobile view and a few other bugs....
|
1793127271.3447711
|
1793991271.3447711
|
|
69278
|
Wave Survival by @Nugget_Bwai | Stardance
|
Nugget_Bwai
|
0
|
0.38
|
0
|
[]
|
[{"post_id": 79296, "ts": "202 [{"post_id": 79296, "ts": "2026-10-13T11:31:31Z", "hours": 0.3836, "text": "Wave survival is a game where you have to kill waves of enemies before they destroy your base. I have made the spawn box for the characters as well as some gui elements, I also have a mock up map to test the mechanics and stuff"}]...
|
Title: Wave Survival by @Nugget_Bwai | Stardance
Title: Wave Survival by @Nugget_Bwai | Stardance
Devlogs:
Wave survival is a game where you have to kill waves of enemies before they destroy your base. I have made the spawn box for the characters as well as some gui elements, I also have a mock up map to test the mechanics and stuff...
|
1793130865.9018703
|
1793735665.9018703
|
|
7854
|
CometOS by @Aradhana | Stardance
|
Aradhana
|
1
|
39.23
|
48
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T11:27:56Z", "hours": 31.0, "multiplier": 1.71, "payout": 48, "blessing": "neutral", "text": "I built a WebOS that was designed to explore a character - the Sorceress Comet, a student at the Arx Nubium - and her fictional world of Alarica. As people use it, they find out more about Comet’s world, thoughts and family. It has a notebook app (where you can write your thoughts), a family tree app (to see a bit more of what Comet’s life is like) and comes with added functionality for the users - a date and time display, and battery meter. Now, the project is finally SHIPPED!", "repo": "https://github.com/dragonloversod051-max/CometOS", "demo": "https://dragonloversod051-max.github.io/CometOS/"}]...
|
[{"post_id": 79292, "ts": "202 [{"post_id": 79292, "ts": "2026-10-13T11:03:42Z", "hours": 8.2306, "text": "Devlog #8 Ok, so this is the FIRST devlog after the ship. Not really happy about how the ship went but oh well. Anyway, so, I added stuff: A Settings App Upgrades to the UI Worked on a sort of dictionary for all the new stuff that I’m introducing (after all, it is CometOS) The Settings App: Ok, so one of the major themes in the feedback I got was there needed to be more apps (since its an OS). So, I added a settings app, as just a basic, customization app. So, you can change the background image, and there’s a bit of design choices as well. I kept it so you need to scroll down to see all the images (some people won’t agree with this, but personally, I really like it. The scrolling feels more interactive and is required for a window size that looks really, really good). Also, the borders of the buttons turn blue when selected, and there obviously also a shadow indication that its a button when you hover over it. UI changes: So this was actually pretty small but looked really cool. I’ve seen on some sites there are just these little elements that blur the background behind them. While I was tinkering with css for the button shading I realized there was a style of filter: blur() . From there I found out about backdrop-filter: blur() and used that in the CometOS welcome window and the top and bottom bars. The dictionary app (name needs workshopping) So this is basically just because CometOS is about a fictional character in a fantasy world, so there needed to be an app that dealt with some words and terms used in other partts of the website (specifically the family tree). I felt there needed to be something to explain it, so, I added this. Its not done, so far I’m just done with one of the Relseiðr pages. Currently this is just hidden with display: none so I can work on functionality first. Challenges: There were really only a few challenges this time. The largest one was actually just getting the seperate visual cues which go ( oh, this is interactive! ) for the button and the image inside. Because I kept accidentally giving the button’s new classList to the image. And thats when I realized event.target and event.currentTarget were different and made for this….. On a side note, omg, display: inline-flex is so helpful! What I’ll work on next: I have now realized that since I’m adding so many apps, I need to add proper, adaptive view bounds. Before this I was using local pixel-specific bounds which were adapted to my viewport, and just not putting it on github, because I had already put in the work for those view bounds a few months ago, and it worked really well for me. So, anyway, I have now decided I need proper view bounds, so definitely going to work on that. Also, heres the new Settings app, and the beginning of the dictionary app."}, {"post_id": 71729, "ts": "2026-09-21T12:19:13Z", "hours": 2.21, "text": "Devlog #7 So, I thought it was ready to be shipped, but it wasn’t. In the final checks, I found out that because I had used pixel - specific drag bounds , while it worked perfectly on my laptop, it didn’t on anyone else’s (since other devices have different viewports, different areas. Some have longer lengths or widths than others, leading drag bounds to potentially be in the middle of the screen). I tinkered with it for a while (enlisting a bit of AI help) , but then realized that there was something about the new code that was messing up the notebook app (the sidebar stuck to the edge of the viewport). And, since there was about only one week left (and exams are starting soon), I decided to not accidentally mess up anything else, and so, deleted the drag bounds - I mean, better to be able to drag windows anywhere than have bounds that completely restrict it, right? - The good part is that even if the window goes out of the viewport somehow, you can just reload the screen to get it all back, which has no real downside since notes autosave. So anyway, now, we are actually , finally ready to ship ! This was what was happening to the notebook app btw"}, {"post_id": 43179, "ts": "2026-08-08T09:26:22Z", "hours": 3.4597, "text": "Devlog #6 We are FINALLY DONE and ready for the FIRST SHIP! Here’s whats new: Added information bubbles for each and every character in the family tree, which can be easily opened and closed. Fixed the selection for icons in the bottom bar: The green highlighted background would also highlight the areas where there were padding which we didn’t want because the icons would then be off center. Fixed this by adding a new transparent div in the middle, so padding is no longer required. Challenges: Fixing the icon selection bug. I played around with box-size for a bit but then chose to just add a transparent div between icons. Getting the information window to move along with the family tree window (as that is draggable). After a lot of testing, I realized I could just keep it inside the div but in positioning, its overflowing, so with an overflow: auto tag, it’s now set up and working! This is a screenshot of how the info bubble would break because it wasn’t in the same div:"}, {"post_id": 38671, "ts": "2026-08-01T05:38:48Z", "hours": 5.8169, "text": "Devlog #5 Ok, so, update: Created the family tree Improved feel of the app (through a visual sign when you hover over a character button) Fully initialized the window for the family tree app (made it closable, draggable, opens with an icon, added drag bounds). Challenges: The family tree image kept going above the icons used to drag and close the window. I put them in a different and experimented with different ways for SOOOO long - turned out I was just missing a position: absolute tag…. There was also a small bug where the buttons would go under the image instead of on it. Here are some pictures of the bugs, since it’s pretty hard to explain:"}, {"post_id": 34516, "ts": "2026-07-25T09:34:28Z", "hours": 0.6922, "text": "Devlog #4 I’ve started the next app - an interactive family tree. Since CometOS is based around Comet, I figured I should add a family tree. So this app is going to have clickable buttons for each member of the family, to give some info. Basically, its a massive lore drop. Here’s the wireframe for the app, and also an entire page I spent planning it because I ran into a few problems…"}, {"post_id": 31185, "ts": "2026-07-19T11:57:03Z", "hours": 12.5381, "text": "Devlog #3 What’s new: Added a bottom bar to store content selection options Added a notes app which is editable (and stored in javascript)-you can add your own notes. Added a save feature to the notes app-log back in anytime and the note is still there. YOU WOULD NOT BELIEVE HOW LONG THIS TOOK ( but, I learned how to save things in localStorage ). Fixed a bug where was at the bottom of the and the .js file and .css file weren’t loading in the live server. Fixed the bug where you lose the handle and the window gets stuck at the top/bottom of the page by making it so you can click through the top and bottom bar. Challenges: I spent a whole afternoon trying to come up with a clever way to avoid putting html in my .js file (because it looked messy), only to end up putting it in my .js file….. MOVING ON, There was some really weird stuff happening with saving notes. Like, I would write stuff, and it would be saved, but in different ’s? So only one was actually editable and the rest were all floating under it. Started to debug in a live server instead of as a file. The html and css files weren’t loading in. I spent so long trying to figure out why, and then realized that should be at the top of the body, not at the bottom ( You know, like an actual head. Wow, thats pretty self-explanatory ). So then, I fixed that and to check if it was working or not, made the background hot pink in css.( AND IT WORKED! And I will never be able to forget that image ). What’s next: Ok, so next, I still have to finish a few things. Make it so that you can’t drag windows past a certain limit (to prevent the background image scrolling and multiplying - learned how to clamp draggable elements to the viewport!). START STEP 5! So since this entire webOS is based around a fictional character-Comet, I think I’ll make an interactive family tree. So, each person has buttons and that leads you to a brief description about them ( and lore. LOTS of lore ). This is how the webOS looked in the test. I’m still not sure how the top bar also turned light pink, but, cool I guess"}, {"post_id": 15523, "ts": "2026-06-25T06:48:06Z", "hours": 1.6658, "text": "Devlog#2 Done with step 3. So now I can open, close and move around the welcome screen window. The cross acts as the close button, and you click and drag the hand part of the window to move it around. So I’ve updated the CometOS text in the top bar to open this window - hence it looks a lot more like a button. I think for the next windows and apps I’m going to make the open button in a side bar. And I finally figured out what classes are! So yeah, for now thats it, but I think by the end of step 4 its going to be a massive update with a lot more things."}, {"post_id": 13644, "ts": "2026-06-22T11:56:42Z", "hours": 4.2733, "text": "Devlog #1 So this is CometOS which is from the mission WebOS 1. It revolves around a fictional character - the Sorceress (in-training) Comet, set in the fictional world of Alarica. So far I’ve finished uptil step 2. So the top bar can track time, and also battery levels and gives custom messages based on the battery. Right now that’s pretty much it but I can’t wait to expand the project and develop the world and everything."}]...
|
Title: CometOS by @Aradhana | Stardance
Devlogs:
Title: CometOS by @Aradhana | Stardance
Devlogs:
Devlog #1 So this is CometOS which is from the mission WebOS 1. It revolves around a fictional character - the Sorceress (in-training) Comet, set in the fictional world of Alarica. So far I’ve finished uptil step 2. So the top bar can track time, and also battery levels and gives custom messages based on the battery. Right now that’s pretty much it but I can’t wait to expand the project and develop the world and everything.
Devlog#2 Done with step 3. So now I can open, close and move around the welcome screen window. The cross acts as the close button, and you click and drag the hand part of the window to move it around. So I’ve updated the CometOS text in the top bar to open this window - hence it looks a lot more like a button. I think for the next windows and apps I’m going to make the open button in a side bar. And I finally figured out what classes are! So yeah, for now thats it, but I think by the end of step 4 its going to be a massive update with a lot more things.
Devlog #3 What’s new: Added a bottom bar to store content selection options Added a notes app which is editable (and stored in javascript)-you can add your own notes. Added a save feature to the notes app-log back in anytime and the note is still there. YOU WOULD NOT BELIEVE HOW LONG THIS TOOK ( but, I learned how to save things in localStorage ). Fixed a bug where was at the bottom of the and the .js file and .css file weren’t loading in the live server. Fixed the bug where you lose the handle and the window gets stuck at the top/bottom of the page by making it so you can click through the top and bottom bar. Challenges: I spent a whole afternoon trying to come up with a clever way to avoid putting html in my .js file (because it looked messy), only to end up putting it in my .js file….. MOVING ON, There was some really weird stuff happening with saving notes. Like, I would write stuff, and it would be saved, but in different ’s? So only one was actually editable and the rest were all floating under it. Started to debug in a live server instead of as a file. The html and css files weren’t loading in. I spent so long trying to figure out why, and then realized that should be at the top of the body, not at the bottom ( You know, like an actual head. Wow, thats pretty self-explanatory ). So then, I fixed that and to check if it was working or not, made the background hot pink in css.( AND IT WORKED! And I will never be able to forget that image ). What’s next: Ok, so next, I still have to finish a few things. Make it so that you can’t drag windows past a certain limit (to prevent the background image scrolling and multiplying - learned how to clamp draggable elements to the viewport!). START STEP 5! So since this entire webOS is based around a fictional character-Comet, I think I’ll make an interactive family tree. So, each person has buttons and that leads you to a brief description about them ( and lore. LOTS of lore ). This is how the webOS looked in the test. I’m still not sure how the top bar also turned light pink, but, cool I guess
Devlog #4 I’ve started the next app - an interactive family tree. Since CometOS is based around Comet, I figured I should add a family tree. So this app is going to have clickable buttons for each member of the family, to give some info. Basically, its a massive lore drop. Here’s the wireframe for the app, and also an entire page I spent planning it because I ran into a few problems…
Devlog #5 Ok, so, update: Created the family tree Improved feel of the app (through a visual sign when you hover over a character button) Fully initialized the window for the family tree app (made it closable, draggable, opens with an icon, added drag bounds). Challenges: The family tree image kept going above the icons used to drag and close the window. I put them in a different and experimented with different ways for SOOOO long - turned out I was just missing a position: absolute tag…. There was also a small bug where the buttons would go under the image instead of on it. Here are some pictures of the bugs, since it’s pretty hard to explain:
Devlog #6 We are FINALLY DONE and ready for the FIRST SHIP! Here’s whats new: Added information bubbles for each and every character in the family tree, which can be easily opened and closed. Fixed the selection for icons in the bottom bar: The green highlighted background would also highlight the areas where there were padding which we didn’t want because the icons would then be off center. Fixed this by adding a new transparent div in the middle, so padding is no longer required. Challenges: Fixing the icon selection bug. I played around with box-size for a bit but then chose to just add a transparent div between icons. Getting the information window to move along with the family tree window (as that is draggable). After a lot of testing, I realized I could just keep it inside the div but in positioning, its overflowing, so with an overflow: auto tag, it’s now set up and working! This is a screenshot of how the info bubble would break because it wasn’t in the same div:
Devlog #7 So, I thought it was ready to be shipped, but it wasn’t. In the final checks, I found out that because I had used pixel - specific drag bounds , while it worked perfectly on my laptop, it didn’t on anyone else’s (since other devices have different viewports, different areas. Some have longer lengths or widths than others, leading drag bounds to potentially be in the middle of the screen). I tinkered with it for a while (enlisting a bit of AI help) , but then realized that there was something about the new code that was messing up the notebook app (the sidebar stuck to the edge of the viewport). And, since there was about only one week left (and exams are starting soon), I decided to not accidentally mess up anything else, and so, deleted the drag bounds - I mean, better to be able to drag windows anywhere than have bounds that completely restrict it, right? - The good part is that even if the window goes out of the viewport somehow, you can just reload the screen to get it all back, which has no real downside since notes autosave. So anyway, now, we are actually , finally ready to ship ! This was what was happening to the notebook app btw
Devlog #8 Ok, so this is the FIRST devlog after the ship. Not really happy about how the ship went but oh well. Anyway, so, I added stuff: A Settings App Upgrades to the UI Worked on a sort of dictionary for all the new stuff that I’m introducing (after all, it is CometOS) The Settings App: Ok, so one of the major themes in the feedback I got was there needed to be more apps (since its an OS). So, I added a settings app, as just a basic, customization app. So, you can change the background image, and there’s a bit of design choices as well. I kept it so you need to scroll down to see all the images (some people won’t agree with this, but personally, I really like it. The scrolling feels more interactive and is required for a window size that looks really, really good). Also, the borders of the buttons turn blue when selected, and there obviously also a shadow indication that its a button when you hover over it. UI changes: So this was actually pretty small but looked really cool. I’ve seen on some sites there are just these little elements that blur the background behind them. While I was tinkering with css for the button shading I realized there was a style of filter: blur() . From there I found out about backdrop-filter: blur() and used that in the CometOS welcome window and the top and bottom bars. The dictionary app (name needs workshopping) So this is basically just because CometOS is about a fictional character in a fantasy world, so there needed to be an app that dealt with some words and terms used in other partts of the website (specifically the family tree). I felt there needed to be something to explain it, so, I added this. Its not done, so far I’m just done with one of the Relseiðr pages. Currently this is just hidden with display: none so I can work on functionality first. Challenges: There were really only a few challenges this time. The largest one was actually just getting the seperate visual cues which go ( oh, this is interactive! ) for the button and the image inside. Because I kept accidentally giving the button’s new classList to the image. And thats when I realized event.target and event.currentTarget were different and made for this….. On a side note, omg, display: inline-flex is so helpful! What I’ll work on next: I have now realized that since I’m adding so many apps, I need to add proper, adaptive view bounds. Before this I was using local pixel-specific bounds which were adapted to my viewport, and just not putting it on github, because I had already put in the work for those view bounds a few months ago, and it worked really well for me. So, anyway, I have now decided I need proper view bounds, so definitely going to work on that. Also, heres the new Settings app, and the beginning of the dictionary app.
Ships:
I built a WebOS that was designed to explore a character - the Sorceress Comet, a student at the Arx Nubium - and her fictional world of Alarica. As people use it, they find out more about Comet’s world, thoughts and family. It has a notebook app (where you can write your thoughts), a family tree app (to see a bit more of what Comet’s life is like) and comes with added functionality for the users - a date and time display, and battery meter. Now, the project is finally SHIPPED!...
|
1793152232.0427723
|
1793238632.0427723
|
|
67081
|
Senweget by @Alaxtor | Stardance
|
Alaxtor
|
0
|
19.23
|
0
|
[]
|
[{"post_id": 79287, "ts": "202 [{"post_id": 79287, "ts": "2026-10-13T10:27:01Z", "hours": 1.2956, "text": "Made the firmware and was a pain but i understand it a bit better now."}, {"post_id": 79215, "ts": "2026-10-13T01:58:46Z", "hours": 1.1653, "text": "AHHH Have to write readme"}, {"post_id": 78884, "ts": "2026-10-11T21:19:33Z", "hours": 2.3583, "text": "Emm took some time but got it now i need to design it and added tabs so it can fit together well.and made the left side of the keyboard"}, {"post_id": 78466, "ts": "2026-10-10T21:21:51Z", "hours": 2.0917, "text": "I Added the M3 screws and now need the build the support for my pcb and make the right side of thekeyboard."}, {"post_id": 76503, "ts": "2026-10-03T19:27:11Z", "hours": 3.8056, "text": "Almost built the case now need to add a speaker in the schematic and make hole for it and add screw holes for the top And anyone got any tips for it be more fun to use."}, {"post_id": 76130, "ts": "2026-10-02T13:15:21Z", "hours": 0.6792, "text": "Added the audio jack to connect the two sides and made stl and Gerber Files"}, {"post_id": 76120, "ts": "2026-10-02T11:36:06Z", "hours": 1.115, "text": "I fixed the errors added rest of the lines and connected the MCU.Now just need to add the audio jack"}, {"post_id": 75971, "ts": "2026-10-01T19:44:51Z", "hours": 3.5125, "text": "Made the PCb design and need to connect to the microcontroller and add a audio jack."}, {"post_id": 75739, "ts": "2026-09-30T22:09:48Z", "hours": 3.2031, "text": "Picked out the parts,got the footprints and made the schematic"}]...
|
Title: Senweget by @Alaxtor | Stardance
Devlogs:
Title: Senweget by @Alaxtor | Stardance
Devlogs:
Picked out the parts,got the footprints and made the schematic
Made the PCb design and need to connect to the microcontroller and add a audio jack.
I fixed the errors added rest of the lines and connected the MCU.Now just need to add the audio jack
Added the audio jack to connect the two sides and made stl and Gerber Files
Almost built the case now need to add a speaker in the schematic and make hole for it and add screw holes for the top And anyone got any tips for it be more fun to use.
I Added the M3 screws and now need the build the support for my pcb and make the right side of thekeyboard.
Emm took some time but got it now i need to design it and added tabs so it can fit together well.and made the left side of the keyboard
AHHH Have to write readme
Made the firmware and was a pain but i understand it a bit better now....
|
1793105646.8249536
|
1793710446.8249536
|
|
45943
|
Repliyer by @chaitanya | Stardance
|
chaitanya
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-13T10:58:42Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A discord bot using discord python package and hugging face api integration", "repo": "https://github.com/nums404/Repliyer-Bot", "demo": "https://discord.gg/WqYjcjzn3z"}]...
|
[{"post_id": 79286, "ts": "202 [{"post_id": 79286, "ts": "2026-10-13T10:18:52Z", "hours": 8.2108, "text": "Bot implemented for now"}]...
|
Title: Repliyer by @chaitanya | Stardance
Devlogs Title: Repliyer by @chaitanya | Stardance
Devlogs:
Bot implemented for now
Ships:
A discord bot using discord python package and hugging face api integration...
|
1793195742.0707674
|
1793282142.0707674
|
|
69475
|
Siyam-OS by @Siyam | Stardance
|
Siyam
|
1
|
1.0
|
1
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-13T10:17:18Z", "hours": 1.0, "multiplier": 1.03, "payout": 1, "blessing": "neutral", "text": "Siyam-OS Welcome to WebOS, a fully functional, lightweight desktop environment running entirely inside your browser, built using HTML, CSS, and vanilla JavaScript for the Hack Club Stardance event. This retro-modern web operating system is proudly crafted with human-written code, complemented by minor AI assistance. It features an interactive desktop environment complete with draggable and resizable windows, a custom taskbar, a start menu, a live clock, and personalizable themes. Users can interact with a variety of built-in applications, including a custom command-line terminal emulator with a simulated file system, retro mini-games, a simulated web browser interface, a file manager, and a text editor. Designed with zero heavy frameworks, WebOS relies solely on pure, optimized HTML5, CSS3, and JavaScript (ES6+) for blazing-fast performance without requiring complex installation steps or external build tools. Live Preview : https://tanzil-alam.github.io/Siyam-OS/", "repo": "https://github.com/Tanzil-Alam/Siyam-OS", "demo": "https://tanzil-alam.github.io/Siyam-OS/"}]...
|
[{"post_id": 79284, "ts": "202 [{"post_id": 79284, "ts": "2026-10-13T10:13:28Z", "hours": 0.7186, "text": "Siyam-OS Welcome to WebOS, a fully functional, lightweight desktop environment running entirely inside your browser, built using HTML, CSS, and vanilla JavaScript for the Hack Club Stardance event. This retro-modern web operating system is proudly crafted with human-written code, complemented by minor AI assistance. It features an interactive desktop environment complete with draggable and resizable windows, a custom taskbar, a start menu, a live clock, and personalizable themes. Users can interact with a variety of built-in applications, including a custom command-line terminal emulator with a simulated file system, retro mini-games, a simulated web browser interface, a file manager, and a text editor. Designed with zero heavy frameworks, WebOS relies solely on pure, optimized HTML5, CSS3, and JavaScript (ES6+) for blazing-fast performance without requiring complex installation steps or external build tools. Live Preview : Click me"}]...
|
Title: Siyam-OS by @Siyam | Stardance
Devlogs:
Si Title: Siyam-OS by @Siyam | Stardance
Devlogs:
Siyam-OS Welcome to WebOS, a fully functional, lightweight desktop environment running entirely inside your browser, built using HTML, CSS, and vanilla JavaScript for the Hack Club Stardance event. This retro-modern web operating system is proudly crafted with human-written code, complemented by minor AI assistance. It features an interactive desktop environment complete with draggable and resizable windows, a custom taskbar, a start menu, a live clock, and personalizable themes. Users can interact with a variety of built-in applications, including a custom command-line terminal emulator with a simulated file system, retro mini-games, a simulated web browser interface, a file manager, and a text editor. Designed with zero heavy frameworks, WebOS relies solely on pure, optimized HTML5, CSS3, and JavaScript (ES6+) for blazing-fast performance without requiring complex installation steps or external build tools. Live Preview : Click me
Ships:
Siyam-OS Welcome to WebOS, a fully functional, lightweight desktop environment running entirely inside your browser, built using HTML, CSS, and vanilla JavaScript for the Hack Club Stardance event. This retro-modern web operating system is proudly crafted with human-written code, complemented by minor AI assistance. It features an interactive desktop environment complete with draggable and resizable windows, a custom taskbar, a start menu, a live clock, and personalizable themes. Users can interact with a variety of built-in applications, including a custom command-line terminal emulator with a simulated file system, retro mini-games, a simulated web browser interface, a file manager, and a text editor. Designed with zero heavy frameworks, WebOS relies solely on pure, optimized HTML5, CSS3, and JavaScript (ES6+) for blazing-fast performance without requiring complex installation steps or external build tools. Live Preview : https://tanzil-alam.github.io/Siyam-OS/...
|
1793155731.9360733
|
1793242131.9360733
|
|
327
|
ToBeDone... by @Koy | Stardance
|
Koy
|
1
|
37.36
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T21:48:12Z", "hours": 35.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a notetaking app for the TUI. Please read the Readme for quickstart instructions!", "repo": "https://github.com/By-Koy/ToBeDone", "demo": "https://github.com/By-Koy/ToBeDone/releases/latest"}]...
|
[{"post_id": 79282, "ts": "202 [{"post_id": 79282, "ts": "2026-10-13T09:56:35Z", "hours": 2.3603, "text": "DevLog[9] - “Wait didn’t you ship this alr?” well hello to you too but uhh yeah… I tried to ship this like 5 times by now but it had so many problems that I didn’t think of (thanks Shipwrights! ) Anyway here are the changes since my last devlog: 1. Windows install scripts: Made with help from my friend Nadav Babad ( @smokinghotcode on github) because he has an actual windows capable pc 2. Switched to stderr: This switch happened because of windows not opening the exe file directly in the terminal (you would have to open it via command prompt). I am yet to test it but this was the only I have found to maybe make this work. 3. Better Github actions: This was just a by-product of all the iterations I went through, it was a nice intro to actions though! Anw good luck to me and the shipwrights, here’s a picture of the windows iso downloading (Insert edit from after testing since I feel like it won’t work)"}, {"post_id": 68298, "ts": "2026-09-14T21:43:39Z", "hours": 4.1486, "text": "DevLog[8] - “The End.” TL;DR: I got sick of this project and ended it. How did we get here? Formatting suckssssss. anyway, So I’ve been thinking about how I can save formatting to a file without encoding it into md and long story short, I can’t. The only way I could think of was to save binary files and simply (it was so hard I gave up) flush the memory into a file. Yeah I couldn’t figure that out. So what DID I do in the last 4 hours? Finishing touches! basically, I made build scripts, finished the readme, and made a github action to build the portable files. I also cleaned up just a bit from the uneaded code and (theoretically) made the app cross-platform (I don’t have access to a windows machine so it ended up getting a lot less love… oopsie…) I hope you can still enjoy my project (or my wacky writing ) without everything I neglected to do. and for one last (maybe) time. Have a nice day!"}, {"post_id": 66508, "ts": "2026-09-12T10:50:01Z", "hours": 4.4931, "text": "DevLog[7] - “MiniLog!” Hiiiiiii this time I focused on one thing (wasn’t easy lol) and that was a reset option! you can now remove all notes in one command! :3 I also gave up and then un-gave up on cross-platform so that’s cool Anyway I might go back to work and do cross-platform next (I rlly don’t wanna do formating )"}, {"post_id": 50968, "ts": "2026-08-20T13:18:44Z", "hours": 9.0122, "text": "DevLog[6] - “Rebase Rebase Rebase Rebase Rebase” Hi again! This… is a sad one. But first, the accomplishments!! in this devlog I have: Refactored the file.rs file (that saves/reads the files) to remove things like creating an uninitialized variable just to initialize it 3.14 seconds later in an if statement, in favor of initializing the variable with the if statement. ( let id = if input... ) Changed the massive iterator function line for cutting away from the displayed strings into the paragraph.scroll() function (which like, since when does that exist yk?) Moved the args struct into a static LazyLock<Mutex> which allows for a (relatively) safe global variable defined at runtime :3. Added modifier parsing for proper hotkeys and an options menu (internally called FormatDisplay , for reasons to be explained later) to show all the hotkeys. Turns out 9 hours is a lot lol. WAIT NO I DON’T WANN- Markdown Or well, the lack of it. over time while trying to work on this I realised that full markdown support is wayyyyy out of the scope of my (and the TUI’s) capabilities. {more info in the readme } after testing a few options (including a line-by-line implementation) I had found a silver-lining: FormatDisplay The menu is a new widget in the program, it simply shows the available keybinds, with SUPER keybinds formatting text, while control does things in the program. Do be warned though. I did not have time to make the actual functionality 😭"}, {"post_id": 38192, "ts": "2026-07-31T13:54:28Z", "hours": 2.0144, "text": "DevLog[5] - “I’m not wasting time or anything, why do you ask?” 👀👀👀 Hey all! this is a smaller one as I get things ready for the next part, markdown! Today, (and by this I mean it’s no longer 3 am) I have added CLI arguments for debugging, generating sample text, and no… eggs? Yeah Idk what that’s about (actually though that one is saved for later it might disappear) I have also fixed a few leftover errors and have tested the program on MacOS! :33 it worked almost immediately once I created the folder where all the notes are stored and set its permissions (I will set up install scripts to set everything up once I do all the functionality and windows support) By the way.. I wrote the readme.. you should check it out!! » Anw, have a nice dayy :3 (🥚)"}, {"post_id": 37943, "ts": "2026-07-30T23:45:40Z", "hours": 6.3153, "text": "DevLog[4] - “Movement, again” Hi there, welcome to my personal hell. ( ) It’s called movement. I have spent the last (non-consecutive) 6 hours to make something not too interesting, but not too uninteresting. (👀 ) cursor movement is extremely important for a note-taking app which currently doesn’t have planned mouse support, so I made sure to perfect (copy nano’s) it! Over the time I also: Moved all cursor based functions and the terminal constraint vars into the cursor struct itself Seperated some code to make it easier to read/edit Changed function names about a thousand times (it’s hard ) Learned the value of friendship (/j) I don’t really have much to show just because of the shear monotony of the task but here is a video of the weirdest bug I encountered on this journey (and probably the weirdest I ever will encounter), let’s see if you can figure out what happened :p"}, {"post_id": 10142, "ts": "2026-06-16T19:02:31Z", "hours": 2.425, "text": "DevLog[3] - “This Takes Way Too Long” Hey everyone!! For this log I have prepared a delightful… nevermind, this is all technical stuff. :sadge Never the less we will take a look! the main things I did was adding cursor support and improving input handling, which went from temporary to (practically) production! The other part (the hard part that took like two hours) was adding the cursor. I hate this thing. The cursor made the program panic in so many ways that I stopped counting. also figuring out how to even add it was another hour or two just in research (this ended up as like three lines btw) for anyone wondering, the cursor is held in the main struct as it’s own struct of two u16 variables which are added (or removed from) whenever the arrow keys are pressed. The displayed block is Ratatui’s default cursor that took me a million years to find. :sob Anyway, I have attached a video of most of the programs capabilities (I forgot to film the recent option and am too tired to do it again, sorry) [the hello and goodbye notes were not there initially]"}, {"post_id": 4751, "ts": "2026-06-08T06:18:40Z", "hours": 3.3658, "text": "DevLog[2] - “File Reader” Hiiiiii In this devlog I have implemented all of the logic to read files, save them to the main app struct and then save a symlink that let’s you access the last used note without specifying its title. (currently everything is linux only, cross-platform support will come later) (explanation for the screenshots: both commands shown in fig. 1 have the same output [shown in fig. 2.])"}, {"post_id": 3412, "ts": "2026-06-06T10:20:28Z", "hours": 3.1089, "text": "DevLog[1] - POC Hey! in this devlog I implemented the main TUI function, though I have not yet implemented a good way to control it (currently I am not even checking which key was pressed or if the event was a key press…), and a little Sample text file for testing. I don’t really have much to add, I am still new to Rust and Ratatui so I am very slow. (sorry :sob) Thanks for reading! :purple-heart"}]...
|
Title: ToBeDone... by @Koy | Stardance
Devlogs:
D Title: ToBeDone... by @Koy | Stardance
Devlogs:
DevLog[1] - POC Hey! in this devlog I implemented the main TUI function, though I have not yet implemented a good way to control it (currently I am not even checking which key was pressed or if the event was a key press…), and a little Sample text file for testing. I don’t really have much to add, I am still new to Rust and Ratatui so I am very slow. (sorry :sob) Thanks for reading! :purple-heart
DevLog[2] - “File Reader” Hiiiiii In this devlog I have implemented all of the logic to read files, save them to the main app struct and then save a symlink that let’s you access the last used note without specifying its title. (currently everything is linux only, cross-platform support will come later) (explanation for the screenshots: both commands shown in fig. 1 have the same output [shown in fig. 2.])
DevLog[3] - “This Takes Way Too Long” Hey everyone!! For this log I have prepared a delightful… nevermind, this is all technical stuff. :sadge Never the less we will take a look! the main things I did was adding cursor support and improving input handling, which went from temporary to (practically) production! The other part (the hard part that took like two hours) was adding the cursor. I hate this thing. The cursor made the program panic in so many ways that I stopped counting. also figuring out how to even add it was another hour or two just in research (this ended up as like three lines btw) for anyone wondering, the cursor is held in the main struct as it’s own struct of two u16 variables which are added (or removed from) whenever the arrow keys are pressed. The displayed block is Ratatui’s default cursor that took me a million years to find. :sob Anyway, I have attached a video of most of the programs capabilities (I forgot to film the recent option and am too tired to do it again, sorry) [the hello and goodbye notes were not there initially]
DevLog[4] - “Movement, again” Hi there, welcome to my personal hell. ( ) It’s called movement. I have spent the last (non-consecutive) 6 hours to make something not too interesting, but not too uninteresting. (👀 ) cursor movement is extremely important for a note-taking app which currently doesn’t have planned mouse support, so I made sure to perfect (copy nano’s) it! Over the time I also: Moved all cursor based functions and the terminal constraint vars into the cursor struct itself Seperated some code to make it easier to read/edit Changed function names about a thousand times (it’s hard ) Learned the value of friendship (/j) I don’t really have much to show just because of the shear monotony of the task but here is a video of the weirdest bug I encountered on this journey (and probably the weirdest I ever will encounter), let’s see if you can figure out what happened :p
DevLog[5] - “I’m not wasting time or anything, why do you ask?” 👀👀👀 Hey all! this is a smaller one as I get things ready for the next part, markdown! Today, (and by this I mean it’s no longer 3 am) I have added CLI arguments for debugging, generating sample text, and no… eggs? Yeah Idk what that’s about (actually though that one is saved for later it might disappear) I have also fixed a few leftover errors and have tested the program on MacOS! :33 it worked almost immediately once I created the folder where all the notes are stored and set its permissions (I will set up install scripts to set everything up once I do all the functionality and windows support) By the way.. I wrote the readme.. you should check it out!! » Anw, have a nice dayy :3 (🥚)
DevLog[6] - “Rebase Rebase Rebase Rebase Rebase” Hi again! This… is a sad one. But first, the accomplishments!! in this devlog I have: Refactored the file.rs file (that saves/reads the files) to remove things like creating an uninitialized variable just to initialize it 3.14 seconds later in an if statement, in favor of initializing the variable with the if statement. ( let id = if input... ) Changed the massive iterator function line for cutting away from the displayed strings into the paragraph.scroll() function (which like, since when does that exist yk?) Moved the args struct into a static LazyLock<Mutex> which allows for a (relatively) safe global variable defined at runtime :3. Added modifier parsing for proper hotkeys and an options menu (internally called FormatDisplay , for reasons to be explained later) to show all the hotkeys. Turns out 9 hours is a lot lol. WAIT NO I DON’T WANN- Markdown Or well, the lack of it. over time while trying to work on this I realised that full markdown support is wayyyyy out of the scope of my (and the TUI’s) capabilities. {more info in the readme } after testing a few options (including a line-by-line implementation) I had found a silver-lining: FormatDisplay The menu is a new widget in the program, it simply shows the available keybinds, with SUPER keybinds formatting text, while control does things in the program. Do be warned though. I did not have time to make the actual functionality 😭
DevLog[7] - “MiniLog!” Hiiiiiii this time I focused on one thing (wasn’t easy lol) and that was a reset option! you can now remove all notes in one command! :3 I also gave up and then un-gave up on cross-platform so that’s cool Anyway I might go back to work and do cross-platform next (I rlly don’t wanna do formating )
DevLog[8] - “The End.” TL;DR: I got sick of this project and ended it. How did we get here? Formatting suckssssss. anyway, So I’ve been thinking about how I can save formatting to a file without encoding it into md and long story short, I can’t. The only way I could think of was to save binary files and simply (it was so hard I gave up) flush the memory into a file. Yeah I couldn’t figure that out. So what DID I do in the last 4 hours? Finishing touches! basically, I made build scripts, finished the readme, and made a github action to build the portable files. I also cleaned up just a bit from the uneaded code and (theoretically) made the app cross-platform (I don’t have access to a windows machine so it ended up getting a lot less love… oopsie…) I hope you can still enjoy my project (or my wacky writing ) without everything I neglected to do. and for one last (maybe) time. Have a nice day!
DevLog[9] - “Wait didn’t you ship this alr?” well hello to you too but uhh yeah… I tried to ship this like 5 times by now but it had so many problems that I didn’t think of (thanks Shipwrights! ) Anyway here are the changes since my last devlog: 1. Windows install scripts: Made with help from my friend Nadav Babad ( @smokinghotcode on github) because he has an actual windows capable pc 2. Switched to stderr: This switch happened because of windows not opening the exe file directly in the terminal (you would have to open it via command prompt). I am yet to test it but this was the only I have found to maybe make this work. 3. Better Github actions: This was just a by-product of all the iterations I went through, it was a nice intro to actions though! Anw good luck to me and the shipwrights, here’s a picture of the windows iso downloading (Insert edit from after testing since I feel like it won’t work)
Ships:
This is a notetaking app for the TUI. Please read the Readme for quickstart instructions!...
|
1793148952.8901272
|
1793235352.8901272
|
|
55712
|
APP BLOCKER (macOS) by @Dhanush_Mundra | Stardance
|
Dhanush_Mundra
|
1
|
63.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-13T12:58:49Z", "hours": 63.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finally!!! This is my first app, Multi-App-Blocker!!! So there would be two sections abut this project- What is this and How did I make this app. So let’s start with the first section:- What is this? So, this an application that only runs on macOS which blocks apps according to the time schedule set by the user. The app shows all the downloaded applications on the sysem in the dropdown list from where the user can select the app. When the user selects the app they want to block, the user need to enter the start time and the end time. After that the user gets the option of select the type of schedule. So there are four options to select the type of schedule, that are- Every Day; Today Only; Specific Days; Specific Date. So, here the user can select the type according to their needs. Another exciting feature of my app is that the user can set multiple schedules for a single app. However the condition is that the other schedules should not overlap or should be the same as the previous schedules. After this when the schedule has been checked by the app, the app starts to monitor the schedule. When the current time matches the schedule time, the app is blocked. Also, if you restart your system after setting the schedule, your app would be blocked then also within 3-5 minutes if you want the app to be instantly blocked after restarting the system otherwise normally, the app is immediately blocked depending on the speed of your system. Also, at last, another feature of this app is that you can delete, edit and disable or enable your scheudules. Like this, you can set as many schedules for as many apps you want. So, this was about how my App Blocker works. Now let’s move to the next section which is:- How did I make this app? So, I started making this project by building the time tracker of my app. When I completed making he time tracker, I learn about the processes of apps, PIDs(Process Identifier) and the terminal commands like mdfind and many libraries such as datetime, psutil, subprocess, pathlib, json etc. So, by combining all these I made a simple terminal working program that would block a single app for a particular period of time. After this, I thought of making a GUI using HTML and CSS and making the GUI functional using JavaScript. So, I wrote the code of HTML and CSS by myself and also learnt a bit of JavaScript to make the GUI functional. By now my GUI was ready and the backend for a single app blocker was also ready but were not connected. And then I got to know about Electron. So I explored about electron ad decided to use it for my app. Then I connected my GUI using Electron to my Python backend using some more JavaScript code. Now, it started to feel more like an app, But I wanted multi app blocker so I wrote the code for it also and added the features of multiple schedules, edit, delete, disable and enable, and schedule types. After all this, it was like, I built an app, but this so called app was not working after I restarted my mac. And just because of this, I needed to work 5 more days to figure out the solution. And when I got the solution. I did the final test. However, after restarting it takes around 3-5 minutes to block the app but it does block the app. Now, I can declare it a professional, working, Multi-App-Blocker. Note: This application is only for macOS. And you can download the .dmg file from the try project link below. Thank You so much for reading it till here.", "repo": "https://github.com/mundradhanush-lgtm/APP-BLOCKER", "demo": "https://github.com/mundradhanush-lgtm/APP-BLOCKER/releases/download/v1.0.0/App.Blocker-1.0.0-arm64.dmg"}]...
|
[{"post_id": 79280, "ts": "202 [{"post_id": 79280, "ts": "2026-10-13T09:45:42Z", "hours": 4.0328, "text": "Finally!!! I have created the MULTI-APP-BLOCKER!!! In this final session of app blocker I worked on the feature of blocking apps even after restarting the system if the current time is in the schedule. I literally worked on this feature for 3 days and it paid off. However this is not a strong feature because it takes around 3-5 minutes to block the application instantly after restarting the system. Normally, it immediately blocks the app. So, I worked on this feature in this final session and now I am going to set my APP BLOCKER out for rating soon. THANK YOU SO MUCH!!!"}, {"post_id": 78765, "ts": "2026-10-11T15:18:12Z", "hours": 9.7883, "text": "of so I have finally built a multi-app blocker. In this session I just made the GUI better, made a better backend and made it into a usable app. I added multiple schedule feature for a single app and then the feature of schedule types like today, specific date, specific days and every day from which the user can choose any and for multiple schedule I put a check that the second or the third or any later schedule should not overlap the earlier schedules. The App Blocker is working very nicely, but I want to fit the last piece of the puzzle and the is by making the App Blocker immune to computer restart or turning it on again after shutting down. So, I want to work on that that the app should be blocked even if the computer has been restarted or it has been turned on after shutting down. But, I can say that it is now a professional App Blocker and I would soon finish this project."}, {"post_id": 76373, "ts": "2026-10-03T10:29:23Z", "hours": 3.7033, "text": "ok so finally, I have created a professional single-app blocker. In the earlier section, I wrote my code for JavaScript and I was thinking that I have created the app, but I was wrong. After writing the code, in this section, I downloaded electron and connected it to my code using two json files and 2 JavaScript files. After that I worked on error handling which was a very complicated part. Also I took the help of AI to identify what kind of errors can happen and what kind of handling I should put. Also, I created a section in my GUI where I would be giving the status of the app blocker like is the app blocked or is it not blocked or is there any problem. I have done this much and it is working ratty decently. Now I have decided to make it a Multi-App Blocker where the user can set different schedules for different apps and set when to block the apps like after setting the time on which days the user want to block the apps or else the user wants to block the app in two different sections. For eg- The user wants to block the app from 2:00 pm to 3 pm and then from 6 pm to 8 pm. So, I would be trying to keep that functionality also. And if possible, the coolest thing I would want to do is that allowing the user to keep a password on it so that no one can block unwanted apps for 24 hours. Hopefully, I can do all of this because I have this idea in my mid only and I have no planning so I would be working very hard till 31st October."}, {"post_id": 75541, "ts": "2026-09-30T12:08:19Z", "hours": 3.2575, "text": "Let’s goooo everyone!! I have finally written my JavaScript code for my App Blocker. I am very happy as this was my first JavaScript code for this big project and I am very proud of myself as I wrote the whole code myself just taking the help of AI to know what step to take next. In this code I solved the time related problems like the checking of valid time, turning the time entered by the user into a 24 hour clock system and then turning it into a properly usable form. I also created a hardcoded list for now which included some app names, which would be replaced by my python list that would have all the app names downloaded in my system. And finally, I created an object containing app name, start time and end time. This object would be provided to my python code and it would block the app for that period of time."}, {"post_id": 75173, "ts": "2026-09-29T11:33:57Z", "hours": 1.0422, "text": "Ok Everyone!! I have made the structure for my GUI and designed it properly. Now, the only thing left is JavaScript and the coming up of these languages together in Electron. But there is still one problem. Right now my App Blocker is blocking only one app at a time, butI want to make it multi-app blocker and also my app blocker is not working after it is closed, so I want it to work forever and keep checking the time."}, {"post_id": 75042, "ts": "2026-09-28T23:41:53Z", "hours": 1.7242, "text": "Finally, I have completed the backend of my App Blocker and now I can start the work on my GUI and I would be using Electron to make my App Blocker into a real life desktop application. I am also very happy that Stardance has been extended till 31st October. I have given the final touches to my backend like the input of time by the user and in the future after making the GUI I would make the App Blocker block multiple apps. So, my next devlon would be of me updating you upon my GUI."}, {"post_id": 73229, "ts": "2026-09-24T17:02:27Z", "hours": 8.1553, "text": "ok so I am posting this devlon cuz i got a message on slack that more than 10 hours would not be counted in the devlon time. So after HTML and CSS I am learning JavaScript to work and know about Electron and make the interface with it. Then i would do the small tasks such as setting the password and the user inputs at various places and multiple app blocking feature. I am learning JavaScript with Dave Gray’s JavaScript course(I know its a bit old but the best). And I have like 2 chapters left and then i would start learning about electron. And the best thing is that Stardance has been extended by 1 month."}, {"post_id": 71934, "ts": "2026-09-21T20:13:44Z", "hours": 5.7328, "text": "ok so i have finally completed the course of CSS and HTML in just 5 days. this actually feels like an achievement to me. So, I learnt the basics of HTML and CSS that are required for my project. Now my next step would be to learn the basics of JavaScript and complete it in around 2 days and complete the APP BLOCKER."}, {"post_id": 70203, "ts": "2026-09-18T18:12:12Z", "hours": 5.0319, "text": "ok everyone, in this devlog I have not created anything, but I have gained a lot of knowledge. So, to make the GUI of my APP BLOCKER I want to use Electron and for that in these 2 days I have learnt CSS and HTML which are the basic languages. earlier what I as doing was I knew very little about HTML but not CSS, so I had to use AI, but now I want to make APP BLOCKER without AI and for that I am learning HTML, CSS and JavaScript. So after these I would read about Electron and make the GUI for this APP BLOCKER. NOTE: given below is the screenshot of me learning not of the project."}, {"post_id": 68764, "ts": "2026-09-15T18:21:59Z", "hours": 3.1256, "text": "Ok so earlier I was having a problem even after printing the dictionary and taking the number corresponding to it. the problem there was that my app blocker only blocked the apps that had no duplicates, which means like when i tried to block IDLE, I had 4 different versions of IDLE and after just telling my project that I need to block the IDLE it was not able to interpret which IDLE it had to block. So now I had to give it the parent folder also to find the mid but instead of trying two different ways to get the pid I gave the parent folder for every app and got the pid, hence dropping the idea of osascript. Then I continued my normal loop of blocking the app. Now I am happy it is blocking the app. Now i would first handle the small task like taking the start time and end time as the input from the user. Then I would add the feature of taking multiple apps as the input with their time and finally after all those things I would mage the GUI and end the project. In the image below is the part I added today."}, {"post_id": 65557, "ts": "2026-09-10T19:33:22Z", "hours": 6.5817, "text": "ok so earlier I was using hardcoded list of apps to block them, then I started taking the app name as an input, but then I realised that I would then want the user to type the app name in a specific type that is needed by the osascript to provide me its pid. but then I got an idea to give a dropdown of apps downloaded in the user’s system and they just simply had to select that app. so, I used multiple lists and dictionaries and splitted the path of the app into the app name that can be displayed. for now I have made a dictionary with the names of apps and serial numbers corresponding to them so the user just have to select the number. but in future when I would make the gui, the user would then just have to click on it. but currently I am facing a problem that after am printing the names of apps and the user is selecting the number, some apps are being blocked and and some are not. so I am currently working on this problem. if somebody can help me, please comment below. it would be of great pleasure. THANK YOU!!"}, {"post_id": 61734, "ts": "2026-09-04T19:42:57Z", "hours": 4.2442, "text": "ok so earlier my I made the time tracker and the hardcoded list for particular apps and then merged both of them so that it would just close the hardcoded apps in that list but now I modified it and took input from the user, ran the terminal command mdfind to check if the app is running or not then used osascript to get the pid of the process and then used that pid to terminate the app. but there was a challenge to find the difference of closed apps and already running apps and after that to keep them blocked till the designated time. so today I worked on that and made a good app blocker which can be used but some modifications like the input of time from the user, input of multiple apps and creating the gui. so after working on that my program would be ready."}, {"post_id": 60060, "ts": "2026-09-02T05:25:00Z", "hours": 0.5317, "text": "let’s go, today I added the loop for my program which was very important because earlier my program was just closing the app if it was running, but the user can again open it. now they couldn’t because I put all of that terminating part inside a loop that would work continuously for that time period."}, {"post_id": 59741, "ts": "2026-09-01T17:49:30Z", "hours": 1.1153, "text": "ok so this is my second devlog for this project. today I made the part where I would get the names of all the running processes on my Mac and then I made a list for the apps that I need to block then I compared the all the running processes with the apps I need to block and then just printed that this app needs to be closed just for the testing purpose. now my next work would be to terminate the app and then to modify it I would take the input of the app and time from the user itself and then in the end I would create a good GUI to give it a look of a fully polished project."}, {"post_id": 57999, "ts": "2026-08-30T10:29:51Z", "hours": 4.9769, "text": "ok so this is my first devlog of APP BLOCKER. this is a project where the app would be blocked between a specific period of time. and till now I have made the time system like for the testing purpose it would show blocked if the program is ran between the designated time period and would show allowed if not ran between the designated time. I also learnt about process and learnt how to print all the running processes using psutil (process and system utilities). now my target would be merging them after modifying both the codes"}]...
|
Title: APP BLOCKER (macOS) by @Dhanush_Mundra | St Title: APP BLOCKER (macOS) by @Dhanush_Mundra | Stardance
Devlogs:
ok so this is my first devlog of APP BLOCKER. this is a project where the app would be blocked between a specific period of time. and till now I have made the time system like for the testing purpose it would show blocked if the program is ran between the designated time period and would show allowed if not ran between the designated time. I also learnt about process and learnt how to print all the running processes using psutil (process and system utilities). now my target would be merging them after modifying both the codes
ok so this is my second devlog for this project. today I made the part where I would get the names of all the running processes on my Mac and then I made a list for the apps that I need to block then I compared the all the running processes with the apps I need to block and then just printed that this app needs to be closed just for the testing purpose. now my next work would be to terminate the app and then to modify it I would take the input of the app and time from the user itself and then in the end I would create a good GUI to give it a look of a fully polished project.
let’s go, today I added the loop for my program which was very important because earlier my program was just closing the app if it was running, but the user can again open it. now they couldn’t because I put all of that terminating part inside a loop that would work continuously for that time period.
ok so earlier my I made the time tracker and the hardcoded list for particular apps and then merged both of them so that it would just close the hardcoded apps in that list but now I modified it and took input from the user, ran the terminal command mdfind to check if the app is running or not then used osascript to get the pid of the process and then used that pid to terminate the app. but there was a challenge to find the difference of closed apps and already running apps and after that to keep them blocked till the designated time. so today I worked on that and made a good app blocker which can be used but some modifications like the input of time from the user, input of multiple apps and creating the gui. so after working on that my program would be ready.
ok so earlier I was using hardcoded list of apps to block them, then I started taking the app name as an input, but then I realised that I would then want the user to type the app name in a specific type that is needed by the osascript to provide me its pid. but then I got an idea to give a dropdown of apps downloaded in the user’s system and they just simply had to select that app. so, I used multiple lists and dictionaries and splitted the path of the app into the app name that can be displayed. for now I have made a dictionary with the names of apps and serial numbers corresponding to them so the user just have to select the number. but in future when I would make the gui, the user would then just have to click on it. but currently I am facing a problem that after am printing the names of apps and the user is selecting the number, some apps are being blocked and and some are not. so I am currently working on this problem. if somebody can help me, please comment below. it would be of great pleasure. THANK YOU!!
Ok so earlier I was having a problem even after printing the dictionary and taking the number corresponding to it. the problem there was that my app blocker only blocked the apps that had no duplicates, which means like when i tried to block IDLE, I had 4 different versions of IDLE and after just telling my project that I need to block the IDLE it was not able to interpret which IDLE it had to block. So now I had to give it the parent folder also to find the mid but instead of trying two different ways to get the pid I gave the parent folder for every app and got the pid, hence dropping the idea of osascript. Then I continued my normal loop of blocking the app. Now I am happy it is blocking the app. Now i would first handle the small task like taking the start time and end time as the input from the user. Then I would add the feature of taking multiple apps as the input with their time and finally after all those things I would mage the GUI and end the project. In the image below is the part I added today.
ok everyone, in this devlog I have not created anything, but I have gained a lot of knowledge. So, to make the GUI of my APP BLOCKER I want to use Electron and for that in these 2 days I have learnt CSS and HTML which are the basic languages. earlier what I as doing was I knew very little about HTML but not CSS, so I had to use AI, but now I want to make APP BLOCKER without AI and for that I am learning HTML, CSS and JavaScript. So after these I would read about Electron and make the GUI for this APP BLOCKER. NOTE: given below is the screenshot of me learning not of the project.
ok so i have finally completed the course of CSS and HTML in just 5 days. this actually feels like an achievement to me. So, I learnt the basics of HTML and CSS that are required for my project. Now my next step would be to learn the basics of JavaScript and complete it in around 2 days and complete the APP BLOCKER.
ok so I am posting this devlon cuz i got a message on slack that more than 10 hours would not be counted in the devlon time. So after HTML and CSS I am learning JavaScript to work and know about Electron and make the interface with it. Then i would do the small tasks such as setting the password and the user inputs at various places and multiple app blocking feature. I am learning JavaScript with Dave Gray’s JavaScript course(I know its a bit old but the best). And I have like 2 chapters left and then i would start learning about electron. And the best thing is that Stardance has been extended by 1 month.
Finally, I have completed the backend of my App Blocker and now I can start the work on my GUI and I would be using Electron to make my App Blocker into a real life desktop application. I am also very happy that Stardance has been extended till 31st October. I have given the final touches to my backend like the input of time by the user and in the future after making the GUI I would make the App Blocker block multiple apps. So, my next devlon would be of me updating you upon my GUI.
Ok Everyone!! I have made the structure for my GUI and designed it properly. Now, the only thing left is JavaScript and the coming up of these languages together in Electron. But there is still one problem. Right now my App Blocker is blocking only one app at a time, butI want to make it multi-app blocker and also my app blocker is not working after it is closed, so I want it to work forever and keep checking the time.
Let’s goooo everyone!! I have finally written my JavaScript code for my App Blocker. I am very happy as this was my first JavaScript code for this big project and I am very proud of myself as I wrote the whole code myself just taking the help of AI to know what step to take next. In this code I solved the time related problems like the checking of valid time, turning the time entered by the user into a 24 hour clock system and then turning it into a properly usable form. I also created a hardcoded list for now which included some app names, which would be replaced by my python list that would have all the app names downloaded in my system. And finally, I created an object containing app name, start time and end time. This object would be provided to my python code and it would block the app for that period of time.
ok so finally, I have created a professional single-app blocker. In the earlier section, I wrote my code for JavaScript and I was thinking that I have created the app, but I was wrong. After writing the code, in this section, I downloaded electron and connected it to my code using two json files and 2 JavaScript files. After that I worked on error handling which was a very complicated part. Also I took the help of AI to identify what kind of errors can happen and what kind of handling I should put. Also, I created a section in my GUI where I would be giving the status of the app blocker like is the app blocked or is it not blocked or is there any problem. I have done this much and it is working ratty decently. Now I have decided to make it a Multi-App Blocker where the user can set different schedules for different apps and set when to block the apps like after setting the time on which days the user want to block the apps or else the user wants to block the app in two different sections. For eg- The user wants to block the app from 2:00 pm to 3 pm and then from 6 pm to 8 pm. So, I would be trying to keep that functionality also. And if possible, the coolest thing I would want to do is that allowing the user to keep a password on it so that no one can block unwanted apps for 24 hours. Hopefully, I can do all of this because I have this idea in my mid only and I have no planning so I would be working very hard till 31st October.
of so I have finally built a multi-app blocker. In this session I just made the GUI better, made a better backend and made it into a usable app. I added multiple schedule feature for a single app and then the feature of schedule types like today, specific date, specific days and every day from which the user can choose any and for multiple schedule I put a check that the second or the third or any later schedule should not overlap the earlier schedules. The App Blocker is working very nicely, but I want to fit the last piece of the puzzle and the is by making the App Blocker immune to computer restart or turning it on again after shutting down. So, I want to work on that that the app should be blocked even if the computer has been restarted or it has been turned on after shutting down. But, I can say that it is now a professional App Blocker and I would soon finish this project.
Finally!!! I have created the MULTI-APP-BLOCKER!!! In this final session of app blocker I worked on the feature of blocking apps even after restarting the system if the current time is in the schedule. I literally worked on this feature for 3 days and it paid off. However this is not a strong feature because it takes around 3-5 minutes to block the application instantly after restarting the system. Normally, it immediately blocks the app. So, I worked on this feature in this final session and now I am going to set my APP BLOCKER out for rating soon. THANK YOU SO MUCH!!!
Ships:
Finally!!! This is my first app, Multi-App-Blocker!!! So there would be two sections abut this project- What is this and How did I make this app. So let’s start with the first section:- What is this? So, this an application that only runs on macOS which blocks apps according to the time schedule set by the user. The app shows all the downloaded applications on the sysem in the dropdown list from where the user can select the app. When the user selects the app they want to block, the user need to enter the start time and the end time. After that the user gets the option of select the type of schedule. So there are four options to select the type of schedule, that are- Every Day; Today Only; Specific Days; Specific Date. So, here the user can select the type according to their needs. Another exciting feature of my app is that the user can set multiple schedules for a single app. However the condition is that the other schedules should not overlap or should be the same as the previous schedules. After this when the schedule has been checked by the app, the app starts to monitor the schedule. When the current time matches the schedule time, the app is blocked. Also, if you restart your system after setting the schedule, your app would be blocked then also within 3-5 minutes if you want the app to be instantly blocked after restarting the system otherwise normally, the app is immediately blocked depending on the speed of your system. Also, at last, another feature of this app is that you can delete, edit and disable or enable your scheudules. Like this, you can set as many schedules for as many apps you want. So, this was about how my App Blocker works. Now let’s move to the next section which is:- How did I make this app? So, I started making this project by building the time tracker of my app. When I completed making he time tracker, I learn about the processes of apps, PIDs(Process Identifier) and the terminal commands like mdfind and many libraries such as datetime, psutil, subprocess, pathlib, json etc. So, by combining all these I made a simple terminal working program that would block a single app for a particular period of time. After this, I thought of making a GUI using HTML and CSS and making the GUI functional using JavaScript. So, I wrote the code of HTML and CSS by myself and also learnt a bit of JavaScript to make the GUI functional. By now my GUI was ready and the backend for a single app blocker was also ready but were not connected. And then I got to know about Electron. So I explored about electron ad decided to use it for my app. Then I connected my GUI using Electron to my Python backend using some more JavaScript code. Now, it started to feel more like an app, But I wanted multi app blocker so I wrote the code for it also and added the features of multiple schedules, edit, delete, disable and enable, and schedule types. After all this, it was like, I built an app, but this so called app was not working after I restarted my mac. And just because of this, I needed to work 5 more days to figure out the solution. And when I got the solution. I did the final test. However, after restarting it takes around 3-5 minutes to block the app but it does block the app. Now, I can declare it a professional, working, Multi-App-Blocker. Note: This application is only for macOS. And you can download the .dmg file from the try project link below. Thank You so much for reading it till here....
|
1793195709.4391537
|
1793282109.4391537
|
|
63371
|
BLARE by @Ranbir | Stardance
|
Ranbir
|
0
|
0.28
|
0
|
[]
|
[{"post_id": 79277, "ts": "202 [{"post_id": 79277, "ts": "2026-10-13T09:22:41Z", "hours": 0.2761, "text": "i have completed everything but not recorded time because i was not aware of it hope so hack club team will understand"}]...
|
Title: BLARE by @Ranbir | Stardance
Devlogs:
i ha Title: BLARE by @Ranbir | Stardance
Devlogs:
i have completed everything but not recorded time because i was not aware of it hope so hack club team will understand...
|
1793051391.086154
|
1793915391.086154
|
|
69465
|
OSX-inspired New Tab:) by @ianl | Stardance
|
ianl
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-13T09:01:10Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a dashboard that looks like an old macOS platform. The dashboard has some information related to space, like images from NASA and the weather near Mission Control in Houston. Working on the API was probably one of my biggest challenges, as well as working with GitHub. I honestly have no idea how GitHub works, and it’s definitely a learning experience every time I use it! I am most proud of the overall design of the site. Thank you for reading!", "repo": "https://github.com/ilaws/VintageMacOS-NewTab/", "demo": "https://newtab.ourdevbox.site"}]...
|
[{"post_id": 79274, "ts": "202 [{"post_id": 79274, "ts": "2026-10-13T08:56:32Z", "hours": 0.3411, "text": "Finished this really cool dashboard! I really enjoyed the design aspects, it is one of the first things that I made that I am somewhat proud of the design choices (how everything looks), etc! yes, its not perfect, but I still think its rly cool!"}, {"post_id": 79266, "ts": "2026-10-13T08:20:11Z", "hours": 0.5419, "text": "Linked NASA API to my new tab dashboard! It will now display a current photo of the earth, as well as the Astronomy Photo of the Day!"}, {"post_id": 79263, "ts": "2026-10-13T07:40:50Z", "hours": 0.7767, "text": "Started on my NewTab project- inspired by old MacOS X! I finished just a basic Finder window, the first step. This was made entirely in HTML and CSS. (the HTML is very simple but the CSS is super wonky). None of the buttons or anything work yet, but I am trying to add weather and other widgets to make it feel more real. :) (AI was used for fine-tuning shadows and color values. I could not figure it out myself.)"}]...
|
Title: OSX-inspired New Tab:) by @ianl | Stardance Title: OSX-inspired New Tab:) by @ianl | Stardance
Devlogs:
Started on my NewTab project- inspired by old MacOS X! I finished just a basic Finder window, the first step. This was made entirely in HTML and CSS. (the HTML is very simple but the CSS is super wonky). None of the buttons or anything work yet, but I am trying to add weather and other widgets to make it feel more real. :) (AI was used for fine-tuning shadows and color values. I could not figure it out myself.)
Linked NASA API to my new tab dashboard! It will now display a current photo of the earth, as well as the Astronomy Photo of the Day!
Finished this really cool dashboard! I really enjoyed the design aspects, it is one of the first things that I made that I am somewhat proud of the design choices (how everything looks), etc! yes, its not perfect, but I still think its rly cool!
Ships:
I made a dashboard that looks like an old macOS platform. The dashboard has some information related to space, like images from NASA and the weather near Mission Control in Houston. Working on the API was probably one of my biggest challenges, as well as working with GitHub. I honestly have no idea how GitHub works, and it’s definitely a learning experience every time I use it! I am most proud of the overall design of the site. Thank you for reading!...
|
1793138190.1594274
|
1793224590.1594274
|