|
45725
|
A site for the fun by @Egisipub | Stardance
|
Egisipub
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T21:57:11Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a personal site for the mission, it was not very hard (i make web games) but it was my first time making somthing without js", "repo": "https://github.com/Egisipub/MyPersonalSite", "demo": "https://egisipub.github.io/MyPersonalSite/"}]...
|
[{"post_id": 43549, "ts": "202 [{"post_id": 43549, "ts": "2026-08-08T21:37:47Z", "hours": 0.6356, "text": "finished it up!"}, {"post_id": 43526, "ts": "2026-08-08T21:00:04Z", "hours": 0.3575, "text": "Stared my site"}]...
|
Title: A site for the fun by @Egisipub | Stardance Title: A site for the fun by @Egisipub | Stardance
Devlogs:
Stared my site
finished it up!
Ships:
I made a personal site for the mission, it was not very hard (i make web games) but it was my first time making somthing without js...
|
1792878440.9116378
|
1793742440.9116378
|
|
45740
|
Statitron by @matest | Stardance
|
matest
|
1
|
18.53
|
197
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T15:15:20Z", "hours": 17.0, "multiplier": 11.58, "payout": 197, "blessing": "neutral", "text": "Statitron is a hardware monitor that tracks: GPU Usage in percent, GPU temp, GPU Vram usage in percent CPU Usage RAM Usage in both percent and GB Net Recv + Net Send All disk partitions usage in GB and percent + Disk write and disk read total from all drives It also has a cool feature which is event tracker. It tracks GPU, CPU and RAM usage and whenever one of them has a spike of 20%, it records it and displays it in the window. Every 5 seconds it will also display updates on how your hardware usage is at that moment. Through this project i learnt 5 new python libraries that i before only had minimal experience with! This is the first ever project i made that id say im proud of, because it taught me so much and i had a lot of fun making it. Also the first time my ui design looks at least semi-decent :)", "repo": "https://github.com/TheMathematico/Statitron1", "demo": "https://github.com/TheMathematico/Statitron1/releases/tag/v1.0.0"}]...
|
[{"post_id": 57442, "ts": "202 [{"post_id": 57442, "ts": "2026-08-29T16:23:25Z", "hours": 1.5261, "text": "accidently posted a devlog"}, {"post_id": 47190, "ts": "2026-08-14T22:28:55Z", "hours": 6.1078, "text": "Final devlog before shipping(#4) It has been 2 days since my last devlog, here’s what happened: I’ve finished the event tracker, it shows cpu, gpu and ram spikes + usage updates every few seconds. You can also snooze updates or snooze both the spikes and the updates(snooze=they dont appear in the event tracker). Before shipping(tommorow) i will probably organize the code a little bit and maybe add a bar that shows the health of all the disks you have on your pc. Im glad that im finally done and i hope it looks good! (in the vid the event tracker is mistakenly named gpu monitor, sry)"}, {"post_id": 45445, "ts": "2026-08-11T21:56:28Z", "hours": 4.2778, "text": "Devlog - 3 Today i’ve added a detailed monitor for disk, gpu and ram. The disk monitor shows write speed and read speed combined from all the drives you have on your pc, and it also shows used and total space from all partitions you have(Don’t ask why my partitions are so full lol). The GPU monitor shows temp, usage and vram utilization. The Ram monitor is pretty basic and just shows how much is being utilized in gb and percent. For the next devlog im planning on importing another library to track your disk health and finally start adding the event tracker(a tracker that shows what app caused what component spike eg. google chrome caused a cpu spike at some point here’s what you can do etc.) This program also made me realize that my drive fills up passively every hour even tho im not installing anything which is so cool :)"}, {"post_id": 44809, "ts": "2026-08-10T20:42:31Z", "hours": 4.6183, "text": "Devlog - 2 I completely reworked the code and added 6 cool looking meters that show cpu/gpu usage, disk space, ram used and net recv + net send(net download/upload). I haven’t added the event tracker yet but im hoping to tomorrow. Im not quite sure what to put in the empty space below the buttons so i’d love to hear some suggestions!"}, {"post_id": 44285, "ts": "2026-08-09T22:51:32Z", "hours": 2.0314, "text": "Devlog - 1: Coded the stats monitor which i spent like 30 mins actually coding and 1h 30 mins cleaning up my messy code. For now, it tracks cpu usage, ram and gpu. Next i’ll be polishing the UI which doesn’t look the best at the moment and adding an event tracker that tracks hardware usage spikes and what process/app caused it."}]...
|
Title: Statitron by @matest | Stardance
Devlogs:
Title: Statitron by @matest | Stardance
Devlogs:
Devlog - 1: Coded the stats monitor which i spent like 30 mins actually coding and 1h 30 mins cleaning up my messy code. For now, it tracks cpu usage, ram and gpu. Next i’ll be polishing the UI which doesn’t look the best at the moment and adding an event tracker that tracks hardware usage spikes and what process/app caused it.
Devlog - 2 I completely reworked the code and added 6 cool looking meters that show cpu/gpu usage, disk space, ram used and net recv + net send(net download/upload). I haven’t added the event tracker yet but im hoping to tomorrow. Im not quite sure what to put in the empty space below the buttons so i’d love to hear some suggestions!
Devlog - 3 Today i’ve added a detailed monitor for disk, gpu and ram. The disk monitor shows write speed and read speed combined from all the drives you have on your pc, and it also shows used and total space from all partitions you have(Don’t ask why my partitions are so full lol). The GPU monitor shows temp, usage and vram utilization. The Ram monitor is pretty basic and just shows how much is being utilized in gb and percent. For the next devlog im planning on importing another library to track your disk health and finally start adding the event tracker(a tracker that shows what app caused what component spike eg. google chrome caused a cpu spike at some point here’s what you can do etc.) This program also made me realize that my drive fills up passively every hour even tho im not installing anything which is so cool :)
Final devlog before shipping(#4) It has been 2 days since my last devlog, here’s what happened: I’ve finished the event tracker, it shows cpu, gpu and ram spikes + usage updates every few seconds. You can also snooze updates or snooze both the spikes and the updates(snooze=they dont appear in the event tracker). Before shipping(tommorow) i will probably organize the code a little bit and maybe add a bar that shows the health of all the disks you have on your pc. Im glad that im finally done and i hope it looks good! (in the vid the event tracker is mistakenly named gpu monitor, sry)
accidently posted a devlog
Ships:
Statitron is a hardware monitor that tracks: GPU Usage in percent, GPU temp, GPU Vram usage in percent CPU Usage RAM Usage in both percent and GB Net Recv + Net Send All disk partitions usage in GB and percent + Disk write and disk read total from all drives It also has a cool feature which is event tracker. It tracks GPU, CPU and RAM usage and whenever one of them has a spike of 20%, it records it and displays it in the window. Every 5 seconds it will also display updates on how your hardware usage is at that moment. Through this project i learnt 5 new python libraries that i before only had minimal experience with! This is the first ever project i made that id say im proud of, because it taught me so much and i had a lot of fun making it. Also the first time my ui design looks at least semi-decent :)...
|
1793541255.858976
|
1793627655.858976
|
|
45757
|
SlackSmith by @sebcun | Stardance
|
sebcun
|
1
|
31.0
|
476
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-29T07:59:52Z", "hours": 31.0, "multiplier": 15.53, "payout": 476, "blessing": "neutral", "text": "SlackSmith is a way to build Slack bots with no coding experience needed. Built using Electron, you drag and drop nodes after following a simple Slack setup and your bot is immediately ready. There are features like: Slash commands Scheduled events Send block kit messages HTTP requests Themes and more. Demo/trailer video is here! https://youtu.be/_7V3fs6bPT4", "repo": "https://github.com/sebcun/slacksmith", "demo": "https://github.com/sebcun/slacksmith/releases/tag/main2"}]...
|
[{"post_id": 57146, "ts": "202 [{"post_id": 57146, "ts": "2026-08-29T07:50:53Z", "hours": 0.9531, "text": "Read me’s and undos!"}, {"post_id": 57070, "ts": "2026-08-29T05:04:16Z", "hours": 3.4203, "text": "Devlog 13 Added block kit messages, scheduled triggers, and http requests. At first I wasn’t sure how I was going to do block kit messages to make it simple to use, but then I decided it would be best to have a visual esque builder which is what I did. Along with this, http request component has been added allowing you to get, patch, post, etc, as well as scheduled trigger being added to repeat a flow every xx minutes/seconds/hours."}, {"post_id": 56933, "ts": "2026-08-28T23:15:42Z", "hours": 2.0664, "text": "Devlog 13 Tabs, tabs and more tabs! Created a tab system for bots where you can create new tabs/canvases to keep your bot and flows organised."}, {"post_id": 52006, "ts": "2026-08-22T01:03:10Z", "hours": 1.1597, "text": "Added themes. Themes are easy to create and use, with the topbar and simple hex files to create your own."}, {"post_id": 49409, "ts": "2026-08-18T06:59:42Z", "hours": 1.5108, "text": "Devlog 11 I added a seperate window for bot logs for people to open, making it easier to manage their bot. I also added the ability to run bots independently so you don’t need to have SlackSmith open, as well as allowing for you to run bots on cloud hosts. Tbh wasn’t sure how to do this at all at first, so I did do this part with AI assistance."}, {"post_id": 49344, "ts": "2026-08-18T03:35:10Z", "hours": 1.6267, "text": "Devlog 10 Onboarding I have added onboarding. This appears when you first create a bot, prompting you to set it up through the slack API dashboard with easy to follow steps so everything works stress free."}, {"post_id": 49310, "ts": "2026-08-18T01:48:07Z", "hours": 2.9872, "text": "Develop 9 New Components and TopBar I have added full array functionality with array set, array length, array add, array remove, etc as components. I have also added the top bar to the electron app for things such as saving, running, etc."}, {"post_id": 48728, "ts": "2026-08-17T08:01:14Z", "hours": 2.835, "text": "Devlog 8 New Components triggers: user join channel, user left channel, bot mention data: math, random number, random string, date and time, convert, string, string length, string replace, string split, string join, string contains, string case, regex match, regex replace"}, {"post_id": 47982, "ts": "2026-08-16T08:10:03Z", "hours": 2.5394, "text": "Devlog 7 Bot Runtime I create the main runtime of the app which allows for you to actually start building bots! I ran into some issues first before figuring you have to add scopes for pretty much everything in slack, so I have to figure out the best way to handle that to users, however it does work when you add these events and scopes. So far there is only about 5 components that actually work, but I will be working on adding a lot more soon."}, {"post_id": 47866, "ts": "2026-08-16T03:39:03Z", "hours": 1.6106, "text": "Devlog #6 I added the functionality to add your bot to the app, as well as it verifies that it is actually real information. I also updated the basic runtime to have a start/stop/restart instead of ‘starting’ when you open the bot /app."}, {"post_id": 47815, "ts": "2026-08-16T00:51:40Z", "hours": 1.5319, "text": "Devlog #5 I have added the properties as well as node categories and more. Now time to work on actual functionality!"}, {"post_id": 44893, "ts": "2026-08-10T22:56:04Z", "hours": 2.1872, "text": "Devlog #4 Today I added the node editor to the app. Honestly wasn’t sure how I was going to do it yet but after looking at Foblex flow and Reactflow and taking some inspiration and some snippets I managed to make it and are fairly happy with the outcome. Obviously there is still a bit to do but I am going to work on adding all the actions (or at least have proper actions in different categories) before worrying about that."}, {"post_id": 43845, "ts": "2026-08-09T08:37:52Z", "hours": 2.2497, "text": "Devlog #3 I created the backend storage as well as frontend for the basics of creating and managing bots. I had some issues with it refusing to store in app storage however after some sudo commands I managed to get past it."}, {"post_id": 43739, "ts": "2026-08-09T04:49:34Z", "hours": 3.3856, "text": "Devlog #2 Shifted to Electron base and created components. At first I was going to make this completely web based and then refactor to electron later, but decided that would be too much of a hassle so I’ve now gone straight to Electron. Along with that, I’ve custom made elements ill need along the way with a slack like color pallete"}, {"post_id": 43594, "ts": "2026-08-08T23:01:46Z", "hours": 0.5694, "text": "Devlog #1 I have started working working on this project. So far I have only setup the basic setup and basic web server however I am looking forward to making this and continuing."}]...
|
Title: SlackSmith by @sebcun | Stardance
Devlogs: Title: SlackSmith by @sebcun | Stardance
Devlogs:
Devlog #1 I have started working working on this project. So far I have only setup the basic setup and basic web server however I am looking forward to making this and continuing.
Devlog #2 Shifted to Electron base and created components. At first I was going to make this completely web based and then refactor to electron later, but decided that would be too much of a hassle so I’ve now gone straight to Electron. Along with that, I’ve custom made elements ill need along the way with a slack like color pallete
Devlog #3 I created the backend storage as well as frontend for the basics of creating and managing bots. I had some issues with it refusing to store in app storage however after some sudo commands I managed to get past it.
Devlog #4 Today I added the node editor to the app. Honestly wasn’t sure how I was going to do it yet but after looking at Foblex flow and Reactflow and taking some inspiration and some snippets I managed to make it and are fairly happy with the outcome. Obviously there is still a bit to do but I am going to work on adding all the actions (or at least have proper actions in different categories) before worrying about that.
Devlog #5 I have added the properties as well as node categories and more. Now time to work on actual functionality!
Devlog #6 I added the functionality to add your bot to the app, as well as it verifies that it is actually real information. I also updated the basic runtime to have a start/stop/restart instead of ‘starting’ when you open the bot /app.
Devlog 7 Bot Runtime I create the main runtime of the app which allows for you to actually start building bots! I ran into some issues first before figuring you have to add scopes for pretty much everything in slack, so I have to figure out the best way to handle that to users, however it does work when you add these events and scopes. So far there is only about 5 components that actually work, but I will be working on adding a lot more soon.
Devlog 8 New Components triggers: user join channel, user left channel, bot mention data: math, random number, random string, date and time, convert, string, string length, string replace, string split, string join, string contains, string case, regex match, regex replace
Develop 9 New Components and TopBar I have added full array functionality with array set, array length, array add, array remove, etc as components. I have also added the top bar to the electron app for things such as saving, running, etc.
Devlog 10 Onboarding I have added onboarding. This appears when you first create a bot, prompting you to set it up through the slack API dashboard with easy to follow steps so everything works stress free.
Devlog 11 I added a seperate window for bot logs for people to open, making it easier to manage their bot. I also added the ability to run bots independently so you don’t need to have SlackSmith open, as well as allowing for you to run bots on cloud hosts. Tbh wasn’t sure how to do this at all at first, so I did do this part with AI assistance.
Added themes. Themes are easy to create and use, with the topbar and simple hex files to create your own.
Devlog 13 Tabs, tabs and more tabs! Created a tab system for bots where you can create new tabs/canvases to keep your bot and flows organised.
Devlog 13 Added block kit messages, scheduled triggers, and http requests. At first I wasn’t sure how I was going to do block kit messages to make it simple to use, but then I decided it would be best to have a visual esque builder which is what I did. Along with this, http request component has been added allowing you to get, patch, post, etc, as well as scheduled trigger being added to repeat a flow every xx minutes/seconds/hours.
Read me’s and undos!
Ships:
SlackSmith is a way to build Slack bots with no coding experience needed. Built using Electron, you drag and drop nodes after following a simple Slack setup and your bot is immediately ready. There are features like: Slash commands Scheduled events Send block kit messages HTTP requests Themes and more. Demo/trailer video is here! https://youtu.be/_7V3fs6bPT4...
|
1793404484.3210056
|
1793490884.3210056
|
|
45777
|
Virtual Piano by @EndLess9 | Stardance
|
EndLess9
|
1
|
6.0
|
22
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T02:26:38Z", "hours": 6.0, "multiplier": 3.64, "payout": 22, "blessing": "neutral", "text": "Virtual Piano: This is a digital piano that you can play on your browser. You can play it using your mouse, touchscreen, or your keyboard. Some Features: Adjustable Volume Bar: You can adjust the volume of the piano using the slider. Orange Keys: Checking this box off makes your white keys orange. Try playing: Mary had a little lamb: This given used the notes shown on the piano’s keys which are needed to play the famous song: Mary Had a Little Lamb.", "repo": "https://github.com/EndLessDude/Virtual-Piano", "demo": "https://virtualpianoendless.netlify.app/"}]...
|
[{"post_id": 53497, "ts": "202 [{"post_id": 53497, "ts": "2026-08-24T02:20:14Z", "hours": 2.46, "text": "Devlog #3 I added 2 new features and wrote my readme. Feature #1: Orange Keys By checking off this check-box the white keys in the piano simply become orange. I did this by creating new css styling for the orange keys, created a check-box using html, and then used a event listener in JS to switch the white keys css styling with the orange keys. Feature #2: Trial Song For this feature I basically created a box above the piano with the notes for the song: Mary had a little lamb. Instead of using musical notes I used the letters on the piano keys so everyone can easily play it."}, {"post_id": 52056, "ts": "2026-08-22T03:10:58Z", "hours": 2.1614, "text": "Devlog #2: Phase 1: In phase one I created the piano keys using css. Then I used html to reverse the gradient of the piano keys to make it look like they are pressed. Then I used html again to write letters on the keys. These letters will later be used to play the piano though your computer’s keyboard. Phase 2: In phase 2 I added the notes for the keys of the piano. I added the data set for each key in html which corresponds to the letter of each key. Then using javascript the corresponding sound will be played when the key is clicked using the cursor. Phase 3: In phase 3 I added event listeners in my javascript file which play the piano’s notes when you press letters on your keyboard. I also added a 150ms cool down which untoggles the active piano keys, without this the piano keys look so they are pressed down even after releasing the key."}, {"post_id": 43734, "ts": "2026-08-09T04:29:02Z", "hours": 1.4111, "text": "Devlog #1 I used html and css to create the top part of the piano which shows the header(Name of the Project), a slider which controls the volume, and a sliding checkbox that shows/hides the letters on the piano keys. Currently the letters for the piano keys are in the top part but soon when the piano keys are made they will be shown individually on the keys."}]...
|
Title: Virtual Piano by @EndLess9 | Stardance
Dev Title: Virtual Piano by @EndLess9 | Stardance
Devlogs:
Devlog #1 I used html and css to create the top part of the piano which shows the header(Name of the Project), a slider which controls the volume, and a sliding checkbox that shows/hides the letters on the piano keys. Currently the letters for the piano keys are in the top part but soon when the piano keys are made they will be shown individually on the keys.
Devlog #2: Phase 1: In phase one I created the piano keys using css. Then I used html to reverse the gradient of the piano keys to make it look like they are pressed. Then I used html again to write letters on the keys. These letters will later be used to play the piano though your computer’s keyboard. Phase 2: In phase 2 I added the notes for the keys of the piano. I added the data set for each key in html which corresponds to the letter of each key. Then using javascript the corresponding sound will be played when the key is clicked using the cursor. Phase 3: In phase 3 I added event listeners in my javascript file which play the piano’s notes when you press letters on your keyboard. I also added a 150ms cool down which untoggles the active piano keys, without this the piano keys look so they are pressed down even after releasing the key.
Devlog #3 I added 2 new features and wrote my readme. Feature #1: Orange Keys By checking off this check-box the white keys in the piano simply become orange. I did this by creating new css styling for the orange keys, created a check-box using html, and then used a event listener in JS to switch the white keys css styling with the orange keys. Feature #2: Trial Song For this feature I basically created a box above the piano with the notes for the song: Mary had a little lamb. Instead of using musical notes I used the letters on the piano keys so everyone can easily play it.
Ships:
Virtual Piano: This is a digital piano that you can play on your browser. You can play it using your mouse, touchscreen, or your keyboard. Some Features: Adjustable Volume Bar: You can adjust the volume of the piano using the slider. Orange Keys: Checking this box off makes your white keys orange. Try playing: Mary had a little lamb: This given used the notes shown on the piano’s keys which are needed to play the famous song: Mary Had a Little Lamb....
|
1793544987.6928096
|
1793631387.6928096
|
|
45790
|
brain dump by @FlawerBot | Stardance
|
FlawerBot
|
1
|
21.0
|
79
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T14:27:39Z", "hours": 21.0, "multiplier": 3.72, "payout": 79, "blessing": "neutral", "text": "This was my first project, and considering that I had zero hours of programming experience when I started, I’m really happy with the result. I learned a lot during the process. Even though I could have done better, I prefer to focus on what I learned rather than what I didn’t finish. I hope people like my project!", "repo": "https://github.com/809kane-max/pepe", "demo": "https://809kane-max.github.io/pepe/"}]...
|
[{"post_id": 49584, "ts": "202 [{"post_id": 49584, "ts": "2026-08-18T13:55:09Z", "hours": 2.9311, "text": "hello good morning, good afternoon, and good evening I´ve finished my first project and honestly, I´m not very proud of how It turned out. Because of time constraints, I decided to finish it earlier than I originally planned. I really liked the technical side of the project, but I´m not very happy with the visuals. I hope you like it, and I promise the next one will be better. bye bye"}, {"post_id": 47296, "ts": "2026-08-15T04:55:15Z", "hours": 8.2714, "text": "hello good morning, good afternoon, and good evening. in my opinion, the site is now finished on the technical side. I have implemented the streak feature, added a calendar, and fixed a few things. it took longer than expected, but for my first program, I am happy with how it turned out. Now I just need to work on the visuals because I want it to look better. GoodBye and have a wonderful day, afternoon, and evening"}, {"post_id": 44968, "ts": "2026-08-11T02:30:18Z", "hours": 10.0639, "text": "Hello—good morning, good afternoon, and good evening. This is my first project. I started it because I get distracted easily and sometimes have trouble staying organized. I usually make lists to keep everything in order, and that is where the idea came from. At first, I only wanted to create a simple list, but I kept thinking of more features, such as a streak system for completing daily tasks and a calendar for planning ahead. For the design, I used an Evangelion -inspired color palette because I really like it. My goal is to make things easier for people who have trouble staying organized and give them more motivation to complete their tasks. It is really exciting to think that people might actually use something I created."}]...
|
Title: brain dump by @FlawerBot | Stardance
Devlo Title: brain dump by @FlawerBot | Stardance
Devlogs:
Hello—good morning, good afternoon, and good evening. This is my first project. I started it because I get distracted easily and sometimes have trouble staying organized. I usually make lists to keep everything in order, and that is where the idea came from. At first, I only wanted to create a simple list, but I kept thinking of more features, such as a streak system for completing daily tasks and a calendar for planning ahead. For the design, I used an Evangelion -inspired color palette because I really like it. My goal is to make things easier for people who have trouble staying organized and give them more motivation to complete their tasks. It is really exciting to think that people might actually use something I created.
hello good morning, good afternoon, and good evening. in my opinion, the site is now finished on the technical side. I have implemented the streak feature, added a calendar, and fixed a few things. it took longer than expected, but for my first program, I am happy with how it turned out. Now I just need to work on the visuals because I want it to look better. GoodBye and have a wonderful day, afternoon, and evening
hello good morning, good afternoon, and good evening I´ve finished my first project and honestly, I´m not very proud of how It turned out. Because of time constraints, I decided to finish it earlier than I originally planned. I really liked the technical side of the project, but I´m not very happy with the visuals. I hope you like it, and I promise the next one will be better. bye bye
Ships:
This was my first project, and considering that I had zero hours of programming experience when I started, I’m really happy with the result. I learned a lot during the process. Even though I could have done better, I prefer to focus on what I learned rather than what I didn’t finish. I hope people like my project!...
|
1793544992.4395156
|
1793631392.4395156
|
|
45792
|
SlackThings by @freddie | Stardance
|
freddie
|
1
|
3.0
|
6
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T14:04:48Z", "hours": 3.0, "multiplier": 3.64, "payout": 6, "blessing": "neutral", "text": "I made a simple Slack Bolt application in Python using the Flaron API. It simply runs a request to Flaron when you eneter a sepcific command and parcing the responce so flaron can read it with simple error handeling. It’s a ‘real world’ and usable project that fixes an issue I have with bots showing up in the member count of my personal channel. Be aware the way flaron gets data with the slack api is slighly oudated but I’m unable to control this.", "repo": "https://github.com/hippogriff101/SlackThings/", "demo": "https://hackclub.enterprise.slack.com/archives/C0BPUNGESUU"}]...
|
[{"post_id": 45703, "ts": "202 [{"post_id": 45703, "ts": "2026-08-12T11:17:08Z", "hours": 0.6228, "text": "Today I threw (metaphorially) a README.md together and added a licence. It includes all details to run / host this on any machine (in theory) I did this all by hand! just a note for reviewers, i originally used main.py to write this project but renamed it to app.py as per slacks guidence so if hackatime data look meh than ig this is why 😭"}, {"post_id": 45408, "ts": "2026-08-11T20:46:13Z", "hours": 0.6956, "text": "whoops, i accidently sent before i typed anything so while coding i was in a huddle where @FreeformWave kept on drawing all over my screen 😭! I added in /thing where you can get basic bot stats and stuff I fixed some crap with channel ids and user id’s so it is smoother. copilot helped with some more regex and splicing in python finally i made it all look nice"}, {"post_id": 44800, "ts": "2026-08-10T20:14:21Z", "hours": 0.7836, "text": "So I added in /promote to bump up mcg to full members. I have no idea how the official bannana sqaud does it but this works, i think. Also worked on the counting channel stuff. then i minimally used claude to fix some bugs"}, {"post_id": 43669, "ts": "2026-08-09T02:00:33Z", "hours": 1.1033, "text": "Their is something odly chilling about working in your cold bedroom, at 3am, with music playing quietly. The threat of your folks (old spek for parents) walking in and shouting at you that makes perfect for coding. Slack has just introduced an update where channel totals now show the total member count including clankers (bots), so I built another one to fix that. (this may have been a thing for a while but i never noticed) While searching for fixes my first idea was a Slick plugin but that would be too hard for my pea brain. I was taking a gander (look) at the flaron api reference and found a GET thingy to find channel member, however you need a channel ID which is awfully difficult to get from a message, seriously, I have no clue how Slick does it. I setled on the Channel by Name one which gives me other stats I can’t be asked to toutch. It works, I used copilot to fix a random bug with json and borrowed code from another slack bot repo. This project is made to just have fun with the flaron api and find out what I can do. It also fixes a mild problem I have. I want to see the clanker free member count of my personal channle #freddies-castle (you should join frfr). This allows me to do this without opening up chrome. I have no clue how to impliment this with private channels and their may be a better wait with slack conversation api crap, but, as i said, it works more to come, their are other flaron tools we can test out, any question, advice or venting, comment it gng"}]...
|
Title: SlackThings by @freddie | Stardance
Devlog Title: SlackThings by @freddie | Stardance
Devlogs:
Their is something odly chilling about working in your cold bedroom, at 3am, with music playing quietly. The threat of your folks (old spek for parents) walking in and shouting at you that makes perfect for coding. Slack has just introduced an update where channel totals now show the total member count including clankers (bots), so I built another one to fix that. (this may have been a thing for a while but i never noticed) While searching for fixes my first idea was a Slick plugin but that would be too hard for my pea brain. I was taking a gander (look) at the flaron api reference and found a GET thingy to find channel member, however you need a channel ID which is awfully difficult to get from a message, seriously, I have no clue how Slick does it. I setled on the Channel by Name one which gives me other stats I can’t be asked to toutch. It works, I used copilot to fix a random bug with json and borrowed code from another slack bot repo. This project is made to just have fun with the flaron api and find out what I can do. It also fixes a mild problem I have. I want to see the clanker free member count of my personal channle #freddies-castle (you should join frfr). This allows me to do this without opening up chrome. I have no clue how to impliment this with private channels and their may be a better wait with slack conversation api crap, but, as i said, it works more to come, their are other flaron tools we can test out, any question, advice or venting, comment it gng
So I added in /promote to bump up mcg to full members. I have no idea how the official bannana sqaud does it but this works, i think. Also worked on the counting channel stuff. then i minimally used claude to fix some bugs
whoops, i accidently sent before i typed anything so while coding i was in a huddle where @FreeformWave kept on drawing all over my screen 😭! I added in /thing where you can get basic bot stats and stuff I fixed some crap with channel ids and user id’s so it is smoother. copilot helped with some more regex and splicing in python finally i made it all look nice
Today I threw (metaphorially) a README.md together and added a licence. It includes all details to run / host this on any machine (in theory) I did this all by hand! just a note for reviewers, i originally used main.py to write this project but renamed it to app.py as per slacks guidence so if hackatime data look meh than ig this is why 😭
Ships:
I made a simple Slack Bolt application in Python using the Flaron API. It simply runs a request to Flaron when you eneter a sepcific command and parcing the responce so flaron can read it with simple error handeling. It’s a ‘real world’ and usable project that fixes an issue I have with bots showing up in the member count of my personal channel. Be aware the way flaron gets data with the slack api is slighly oudated but I’m unable to control this....
|
1793447308.7948594
|
1793533708.7948594
|
|
45806
|
Valence - Lang by @fAILedKnight | Stardance
|
fAILedKnight
|
1
|
79.14
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T07:54:42Z", "hours": 62.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Valence! A language that connects any language! the issues… don’t even get me started! I first off hade very little understanding of rust(knew a bit of the basics well enough to start). My laptop crashed like 5 times while coding and took long time to compile heavy updates! I added a command and another command broke! I sat in front of the computer for hours and now my back hurts! I got scrutinized by people who that I should be doing better things! BUT I didn’t quit cuz after all its all for the love of the game! Finally I am still updating, my laptop still heats and melts, but I LOVE IT! And below is Valence running java and python!", "repo": "https://github.com/failedknight-exe/Valence-Lang", "demo": "https://valence.freehosting.dev/"}]...
|
[{"post_id": 76292, "ts": "202 [{"post_id": 76292, "ts": "2026-10-03T03:12:58Z", "hours": 2.2606, "text": "I HATE MY LIFE!!!! why you ask? cuz guess what? cor morph failed me! its gone dead! And guess what I find out the my vbp register got deleted when I restructured my code! and now I decided to rip cor morph out and delete it! so now I have fixed vbp.register! and yep im still sick every joint hurts but the grind doesn’t stop till i literally stop! oh and I do not think my laptop is doing too good! it burning itself its a pyromaniac!!!!"}, {"post_id": 75470, "ts": "2026-09-30T05:46:45Z", "hours": 14.8808, "text": "I am sick and have been working like a madman on the cor morph feature! idk what more to say stay tuned!"}, {"post_id": 71040, "ts": "2026-09-20T07:35:14Z", "hours": 5.3744, "text": "I made it so you can code in any language not just the ones I hardcoded!"}, {"post_id": 69408, "ts": "2026-09-17T00:15:14Z", "hours": 2.1011, "text": "Well If you lock in you can do anything… So I took it personally and decide Valence needs to level TF up. And well trust me when I say It will not disappoint! Valence before could only connect to the languages I hardcoded. That 💩 is NOT UNIVERSAL! So I decided why make it my job to link up all langs? So, I decided to give the job to the dev, BUT to be clear from my end I made it simple as HELL! and well, you now can connect to any language!"}, {"post_id": 68374, "ts": "2026-09-15T00:59:45Z", "hours": 16.6725, "text": "IT HAS BEEN A LONG TIME! and ofc i wasn’t Idle! I COOKED SO HARD THAT well… Valence(connect) now actually connects. YEP it connected to python first then I locked in and added C C++ (both these are a pain to work with on windows maybe a skill issue idk) then I integrated C# WAY EASIER cuz ofc it is builtin to windows and then Java, Rust ofc and zig (it was mainly for the compilation of C and C++ and yea) and now it officially can connect after testing it runs all the files in 13.261 ms and on the warmed up loop it ran in about 2.189 ms."}, {"post_id": 56400, "ts": "2026-08-28T04:56:13Z", "hours": 4.9431, "text": "I have successfully added async and protect it may have taken me 4 hrs but it was worth it! Connect v0.2 is out. well do to copyright issues im naming it Valence and v0.2 Memory Rush update is out! you can go to my github release and download the .exe’s and use it. but I need to document it and actually clarify syntax, but it works! sorry I’m in a rush so this devlog wasn’t as informative!"}, {"post_id": 49467, "ts": "2026-08-18T10:14:05Z", "hours": 6.0528, "text": "My laptop has failed me… I’ve been busy for the past few days with family and friends and decided to lock in again but after 2 hours of coding my laptop sputtered to a stop at first I thought it froze but then the screen went black and it stopped I couldn’t do anything after an hour of good waiting I pressed the power button and it started up again. this time I deleted all background processes this helped I later cleaned the system up even more than I usually do then I came to conclusion that it had to be related to hardware and not software so I downloaded a cpu temp reader and once I had setup what I was working with I saw my cpu reached a temp of 100+ and it then climbed to 113 and my laptops screen went black again. this time I made sure to keep system super lean and delete anything that I can use later and am not in dire need of. I then started to code again I started with string extras this allows you to truly modify and change strings. I then add a crypto extension which allows you to generate a uuid or hash or even encode and decode bas64 and so on. those were the easy parts then it came to me that I should make a cool feature so I decided to build func[auto] well make it usefull and bring trigger to life too. and with this I sadly announce that func[onetime] is no more. And I am happy to announce that Connect-Lang is extremly close to v0.2."}, {"post_id": 46730, "ts": "2026-08-14T06:09:44Z", "hours": 3.9842, "text": "For the past few devlogs it seems as if my journey was finally smoothing out. well… it was the calm before the storm. because right after I thought nothing go bad ALL WENT BAD. My laptop Crashed Yes it Crashed and then my keyboard and trackpad failed. I thought only I failed but my things fail too. So I ran to find anything to keep on working and found a working keyboard and mouse and after finding one I went back to work. I hade a easy time implementing the system integration that allows you to check you OS and everything related. and After that I wondered what would be cool and fun to have… well I wanted pain so I decide let me add Http Extension. Yes my lang can now after a painful journey of trial and error can download retrieve and interact with URL’s. I don’t even want to say what happened but either way I will go on and relive that pain to “paint a picture”. Basically I came back after my laptops tantrum to lock in and build Http but my laptop failed me. So I fixed it and I started building halfway through after build a solid structure I tested and saw that Http was existing but it wasn’t being useful. so, I thought and went in to add the stronger features, but before I knew it the addons I integrated weren’t compatible and failed miserably after talking to a few AI’s(Actual intelligence’s not artificial) to get some insight they all called me stupid and told me to stop. SO i realized I’m not just stupid I’m stupid stupid and - -=+ and that’s fine by me. SO I locked in ad went through the rust ref book and dived into my code head first and fought my way in and added in all my features. I then went ahead and tested it and it worked."}, {"post_id": 45967, "ts": "2026-08-12T19:49:42Z", "hours": 0.9403, "text": "After spending about an hour I have successfully added in date/time integration. It was very simple."}, {"post_id": 45915, "ts": "2026-08-12T18:01:11Z", "hours": 1.5136, "text": "Well my project just LEVELED UP. this level up was actually super clean and didn’t make me ball my eyes out at how I should’ve stuck to my old project. It was quite pleasant. this update allows my lang to store data in a separate file and format… json. Yep connect can now read and understand json format. It can conver data into json strings through json.stringify and can turn json strings into data."}, {"post_id": 45514, "ts": "2026-08-12T01:52:12Z", "hours": 3.2867, "text": "after testing my language heavily I came to realize my language needs an error handling system so I thought on how id implement it and after researching on what it does I added attempt, recue, and always. attempt will try running a chunk or line of code. rescue catches the error without stopping the script and shows a message. And finally always will run a block or line of code no matter what. At first try the attempt was working cuz well it just runs the could but because return wasn’t working the code showed a error in terminal after everything. so, I pondered and pondered when I finally cam e to the conclusion to change all error messages for everything to be compatible with attempt and after that it worked. P.S(CoreAi in the MyApp folder is my personal AI I will integrate into my lang, but that’s a very later feature and beta feature.)"}, {"post_id": 44693, "ts": "2026-08-10T17:05:18Z", "hours": 3.8947, "text": "After heavy testing of the summon command I came to the conclusion that I failed it. So I thought how could I make local variables stay local and not be global? so I decided to add VarAccess an identifier resolution. I then tested again just to see it fail AGAIN. SO I I thought okay why is it failing so went ahead and added in debug prints in the rust code to see what was happening and I found it parent_locals was getting popped but local_vars never got restored so summon wasn’t working because there was nothing it could summon. and before summon I added in maps and recursion but that was a very smooth workflow."}, {"post_id": 43746, "ts": "2026-08-09T05:09:47Z", "hours": 13.0456, "text": "After days of fighting procrastination and boredom. I failed. and then when I opened up my old project I failed to feel any fun. this made my concerned for I deeply love my projects. so I scrambled my brain and I realized the project was too easy and too simple it wasn’t challenging. It didn’t make me want to pull my hair out. This made me think what if I created my very own… language. I felt very challenged and so I researched and decided to use rust for my lang. And I chose rust because before I tried learning it and instead failed. So this made me feel highly motivated. I went to do what any sane human would do in my position. I went to code. Yep code without any knowledge. so that was another fail. and after deep research on rust I decided to actually learn it but use AI to boost time and I learned the basics of rust within 2 hours and after a few hundred lines of code I realized I should run it. Yep… It showed error after error after error my little kingdom crumbled to dust like the inside of my wallet. I cried myself to sleep that night and the next morning I woke up and ready to fight my laptop. and I went to my laptop and deleted the folder and created a new one and started coding and testing and after 10hrs of grueling work and an additional 7hrs researching I bring to you the very start of connect. My first rust based language."}]...
|
Title: Valence - Lang by @fAILedKnight | Stardance Title: Valence - Lang by @fAILedKnight | Stardance
Devlogs:
After days of fighting procrastination and boredom. I failed. and then when I opened up my old project I failed to feel any fun. this made my concerned for I deeply love my projects. so I scrambled my brain and I realized the project was too easy and too simple it wasn’t challenging. It didn’t make me want to pull my hair out. This made me think what if I created my very own… language. I felt very challenged and so I researched and decided to use rust for my lang. And I chose rust because before I tried learning it and instead failed. So this made me feel highly motivated. I went to do what any sane human would do in my position. I went to code. Yep code without any knowledge. so that was another fail. and after deep research on rust I decided to actually learn it but use AI to boost time and I learned the basics of rust within 2 hours and after a few hundred lines of code I realized I should run it. Yep… It showed error after error after error my little kingdom crumbled to dust like the inside of my wallet. I cried myself to sleep that night and the next morning I woke up and ready to fight my laptop. and I went to my laptop and deleted the folder and created a new one and started coding and testing and after 10hrs of grueling work and an additional 7hrs researching I bring to you the very start of connect. My first rust based language.
After heavy testing of the summon command I came to the conclusion that I failed it. So I thought how could I make local variables stay local and not be global? so I decided to add VarAccess an identifier resolution. I then tested again just to see it fail AGAIN. SO I I thought okay why is it failing so went ahead and added in debug prints in the rust code to see what was happening and I found it parent_locals was getting popped but local_vars never got restored so summon wasn’t working because there was nothing it could summon. and before summon I added in maps and recursion but that was a very smooth workflow.
after testing my language heavily I came to realize my language needs an error handling system so I thought on how id implement it and after researching on what it does I added attempt, recue, and always. attempt will try running a chunk or line of code. rescue catches the error without stopping the script and shows a message. And finally always will run a block or line of code no matter what. At first try the attempt was working cuz well it just runs the could but because return wasn’t working the code showed a error in terminal after everything. so, I pondered and pondered when I finally cam e to the conclusion to change all error messages for everything to be compatible with attempt and after that it worked. P.S(CoreAi in the MyApp folder is my personal AI I will integrate into my lang, but that’s a very later feature and beta feature.)
Well my project just LEVELED UP. this level up was actually super clean and didn’t make me ball my eyes out at how I should’ve stuck to my old project. It was quite pleasant. this update allows my lang to store data in a separate file and format… json. Yep connect can now read and understand json format. It can conver data into json strings through json.stringify and can turn json strings into data.
After spending about an hour I have successfully added in date/time integration. It was very simple.
For the past few devlogs it seems as if my journey was finally smoothing out. well… it was the calm before the storm. because right after I thought nothing go bad ALL WENT BAD. My laptop Crashed Yes it Crashed and then my keyboard and trackpad failed. I thought only I failed but my things fail too. So I ran to find anything to keep on working and found a working keyboard and mouse and after finding one I went back to work. I hade a easy time implementing the system integration that allows you to check you OS and everything related. and After that I wondered what would be cool and fun to have… well I wanted pain so I decide let me add Http Extension. Yes my lang can now after a painful journey of trial and error can download retrieve and interact with URL’s. I don’t even want to say what happened but either way I will go on and relive that pain to “paint a picture”. Basically I came back after my laptops tantrum to lock in and build Http but my laptop failed me. So I fixed it and I started building halfway through after build a solid structure I tested and saw that Http was existing but it wasn’t being useful. so, I thought and went in to add the stronger features, but before I knew it the addons I integrated weren’t compatible and failed miserably after talking to a few AI’s(Actual intelligence’s not artificial) to get some insight they all called me stupid and told me to stop. SO i realized I’m not just stupid I’m stupid stupid and - -=+ and that’s fine by me. SO I locked in ad went through the rust ref book and dived into my code head first and fought my way in and added in all my features. I then went ahead and tested it and it worked.
My laptop has failed me… I’ve been busy for the past few days with family and friends and decided to lock in again but after 2 hours of coding my laptop sputtered to a stop at first I thought it froze but then the screen went black and it stopped I couldn’t do anything after an hour of good waiting I pressed the power button and it started up again. this time I deleted all background processes this helped I later cleaned the system up even more than I usually do then I came to conclusion that it had to be related to hardware and not software so I downloaded a cpu temp reader and once I had setup what I was working with I saw my cpu reached a temp of 100+ and it then climbed to 113 and my laptops screen went black again. this time I made sure to keep system super lean and delete anything that I can use later and am not in dire need of. I then started to code again I started with string extras this allows you to truly modify and change strings. I then add a crypto extension which allows you to generate a uuid or hash or even encode and decode bas64 and so on. those were the easy parts then it came to me that I should make a cool feature so I decided to build func[auto] well make it usefull and bring trigger to life too. and with this I sadly announce that func[onetime] is no more. And I am happy to announce that Connect-Lang is extremly close to v0.2.
I have successfully added async and protect it may have taken me 4 hrs but it was worth it! Connect v0.2 is out. well do to copyright issues im naming it Valence and v0.2 Memory Rush update is out! you can go to my github release and download the .exe’s and use it. but I need to document it and actually clarify syntax, but it works! sorry I’m in a rush so this devlog wasn’t as informative!
IT HAS BEEN A LONG TIME! and ofc i wasn’t Idle! I COOKED SO HARD THAT well… Valence(connect) now actually connects. YEP it connected to python first then I locked in and added C C++ (both these are a pain to work with on windows maybe a skill issue idk) then I integrated C# WAY EASIER cuz ofc it is builtin to windows and then Java, Rust ofc and zig (it was mainly for the compilation of C and C++ and yea) and now it officially can connect after testing it runs all the files in 13.261 ms and on the warmed up loop it ran in about 2.189 ms.
Well If you lock in you can do anything… So I took it personally and decide Valence needs to level TF up. And well trust me when I say It will not disappoint! Valence before could only connect to the languages I hardcoded. That 💩 is NOT UNIVERSAL! So I decided why make it my job to link up all langs? So, I decided to give the job to the dev, BUT to be clear from my end I made it simple as HELL! and well, you now can connect to any language!
I made it so you can code in any language not just the ones I hardcoded!
I am sick and have been working like a madman on the cor morph feature! idk what more to say stay tuned!
I HATE MY LIFE!!!! why you ask? cuz guess what? cor morph failed me! its gone dead! And guess what I find out the my vbp register got deleted when I restructured my code! and now I decided to rip cor morph out and delete it! so now I have fixed vbp.register! and yep im still sick every joint hurts but the grind doesn’t stop till i literally stop! oh and I do not think my laptop is doing too good! it burning itself its a pyromaniac!!!!
Ships:
I made Valence! A language that connects any language! the issues… don’t even get me started! I first off hade very little understanding of rust(knew a bit of the basics well enough to start). My laptop crashed like 5 times while coding and took long time to compile heavy updates! I added a command and another command broke! I sat in front of the computer for hours and now my back hurts! I got scrutinized by people who that I should be doing better things! BUT I didn’t quit cuz after all its all for the love of the game! Finally I am still updating, my laptop still heats and melts, but I LOVE IT! And below is Valence running java and python!...
|
1793346664.9133017
|
1793433064.9133017
|
|
45808
|
spencer page by @Spencer55 | Stardance
|
Spencer55
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T06:45:13Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my own personal website with only a little bit of coding experince! I enjotyed adding the html but i struggled with formatting with the CSS. I am happy with my code and site.", "repo": "https://github.com/KATTO-GG/Spencer-site/", "demo": "https://katto-gg.github.io/Spencer-site/"}]...
|
[{"post_id": 43784, "ts": "202 [{"post_id": 43784, "ts": "2026-08-09T06:43:50Z", "hours": 0.3742, "text": "finished adding css code and html formatting"}, {"post_id": 43740, "ts": "2026-08-09T04:53:29Z", "hours": 0.5644, "text": "adding customization and css! ive been working on adding a background and doing it all by my self"}, {"post_id": 43711, "ts": "2026-08-09T03:52:43Z", "hours": 0.3433, "text": "adding lots of cool css to the site!"}]...
|
Title: spencer page by @Spencer55 | Stardance
Dev Title: spencer page by @Spencer55 | Stardance
Devlogs:
adding lots of cool css to the site!
adding customization and css! ive been working on adding a background and doing it all by my self
finished adding css code and html formatting
Ships:
I made my own personal website with only a little bit of coding experince! I enjotyed adding the html but i struggled with formatting with the CSS. I am happy with my code and site....
|
1793494370.9846795
|
1793580770.9846795
|
|
45810
|
Dunmere - Grave Descent by @Cassetu | Stardance
|
Cassetu
|
1
|
16.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T01:28:27Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Dunmere - Grave Descent First Person 3D Roguelite dungeon crawler Features Dungeon rooms. 1 Boss fight Shop room. Permanent upgrades (carries over runs) To play Simply go to the itch page, download the windows .exe, and run it. If windows defender stops it, simply click details and ignore. Its not a virus, the source code can also be viewed. I can’t make this any easier for you because the web version is incapable of running the complex 3d models and processing power to run the game. Thanks for trying it out! Disclaimers Because this project uses 3d models that require attribution, please view the credits.md file in the zip provided to see where all the models come from. Source Code: https://github.com/Cassetu/GraveDescent3D Itch Page: https://cassetu.itch.io/dunmere", "repo": "https://github.com/Cassetu/GraveDescent3D", "demo": "https://cassetu.itch.io/dunmere"}]...
|
[{"post_id": 70921, "ts": "202 [{"post_id": 70921, "ts": "2026-09-20T01:22:14Z", "hours": 2.6186, "text": "9-19-26 Forgot to upload a devlog for these hours, imma do it now. Tested out an archway thing to add more wall detail, scrapped it cuz it caused a lot of lag and looked not that great. Adjusted boss cutscene and decorations. I wanted more up and down movement, so i added a room with stairs and a higher ceiling. Enemies don’t really work with the stairs yet."}, {"post_id": 54852, "ts": "2026-08-26T01:02:18Z", "hours": 4.6742, "text": "8-25-26 I almost got a heart attack when my godot crashed, but luckily i was able to somehow reload the changes i made from the disk or smth. I added a new maze room (look at image) its got these columns and is twice as large as my previous largest room. I think i prefer these large rooms to my older more straightforward rooms, because it feels more expansive, and like you’re actually exploring a massive forgotten dungeon. I still plan to change the between room trigger from a Area3D enter to an interaction using the “e” button, the same way the first door works.But i haven’t gotten around to doing it yet. Also my health doesn’t reset properly when you respawn, so you end up at 0 health, while alive, after respawning. I also am planning a system for the game lore, after every bossfight, once you go through the door there, it will fade to one letter. I won’t spoil the story i have, but every bossfight will have one letter at the end that connects to a larger overarching story. I updated the save system so you can exit from the pause menu, the continue button works properly, and the save system works like this: Save at every new room entry bruh i feel like there is more too it but its rly just that. Thanks for reading this! Leave a suggestion to help me out :D"}, {"post_id": 44891, "ts": "2026-08-10T22:53:09Z", "hours": 6.7236, "text": "8-10-26 Added a decoration pass across the dungeon rooms: rugs, banners, bones, roman coins, crates and boxes, plus wall lustres and chandeliers in the boss room. The boss now has a table, throne, and seating. New enemy assets came in too, a scourger and a ghoul (not implemented yet but there) alongside a shader fix so the chaos boss stops looking so shiny, also the beast was looking shiny too so i changed that. HUD got reordered and the damage effect layer is visible instead of hidden cuz i accidentaly forgot to turn it back on while making the ui for consumables. Turned on occlusion culling project wide (i forgot to do that earlier oops) and refreshed the baked room and voxel data to match. Dying now actually saves the removed shards and upgrades before kicking you back to the hub so you don’t keep em. 8-9-26 Built out a full shop room: a shopkeeper NPC you can interact with, a shop menu for buying permanent upgrades and consumables (health potions, vigor draughts), a new HUD panel showing consumable counts with hotkeys, and an altar script that autoplays and loops its clip so the shopkeeper floats around a bit.The shopkeeper is this ghost looking guy. Also fixed barrel hurtboxes and their collision naming in the boss room since the particle system wasn’t working, moved the player’s starting position, and squashed a couple of typos hooray. I still have to fix bugs with my damage effect layer causing my blur and vignette thing to cover the hud, also the enemy ai is a bit scuffed still, and the gui sucks tbh,oh also i darkened the torches"}, {"post_id": 43702, "ts": "2026-08-09T03:28:30Z", "hours": 1.5156, "text": "First Devlog One thing to note, I have been working on this project earlier before starting stardance, so expect an offset in the hours and content made at the beginning. Grave Descent (working title Dunmere) currently has a hub room with an upgrade altar and a dungeon door leading into procedurally picked rooms per depth, capped off by a boss room with an intro cutscene that blends from a scripted camera into the player’s own view. The player has melee sword combat, blocking, rolling, and a basic interaction system, and there are four enemy types built out (a beast, a skeleton gladiator, a monstrosity, and the Chaos boss) each with their own animation and attack states. Progress is tracked through a GameManager autoload handling souls, shards, HP, and unlocked upgrades, which reads and writes to a save file so a run can be continued later. There’s a main menu now too, with new run, continue, and quit, a confirmation prompt before overwriting an existing save, and a live 3D view of the hub room rendering behind the UI instead of a flat background. 8-8-26"}]...
|
Title: Dunmere - Grave Descent by @Cassetu | Stard Title: Dunmere - Grave Descent by @Cassetu | Stardance
Devlogs:
First Devlog One thing to note, I have been working on this project earlier before starting stardance, so expect an offset in the hours and content made at the beginning. Grave Descent (working title Dunmere) currently has a hub room with an upgrade altar and a dungeon door leading into procedurally picked rooms per depth, capped off by a boss room with an intro cutscene that blends from a scripted camera into the player’s own view. The player has melee sword combat, blocking, rolling, and a basic interaction system, and there are four enemy types built out (a beast, a skeleton gladiator, a monstrosity, and the Chaos boss) each with their own animation and attack states. Progress is tracked through a GameManager autoload handling souls, shards, HP, and unlocked upgrades, which reads and writes to a save file so a run can be continued later. There’s a main menu now too, with new run, continue, and quit, a confirmation prompt before overwriting an existing save, and a live 3D view of the hub room rendering behind the UI instead of a flat background. 8-8-26
8-10-26 Added a decoration pass across the dungeon rooms: rugs, banners, bones, roman coins, crates and boxes, plus wall lustres and chandeliers in the boss room. The boss now has a table, throne, and seating. New enemy assets came in too, a scourger and a ghoul (not implemented yet but there) alongside a shader fix so the chaos boss stops looking so shiny, also the beast was looking shiny too so i changed that. HUD got reordered and the damage effect layer is visible instead of hidden cuz i accidentaly forgot to turn it back on while making the ui for consumables. Turned on occlusion culling project wide (i forgot to do that earlier oops) and refreshed the baked room and voxel data to match. Dying now actually saves the removed shards and upgrades before kicking you back to the hub so you don’t keep em. 8-9-26 Built out a full shop room: a shopkeeper NPC you can interact with, a shop menu for buying permanent upgrades and consumables (health potions, vigor draughts), a new HUD panel showing consumable counts with hotkeys, and an altar script that autoplays and loops its clip so the shopkeeper floats around a bit.The shopkeeper is this ghost looking guy. Also fixed barrel hurtboxes and their collision naming in the boss room since the particle system wasn’t working, moved the player’s starting position, and squashed a couple of typos hooray. I still have to fix bugs with my damage effect layer causing my blur and vignette thing to cover the hud, also the enemy ai is a bit scuffed still, and the gui sucks tbh,oh also i darkened the torches
8-25-26 I almost got a heart attack when my godot crashed, but luckily i was able to somehow reload the changes i made from the disk or smth. I added a new maze room (look at image) its got these columns and is twice as large as my previous largest room. I think i prefer these large rooms to my older more straightforward rooms, because it feels more expansive, and like you’re actually exploring a massive forgotten dungeon. I still plan to change the between room trigger from a Area3D enter to an interaction using the “e” button, the same way the first door works.But i haven’t gotten around to doing it yet. Also my health doesn’t reset properly when you respawn, so you end up at 0 health, while alive, after respawning. I also am planning a system for the game lore, after every bossfight, once you go through the door there, it will fade to one letter. I won’t spoil the story i have, but every bossfight will have one letter at the end that connects to a larger overarching story. I updated the save system so you can exit from the pause menu, the continue button works properly, and the save system works like this: Save at every new room entry bruh i feel like there is more too it but its rly just that. Thanks for reading this! Leave a suggestion to help me out :D
9-19-26 Forgot to upload a devlog for these hours, imma do it now. Tested out an archway thing to add more wall detail, scrapped it cuz it caused a lot of lag and looked not that great. Adjusted boss cutscene and decorations. I wanted more up and down movement, so i added a room with stairs and a higher ceiling. Enemies don’t really work with the stairs yet.
Ships:
Dunmere - Grave Descent First Person 3D Roguelite dungeon crawler Features Dungeon rooms. 1 Boss fight Shop room. Permanent upgrades (carries over runs) To play Simply go to the itch page, download the windows .exe, and run it. If windows defender stops it, simply click details and ignore. Its not a virus, the source code can also be viewed. I can’t make this any easier for you because the web version is incapable of running the complex 3d models and processing power to run the game. Thanks for trying it out! Disclaimers Because this project uses 3d models that require attribution, please view the credits.md file in the zip provided to see where all the models come from. Source Code: https://github.com/Cassetu/GraveDescent3D Itch Page: https://cassetu.itch.io/dunmere...
|
1793346666.1659942
|
1793433066.1659942
|
|
45845
|
NINJAPAD by @ritvikgrandhi | Stardance
|
ritvikgrandhi
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-25T02:54:40Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "The NinjaPad: The only macropad based on Ninjago. It has 9 keys and a rotary encoder, letting me type numbers and adjust my volume. I wanted to make something inspired by one of my favorite characters, and I’m really happy with how it turned out! This was a fun project to bring to life from an idea, and I’m excited to have it finally shipped. Eventually, I will change the keymap so that it can do some useful things, but as of right now, I’ll keep it this way. For the video on the design process, look at this video: https://www.youtube.com/watch?v=FO7RWctOAWQ (The button has the physical project demo) Huge thanks to Stardance Hack Club for making projects like this possible!", "repo": "https://github.com/ritvikgrandhi-hue/HACKPAD", "demo": ""}]...
|
[{"post_id": 82507, "ts": "202 [{"post_id": 82507, "ts": "2026-10-25T01:58:01Z", "hours": 1.0633, "text": "I Got it to Work! Sorry that I haven’t been keeping tabs on this project for a long time, but I finally fixed the problems! After salvaging the parts from my mistake last time, I prototyped with a breadboard, where I realized that the problem wasn’t with the hardware, but with the software. Turns out I designated the wrong GPIO pins to the components on the PCB. After figuring that out, I soldered everything onto a spare PCB, put it in my 3D printed case, plugged it in, and it now works! The volume control and keys work, although the functions are a bit funky, but sadly, I couldn’t salvage the OLED, and so there is an empty green space in that area. Other than that, it looks amazing!"}, {"post_id": 67794, "ts": "2026-09-14T01:21:48Z", "hours": 1.3933, "text": "MAJOR UPDATE Long Story Short: I messed up some of the components. So I recently got the materials for my hackpad, which was nice, and I immediately got to work on it. The first problem I encountered was my PCB design. I messed up the diode footprint, and ended up with surface-mounted pads for through-hole diodes, which has horrible structural integrity when you solder them together. However, since I can’t afford to get more PCBs, I had to make do with the 5 copies that I had. My first soldering job was fine, I added all of the components, did the diodes last, and ripped out the pads :(. However, I did end up hand-soldering three of them, and so i flashed my software to the RP2040 to see if any of those keys worked. To my disappointment, none of them worked, and I even switched around the orientation of the diodes about 3 times! Then came the worst part: DESOLDERING. I took out the keys fairly easily, but I had to sacrifice one rotary encoder(which was fine because the pack comes with two). Sadly, the two parts I needed most, the OLED and the RP2040, were stuck!! I managed to take both of them out in the end(didn’t record the time) and ended up ripping out pads on the rp2040 and burning up the OLED. Oh yeah, and I also had to demolish the PCB to get them free? For now, I’m getting a new RP2040, but I probably can’t procure another OLED. So once my parts arrive, I’ll have to experiment on a breadboard😭. Look at my mishaps below, and hopefully you’ll see it working soon."}, {"post_id": 59761, "ts": "2026-09-01T18:08:16Z", "hours": 0.3, "text": "CAD EDIT: Created spacers between the body and the pcb within the case"}, {"post_id": 46529, "ts": "2026-08-13T20:24:14Z", "hours": 0.9731, "text": "QMK FIRMWARE: So for today, I finished the CAD Design, including minor fixes. However, the core part that I completed was configuring my macropad to QMK. Also, I finally decided on a name, the NINJAPAD! Anyway, that’s it for now, so stay tuned! Just have to fix my github repo and make production files."}, {"post_id": 46106, "ts": "2026-08-13T02:53:37Z", "hours": 2.2842, "text": "CAD DESIGN: Well, I finally decided on a theme of my hackpad, like I said before, and its Ninjago! It’s been a huge part of my childhood since I was little, so it was the perfect theme for my personal hackpad. The color scheme and easter eggs are largely based on Kai(a character from the show), and incorporated the rest of my pcb around it. The case itself has 2 layers: the bottom one holds the pcb in place, while the top is the cover as seen here. Although, it still isn’t quite finished yet, because I will eventually change the default knob I put. Plus, I accidentally forgot to record some of the time it took, so I’m only logging 2 hours. Anyway, stay tuned!"}, {"post_id": 45491, "ts": "2026-08-12T00:53:15Z", "hours": 2.9786, "text": "TIME FOR THE REAL HACKPAD: Sorry I haven’t posted a devlog in a while, but I have fully completed the default keyboard, and am now working to make this thing my own. Currently, i have finished the schematic and PCB of my design, but it has a generic 3x3 matrix of switches, while having a rotary encoder and OLED display on the side(the ones included in the kit). Although I won’t reveal it yet, because you’ll see it in the design, I have finally thought of a theme for the design and I am very excited to start getting to work on it! Stay tuned for the CAD. EDIT: Forgot to record the time for this, but i rearranged the parts for a little more wiggle room and I also put in mounting holes."}, {"post_id": 44197, "ts": "2026-08-09T20:06:38Z", "hours": 0.5169, "text": "Hey guys, this is my second project/mission, which is my Hackpad. I’m currently following the guide on how to make the default hackpad, and I’ve just finished the Schematics and PCB of it. Stay Tuned!"}]...
|
Title: NINJAPAD by @ritvikgrandhi | Stardance
Dev Title: NINJAPAD by @ritvikgrandhi | Stardance
Devlogs:
Hey guys, this is my second project/mission, which is my Hackpad. I’m currently following the guide on how to make the default hackpad, and I’ve just finished the Schematics and PCB of it. Stay Tuned!
TIME FOR THE REAL HACKPAD: Sorry I haven’t posted a devlog in a while, but I have fully completed the default keyboard, and am now working to make this thing my own. Currently, i have finished the schematic and PCB of my design, but it has a generic 3x3 matrix of switches, while having a rotary encoder and OLED display on the side(the ones included in the kit). Although I won’t reveal it yet, because you’ll see it in the design, I have finally thought of a theme for the design and I am very excited to start getting to work on it! Stay tuned for the CAD. EDIT: Forgot to record the time for this, but i rearranged the parts for a little more wiggle room and I also put in mounting holes.
CAD DESIGN: Well, I finally decided on a theme of my hackpad, like I said before, and its Ninjago! It’s been a huge part of my childhood since I was little, so it was the perfect theme for my personal hackpad. The color scheme and easter eggs are largely based on Kai(a character from the show), and incorporated the rest of my pcb around it. The case itself has 2 layers: the bottom one holds the pcb in place, while the top is the cover as seen here. Although, it still isn’t quite finished yet, because I will eventually change the default knob I put. Plus, I accidentally forgot to record some of the time it took, so I’m only logging 2 hours. Anyway, stay tuned!
QMK FIRMWARE: So for today, I finished the CAD Design, including minor fixes. However, the core part that I completed was configuring my macropad to QMK. Also, I finally decided on a name, the NINJAPAD! Anyway, that’s it for now, so stay tuned! Just have to fix my github repo and make production files.
CAD EDIT: Created spacers between the body and the pcb within the case
MAJOR UPDATE Long Story Short: I messed up some of the components. So I recently got the materials for my hackpad, which was nice, and I immediately got to work on it. The first problem I encountered was my PCB design. I messed up the diode footprint, and ended up with surface-mounted pads for through-hole diodes, which has horrible structural integrity when you solder them together. However, since I can’t afford to get more PCBs, I had to make do with the 5 copies that I had. My first soldering job was fine, I added all of the components, did the diodes last, and ripped out the pads :(. However, I did end up hand-soldering three of them, and so i flashed my software to the RP2040 to see if any of those keys worked. To my disappointment, none of them worked, and I even switched around the orientation of the diodes about 3 times! Then came the worst part: DESOLDERING. I took out the keys fairly easily, but I had to sacrifice one rotary encoder(which was fine because the pack comes with two). Sadly, the two parts I needed most, the OLED and the RP2040, were stuck!! I managed to take both of them out in the end(didn’t record the time) and ended up ripping out pads on the rp2040 and burning up the OLED. Oh yeah, and I also had to demolish the PCB to get them free? For now, I’m getting a new RP2040, but I probably can’t procure another OLED. So once my parts arrive, I’ll have to experiment on a breadboard😭. Look at my mishaps below, and hopefully you’ll see it working soon.
I Got it to Work! Sorry that I haven’t been keeping tabs on this project for a long time, but I finally fixed the problems! After salvaging the parts from my mistake last time, I prototyped with a breadboard, where I realized that the problem wasn’t with the hardware, but with the software. Turns out I designated the wrong GPIO pins to the components on the PCB. After figuring that out, I soldered everything onto a spare PCB, put it in my 3D printed case, plugged it in, and it now works! The volume control and keys work, although the functions are a bit funky, but sadly, I couldn’t salvage the OLED, and so there is an empty green space in that area. Other than that, it looks amazing!
Ships:
The NinjaPad: The only macropad based on Ninjago. It has 9 keys and a rotary encoder, letting me type numbers and adjust my volume. I wanted to make something inspired by one of my favorite characters, and I’m really happy with how it turned out! This was a fun project to bring to life from an idea, and I’m excited to have it finally shipped. Eventually, I will change the keymap so that it can do some useful things, but as of right now, I’ll keep it this way. For the video on the design process, look at this video: https://www.youtube.com/watch?v=FO7RWctOAWQ (The button has the physical project demo) Huge thanks to Stardance Hack Club for making projects like this possible!...
|
1793458480.676138
|
1793544880.676138
|
|
45864
|
My site by @ish | Stardance
|
ish
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T12:00:16Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Fixed some grammatical and spelling errors. Again, exited to upgrade the site as time goes on and I make new projects. If u find anything that needs fixing please contact me!", "repo": "https://github.com/Ish-in/Ish-s-site-", "demo": "https://ish-in.github.io/Ish-s-site-/"}]...
|
[{"post_id": 43809, "ts": "202 [{"post_id": 43809, "ts": "2026-08-09T07:34:08Z", "hours": 0.385, "text": "Finished the basics of the site! as you could probably see from the title, the skeletons of my site have been created, ticking all criteria of this project. however, this will be worked upon in the future as my skills progress, and will hopefully act as an portfolio for anything i do"}]...
|
Title: My site by @ish | Stardance
Devlogs:
Finis Title: My site by @ish | Stardance
Devlogs:
Finished the basics of the site! as you could probably see from the title, the skeletons of my site have been created, ticking all criteria of this project. however, this will be worked upon in the future as my skills progress, and will hopefully act as an portfolio for anything i do
Ships:
Fixed some grammatical and spelling errors. Again, exited to upgrade the site as time goes on and I make new projects. If u find anything that needs fixing please contact me!...
|
1793501301.1732144
|
1793587701.1732144
|
|
45870
|
KuboOS by @AkshatBansal | Stardance
|
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T10:53:49Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "KuboOS is my very first webOS, due to having experience with HTML, CSS and Javascript making this turned out easier than it seemed! I am mostly proud about how the webOS is looking.", "repo": "https://github.com/akshatbansaltech/KuboOS", "demo": "https://akshatbansaltech.github.io/KuboOS/"}]...
|
[{"post_id": 43899, "ts": "202 [{"post_id": 43899, "ts": "2026-08-09T10:50:12Z", "hours": 0.3811, "text": "Lockscreen code"}, {"post_id": 43878, "ts": "2026-08-09T10:10:10Z", "hours": 0.2814, "text": "THE WALLPAPER"}, {"post_id": 43865, "ts": "2026-08-09T09:49:01Z", "hours": 0.2856, "text": "they be teaching them basics ;)"}, {"post_id": 43772, "ts": "2026-08-09T06:19:12Z", "hours": 0.2939, "text": "just started won’t take much time to look better!"}]...
|
Title: KuboOS by @AkshatBansal | Stardance
Devlog Title: KuboOS by @AkshatBansal | Stardance
Devlogs:
just started won’t take much time to look better!
they be teaching them basics ;)
THE WALLPAPER
Lockscreen code
Ships:
KuboOS is my very first webOS, due to having experience with HTML, CSS and Javascript making this turned out easier than it seemed! I am mostly proud about how the webOS is looking....
|
1793501306.8601792
|
1793587706.8601792
|
|
45871
|
Rocket Calculator by @edris | Stardance
|
edris
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-10T03:54:09Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a model rocket simulator/graph maker, where you can change various different variables to see a different graph each time, showing max apogee, velocity, mass and acceleration. This project was a difficult task for me because of the debugging required for this project, it was very annoying because it kept on teasing me that it will work.", "repo": "https://github.com/lotus-png/Rocket-Graph-Maker", "demo": "https://lotus-png.github.io/Rocket-Graph-Maker/"}]...
|
[{"post_id": 44358, "ts": "202 [{"post_id": 44358, "ts": "2026-08-10T02:05:10Z", "hours": 1.3975, "text": "working on debugging a rocket calculator"}]...
|
Title: Rocket Calculator by @edris | Stardance
De Title: Rocket Calculator by @edris | Stardance
Devlogs:
working on debugging a rocket calculator
Ships:
I made a model rocket simulator/graph maker, where you can change various different variables to see a different graph each time, showing max apogee, velocity, mass and acceleration. This project was a difficult task for me because of the debugging required for this project, it was very annoying because it kept on teasing me that it will work....
|
1793501325.544652
|
1793587725.544652
|
|
45873
|
MorphOS by @Ommprakash | Stardance
|
Ommprakash
|
1
|
7.27
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T00:36:55Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a WebOS based on the mission guidelines of WebOS 1. The most challenging part was to make the window of apps dragable and resizable.", "repo": "https://github.com/ommprakash3102-dev/MorphOS", "demo": "https://morph-os-pi.vercel.app/"}]...
|
[{"post_id": 53678, "ts": "202 [{"post_id": 53678, "ts": "2026-08-24T10:57:06Z", "hours": 0.2703, "text": "Sup, I added a web browser and Files app to the web-os. When you will open the web-browser, it will show you a example.com page, then when you will type any url it will open that url in youre browser, and in the files app ypu can save and download the text file created in notes app. (You can also write a text file in that files app)"}, {"post_id": 53447, "ts": "2026-08-24T00:28:12Z", "hours": 1.7044, "text": "#Devlog6 Hey Guys, Its morning right now and I have completed My MorphOS#. It’s Live now you chack it out on this link “ https://morph-os-pi.vercel.app/ ”"}, {"post_id": 52396, "ts": "2026-08-22T14:49:56Z", "hours": 1.0389, "text": "#Devlog5 Hi, I was a tough week in school, so I couldn’t do a lot but; still this is the desktop. It’s not ready, I’m gonna add more apps, and setting and ship it today."}, {"post_id": 50963, "ts": "2026-08-20T13:07:54Z", "hours": 1.3917, "text": "#Devlog4 Hi, my friends (  ̄︶ ̄* ) ) . Sorry for not giving you an update on the desktop the previous night. But no worries😉 ; this afternoon, I animated and added a boot screen or loading screen to MorphOS and also A topbar to the desktop 😎. I planned the boot animation using GitHub Copilot and then implemented the exact idea in the code and got the animated boot screen. It took me almost 1 and a half hours!!!."}, {"post_id": 50454, "ts": "2026-08-19T16:49:39Z", "hours": 1.8914, "text": "#Devlog 3 Hey, I just started working on the desktop, you’ll see the design in 1-2hrs, stay tuned. Tommorrow I’ll add the apps then some Java Script. And done"}, {"post_id": 46393, "ts": "2026-08-13T15:56:01Z", "hours": 0.4936, "text": "#Devlog2 Hi, I was working on my other projects, so I couldn’t work on my WebOS for 4 days. BTW, the welcome screen is done but looks a bit AI-slop, so I’ll change that, and the desktop is coming soon. Stay tuned for more updates"}, {"post_id": 44019, "ts": "2026-08-09T14:49:07Z", "hours": 0.7039, "text": "#Devlog 1 I’ve started working on my web-based OS; I named it Morph OS, as it is going to have mostly Morphims effects. (Especially Glass Morphism). This is the logo. I’m working on the Desktop and apps, and it will live as a web os soon"}]...
|
Title: MorphOS by @Ommprakash | Stardance
Devlogs Title: MorphOS by @Ommprakash | Stardance
Devlogs:
#Devlog 1 I’ve started working on my web-based OS; I named it Morph OS, as it is going to have mostly Morphims effects. (Especially Glass Morphism). This is the logo. I’m working on the Desktop and apps, and it will live as a web os soon
#Devlog2 Hi, I was working on my other projects, so I couldn’t work on my WebOS for 4 days. BTW, the welcome screen is done but looks a bit AI-slop, so I’ll change that, and the desktop is coming soon. Stay tuned for more updates
#Devlog 3 Hey, I just started working on the desktop, you’ll see the design in 1-2hrs, stay tuned. Tommorrow I’ll add the apps then some Java Script. And done
#Devlog4 Hi, my friends (  ̄︶ ̄* ) ) . Sorry for not giving you an update on the desktop the previous night. But no worries😉 ; this afternoon, I animated and added a boot screen or loading screen to MorphOS and also A topbar to the desktop 😎. I planned the boot animation using GitHub Copilot and then implemented the exact idea in the code and got the animated boot screen. It took me almost 1 and a half hours!!!.
#Devlog5 Hi, I was a tough week in school, so I couldn’t do a lot but; still this is the desktop. It’s not ready, I’m gonna add more apps, and setting and ship it today.
#Devlog6 Hey Guys, Its morning right now and I have completed My MorphOS#. It’s Live now you chack it out on this link “ https://morph-os-pi.vercel.app/ ”
Sup, I added a web browser and Files app to the web-os. When you will open the web-browser, it will show you a example.com page, then when you will type any url it will open that url in youre browser, and in the files app ypu can save and download the text file created in notes app. (You can also write a text file in that files app)
Ships:
I made a WebOS based on the mission guidelines of WebOS 1. The most challenging part was to make the window of apps dragable and resizable....
|
1793324842.4852142
|
1793411242.4852142
|
|
45886
|
DeskPet by @Cherish9 | Stardance
|
Cherish9
|
1
|
7.08
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T14:27:53Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Building a smart “DeskPet” companion with Arduino & Python! It tracks my daily water intake, monitors room temperature and humidity to tell me when to open a window, and keeps my desk healthy.", "repo": "https://github.com/Cherish-everything/DeskPet-A-well-being-assistant", "demo": ""}]...
|
[{"post_id": 76106, "ts": "202 [{"post_id": 76106, "ts": "2026-10-02T10:22:33Z", "hours": 1.9503, "text": "Build an enclosure on freecad! Honestly it was my first time building an enclosure with the pcb model, it wasn’t too bad actually. And I’m getting used to cad now. My next update would be probably cleaning up my code and organizing my repository for this"}, {"post_id": 75830, "ts": "2026-10-01T08:53:01Z", "hours": 1.1331, "text": "I’m working on a schematic for deskpet, this is like my second PCB design project, next session I will work on the pcb itself!"}, {"post_id": 50326, "ts": "2026-08-19T14:26:25Z", "hours": 0.31, "text": "Just logging the time I spent debugging a bit and documenting the project for the demo video"}, {"post_id": 47404, "ts": "2026-08-15T10:00:45Z", "hours": 1.3736, "text": "I’m finalizing my deskpet v1: just a simple working prototype since this project is intended as a learning project so I won’t expand on it too much. Today I got it to take water intake logs through a button you press and it reminds you to open a window or drink water while you’re working. Initially wanted to add a screen but I ran out of jumper wires:/ Flipping hell I missspelled deskpet on lapse so the hardware part isn’t recorded aka about 15 minutes of me debugging a button only to find out it was faulty"}, {"post_id": 44463, "ts": "2026-08-10T07:13:46Z", "hours": 1.0239, "text": "Tried adding music to the buzzer lol and added a water sensor to remind to drink"}, {"post_id": 43814, "ts": "2026-08-09T07:47:40Z", "hours": 0.9183, "text": "The code + prototype circuit. My first time using these sensors for an actual project!"}]...
|
Title: DeskPet by @Cherish9 | Stardance
Devlogs:
Title: DeskPet by @Cherish9 | Stardance
Devlogs:
The code + prototype circuit. My first time using these sensors for an actual project!
Tried adding music to the buzzer lol and added a water sensor to remind to drink
I’m finalizing my deskpet v1: just a simple working prototype since this project is intended as a learning project so I won’t expand on it too much. Today I got it to take water intake logs through a button you press and it reminds you to open a window or drink water while you’re working. Initially wanted to add a screen but I ran out of jumper wires:/ Flipping hell I missspelled deskpet on lapse so the hardware part isn’t recorded aka about 15 minutes of me debugging a button only to find out it was faulty
Just logging the time I spent debugging a bit and documenting the project for the demo video
I’m working on a schematic for deskpet, this is like my second PCB design project, next session I will work on the pcb itself!
Build an enclosure on freecad! Honestly it was my first time building an enclosure with the pcb model, it wasn’t too bad actually. And I’m getting used to cad now. My next update would be probably cleaning up my code and organizing my repository for this
Ships:
Building a smart “DeskPet” companion with Arduino & Python! It tracks my daily water intake, monitors room temperature and humidity to tell me when to open a window, and keeps my desk healthy....
|
1793324859.1231637
|
1793411259.1231637
|
|
45893
|
Mission: Europa by @curnio | Stardance
|
curnio
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-15T07:20:48Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hey, I make a website about europa clipper mission, though I had made many websites in the past, but its is the first website I have hosted.I had used firebase to delply it and node.js to build it.I wanted to use gbl model instead of those static pictures I know that it was going to be difficult, and I was just going to give up after and but when the rope was just going to break, It finally worked!", "repo": "https://github.com/Nilebong/mission_europa", "demo": "https://mission-europa.web.app/"}]...
|
[{"post_id": 46790, "ts": "202 [{"post_id": 46790, "ts": "2026-08-14T09:19:14Z", "hours": 5.79, "text": "Hey, just finished my first ever hosted website on the Europa Clipper mission, i wanted to use the glb model so I try to do it , but like in 15th attempt , I did it, but the tracking model dont go that well. You can check it out here: https://mission-europa.web.app/"}]...
|
Title: Mission: Europa by @curnio | Stardance
Dev Title: Mission: Europa by @curnio | Stardance
Devlogs:
Hey, just finished my first ever hosted website on the Europa Clipper mission, i wanted to use the glb model so I try to do it , but like in 15th attempt , I did it, but the tracking model dont go that well. You can check it out here: https://mission-europa.web.app/
Ships:
Hey, I make a website about europa clipper mission, though I had made many websites in the past, but its is the first website I have hosted.I had used firebase to delply it and node.js to build it.I wanted to use gbl model instead of those static pictures I know that it was going to be difficult, and I was just going to give up after and but when the rope was just going to break, It finally worked!...
|
1792882067.910291
|
1793746067.910291
|
|
45895
|
THE OS by @NOT_a_ZEBRA | Stardance
|
NOT_a_ZEBRA
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T10:58:35Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a os with three apps. This was pretty easy at the beginning but the real test came when i was stuck as the draggable windows were not working , but after consulting with … (chat gpt) , i got to know the error and fixed it!!!", "repo": "https://github.com/zebraz567/THE-OS", "demo": "https://zebraz567.github.io/THE-OS/"}]...
|
[{"post_id": 43903, "ts": "202 [{"post_id": 43903, "ts": "2026-08-09T10:54:50Z", "hours": 0.5019, "text": "Added a new app »> TIMER"}, {"post_id": 43863, "ts": "2026-08-09T09:42:05Z", "hours": 0.8972, "text": "Finally added an app , used a bit of ai to design as i was pretty am at it"}, {"post_id": 43838, "ts": "2026-08-09T08:31:46Z", "hours": 0.4681, "text": "Some changes in background , fonts and borders : )"}, {"post_id": 43825, "ts": "2026-08-09T08:02:30Z", "hours": 0.3556, "text": "Hi , this is my first os , js starting off with some basic displays!!"}]...
|
Title: THE OS by @NOT_a_ZEBRA | Stardance
Devlogs Title: THE OS by @NOT_a_ZEBRA | Stardance
Devlogs:
Hi , this is my first os , js starting off with some basic displays!!
Some changes in background , fonts and borders : )
Finally added an app , used a bit of ai to design as i was pretty am at it
Added a new app »> TIMER
Ships:
I made a os with three apps. This was pretty easy at the beginning but the real test came when i was stuck as the draggable windows were not working , but after consulting with … (chat gpt) , i got to know the error and fixed it!!!...
|
1793501326.5085855
|
1793587726.5085855
|
|
45937
|
FlowPilot by @HimanshuPratap | Stardance
|
HimanshuPratap
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T04:08:30Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i have made the 24x7 hosted bot for slack which check ping, daily standup, focus mode, and the help to use it", "repo": "https://github.com/CoderPratap-dev/FlowPilot", "demo": "https://hackclub.enterprise.slack.com/archives/C0P5NE354"}]...
|
[{"post_id": 45557, "ts": "202 [{"post_id": 45557, "ts": "2026-08-12T04:06:17Z", "hours": 3.3642, "text": "Finally Created full bot"}, {"post_id": 43889, "ts": "2026-08-09T10:30:56Z", "hours": 0.4397, "text": "created first command and app structure in slack"}]...
|
Title: FlowPilot by @HimanshuPratap | Stardance
D Title: FlowPilot by @HimanshuPratap | Stardance
Devlogs:
created first command and app structure in slack
Finally Created full bot
Ships:
i have made the 24x7 hosted bot for slack which check ping, daily standup, focus mode, and the help to use it...
|
1792875254.6770828
|
1793739254.6770828
|
|
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...
|
1793400530.286821
|
1793486930.286821
|
|
45946
|
Digital Library by @Anshhh | Stardance
|
Anshhh
|
1
|
6.0
|
22
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-02T06:48:25Z", "hours": 6.0, "multiplier": 3.43, "payout": 22, "blessing": "neutral", "text": "I created a digital catalogue for my library, where students could search if the book they want is available in the library and if its issued or not at the moment. Adding the search and filter function was new to me, and was fun to create.", "repo": "https://github.com/Mai-Anshhh/digi_library", "demo": "https://mai-anshhh.github.io/digi_library/"}]...
|
[{"post_id": 76053, "ts": "202 [{"post_id": 76053, "ts": "2026-10-02T06:43:15Z", "hours": 0.4328, "text": "I wrapped up the project today, Also I archived the book specific page and admin page, I got busy with some other projects and wasn’t able to work on this one, so now I am just clearing it up so it can be used as a display for now and the status of books could be changed through the codebase, I will update this with my library’s actual catalogue after they agree to it."}, {"post_id": 43853, "ts": "2026-08-09T09:17:20Z", "hours": 6.0394, "text": "A library? Made a base for the website, added some “tags” which can be used to filter out genre of books you are looking for, and a search bar where you search (XD) For books, I have added these cards with all the needed details for them, a short desc, author’s name and is the book is available or not right now (main purpose of the website) Right now if I have to add new books or change availability or do any changes in them, I need to edit it in the json file where it is all stored T0T To solve that, I am adding an admin page, through which editing each card could get way easier… Also after that I am planning to make a seperate page for each book, I will add a book.html and update the content for each book through js. I was initially shipping this project to Horizons but now imma do it here :3"}]...
|
Title: Digital Library by @Anshhh | Stardance
Dev Title: Digital Library by @Anshhh | Stardance
Devlogs:
A library? Made a base for the website, added some “tags” which can be used to filter out genre of books you are looking for, and a search bar where you search (XD) For books, I have added these cards with all the needed details for them, a short desc, author’s name and is the book is available or not right now (main purpose of the website) Right now if I have to add new books or change availability or do any changes in them, I need to edit it in the json file where it is all stored T0T To solve that, I am adding an admin page, through which editing each card could get way easier… Also after that I am planning to make a seperate page for each book, I will add a book.html and update the content for each book through js. I was initially shipping this project to Horizons but now imma do it here :3
I wrapped up the project today, Also I archived the book specific page and admin page, I got busy with some other projects and wasn’t able to work on this one, so now I am just clearing it up so it can be used as a display for now and the status of books could be changed through the codebase, I will update this with my library’s actual catalogue after they agree to it.
Ships:
I created a digital catalogue for my library, where students could search if the book they want is available in the library and if its issued or not at the moment. Adding the search and filter function was new to me, and was fun to create....
|
1793346681.8608203
|
1793433081.8608203
|
|
45963
|
My Simple Shooter! by @KyaniteTheCreator | Stardan My Simple Shooter! by @KyaniteTheCreator | Stardance...
|
KyaniteTheCreator
|
1
|
1.44
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T20:11:10Z", "hours": 0.0, "multiplier": 1.0, "payout": 0, "blessing": "neutral", "text": "I made a website for the first time. It was challenging learning hw to use GitHub, but in the end it is all worth it. I enjoyed every part of it.", "repo": "https://github.com/KyaniteTheCreator/My-Simple-Shooter", "demo": "https://kyanitethecreator.github.io/My-Simple-Shooter/"}]...
|
[{"post_id": 56749, "ts": "202 [{"post_id": 56749, "ts": "2026-08-28T17:05:57Z", "hours": 0.645, "text": "Just changed my website again because reviewers said that the tutorial I watched was AI. So I decided to make a Simple Shooter. It is very simple. And I hope it goes through. Try it out - https://kyanitethecreator.github.io/My-Simple-Shooter/"}, {"post_id": 53344, "ts": "2026-08-23T20:38:12Z", "hours": 0.7983, "text": "Just finished changing my website from a personal website to a Basketball Shooter. After following a tutorial (as it was my first time coding a game). I completed the game and I am very happy with what i have created."}, {"post_id": 43977, "ts": "2026-08-09T13:40:31Z", "hours": 0.4603, "text": "Working on how to fix design and colour issues on GitHub."}]...
|
Title: My Simple Shooter! by @KyaniteTheCreator | Title: My Simple Shooter! by @KyaniteTheCreator | Stardance
Devlogs:
Working on how to fix design and colour issues on GitHub.
Just finished changing my website from a personal website to a Basketball Shooter. After following a tutorial (as it was my first time coding a game). I completed the game and I am very happy with what i have created.
Just changed my website again because reviewers said that the tutorial I watched was AI. So I decided to make a Simple Shooter. It is very simple. And I hope it goes through. Try it out - https://kyanitethecreator.github.io/My-Simple-Shooter/
Ships:
I made a website for the first time. It was challenging learning hw to use GitHub, but in the end it is all worth it. I enjoyed every part of it....
|
1793508908.7332633
|
1793595308.7332633
|
|
45970
|
Tinker Pathways Website by @alark | Stardance
|
alark
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-29T10:39:34Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a placeholder website for my ed-tech charity Tinker Pathways. Only the bare minimum for now, will be replaced when our first initiative launches soon hehe", "repo": "https://gitlab.com/alflark.hmu/tinkerpathways.com", "demo": "http://tinkerpathways.com/"}]...
|
[{"post_id": 84247, "ts": "202 [{"post_id": 84247, "ts": "2026-10-29T10:38:31Z", "hours": 2.2525, "text": "finished the site for now! apparantly i never shipped this"}, {"post_id": 43892, "ts": "2026-08-09T10:36:43Z", "hours": 4.1733, "text": "I’ve finished an initial version of my nonprofit’s landing page! https://www.tinkerpathways.com/"}]...
|
Title: Tinker Pathways Website by @alark | Stardan Title: Tinker Pathways Website by @alark | Stardance
Devlogs:
I’ve finished an initial version of my nonprofit’s landing page! https://www.tinkerpathways.com/
finished the site for now! apparantly i never shipped this
Ships:
I built a placeholder website for my ed-tech charity Tinker Pathways. Only the bare minimum for now, will be replaced when our first initiative launches soon hehe...
|
1793364512.9944234
|
1793450912.9944234
|
|
45979
|
orbit os by @dineshkarthik | Stardance
|
dineshkarthik
|
1
|
3.33
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T18:18:51Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did you make? I made OrbitOS, a cute little browser based OS for Hack Club Stardance WebOS 1! It includes draggable windows, a dock, Notes, Terminal, Mission Control, Settings, customizable backgrounds and a clock, and persistent workspace saves! Everything is made in just HTML, CSS and JS as well! What was challenging? The most challenging bits were implementing the dragging and focus behaviors for the windows, along with getting the buttons and clock to work properly with a JS Init bug that was really hard to find What are you proud of? I’m really proud of getting to make an OS that actually feels like my own, and not just a generic template everyone else is using, and I got to implement multiple notes, customizability, desktop persistence, mission control, and my own cool electric cyano/blue/green color scheme What should people know so they can test your project? All you have to do is open the demo and start clicking around, there’s no need for an account or password You can try opening up multiple apps from the dock, dragging the windows, closing them, reopening them, making multiple notes, trying out the terminal, and changing your settings and backgrounds in Settings! Everything is persistent in your local storage so your notes and settings will all be saved on your device!", "repo": "https://github.com/Karthik-854321/ORBIT-OS", "demo": "https://karthik-854321.github.io/ORBIT-OS/"}]...
|
[{"post_id": 44607, "ts": "202 [{"post_id": 44607, "ts": "2026-08-10T14:25:52Z", "hours": 0.3258, "text": "Devlog Update Finished the project with my own css styling and taken out the AI polish. Using the AI to help me style was a mistake because it made the project look nice but I also didn’t put my own ideas and creativity into the project I’ve now learned that you can use AI to help you and make you more efficient but you shouldn’t rely on it to do everything for you."}, {"post_id": 44127, "ts": "2026-08-09T18:08:02Z", "hours": 0.4244, "text": "OrbitOS — My Little WebOSOrbitOS is a small browser-based operating system I built for the Hack Club Stardance WebOS 1 mission.It has draggable windows, a dock, Notes, Terminal, Mission Control, Settings, a live clock, custom backgrounds, and local workspace saving.I also gave it my own visual identity with an electric color palette instead of following the usual cyberpunk look.Built withHTML • CSS • JavaScript • LocalStorage • Browser APIsThe goal was simple: make a little desktop that feels like mine.🔗 GitHub: https://github.com/Karthik-854321/ORBIT-OS"}, {"post_id": 44098, "ts": "2026-08-09T17:07:17Z", "hours": 0.825, "text": "Devlog 04 - OrbitOS WebOS 1 Final Update OrbitOS is complete for WebOS 1, having focused development on making the OS more approachable and expressive rather than adding more windows. Added features include multiple-note support, desktop customization, custom backgrounds, clock controls, workspace saving/restoration, and LocalStorage-based persistent settings Several bugs found during testing have been fixed, including the bug that broke the clock and app buttons by not initializing properly with JavaScript. The final version of OrbitOS includes Home, About, Notes, Terminal, Mission Control, and Settings, with draggable and reopenable windows and a responsive desktop. Testing the apps, windows, persistence, desktop customization, and Terminal make it ready for the WebOS 1 submission."}, {"post_id": 44041, "ts": "2026-08-09T15:32:40Z", "hours": 0.5917, "text": "Devlog 03 - Applications Complete OrbitOS now has a proper set of working applications instead of just placeholder windows. Added Home dashboard with quick access About application Notes editor with local saving Terminal with basic commands Mission control with live system information Working application dock Multiple draggable windows Window focus and z-index Close and reopen functionality The main part of this update was connecting the applications together so that they feel like a smaller operating system rather than just a set of webpages. I also prepeared the Settings application for the final WebOS 1 update Next The final update will focus on persistence, customization, workspace saving and final testing before the Stardance submission."}, {"post_id": 44009, "ts": "2026-08-09T14:37:01Z", "hours": 0.4333, "text": "Devlog 02 - Window Manager I have been working on implementing the window system to make the OS feel more complete as an operating system. Added Multiple application windows Open/close Draggable Focus and z-index Basic viewport boundaries Pointer interaction Responsive behavior The main challenge was implementing the natural movement of windows without making them impossible to reach on the edges of the screen. Next, I will be working on fleshing out the applications that have been stubbed so far."}, {"post_id": 43980, "ts": "2026-08-09T13:46:24Z", "hours": 0.9869, "text": "Devlog 01 - Starting OrbitOS I started working on the OrbitOS project with a simple idea in mind - to create a mini operating system that would run inside a browser. I didn’t want the first build to be something too big, a complicated standalone application or framework, so I set off to construct simple HTML, CSS and JavaScript foundation. For the first step I made the desktop, the top system bar, a clock, the dock, and the first home screen window. The window is currently not draggable and that’s something I want to work on in the next steps as the window system is going to be the central part of the OS. What’s been done I’ve built the following: Basic OrbitOS desktop System bar Live clock Application dock First application window Responsive starting layout What’s been learned Working on such a small first build helped to have an idea on what else is needed for the operating system to be actually useful. What’s next Work on the window manager and make the applications movable."}]...
|
Title: orbit os by @dineshkarthik | Stardance
Dev Title: orbit os by @dineshkarthik | Stardance
Devlogs:
Devlog 01 - Starting OrbitOS I started working on the OrbitOS project with a simple idea in mind - to create a mini operating system that would run inside a browser. I didn’t want the first build to be something too big, a complicated standalone application or framework, so I set off to construct simple HTML, CSS and JavaScript foundation. For the first step I made the desktop, the top system bar, a clock, the dock, and the first home screen window. The window is currently not draggable and that’s something I want to work on in the next steps as the window system is going to be the central part of the OS. What’s been done I’ve built the following: Basic OrbitOS desktop System bar Live clock Application dock First application window Responsive starting layout What’s been learned Working on such a small first build helped to have an idea on what else is needed for the operating system to be actually useful. What’s next Work on the window manager and make the applications movable.
Devlog 02 - Window Manager I have been working on implementing the window system to make the OS feel more complete as an operating system. Added Multiple application windows Open/close Draggable Focus and z-index Basic viewport boundaries Pointer interaction Responsive behavior The main challenge was implementing the natural movement of windows without making them impossible to reach on the edges of the screen. Next, I will be working on fleshing out the applications that have been stubbed so far.
Devlog 03 - Applications Complete OrbitOS now has a proper set of working applications instead of just placeholder windows. Added Home dashboard with quick access About application Notes editor with local saving Terminal with basic commands Mission control with live system information Working application dock Multiple draggable windows Window focus and z-index Close and reopen functionality The main part of this update was connecting the applications together so that they feel like a smaller operating system rather than just a set of webpages. I also prepeared the Settings application for the final WebOS 1 update Next The final update will focus on persistence, customization, workspace saving and final testing before the Stardance submission.
Devlog 04 - OrbitOS WebOS 1 Final Update OrbitOS is complete for WebOS 1, having focused development on making the OS more approachable and expressive rather than adding more windows. Added features include multiple-note support, desktop customization, custom backgrounds, clock controls, workspace saving/restoration, and LocalStorage-based persistent settings Several bugs found during testing have been fixed, including the bug that broke the clock and app buttons by not initializing properly with JavaScript. The final version of OrbitOS includes Home, About, Notes, Terminal, Mission Control, and Settings, with draggable and reopenable windows and a responsive desktop. Testing the apps, windows, persistence, desktop customization, and Terminal make it ready for the WebOS 1 submission.
OrbitOS — My Little WebOSOrbitOS is a small browser-based operating system I built for the Hack Club Stardance WebOS 1 mission.It has draggable windows, a dock, Notes, Terminal, Mission Control, Settings, a live clock, custom backgrounds, and local workspace saving.I also gave it my own visual identity with an electric color palette instead of following the usual cyberpunk look.Built withHTML • CSS • JavaScript • LocalStorage • Browser APIsThe goal was simple: make a little desktop that feels like mine.🔗 GitHub: https://github.com/Karthik-854321/ORBIT-OS
Devlog Update Finished the project with my own css styling and taken out the AI polish. Using the AI to help me style was a mistake because it made the project look nice but I also didn’t put my own ideas and creativity into the project I’ve now learned that you can use AI to help you and make you more efficient but you shouldn’t rely on it to do everything for you.
Ships:
What did you make? I made OrbitOS, a cute little browser based OS for Hack Club Stardance WebOS 1! It includes draggable windows, a dock, Notes, Terminal, Mission Control, Settings, customizable backgrounds and a clock, and persistent workspace saves! Everything is made in just HTML, CSS and JS as well! What was challenging? The most challenging bits were implementing the dragging and focus behaviors for the windows, along with getting the buttons and clock to work properly with a JS Init bug that was really hard to find What are you proud of? I’m really proud of getting to make an OS that actually feels like my own, and not just a generic template everyone else is using, and I got to implement multiple notes, customizability, desktop persistence, mission control, and my own cool electric cyano/blue/green color scheme What should people know so they can test your project? All you have to do is open the demo and start clicking around, there’s no need for an account or password You can try opening up multiple apps from the dock, dragging the windows, closing them, reopening them, making multiple notes, trying out the terminal, and changing your settings and backgrounds in Settings! Everything is persistent in your local storage so your notes and settings will all be saved on your device!...
|
1792878539.265924
|
1793742539.265924
|
|
45980
|
About Me site by @thaimin01 | Stardance
|
thaimin01
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T06:35:14Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "It’s time to Shipped It. This was a nice project I cant lie. Now with that I khow 2 coding languages now (Even thought HTML isnt even a coding language). But anyway, the special thanks gotta go to Dad, he helped me a lot with coding and pitching up Ideas. Made on Earth by Humans", "repo": "https://github.com/thaimin01/About-Me-site", "demo": "https://thaimin01.github.io/About-Me-site/index.html"}]...
|
[{"post_id": 45603, "ts": "202 [{"post_id": 45603, "ts": "2026-08-12T06:20:02Z", "hours": 2.8431, "text": "Devlog 4: I finished it !!!! every part of the website was finished, except the demo but it will come soon !!! To visit it go here: https://thaimin01.github.io/About-Me-site/index.html"}, {"post_id": 44386, "ts": "2026-08-10T03:04:47Z", "hours": 2.1356, "text": "Devlog 3: Today, finished some more coding, half of the website is almost done now"}, {"post_id": 44326, "ts": "2026-08-10T00:29:06Z", "hours": 1.6594, "text": "Devlog 2: Today, I built some UI for the Home page. Though it’s not the best but it’s enough"}, {"post_id": 43942, "ts": "2026-08-09T12:13:52Z", "hours": 1.3236, "text": "Devlog 1: ugh so many project, the reason i am making this because of the free domain and i have something to fill into the demo link. But anyways, my dad helped me a lot with learning and coding"}]...
|
Title: About Me site by @thaimin01 | Stardance
De Title: About Me site by @thaimin01 | Stardance
Devlogs:
Devlog 1: ugh so many project, the reason i am making this because of the free domain and i have something to fill into the demo link. But anyways, my dad helped me a lot with learning and coding
Devlog 2: Today, I built some UI for the Home page. Though it’s not the best but it’s enough
Devlog 3: Today, finished some more coding, half of the website is almost done now
Devlog 4: I finished it !!!! every part of the website was finished, except the demo but it will come soon !!! To visit it go here: https://thaimin01.github.io/About-Me-site/index.html
Ships:
It’s time to Shipped It. This was a nice project I cant lie. Now with that I khow 2 coding languages now (Even thought HTML isnt even a coding language). But anyway, the special thanks gotta go to Dad, he helped me a lot with coding and pitching up Ideas. Made on Earth by Humans...
|
1793476451.347068
|
1793562851.347068
|
|
45983
|
Github Dashboard by @pandacoder2013 | Stardance
|
pandacoder2013
|
1
|
15.0
|
171
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-04T13:57:32Z", "hours": 15.0, "multiplier": 11.39, "payout": 171, "blessing": "neutral", "text": "A Github Dashboard that utilises the Github API to preview your Github profile and repository data like commits, pull requests, coding languages etc. It takes your username on startup and generates an info card on the main page, and repository cards that you can click in to explore more about that specific repository. It is a website that requires zero setup other than entering your username which is saved in localStorage. btw the example image isn’t my Github profile", "repo": "https://github.com/dsochamp/Github-Dashboard", "demo": "https://dsochamp.github.io/Github-Dashboard/"}]...
|
[{"post_id": 61516, "ts": "202 [{"post_id": 61516, "ts": "2026-09-04T13:56:38Z", "hours": 3.01, "text": "I finished Github Dashboard! It has analytics for your repositories as well as a highly detailed info card of your profile! Pls give feedback and use it whenever you like! Here is an example of viewing the repository for this project."}, {"post_id": 47307, "ts": "2026-08-15T05:31:08Z", "hours": 3.6622, "text": "GOOFY ANIMATIONS! I felt like I wanted the dashboard to be more playful with its users so I added some fun animations! I will probably add an option on which way you want to spin when the page opens."}, {"post_id": 45879, "ts": "2026-08-12T16:48:11Z", "hours": 8.3794, "text": "I finally finished creating my info cards based on the user and also included localStorage to save usernames without having an account or server. My next step is to get the repositories page working with analytics for your repository. I also made a comprehensive table containing everything the Github API returns including other APIs for it."}]...
|
Title: Github Dashboard by @pandacoder2013 | Stard Title: Github Dashboard by @pandacoder2013 | Stardance
Devlogs:
I finally finished creating my info cards based on the user and also included localStorage to save usernames without having an account or server. My next step is to get the repositories page working with analytics for your repository. I also made a comprehensive table containing everything the Github API returns including other APIs for it.
GOOFY ANIMATIONS! I felt like I wanted the dashboard to be more playful with its users so I added some fun animations! I will probably add an option on which way you want to spin when the page opens.
I finished Github Dashboard! It has analytics for your repositories as well as a highly detailed info card of your profile! Pls give feedback and use it whenever you like! Here is an example of viewing the repository for this project.
Ships:
A Github Dashboard that utilises the Github API to preview your Github profile and repository data like commits, pull requests, coding languages etc. It takes your username on startup and generates an info card on the main page, and repository cards that you can click in to explore more about that specific repository. It is a website that requires zero setup other than entering your username which is saved in localStorage. btw the example image isn’t my Github profile...
|
1793501371.528756
|
1793587771.528756
|
|
45990
|
TermiNES by @satvikhardat | Stardance
|
satvikhardat
|
1
|
17.0
|
84
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-14T15:40:09Z", "hours": 17.0, "multiplier": 8.12, "payout": 84, "blessing": "neutral", "text": "Its a emulator for NES and gameboy that runs in you terminal!!! the resoultions is bad but its still really fun to play on The cores were forked from existing projects, I only built the rendering engine written fully in cpp, and now i hate my life, spent a LOT of time fixing memory issues, and like the cores didnt really come with a full datasheet so it was a lot of trial and error Steps to use- clone the git repo download the linux bin from https://github.com/random-unknown-username/TermiNES/releases/tag/v0.1.0 make sure the bin is in the cloned repo folder get a ROM legally, and store it in the /roms folder playyy Tho i would really suggest you to build the bin using make, would take like 2 mins, and would save a lot of compatibilty issues thanks for reading!", "repo": "https://github.com/random-unknown-username/TermiNES", "demo": "https://github.com/random-unknown-username/TermiNES/releases"}]...
|
[{"post_id": 46969, "ts": "202 [{"post_id": 46969, "ts": "2026-08-14T15:35:05Z", "hours": 0.3419, "text": "Made it ready to ship! pushed a linux binary on the releases page! and wrote a good readme.md and made the repo structure better"}, {"post_id": 45272, "ts": "2026-08-11T16:54:56Z", "hours": 16.8281, "text": "TUIEmu devlog #1 - two consoles, one terminal, zero GPU the cores i did NOT write writing a NES or Game Boy core from scratch is months of work. i am not doing months of work in a weekend. so TUIEmu runs two vendored cores and the whole job was the glue around them: PeakRacing/nes for the NES - hooks for memory-mapped ROM loading, ARGB8888 framebuffer output, sound off, every mapper family enabled deltabeard/peanut-gb for the Game Boy - clean, tiny, fast to bind each core needs a port layer: boot the console once, hand it a framebuffer, feed it a joypad every frame, run one frame, read pixels back. that’s the whole engine loop in main.c, and honestly the fastest way to “have two emulators” is to steal the two hardest parts and write the fun glue yourself. the render engine - this is where the real work happened the cores give us a raw framebuffer (256x240 NES, 160x144 GB). the job: get that onto a terminal without a GPU. the version history is basically a pyramid of terminal graphics tricks: half-blocks - every cell becomes a ▀ with the top half in fg color and the bottom in bg. 1x2 pixels per cell. the baseline. quadrants - a 2x2 truecolor pixel per cell using block-element glyphs (▖▗▘▝▀▄▌▐█). every 1/2-color pattern maps to an exact glyph, and messy 3-4 color cells fall back to a diagonal or full block. no black holes: empty sub-squares inherit their neighbor’s color. kitty graphics protocol - real pixels, base64-uploaded per frame and replaced in place. the terminal does the scaling. DEC sixel - the OG 80s-era raster format. palette capped at 256 sorted colors, 6-row bands, run-length slices, one DCS per frame. the launch screen fires a capability probe: kitty q=1/q=2 plus the DA1 query (“what raster do you speak, terminal?”) and each mode quietly auto-skips if the terminal can’t do it. mode keys cycle half-block -> quadrant -> kitty -> sixel, everything fit-to-screen and zoomable, nothing ever cropped or distorted. the infinite hang this project has one legendary bug. when all three probe replies landed in a single read burst, the DA1 parser spun forever - the param scan ended with q += strcspn(q, \";0123456789\") , the digits are in the stop set, so it advanced zero bytes, forever. the emulator just froze silently. fixed with an explicit digit-walk loop. terminal reply inputs now also can’t masquerade as keys (a stray kitty “OK” used to hit zoom). input, the boring-but-vital part keys -> gamepad: Q=A, E=B, arrows/WASD = directions, Enter = Start, Tab = Select. directions are latched continuously while held - the core reads the pad every frame and gets “pressed” every frame. no stutter. heres contra running"}]...
|
Title: TermiNES by @satvikhardat | Stardance
Devl Title: TermiNES by @satvikhardat | Stardance
Devlogs:
TUIEmu devlog #1 - two consoles, one terminal, zero GPU the cores i did NOT write writing a NES or Game Boy core from scratch is months of work. i am not doing months of work in a weekend. so TUIEmu runs two vendored cores and the whole job was the glue around them: PeakRacing/nes for the NES - hooks for memory-mapped ROM loading, ARGB8888 framebuffer output, sound off, every mapper family enabled deltabeard/peanut-gb for the Game Boy - clean, tiny, fast to bind each core needs a port layer: boot the console once, hand it a framebuffer, feed it a joypad every frame, run one frame, read pixels back. that’s the whole engine loop in main.c, and honestly the fastest way to “have two emulators” is to steal the two hardest parts and write the fun glue yourself. the render engine - this is where the real work happened the cores give us a raw framebuffer (256x240 NES, 160x144 GB). the job: get that onto a terminal without a GPU. the version history is basically a pyramid of terminal graphics tricks: half-blocks - every cell becomes a ▀ with the top half in fg color and the bottom in bg. 1x2 pixels per cell. the baseline. quadrants - a 2x2 truecolor pixel per cell using block-element glyphs (▖▗▘▝▀▄▌▐█). every 1/2-color pattern maps to an exact glyph, and messy 3-4 color cells fall back to a diagonal or full block. no black holes: empty sub-squares inherit their neighbor’s color. kitty graphics protocol - real pixels, base64-uploaded per frame and replaced in place. the terminal does the scaling. DEC sixel - the OG 80s-era raster format. palette capped at 256 sorted colors, 6-row bands, run-length slices, one DCS per frame. the launch screen fires a capability probe: kitty q=1/q=2 plus the DA1 query (“what raster do you speak, terminal?”) and each mode quietly auto-skips if the terminal can’t do it. mode keys cycle half-block -> quadrant -> kitty -> sixel, everything fit-to-screen and zoomable, nothing ever cropped or distorted. the infinite hang this project has one legendary bug. when all three probe replies landed in a single read burst, the DA1 parser spun forever - the param scan ended with q += strcspn(q, ";0123456789") , the digits are in the stop set, so it advanced zero bytes, forever. the emulator just froze silently. fixed with an explicit digit-walk loop. terminal reply inputs now also can’t masquerade as keys (a stray kitty “OK” used to hit zoom). input, the boring-but-vital part keys -> gamepad: Q=A, E=B, arrows/WASD = directions, Enter = Start, Tab = Select. directions are latched continuously while held - the core reads the pad every frame and gets “pressed” every frame. no stutter. heres contra running
Made it ready to ship! pushed a linux binary on the releases page! and wrote a good readme.md and made the repo structure better
Ships:
Its a emulator for NES and gameboy that runs in you terminal!!! the resoultions is bad but its still really fun to play on The cores were forked from existing projects, I only built the rendering engine written fully in cpp, and now i hate my life, spent a LOT of time fixing memory issues, and like the cores didnt really come with a full datasheet so it was a lot of trial and error Steps to use- clone the git repo download the linux bin from https://github.com/random-unknown-username/TermiNES/releases/tag/v0.1.0 make sure the bin is in the cloned repo folder get a ROM legally, and store it in the /roms folder playyy Tho i would really suggest you to build the bin using make, would take like 2 mins, and would save a lot of compatibilty issues thanks for reading!...
|
1792875277.7678914
|
1793739277.7678914
|
|
45993
|
Boring Website by @istired | Stardance
|
istired
|
1
|
11.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-29T04:25:35Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I finished the website long ago", "repo": "https://github.com/istired0/Website", "demo": "https://istired0.github.io/Website/"}]...
|
[{"post_id": 52968, "ts": "202 [{"post_id": 52968, "ts": "2026-08-23T10:50:19Z", "hours": 1.4575, "text": "Final Version"}, {"post_id": 51599, "ts": "2026-08-21T11:25:07Z", "hours": 8.0725, "text": "It’s better I guess?"}, {"post_id": 44004, "ts": "2026-08-09T14:29:36Z", "hours": 1.1753, "text": "We all start somewhere"}]...
|
Title: Boring Website by @istired | Stardance
Dev Title: Boring Website by @istired | Stardance
Devlogs:
We all start somewhere
It’s better I guess?
Final Version
Ships:
I finished the website long ago...
|
1793364522.2507527
|
1793450922.2507527
|
|
45997
|
My very own WebOS by @sujoypaladhi | Stardance
|
sujoypaladhi
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T04:53:54Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built SujoyOS, a lightweight, web-based operating system a parody of desktop environment right inside your browser. It comes packed with a functional desktop UI, top navigation bar, customizable theme modes (Light/Dark), a bottom application dock, a start menu, dynamic window management, and built-in utility apps including a Notes App, a Calculator, and an interactive Terminal.", "repo": "https://github.com/Sujoy-debug/WEBos", "demo": "https://we-bos-cyan.vercel.app/"}]...
|
[{"post_id": 45567, "ts": "202 [{"post_id": 45567, "ts": "2026-08-12T04:31:55Z", "hours": 0.9181, "text": "im writing the css for style and layout"}, {"post_id": 44474, "ts": "2026-08-10T07:54:35Z", "hours": 1.7853, "text": "just abt to finish the script"}, {"post_id": 43949, "ts": "2026-08-09T12:22:50Z", "hours": 0.4119, "text": "im working on the ui rn"}]...
|
Title: My very own WebOS by @sujoypaladhi | Starda Title: My very own WebOS by @sujoypaladhi | Stardance
Devlogs:
im working on the ui rn
just abt to finish the script
im writing the css for style and layout
Ships:
I built SujoyOS, a lightweight, web-based operating system a parody of desktop environment right inside your browser. It comes packed with a functional desktop UI, top navigation bar, customizable theme modes (Light/Dark), a bottom application dock, a start menu, dynamic window management, and built-in utility apps including a Notes App, a Calculator, and an interactive Terminal....
|
1793476456.2938604
|
1793562856.2938604
|
|
45998
|
Worldline by @gchristan_studio | Stardance
|
gchristan_studio
|
1
|
3.0
|
20
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-11T11:17:04Z", "hours": 3.0, "multiplier": 6.13, "payout": 20, "blessing": "neutral", "text": "I made Worldline, a single self-contained HTML file that solves the annoyance of doing timezone math by hand every time you need to schedule something with someone in another country. It fixes this in three main ways: you drag one slider and everyone’s local time updates live, color coded so you know at a glance if its a decent hour for the, instead of converting each person one at a time; a “find a good time for everyone’ button scans the whole day and suggest fair windows instead o you eyeballing it; and one click copies a ready-to-paste message with everyone’s time in it, so you stop hand typing the same line into Slack every time. It also remembers your people list between sessions and lets you copy a shareable link, so it’s genuinely usable day to day, not just a demo. The hardest part was a DST bug where my own time updated correctly as I dragged the slider but everyone else’s was off by an hour depending on the date, which took real debugging to trace back to how I was anchoring the reference date before converting it per timezone. I’m proud that the timezone conversion is actually correct across DST boundaries and that the whole thing runs with zero backend, zero install, and zero dependencies, just open the file. To test it, add at least two people, drag the slider through different hours to watch the status dots change, then try the “find a good time” and “copy message” buttons.", "repo": "https://github.com/gchristanstudio/Worldline", "demo": "https://raw.githack.com/gchristanstudio/Worldline/main/Worldline.html"}]...
|
[{"post_id": 45071, "ts": "202 [{"post_id": 45071, "ts": "2026-08-11T10:35:10Z", "hours": 0.805, "text": "The big three from the “whats next” list are all in now: a real timezone search instead of my hand-typed shortlist, working hours you can actually set per person instead of assuming everyone works 9-6, and a shareable link so I stop readding my team everytime I open this on a different device. The timezone search was the easy win, turns out the browser already knows every timezone (Intl.supportedValuesOf), I just didn’t know that existed when I first wrote it. The working hours thing took more thought since it touches basically every function that checks if a time is “good,” but it was mostly mechanical once I pulled that logic into its own function. Used Claude again for the CSS on the new bits (the working-hours inputs, the little clickable hours label) so it’d actually match the rest of the page instead of looking bolted on, and had it sanity-check the storage-loading code since I chained a few promises together in a way that felt fragile and wanted a second pair of eyes on it. Still rough: editing hours is done through prompt() popups because I didn’t want to build a whole modal for it, and the shareable link is a bit theoretical since this is just a static file, it works, but only really makes sense if you host it somewhere. Good enough though. Onto whatever breaks next."}, {"post_id": 44948, "ts": "2026-08-11T01:35:33Z", "hours": 2.4642, "text": "I built this because I was sick of doing timezone math by hand every time I had to schedule something with someone in another country. I kept opening tabs, converting “3pm PT” to five different cities, then hand-typing the result into Slack. Small annoyance, but it happened constantly. So now there’s Worldline: drag one slider, see everyone’s local time update live and color-coded, hit “find a good time” to get a few suggested windows, and copy a ready-made message instead of typing it out again. I wrote the actual logic myself: the timezone conversion, the slider, the scoring for what counts as a “good” time. But I leaned on Claude a fair amount along the way. It helped me debug a nasty DST-related bug where everyone’s time except mine was off by an hour depending on the date; I could tell something was wrong but Claude spotted that I was building the reference date in the wrong spot relative to the timezone conversion. It also did most of the heavy lifting on styling, left alone this would’ve been black text on white with default buttons, so the color palette, spacing, and the slider actually looking like a slider is basically all Claude’s doing on the CSS side. I’m sorry I don’t know how to style ok? 🫠 It’s rough in places, the timezone dropdown is a shortlist of ~30 common zones, not the full IANA list, and “good time” just means 9–6 for everyone with no real concept of actual work schedules. But it does the one thing I built it to do: drag, copy, paste, done. v1.0, shipped."}]...
|
Title: Worldline by @gchristan_studio | Stardance
Title: Worldline by @gchristan_studio | Stardance
Devlogs:
I built this because I was sick of doing timezone math by hand every time I had to schedule something with someone in another country. I kept opening tabs, converting “3pm PT” to five different cities, then hand-typing the result into Slack. Small annoyance, but it happened constantly. So now there’s Worldline: drag one slider, see everyone’s local time update live and color-coded, hit “find a good time” to get a few suggested windows, and copy a ready-made message instead of typing it out again. I wrote the actual logic myself: the timezone conversion, the slider, the scoring for what counts as a “good” time. But I leaned on Claude a fair amount along the way. It helped me debug a nasty DST-related bug where everyone’s time except mine was off by an hour depending on the date; I could tell something was wrong but Claude spotted that I was building the reference date in the wrong spot relative to the timezone conversion. It also did most of the heavy lifting on styling, left alone this would’ve been black text on white with default buttons, so the color palette, spacing, and the slider actually looking like a slider is basically all Claude’s doing on the CSS side. I’m sorry I don’t know how to style ok? 🫠 It’s rough in places, the timezone dropdown is a shortlist of ~30 common zones, not the full IANA list, and “good time” just means 9–6 for everyone with no real concept of actual work schedules. But it does the one thing I built it to do: drag, copy, paste, done. v1.0, shipped.
The big three from the “whats next” list are all in now: a real timezone search instead of my hand-typed shortlist, working hours you can actually set per person instead of assuming everyone works 9-6, and a shareable link so I stop readding my team everytime I open this on a different device. The timezone search was the easy win, turns out the browser already knows every timezone (Intl.supportedValuesOf), I just didn’t know that existed when I first wrote it. The working hours thing took more thought since it touches basically every function that checks if a time is “good,” but it was mostly mechanical once I pulled that logic into its own function. Used Claude again for the CSS on the new bits (the working-hours inputs, the little clickable hours label) so it’d actually match the rest of the page instead of looking bolted on, and had it sanity-check the storage-loading code since I chained a few promises together in a way that felt fragile and wanted a second pair of eyes on it. Still rough: editing hours is done through prompt() popups because I didn’t want to build a whole modal for it, and the shareable link is a bit theoretical since this is just a static file, it works, but only really makes sense if you host it somewhere. Good enough though. Onto whatever breaks next.
Ships:
I made Worldline, a single self-contained HTML file that solves the annoyance of doing timezone math by hand every time you need to schedule something with someone in another country. It fixes this in three main ways: you drag one slider and everyone’s local time updates live, color coded so you know at a glance if its a decent hour for the, instead of converting each person one at a time; a “find a good time for everyone’ button scans the whole day and suggest fair windows instead o you eyeballing it; and one click copies a ready-to-paste message with everyone’s time in it, so you stop hand typing the same line into Slack every time. It also remembers your people list between sessions and lets you copy a shareable link, so it’s genuinely usable day to day, not just a demo. The hardest part was a DST bug where my own time updated correctly as I dragged the slider but everyone else’s was off by an hour depending on the date, which took real debugging to trace back to how I was anchoring the reference date before converting it per timezone. I’m proud that the timezone conversion is actually correct across DST boundaries and that the whole thing runs with zero backend, zero install, and zero dependencies, just open the file. To test it, add at least two people, drag the slider through different hours to watch the status dots change, then try the “find a good time” and “copy message” buttons....
|
1793476457.5208187
|
1793562857.5208187
|
|
46001
|
Mr Cool CAT by @wardaqasim5 | Stardance
|
wardaqasim5
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T13:29:13Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built “Mr Cool CAT”, an interactive and clever Slack bot designed to bring fun, engagement, and utility to the workspace! What I Made: Added riddles, jokes, interactive buttons, world capitals trivia, and deployed it to run 24/7 on Nest server. What Was Challenging: Setting up Linux packages, fixing missing .env tokens, and configuring systemd to keep it running non-stop. What I’m Proud Of: Learning the full server setup and watching my bot stay online 24/7! with the help of Gemini. How to Test: Add @Mr Cool CAT by slash command /mr-cool-cat-ping to a channel or DM, then send hello or try out the buttons!", "repo": "https://github.com/warda786-eng/My-Cool-CAT", "demo": "https://hackclub.slack.com/archives/D0BPPBWNTDE"}]...
|
[{"post_id": 45786, "ts": "202 [{"post_id": 45786, "ts": "2026-08-12T14:22:05Z", "hours": 0.2811, "text": "okay so today I deployed my project 24/7 using NEST.At first I got many many errors like .env file wasn’t created and bash git command not found, missing package.json file and lastly bot was online but wasn’t responding but eventually I found out these by the help of gemini offc. I want your suggestions further please!!!"}, {"post_id": 44817, "ts": "2026-08-10T20:50:47Z", "hours": 1.0953, "text": "Well, today I was working to run my app physically on Slack and testing its effectiveness plus improving how speedily it responds. I have found it great, but I need your suggestions as I also tried to attach Gemini AI (like to give responses to all messages) but got errors or free trial rate limit (sad). My next step will be to deploy it 24/7 using NEST. Stay tuned!”"}, {"post_id": 44216, "ts": "2026-08-09T20:39:03Z", "hours": 0.7244, "text": "I added some features like interactive buttons for riddles and brain teasers, a world capitals guessing engine, joke triggers, ping slash command, and custom cat-style responses."}]...
|
Title: Mr Cool CAT by @wardaqasim5 | Stardance
De Title: Mr Cool CAT by @wardaqasim5 | Stardance
Devlogs:
I added some features like interactive buttons for riddles and brain teasers, a world capitals guessing engine, joke triggers, ping slash command, and custom cat-style responses.
Well, today I was working to run my app physically on Slack and testing its effectiveness plus improving how speedily it responds. I have found it great, but I need your suggestions as I also tried to attach Gemini AI (like to give responses to all messages) but got errors or free trial rate limit (sad). My next step will be to deploy it 24/7 using NEST. Stay tuned!”
okay so today I deployed my project 24/7 using NEST.At first I got many many errors like .env file wasn’t created and bash git command not found, missing package.json file and lastly bot was online but wasn’t responding but eventually I found out these by the help of gemini offc. I want your suggestions further please!!!
Ships:
I built “Mr Cool CAT”, an interactive and clever Slack bot designed to bring fun, engagement, and utility to the workspace! What I Made: Added riddles, jokes, interactive buttons, world capitals trivia, and deployed it to run 24/7 on Nest server. What Was Challenging: Setting up Linux packages, fixing missing .env tokens, and configuring systemd to keep it running non-stop. What I’m Proud Of: Learning the full server setup and watching my bot stay online 24/7! with the help of Gemini. How to Test: Add @Mr Cool CAT by slash command /mr-cool-cat-ping to a channel or DM, then send hello or try out the buttons!...
|
1793483440.0841775
|
1793569840.0841775
|
|
46027
|
RunRunRun by @arsenal4eva | Stardance
|
arsenal4eva
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-03T10:21:19Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finally ready to ship. Had to cancel the ship last minute cos i nearly forgot the readme. Inspired by undertale, some art made by myself. Really hard to make minigame 3, especially spawning, timing, orientation and attack direction and speed. Also has settings to choose difficulty level. Inspired by Undertale!", "repo": "https://github.com/arsenal4eva/RunRunRun", "demo": "https://arsenal4eva.itch.io/run-run-run"}]...
|
[{"post_id": 76368, "ts": "202 [{"post_id": 76368, "ts": "2026-10-03T10:19:08Z", "hours": 6.2706, "text": "Oh wow didnt realise i forgot to devlog. anyways, its a warioware style game largely inspired by undertale"}]...
|
Title: RunRunRun by @arsenal4eva | Stardance
Devl Title: RunRunRun by @arsenal4eva | Stardance
Devlogs:
Oh wow didnt realise i forgot to devlog. anyways, its a warioware style game largely inspired by undertale
Ships:
Finally ready to ship. Had to cancel the ship last minute cos i nearly forgot the readme. Inspired by undertale, some art made by myself. Really hard to make minigame 3, especially spawning, timing, orientation and attack direction and speed. Also has settings to choose difficulty level. Inspired by Undertale!...
|
1792958075.2244072
|
1793822075.2244072
|
|
46048
|
CurrencyConverter by @RajanKC | Stardance
|
RajanKC
|
1
|
1.0
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T17:11:16Z", "hours": 1.0, "multiplier": 2.24, "payout": 3, "blessing": "neutral", "text": "Completed", "repo": "https://github.com/RajanKCKC/CurrencyConverter", "demo": "https://rajankckc.github.io/CurrencyConverter/"}]...
|
[{"post_id": 45889, "ts": "202 [{"post_id": 45889, "ts": "2026-08-12T17:09:29Z", "hours": 0.3208, "text": "Added Readme"}, {"post_id": 45125, "ts": "2026-08-11T12:39:23Z", "hours": 0.4, "text": "Refactor HTML structure and enhance CSS styles for Currency Converter; add JavaScript functionality for currency conversion"}, {"post_id": 44664, "ts": "2026-08-10T16:05:46Z", "hours": 0.35, "text": "Add CSS file for styling the Currency Converter"}, {"post_id": 44069, "ts": "2026-08-09T16:14:01Z", "hours": 0.2667, "text": "Add initial HTML structure for Currency Converter"}]...
|
Title: CurrencyConverter by @RajanKC | Stardance
Title: CurrencyConverter by @RajanKC | Stardance
Devlogs:
Add initial HTML structure for Currency Converter
Add CSS file for styling the Currency Converter
Refactor HTML structure and enhance CSS styles for Currency Converter; add JavaScript functionality for currency conversion
Added Readme
Ships:
Completed...
|
1793483445.1931434
|
1793569845.1931434
|
|
46049
|
Puzzled Pomodoro by @Sarahg | Stardance
|
Sarahg
|
1
|
39.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-31T22:52:42Z", "hours": 39.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "what is it? A pomodoro/work timer featuring sudokus! challenges? The sudoku was very frustrating. I had no clue what recursion was, and I don’t think I could have done this without my sibling’s help! Also, it was hard working on this over a long, sporadic time frame because I kept forgetting what I learned. what am I proud of? I’m proud of the sudoku (duh!) :). It was also very cool being able to easily do things (ex: make a window close by clicking an x) which had been major struggles in previous projects. ~ My pause button for my timer is a bit weird, because it seemed like there was a bug (you had to click it twice the first time), but when I ran the debugger, it worked, so…?", "repo": "https://github.com/sloppysarah/puzzled-pomodoro", "demo": "https://sloppysarah.github.io/puzzled-pomodoro/"}]...
|
[{"post_id": 59237, "ts": "202 [{"post_id": 59237, "ts": "2026-08-31T22:20:53Z", "hours": 2.8922, "text": "Added: ambience mode (listen to the sounds of the sea!) checklist! (mostly making sure that boxes stayed checked when adding/deleting tasks)"}, {"post_id": 58226, "ts": "2026-08-30T16:10:09Z", "hours": 8.1244, "text": "Yay! The sudoku works! I got help from my sibling (they are a programmer), and it actually generates a puzzle correctly. Besides that, I have just been working on my checklist. (I’m not quite sure how eight hours passed; I guess I’m a slow typer???)"}, {"post_id": 50599, "ts": "2026-08-19T20:16:33Z", "hours": 8.2614, "text": "So… what did I do? Sadly, essentially nothing. You see, I was working on creating a sudoku, and I thought I figured it out (all by myself – I was very proud). But no. I only realized after spending a dumb amount of time on my initial plan (of only generating the clues/initial filled squares) that it wouldn’t guarantee a solution. So now I’m back at square one, trying to figure out how to generate the entire puzzle and then remove values to create the starting hints. I have to figure out recursion, but I do not fully understand…"}, {"post_id": 46515, "ts": "2026-08-13T19:54:36Z", "hours": 7.9192, "text": "What I added/changed: Added tooltips (for the timer set button + break “apps”) Fixed bugs (the timer wasn’t removing the previous set time when the user closed the timer window & the quote window wasn’t hidden on load) Added quote window - Yay! Inspiration! Added a pause button to the timer (I was afraid it was going to be terribly buggy and difficult, but it was actually very simple! :) A few random css changes - fonts, flavor text Break button now does something! - opens a “break direct” window w/ “apps” + auto pauses work timer Focus mode: click a brain emoji to turn off sounds Added water/stretch reminders every 30 minutes Also: I didn’t really add this yet, but I got the idea to put in a “tips” feature for productivity; (un)fortunately I am a sucker for that type of stuff!"}, {"post_id": 45956, "ts": "2026-08-12T19:33:51Z", "hours": 5.4617, "text": "I finally got the timer to work!! First I was stuck on making the timer countdown, because it only displayed the input time, then I figured that out and got more stuck on making it so that when a user input a new time, it would restart the timer. But lo and behold… Now you can both use AND change it! Besides that, I worked out a few minor problems: max times (so no giant #s) decimal inputs stopping the clock if the user closes the timer window"}, {"post_id": 44688, "ts": "2026-08-10T16:46:56Z", "hours": 3.2986, "text": "Added: divs are now draggable beginning of work timer"}, {"post_id": 44292, "ts": "2026-08-09T23:04:45Z", "hours": 3.3733, "text": "Currently my site looks somewhat goofy with the overlap of the divs, but… What I Did: added a clock outlined a bunch of features I want to add (the empty boxes - timer, checklist, etc.) background/basic design"}]...
|
Title: Puzzled Pomodoro by @Sarahg | Stardance
De Title: Puzzled Pomodoro by @Sarahg | Stardance
Devlogs:
Currently my site looks somewhat goofy with the overlap of the divs, but… What I Did: added a clock outlined a bunch of features I want to add (the empty boxes - timer, checklist, etc.) background/basic design
Added: divs are now draggable beginning of work timer
I finally got the timer to work!! First I was stuck on making the timer countdown, because it only displayed the input time, then I figured that out and got more stuck on making it so that when a user input a new time, it would restart the timer. But lo and behold… Now you can both use AND change it! Besides that, I worked out a few minor problems: max times (so no giant #s) decimal inputs stopping the clock if the user closes the timer window
What I added/changed: Added tooltips (for the timer set button + break “apps”) Fixed bugs (the timer wasn’t removing the previous set time when the user closed the timer window & the quote window wasn’t hidden on load) Added quote window - Yay! Inspiration! Added a pause button to the timer (I was afraid it was going to be terribly buggy and difficult, but it was actually very simple! :) A few random css changes - fonts, flavor text Break button now does something! - opens a “break direct” window w/ “apps” + auto pauses work timer Focus mode: click a brain emoji to turn off sounds Added water/stretch reminders every 30 minutes Also: I didn’t really add this yet, but I got the idea to put in a “tips” feature for productivity; (un)fortunately I am a sucker for that type of stuff!
So… what did I do? Sadly, essentially nothing. You see, I was working on creating a sudoku, and I thought I figured it out (all by myself – I was very proud). But no. I only realized after spending a dumb amount of time on my initial plan (of only generating the clues/initial filled squares) that it wouldn’t guarantee a solution. So now I’m back at square one, trying to figure out how to generate the entire puzzle and then remove values to create the starting hints. I have to figure out recursion, but I do not fully understand…
Yay! The sudoku works! I got help from my sibling (they are a programmer), and it actually generates a puzzle correctly. Besides that, I have just been working on my checklist. (I’m not quite sure how eight hours passed; I guess I’m a slow typer???)
Added: ambience mode (listen to the sounds of the sea!) checklist! (mostly making sure that boxes stayed checked when adding/deleting tasks)
Ships:
what is it? A pomodoro/work timer featuring sudokus! challenges? The sudoku was very frustrating. I had no clue what recursion was, and I don’t think I could have done this without my sibling’s help! Also, it was hard working on this over a long, sporadic time frame because I kept forgetting what I learned. what am I proud of? I’m proud of the sudoku (duh!) :). It was also very cool being able to easily do things (ex: make a window close by clicking an x) which had been major struggles in previous projects. ~ My pause button for my timer is a bit weird, because it seemed like there was a bug (you had to click it twice the first time), but when I ran the debugger, it worked, so…?...
|
1793458348.9201763
|
1793544748.9201763
|
|
46051
|
Tic-Tac-Cube by @EthanCubes | Stardance
|
EthanCubes
|
1
|
145.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-18T21:33:24Z", "hours": 145.0, "multiplier": 17.76, "payout": 0, "blessing": "neutral", "text": "I made a tic-tac-cube game where you can rotate the board like a Rubik’s cube! It was made in C++ with Raylib without a game engine, and only uses 2 libraries, Raylib, and Nlohmann-JSON. I’m really proud of the way I coded the entire GUI, buttons, board, and bot. Features Tic-Tac-Toe game on a Rubik’s cube Singleplayer mode against computer Local multiplayer against another player (or yourself) Main menu & help page. I coded the bot to be somewhat intelligent, and will actively try to block your attacks and create it’s own ones. It can turn the cube just like you, and will rotate the cube to get out of a pickle. This is my first C++ project, and my first experience with languages that have to be compiled before running. It was honestly really fun to make. I put a LOT of effort into this game, over 140 hours.", "repo": "https://github.com/EthanCubes/tic-tac-cube", "demo": "https://ethancubes.itch.io/tic-tac-cube"}]...
|
[{"post_id": 80806, "ts": "202 [{"post_id": 80806, "ts": "2026-10-18T20:46:55Z", "hours": 0.6053, "text": "Final Devlog Before Ship I’m done stalling. Every time I’ve shipped a project for Stardance, I’ve stalled for like a week trying to make sure it’s good enough. This time, I’ve stalled for more than a month. I’ve even shipped 2 separate projects to different Hack Club events in the time that this project has technically been “good enough”. Essentially, I just worked on the README a bit more. I did manage to fix a few errors. For example, I had a few spelling and grammar errors. I also added a bit more detail to the readme."}, {"post_id": 77976, "ts": "2026-10-09T02:51:47Z", "hours": 1.4722, "text": "Devlog #38 (25c796f): the beans aren’t going to know what hit them (regarding my 145 hours waiting to be shipped) I made a couple of changes, such as improving the readme and disabling the exit button, greying it out and making so that it can’t be pressed. For context, the game can only run on the web, and the exit button just doesn’t do anything useful on the web. I also customized the itch.io page (which hasn’t been released yet but you can access it here via secret url). It looks kinda decent (i just copied the game’s color scheme)"}, {"post_id": 76564, "ts": "2026-10-03T23:45:12Z", "hours": 2.1303, "text": "Devlog #37 (8b55316): I made a web build for the game! I took a break from Stardance to make something for Out to C, and when I was making a C game with Raylib I discovered that it is extremely hard to make a downloadable executable run well on Windows or MacOS, because on Windows you have to include DLL files, and on MacOS it’s just harder to install Raylib. In the end, I ended up making a web build, and since I wasn’t so bad, I decided to make a web build for this. I used Emscripten, and using the em++ tool with the asyncify option, manage to get most of the game logic working, with only one small frame generation bug, which I fixed by changing this_thread::sleep for to something that is easier for the browser to render. I also made some other QoL changes so that the bot feels less stagnant, hopefully."}, {"post_id": 71599, "ts": "2026-09-21T03:57:04Z", "hours": 2.0317, "text": "Devlog #36 (fcc4f2f): I made the first gameplay change in a while, and also changed the theming a bit more. The gameplay changes I noticed that the game was getting a bit… repetitive, so I changed the bot to have an element of randomness when there are multiple spots that provide similar advantage. This took me a long time, because my code is spaghetti, and also because random in JavaScript is so much better than in C++ The visual changes I changed the theming of the game because I didn’t think the discord-esque style looked very good. Now, it’s changed to match the “Arch” theme on Monkeytype. I also changed the font to Roboto Mono since that’s what my configuration of Monkeytype uses. Stuff to do Compile this for Windows and Mac, put this on Itch.io. Ship the project"}, {"post_id": 70648, "ts": "2026-09-19T14:52:27Z", "hours": 0.4536, "text": "Devlog #35 (b48efd0): I fixed most of the font scaling issues, and also updated the README at bit (as always). I did this by loading the same font 3 times, once at 20 font size, once at 40, and once at 80. I changed the code to use a either the 20, 40, or 80 version of the font according to the font size to make the text look smoother."}, {"post_id": 69944, "ts": "2026-09-18T03:21:41Z", "hours": 2.6569, "text": "Devlog #34 (4eec49b): I changed the font! And also updated the README. Fonts in raylib are REALLY hard. Since I’m using multiple different font sizes, the scaling is really screwed up and blurry sometimes. When I was trying to add the custom font, I may or may not have… lagged out my computer and had to restart. as for the readme upgrade, i added instructions to play i also removed some semicolons. took me like half and hour"}, {"post_id": 67849, "ts": "2026-09-14T03:57:37Z", "hours": 1.2122, "text": "Devlog #33 (d16d3b8): This time was used for trying to make the project work for webassembly, which i have decided to abandon. Therefore, this time should probably be deflated to account for the lack of progress. I probably picked the worst language for compiling for the web, and next time I want to make a web version of anything, I’m going to use a game engine. This just did not work out, and was too much effort to save maybe ~2 seconds of time. I’m sorry that this will cause any reviewers to have to download the game to play it, and to compensate I will be attaching a link to a YouTube video demoing the game either on the readme, on the itch.io page, or both. I feel like a failure for this, but maybe it’s the right choice for my mental health and academic… idk is health also the right word for this situation?"}, {"post_id": 67685, "ts": "2026-09-13T21:11:46Z", "hours": 2.8528, "text": "Devlog #32 (ca5f14e): I changed the theming yet again. I’m not really good at making programs look good, and even when I do, my designs are usually really basic. Yes, it’s inspired by discord. Please tell me how this looks in the comments, I really need feedback. I also finally added a little change in color to some of the buttons when selected, which was the entire reason I decided to rework buttons in the first place. I’ll also attach a beta design that’s more of a retro/terminal aesthetic, but contrasted too much with the cube and letters IMO"}, {"post_id": 66298, "ts": "2026-09-12T01:53:47Z", "hours": 1.1728, "text": "Devlog #31 (6639676): I fixed the code! Essentially, the code was breaking because the hover info for the code was undefined. I fixed it by setting the hover info to the regular button info if the hover info was not defined. Then I ran into another issue, which was that the buttons, upon hover, were being drawn from the center instead of the corner. It was a simple enough fix, I just changed like 2 values to use the calibrated values instead of the center coordinates. And yeah, the only real issue right now is that the text on the board is slightly offcentre, but that’s not really a big issue."}, {"post_id": 65739, "ts": "2026-09-11T02:41:43Z", "hours": 7.9714, "text": "Devlog #30 (b5f8085): The code is now compiling again, thanks to, as much as I hate to admit it, Visual Studio Code. I’m on Linux so I can’t use Visual Studio, CLion is kinda weird and the error messages are broken, and KDevelop doesn’t have a Wakatime/Hackatime plugin yet (maybe it does, but it isn’t in the Hackatime docs) I opened VSCode and was met with like a hundred errors. With a combination of VSCode’s functional error messages, DeepSeek telling me what those messages mean, and my pretty average brain, I managed to remove all the errors. But since I didn’t know how to use makefiles and stuff (still don’t ) I had to compile the program manually again. Apart from the fact that it crashes upon any user mouse input, it’s functional!"}, {"post_id": 63870, "ts": "2026-09-07T21:22:41Z", "hours": 0.4178, "text": "Devlog #29 (57bac36): Guess what I did: a: Made my code work again b: Add new features c: Complete the button rice d: Look up the GitHub Repo for DeepSeek because I got bored and discover how to add badges to my README. I had way to much fun doing this (it was d)"}, {"post_id": 63786, "ts": "2026-09-07T19:01:29Z", "hours": 9.4011, "text": "Devlog #28 (ac77900): I added an entire separate .cpp file for handling buttons because I wasn’t satisfied with how they were working (I love ricing). Yes, it did take 9 hours. I have a skill issue. There are 3 main things I improved on: The buttons are now more customizable, as they now accept JSON files as setup input instead of like only 4 parameters. A function was added to change the button upon hover It’s more organized since the files are separate. (I haven’t actually tested the code out yet, I feel pressured to get the devlog out ASAP)"}, {"post_id": 60009, "ts": "2026-09-02T03:12:55Z", "hours": 1.3197, "text": "Devlog #27 (a1b005f): I highkey have trouble keeping track of what I did between devlogs sometimes, so I’m adding the SHA of the Git commit to devlogs. So I tried to create a dedicated c++ file for handling buttons, since I wanted to have even more control over them, but ran into the issue of not having a way to share variables across different files. I know global variables are kinda bad, but I mean in this scenario they’re like config stuff that isn’t really going to be that harmful… Most of the time was spent creating the button.cpp and button.h files, and they’re not even in GitHub yet lol"}, {"post_id": 59291, "ts": "2026-09-01T00:20:03Z", "hours": 0.7611, "text": "Devlog #26: Pretty short devlog. I added some simple QoL changes: the main menu title is now centered, and the popup and some captions now have a margin around them so they aren’t stuck right on the edge. Also this was technically done a couple of devlogs ago, but I added shell scripts to compile and run the program so I don’t have to type g++ -std=c++17 -Wall -Wextra -Werror -pedantic -o build/tic-tac-cube src/main.cpp src/board.cpp src/bot.cpp src/logs.cpp -lraylib every single time I want to compile the program."}, {"post_id": 58538, "ts": "2026-08-30T23:41:22Z", "hours": 7.5928, "text": "Devlog #25: I tried to make the UI look good. It isn’t necessarily good, but it’s better than it used to be IMO. I just changed the color scheme, and now the text is round and the boxes are rounded. I also reworked the board position display system. Since the squares are just buttons, and the button class can display text, I just made the board display text by itself. For context I wrote the button class to draw and handle buttons. There might be a class for this or something but idc i just wrote it myself like 17 days ago."}, {"post_id": 57061, "ts": "2026-08-29T04:32:35Z", "hours": 7.4608, "text": "(How is it) Devlog #24 (Already): Lowkey, when I started this project I was expecting to take 1 week max, and it was supposed to be like practice for making a more advanced project. I’ve since decided to not make the more advanced project (for now). Now, it’s been more than 2 weeks since I’ve started it, and it’s still in rough shape and probably not ready for release. The UI still sucks, but I added like a popup system for displaying messages, such as telling the user why they won/lost without the win being visible due to the nature of the board being a cube. I was going to make a class to handle all the popups, but I settled for global variables and functions. Probably not the best practice, but it works, and if it ain’t broke don’t fix it. I also added a entire new menu, the help menu. It could probably use some improvements, so if you have anything you’re curious about or confused about, drop a comment. There’s like 8 people that have seen this project, so I’m really expecting anything, but it would be appreciated greatly. I lowkey forgot to add one break statement, so I spent like 30 minutes trying to figure out why it wasn’t working Still, how the hell did this take 7 hours? I swear I’m not inflating my time by any means."}, {"post_id": 56171, "ts": "2026-08-27T20:08:34Z", "hours": 2.4689, "text": "Devlog #23: “Minor” improvements that take like hours to do is literally my entire C++ learning experience so far. This time, I improved the “wild card” function that rotates the cube randomly. Before, it just actually rotated randomly, and now, I changed it to check and make sure that moves it makes does not cause the opponent to win on the very next move. fyi i DO write these devlogs myself without ai, I just literally need Vim keybinds to function as a person and therefore type all the devlogs inside of NeoVim before pasting them into the devlog. felt like writing this after i discovered that the “please write this yourself, humans read it” text at the bottom actually flashes red when you paste text."}, {"post_id": 55363, "ts": "2026-08-27T04:29:07Z", "hours": 3.4486, "text": "Devlog #22: I made the buttons look nicer by centering the text inside of them. It was much harder than it looked and I had to work with “Vector2” in Raylib. I may or may not have spent like half and hour trying to find documentation on it, only for me to discover that it’s a struct inside of Raylib. Still not entirely sure what a struct is. So I may or may not have spent another half and hour trying to declare the struct inside of the main.cpp file, before I finally gave up and asked DeepSeek. Turns out, it’s just Vector2 something{(float)x, (float)y} . It’s not exactly simple if you don’t have much experience with C++, but I started coding in C++ 16 days ago and I understand it just fine. Halfway through, while testing, I accidentally overrode the main file and had to restore it and re-add all the changes I make. I don’t like committing before the program doesn’t have that many bugs, so a lot of progress was lost. This is like the second time I’ve done this, and if you’re curious what I did, well… The command used to compile my program for testing is g++ -std=c++17 -o build/program src/main.cpp src/board.cpp src/bot.cpp src/logs.cpp -lrayib . This compiles the code for all the C++ files and the Raylib library, and creates and executable inside the build/ directory. Except I forgot to type build/program, and so GCC just overrode main.cpp. Honestly though, it didn’t do that much harm, thanks to the test.cpp file having a similar version of code as the code that was overridden, and also git. hackatime isn’t working so i can’t even post this devlog nvm it just worked nvm it broke again honestly this is one of the first times anything has broken in my experience as someone who joined hack club like 3 months ago. im sure everyone involved in fixing this is trying their absolute best."}, {"post_id": 55210, "ts": "2026-08-26T19:20:18Z", "hours": 2.4914, "text": "Devlog #21: I am very very very very bad at debugging code. Somehow I managed to fix the major rendering bug and also make the fork handling better within 2 hours. I don’t believe I’ve mentioned anything about it before, but there was a rendering glitch upon the bot winning the game right after the user has made a cube turn that allowed the bot to win the game. I’m still not sure wy that happened, but I fixed it by re-rendering the entire board before drawing the board position again. If that didn’t make sense to you, it doesn’t make much sense to me either. If it did, well good for you ig. I feel like the fork handling deserves and entire paragraph, so here: I changed the win blocking function to also log the direction that potential win is in, by logging “position 1” of that specific potential win. The possible neutralizing moves of the directional indicator value is then compared against the potential win location neutralizing move to try to find a match. If a match is found, that means that the move is guaranteed to neutralize the given threat. That paragraph did not make much sense, even to me. If you read my code, it’ll probably make more sense, as long as you do not get permanent brain damage from reading the it (I need to learn how to write better code)"}, {"post_id": 54902, "ts": "2026-08-26T03:54:05Z", "hours": 9.4122, "text": "Devlog #20: I abandoned searching for potential forks and stopping them from ever forming in favour of handling forks that have already been formed. After more than one win for the opponent is detected, the bot registers that it is a fork. It then calculates which moves are best to neutralize the threat. There are four ways for each single win to be neutralized, so I need to make one of these four moves, for each of the two cases. In some cases, one or more of the moves overlap, in which case the overlapped move will be immediately returned, but most of the time, the bot just picks from one of the 8 possible neutralization moves randomly. This is definitely less efficient than just figuring out how to prevent forks from ever forming, but I mean it’s a good implementation for the cube part of this game. (Sometimes it messes up and I just win instantly)"}, {"post_id": 54048, "ts": "2026-08-24T20:12:14Z", "hours": 5.1683, "text": "Devlog #19: In an effort to procrastinate fixing the bot fork bug while still doing something useful, I 1) took a 2 day break from this project to work (and ship) something else, and 2) fixed a very annoying bug where the user would be X every single time. I solved the issue by switching from older, more C-like rand() from cstdlib to the more modern #include <random> . I highkey copied the code from Stack Overflow , but at least it’s better than relying on AI. That solved like half of the problem, but then I discovered that I wasn’t actually resetting the board properly when manually exiting a game, since I was looking through the logs. I made the logs are procrastination, but they’re actually really nice. In case you were wondering btw, most of the time logged in this devlog was spent on trying to fix the fork bug, but I’ll make a dedicated devlog only when I’ve actually fixed the bug."}, {"post_id": 52065, "ts": "2026-08-22T03:58:57Z", "hours": 3.9525, "text": "Devlog #18: I worked on the logs even more, and now they are in separate files. You wouldn’t believe the amount of time this took me. Evidently, I’m not a very good C++ dev, and when I was searching on Stack Overflow and other sites, I kept running into things I don’t understand like & , auto , and probably many others. So of course, I resorted to coding my own functions at the most low level C++ possible without actually being totally backwards compatible with C. Essentially, every time the game starts, function runs that tries to generate a log file with the current time. There is a theoretically possible edge case where the user opens the project more than once in a single second, so I added some code to make absolute sure not to override any existing files. That took me like at least 15 minutes to half and hour, for an edge case that probably can only happen in testing, and that will not actually affect the game at all. Yay, what great decision making skills. I still haven’t fixed the fork detection and response function, but at least I can now have a way to find out what is going wrong. The only progress with finding out what is wrong is just narrowing the error location down to the function where I already knew there was going to be an error. Yay."}, {"post_id": 51891, "ts": "2026-08-21T19:50:23Z", "hours": 2.0631, "text": "Devlog #17: Guess what I did today: a) fixed the fork, b) optimized UI, c) hunted bugs, or d) added a random new c++ file for the sole purpose of logging information because I don’t want to use an IDE or configure NeoVim. The answer, of course, is D. I really need a way to figure out what is happening inside my code. Even though I wrote the code, it’s still kinda a black box to me, so I need to have some logs to figure out why the program is not working as expected. I have yet to actually implement the function or add out a way to have different logs files for different sessions though, I’m doing that next."}, {"post_id": 51427, "ts": "2026-08-21T03:58:41Z", "hours": 8.3636, "text": "Devlog #16: I added creating and defending against forks. One of my previous projects, Gomoku Balanced, had some decent defense and offense, which was even able to beat some people, according to the reviews on my ship. The one thing it was missing was the ability to detect potential forks and combat them, which was why I was able to beat it almost every single time. This bot, however, will not be the same. Mostly because the board is kinda small. I literally just added every single possibility of a fork to the to the bot. I just got notified that I have like 8 hours without a devlog, and since I am horrible at coding, the bot function I’m working on isn’t even working yet. I’m also just not getting it done within 2 hours. The function is supposed to block the fork, but it doesn’t work for some reason. DeepSeek (AI) gave me a list of 20 reasons it’s breaking, but I’m not about to blindly trust AI. I mean it doesn’t raise any errors, so that’s good. For me at least, I spend a lot of time just trying to get the code to compile properly. And in this case, even when the code compiles, half the time it just runs into a runtime error and crashes. The bot crashed like 20 times. They were all runtime errors, and I use C++, so I have absolutely no idea where the error occurs. Also, I want to be different, and therefore I use NeoVim, and since I don’t want to spend time that I could be building actually good projects for Stardance in the time it takes to configure NeoVim, and therefore I can’t see any warnings or errors. I did try using CLion and VSCode, but CLion takes up a lot of RAM and VSCode is made by Microsoft (and VSCodium and Code OSS don’t have that many plugins). Also, when I was using CLion, the errors didn’t really appear… and CLion also does a bunch of stuff and creates a bunch of mysterious files. I don’t really like doing stuff without knowing what they do, so I just ditched CLion altogether. Did I seriously go on a paragraph-long rant about how using NeoVim leads to not being able to know why my code sucks? Is the paragraph-long rant in question also probably longer than the entire rest of the devlog? (Yes and yes); Anyway you still can’t tell that I made any changes to the bot from a single screenshot, so I’m just going to attach one of my old ones."}, {"post_id": 50705, "ts": "2026-08-20T01:11:16Z", "hours": 2.1453, "text": "Devlog #15: I updated the bot to give it two of the most important features: winning the game, and trying to prevent your opponent from winning. This was done by saving every single possible way to have a two-in-a-row on the board, connected and disconnected, 24 possible combinations in total. And of course, because I’m not experienced enough to do it any other way, it was all written by hand. And since I don’t like using AI, and don’t really trust it, I wrote all of it myself, and used only used AI to check that I didn’t mess something up. Now how the hell do I make it detect forks…."}, {"post_id": 50618, "ts": "2026-08-19T20:57:50Z", "hours": 6.43, "text": "Devlog #14: In search of a better way to make a bot, I went on the world’s most reliable website: Wikipedia - and struck gold. The page on tic-tac-toe contains a strategy section, containing the optimal strategy that always leads to a draw. Of course, my game isn’t actually the same as Vanilla tic-tac-toe, so the player will probably still win most of the time. I haven’t actually implemented most of the rules, only the last few that are the least important. In my defense, they were the easiest to make. I did kinda struggle with the bot trying to mark a place that already has been placed, and it took like half and hour for me to figure that out. IDK what I should do for the screenshot, you can’t really tell that I changed anything."}, {"post_id": 49910, "ts": "2026-08-18T21:29:42Z", "hours": 6.7939, "text": "Devlog 13: I spent like 6 hours making the bot, and it’s absolutely stupid. I made two ways to get a move: scanning for 2-in-a-rows, and placing randomly. Even though the 2-in-a-row scan runs first, it still only plays randomly. As of right now, the bot has never won a single game against me and is always O for some reason. I probably messed up the setup code. but at least i made something that are somewhat functional….. (I was writing this devlog and trying to get a screenshot of the game, and somehow it actually worked and blocked my move somehow, IDK if it was a coincidence)"}, {"post_id": 49267, "ts": "2026-08-17T23:33:01Z", "hours": 2.055, "text": "Devlog #12: So I was going to implement the singleplayer mode, but turns out there was still a bunch of bugs and inconveniences that took me upwards of an hour to fix. Also, I lowkey put a break statement somewhere I shouldn’t have, and got the programming equivalent of a short-circuit. In the end, it did work fine, and now I actually will build the bot and singleplayer mode."}, {"post_id": 49122, "ts": "2026-08-17T19:10:00Z", "hours": 7.9347, "text": "Devlog #11: I was going to make a singleplayer mode for the game, but somewhere along the way I kinda messed my code up a lot, and had to undo nearly 6 hours of changes since the last devlog. I then spent like an hour fixing bugs and trying to organize code, mostly by moving code that could/should be reused. I’m going to start writing more functional code for singleplayer now :) Also I switched from Vim to NeoVim in case you care, and since not a lot of changes were actually implemented, Imma just attach a screenshot of a file opened in NVim"}, {"post_id": 48239, "ts": "2026-08-16T15:21:39Z", "hours": 1.3433, "text": "Devlog #10: I added an endscreen to the game. Before, when you won the game or lost the game, it would just go back to the main menu. Now, it displays a message according to which side won the game, and pauses for exactly one seconds before exiting back to the main menu. It probably still can be confusing since there’s no indication of where in the board the sequence that won the game is, and there is still a possibility that a cube rotation wins the game off the board, and I have no idea how to make more clear to the user what happened to win the game."}, {"post_id": 47846, "ts": "2026-08-16T02:15:52Z", "hours": 2.4331, "text": "Devlog #9: I added colors to the game. Colors are a crucial part in Rubik’s cubes, so it just makes sense to add it to this game, yknow. I basically just copied the code that rotates the board positions that I had to spend like 6 hours coding , and made it work with colors. Not actually that hard, but still almost made me go insane with how much mindless typing I had to do. It’s funny that when I am stuggling with things like using my brain and fixing broken code , I would like nothing more than some mindless coding, but now that I actually am doing this stuff, I am just wanting to do anything but. UI still looks ugly as hell, need to improve that later."}, {"post_id": 47741, "ts": "2026-08-15T21:13:06Z", "hours": 2.4297, "text": "Devlog 8: You can finally actually interact with the GUI. You can click the red squares to place an X or an O, or click on one of the white squares to rotate the cube. It’s kinda bad right now, and if you click one of the cube rotation things longer than 33 milliseconds, it will move several times. I mean, it’s good enough, I guess, apart from the fact that it looks… (I don’t know enough english to come up with a word that’s good enough, and my english grade in school is 95%)"}, {"post_id": 47618, "ts": "2026-08-15T16:56:17Z", "hours": 6.0747, "text": "Devlog #7: I got the GUI working for the game. I mean, technically, to be a GUI you have to be able to interact with it, and in it’s current state, uh you can’t really do anything and you’re just stuck there forever. I mean unless you decide to close the game window or press escape (which closes the game window). Ideally, I would like for the escape key to not close the window, but whatever at this stage it really does not matter. List of stuff I need to do: Make it so that the user can actually interact with the game. Make a bot or something Make the UI nicer Put in on Itch.io this actually looks kinda intimidating. what have i gotten myself in to"}, {"post_id": 46675, "ts": "2026-08-14T03:38:13Z", "hours": 4.9258, "text": "Devlog #6: I got a working GUI for the main menu! This is my first GUI that is actually like usable, but since the actual gameplay doesn’t have a GUI yet, it does nothing except closing when the exit button is pressed. I made the UI with Raylib, and apart from the occasional existential crisis, everything went pretty well. now how the hell do i make the actual game ui"}, {"post_id": 46051, "ts": "2026-08-12T23:59:49Z", "hours": 2.4667, "text": "Devlog #5: I added a main menu to the game. It’s still only Text UI, so it may not make sense why it took so long, but I moved all the functions inside a class, make a header file so that the class can be accessed in other C++ files, discovered that it doesn’t work, had an hour long conversation with deepseek about why this didn’t work, and finally got it working- just to implement one feature that would’ve taken like 5 minutes had I just made everything in one file. At least it’s going to be organized for when I add the GUI or other features."}, {"post_id": 45916, "ts": "2026-08-12T18:06:02Z", "hours": 3.4297, "text": "Devlog #4: You can now actually win the game! I wrote a function that scans all the possible ways to win on every face, with amounts to 6x8=48 possible combinations. So there’s a chance that you rotate a face of the cube, and win or lose instantly due to the face you rotated to already having like 2 in a row. Now, I just need to make the GUI, not sure how I’m even going to implement it. I know 2 of the options are Raylib and SDL2, but I honestly have no idea which one to pick."}, {"post_id": 44963, "ts": "2026-08-11T02:19:30Z", "hours": 3.5108, "text": "Devlog #3: I made the cube turning mechanic. Although I have made programs like this before (like my CubeTrainer ), I struggled a lot with making the code, especially the Z function, and the two functions that depend on it, L and R. This was entirely human error and typos though, and not really like intellectually challenging. So I added the ability to turn the cube finally. Most of the main features of the game are done now, I just need a GUI, main menu, bot, and… lowkey ran out of ideas so yeah. To be very honest, my experiences with GUIs in C++ is limited to drawing a single dot in sdl2, and that took me 3 hours to do. And I lowkey cannot find any tutorials on SDL2 that can satisfy my attention span. I am very much someone that learns by doing, and most SDL2 tutorials I found just tell me to copy and paste code word for word."}, {"post_id": 44443, "ts": "2026-08-10T06:12:06Z", "hours": 3.8533, "text": "Devlog #2: This is like my 3rd day of serious C++ coding, and I’ve already build a functional version of tic-tac-toe. That wasn’t really supposed to be impressive, but I am kinda surprised I managed to pull this off so quickly (by my standards, for context it took me like 3 year to make an actually decent Python project). So yeah, I made tic-tac-toe. So far it only works in the terminal as I have no idea how to make a functional GUI in C++. There are also safeguards in place to prevent placing where it’s already marked or out of bounds. I still need to implement rotating the cube, but that can’t be that hard…."}, {"post_id": 44282, "ts": "2026-08-09T22:49:28Z", "hours": 2.3694, "text": "Devlog #1: I suck at C++, so I decided to make tic-tac-toe on the different faces on a Rubik’s cube. Right now the program just prints out the default position (all blank), and you can’t change it or anything. Yes, this took me two hours. There were a lot of bugs and I have almost never used C++ before (I had to google how to output text like twice)"}]...
|
Title: Tic-Tac-Cube by @EthanCubes | Stardance
De Title: Tic-Tac-Cube by @EthanCubes | Stardance
Devlogs:
Devlog #1: I suck at C++, so I decided to make tic-tac-toe on the different faces on a Rubik’s cube. Right now the program just prints out the default position (all blank), and you can’t change it or anything. Yes, this took me two hours. There were a lot of bugs and I have almost never used C++ before (I had to google how to output text like twice)
Devlog #2: This is like my 3rd day of serious C++ coding, and I’ve already build a functional version of tic-tac-toe. That wasn’t really supposed to be impressive, but I am kinda surprised I managed to pull this off so quickly (by my standards, for context it took me like 3 year to make an actually decent Python project). So yeah, I made tic-tac-toe. So far it only works in the terminal as I have no idea how to make a functional GUI in C++. There are also safeguards in place to prevent placing where it’s already marked or out of bounds. I still need to implement rotating the cube, but that can’t be that hard….
Devlog #3: I made the cube turning mechanic. Although I have made programs like this before (like my CubeTrainer ), I struggled a lot with making the code, especially the Z function, and the two functions that depend on it, L and R. This was entirely human error and typos though, and not really like intellectually challenging. So I added the ability to turn the cube finally. Most of the main features of the game are done now, I just need a GUI, main menu, bot, and… lowkey ran out of ideas so yeah. To be very honest, my experiences with GUIs in C++ is limited to drawing a single dot in sdl2, and that took me 3 hours to do. And I lowkey cannot find any tutorials on SDL2 that can satisfy my attention span. I am very much someone that learns by doing, and most SDL2 tutorials I found just tell me to copy and paste code word for word.
Devlog #4: You can now actually win the game! I wrote a function that scans all the possible ways to win on every face, with amounts to 6x8=48 possible combinations. So there’s a chance that you rotate a face of the cube, and win or lose instantly due to the face you rotated to already having like 2 in a row. Now, I just need to make the GUI, not sure how I’m even going to implement it. I know 2 of the options are Raylib and SDL2, but I honestly have no idea which one to pick.
Devlog #5: I added a main menu to the game. It’s still only Text UI, so it may not make sense why it took so long, but I moved all the functions inside a class, make a header file so that the class can be accessed in other C++ files, discovered that it doesn’t work, had an hour long conversation with deepseek about why this didn’t work, and finally got it working- just to implement one feature that would’ve taken like 5 minutes had I just made everything in one file. At least it’s going to be organized for when I add the GUI or other features.
Devlog #6: I got a working GUI for the main menu! This is my first GUI that is actually like usable, but since the actual gameplay doesn’t have a GUI yet, it does nothing except closing when the exit button is pressed. I made the UI with Raylib, and apart from the occasional existential crisis, everything went pretty well. now how the hell do i make the actual game ui
Devlog #7: I got the GUI working for the game. I mean, technically, to be a GUI you have to be able to interact with it, and in it’s current state, uh you can’t really do anything and you’re just stuck there forever. I mean unless you decide to close the game window or press escape (which closes the game window). Ideally, I would like for the escape key to not close the window, but whatever at this stage it really does not matter. List of stuff I need to do: Make it so that the user can actually interact with the game. Make a bot or something Make the UI nicer Put in on Itch.io this actually looks kinda intimidating. what have i gotten myself in to
Devlog 8: You can finally actually interact with the GUI. You can click the red squares to place an X or an O, or click on one of the white squares to rotate the cube. It’s kinda bad right now, and if you click one of the cube rotation things longer than 33 milliseconds, it will move several times. I mean, it’s good enough, I guess, apart from the fact that it looks… (I don’t know enough english to come up with a word that’s good enough, and my english grade in school is 95%)
Devlog #9: I added colors to the game. Colors are a crucial part in Rubik’s cubes, so it just makes sense to add it to this game, yknow. I basically just copied the code that rotates the board positions that I had to spend like 6 hours coding , and made it work with colors. Not actually that hard, but still almost made me go insane with how much mindless typing I had to do. It’s funny that when I am stuggling with things like using my brain and fixing broken code , I would like nothing more than some mindless coding, but now that I actually am doing this stuff, I am just wanting to do anything but. UI still looks ugly as hell, need to improve that later.
Devlog #10: I added an endscreen to the game. Before, when you won the game or lost the game, it would just go back to the main menu. Now, it displays a message according to which side won the game, and pauses for exactly one seconds before exiting back to the main menu. It probably still can be confusing since there’s no indication of where in the board the sequence that won the game is, and there is still a possibility that a cube rotation wins the game off the board, and I have no idea how to make more clear to the user what happened to win the game.
Devlog #11: I was going to make a singleplayer mode for the game, but somewhere along the way I kinda messed my code up a lot, and had to undo nearly 6 hours of changes since the last devlog. I then spent like an hour fixing bugs and trying to organize code, mostly by moving code that could/should be reused. I’m going to start writing more functional code for singleplayer now :) Also I switched from Vim to NeoVim in case you care, and since not a lot of changes were actually implemented, Imma just attach a screenshot of a file opened in NVim
Devlog #12: So I was going to implement the singleplayer mode, but turns out there was still a bunch of bugs and inconveniences that took me upwards of an hour to fix. Also, I lowkey put a break statement somewhere I shouldn’t have, and got the programming equivalent of a short-circuit. In the end, it did work fine, and now I actually will build the bot and singleplayer mode.
Devlog 13: I spent like 6 hours making the bot, and it’s absolutely stupid. I made two ways to get a move: scanning for 2-in-a-rows, and placing randomly. Even though the 2-in-a-row scan runs first, it still only plays randomly. As of right now, the bot has never won a single game against me and is always O for some reason. I probably messed up the setup code. but at least i made something that are somewhat functional….. (I was writing this devlog and trying to get a screenshot of the game, and somehow it actually worked and blocked my move somehow, IDK if it was a coincidence)
Devlog #14: In search of a better way to make a bot, I went on the world’s most reliable website: Wikipedia - and struck gold. The page on tic-tac-toe contains a strategy section, containing the optimal strategy that always leads to a draw. Of course, my game isn’t actually the same as Vanilla tic-tac-toe, so the player will probably still win most of the time. I haven’t actually implemented most of the rules, only the last few that are the least important. In my defense, they were the easiest to make. I did kinda struggle with the bot trying to mark a place that already has been placed, and it took like half and hour for me to figure that out. IDK what I should do for the screenshot, you can’t really tell that I changed anything.
Devlog #15: I updated the bot to give it two of the most important features: winning the game, and trying to prevent your opponent from winning. This was done by saving every single possible way to have a two-in-a-row on the board, connected and disconnected, 24 possible combinations in total. And of course, because I’m not experienced enough to do it any other way, it was all written by hand. And since I don’t like using AI, and don’t really trust it, I wrote all of it myself, and used only used AI to check that I didn’t mess something up. Now how the hell do I make it detect forks….
Devlog #16: I added creating and defending against forks. One of my previous projects, Gomoku Balanced, had some decent defense and offense, which was even able to beat some people, according to the reviews on my ship. The one thing it was missing was the ability to detect potential forks and combat them, which was why I was able to beat it almost every single time. This bot, however, will not be the same. Mostly because the board is kinda small. I literally just added every single possibility of a fork to the to the bot. I just got notified that I have like 8 hours without a devlog, and since I am horrible at coding, the bot function I’m working on isn’t even working yet. I’m also just not getting it done within 2 hours. The function is supposed to block the fork, but it doesn’t work for some reason. DeepSeek (AI) gave me a list of 20 reasons it’s breaking, but I’m not about to blindly trust AI. I mean it doesn’t raise any errors, so that’s good. For me at least, I spend a lot of time just trying to get the code to compile properly. And in this case, even when the code compiles, half the time it just runs into a runtime error and crashes. The bot crashed like 20 times. They were all runtime errors, and I use C++, so I have absolutely no idea where the error occurs. Also, I want to be different, and therefore I use NeoVim, and since I don’t want to spend time that I could be building actually good projects for Stardance in the time it takes to configure NeoVim, and therefore I can’t see any warnings or errors. I did try using CLion and VSCode, but CLion takes up a lot of RAM and VSCode is made by Microsoft (and VSCodium and Code OSS don’t have that many plugins). Also, when I was using CLion, the errors didn’t really appear… and CLion also does a bunch of stuff and creates a bunch of mysterious files. I don’t really like doing stuff without knowing what they do, so I just ditched CLion altogether. Did I seriously go on a paragraph-long rant about how using NeoVim leads to not being able to know why my code sucks? Is the paragraph-long rant in question also probably longer than the entire rest of the devlog? (Yes and yes); Anyway you still can’t tell that I made any changes to the bot from a single screenshot, so I’m just going to attach one of my old ones.
Devlog #17: Guess what I did today: a) fixed the fork, b) optimized UI, c) hunted bugs, or d) added a random new c++ file for the sole purpose of logging information because I don’t want to use an IDE or configure NeoVim. The answer, of course, is D. I really need a way to figure out what is happening inside my code. Even though I wrote the code, it’s still kinda a black box to me, so I need to have some logs to figure out why the program is not working as expected. I have yet to actually implement the function or add out a way to have different logs files for different sessions though, I’m doing that next.
Devlog #18: I worked on the logs even more, and now they are in separate files. You wouldn’t believe the amount of time this took me. Evidently, I’m not a very good C++ dev, and when I was searching on Stack Overflow and other sites, I kept running into things I don’t understand like & , auto , and probably many others. So of course, I resorted to coding my own functions at the most low level C++ possible without actually being totally backwards compatible with C. Essentially, every time the game starts, function runs that tries to generate a log file with the current time. There is a theoretically possible edge case where the user opens the project more than once in a single second, so I added some code to make absolute sure not to override any existing files. That took me like at least 15 minutes to half and hour, for an edge case that probably can only happen in testing, and that will not actually affect the game at all. Yay, what great decision making skills. I still haven’t fixed the fork detection and response function, but at least I can now have a way to find out what is going wrong. The only progress with finding out what is wrong is just narrowing the error location down to the function where I already knew there was going to be an error. Yay.
Devlog #19: In an effort to procrastinate fixing the bot fork bug while still doing something useful, I 1) took a 2 day break from this project to work (and ship) something else, and 2) fixed a very annoying bug where the user would be X every single time. I solved the issue by switching from older, more C-like rand() from cstdlib to the more modern #include <random> . I highkey copied the code from Stack Overflow , but at least it’s better than relying on AI. That solved like half of the problem, but then I discovered that I wasn’t actually resetting the board properly when manually exiting a game, since I was looking through the logs. I made the logs are procrastination, but they’re actually really nice. In case you were wondering btw, most of the time logged in this devlog was spent on trying to fix the fork bug, but I’ll make a dedicated devlog only when I’ve actually fixed the bug.
Devlog #20: I abandoned searching for potential forks and stopping them from ever forming in favour of handling forks that have already been formed. After more than one win for the opponent is detected, the bot registers that it is a fork. It then calculates which moves are best to neutralize the threat. There are four ways for each single win to be neutralized, so I need to make one of these four moves, for each of the two cases. In some cases, one or more of the moves overlap, in which case the overlapped move will be immediately returned, but most of the time, the bot just picks from one of the 8 possible neutralization moves randomly. This is definitely less efficient than just figuring out how to prevent forks from ever forming, but I mean it’s a good implementation for the cube part of this game. (Sometimes it messes up and I just win instantly)
Devlog #21: I am very very very very bad at debugging code. Somehow I managed to fix the major rendering bug and also make the fork handling better within 2 hours. I don’t believe I’ve mentioned anything about it before, but there was a rendering glitch upon the bot winning the game right after the user has made a cube turn that allowed the bot to win the game. I’m still not sure wy that happened, but I fixed it by re-rendering the entire board before drawing the board position again. If that didn’t make sense to you, it doesn’t make much sense to me either. If it did, well good for you ig. I feel like the fork handling deserves and entire paragraph, so here: I changed the win blocking function to also log the direction that potential win is in, by logging “position 1” of that specific potential win. The possible neutralizing moves of the directional indicator value is then compared against the potential win location neutralizing move to try to find a match. If a match is found, that means that the move is guaranteed to neutralize the given threat. That paragraph did not make much sense, even to me. If you read my code, it’ll probably make more sense, as long as you do not get permanent brain damage from reading the it (I need to learn how to write better code)
Devlog #22: I made the buttons look nicer by centering the text inside of them. It was much harder than it looked and I had to work with “Vector2” in Raylib. I may or may not have spent like half and hour trying to find documentation on it, only for me to discover that it’s a struct inside of Raylib. Still not entirely sure what a struct is. So I may or may not have spent another half and hour trying to declare the struct inside of the main.cpp file, before I finally gave up and asked DeepSeek. Turns out, it’s just Vector2 something{(float)x, (float)y} . It’s not exactly simple if you don’t have much experience with C++, but I started coding in C++ 16 days ago and I understand it just fine. Halfway through, while testing, I accidentally overrode the main file and had to restore it and re-add all the changes I make. I don’t like committing before the program doesn’t have that many bugs, so a lot of progress was lost. This is like the second time I’ve done this, and if you’re curious what I did, well… The command used to compile my program for testing is g++ -std=c++17 -o build/program src/main.cpp src/board.cpp src/bot.cpp src/logs.cpp -lrayib . This compiles the code for all the C++ files and the Raylib library, and creates and executable inside the build/ directory. Except I forgot to type build/program, and so GCC just overrode main.cpp. Honestly though, it didn’t do that much harm, thanks to the test.cpp file having a similar version of code as the code that was overridden, and also git. hackatime isn’t working so i can’t even post this devlog nvm it just worked nvm it broke again honestly this is one of the first times anything has broken in my experience as someone who joined hack club like 3 months ago. im sure everyone involved in fixing this is trying their absolute best.
Devlog #23: “Minor” improvements that take like hours to do is literally my entire C++ learning experience so far. This time, I improved the “wild card” function that rotates the cube randomly. Before, it just actually rotated randomly, and now, I changed it to check and make sure that moves it makes does not cause the opponent to win on the very next move. fyi i DO write these devlogs myself without ai, I just literally need Vim keybinds to function as a person and therefore type all the devlogs inside of NeoVim before pasting them into the devlog. felt like writing this after i discovered that the “please write this yourself, humans read it” text at the bottom actually flashes red when you paste text.
(How is it) Devlog #24 (Already): Lowkey, when I started this project I was expecting to take 1 week max, and it was supposed to be like practice for making a more advanced project. I’ve since decided to not make the more advanced project (for now). Now, it’s been more than 2 weeks since I’ve started it, and it’s still in rough shape and probably not ready for release. The UI still sucks, but I added like a popup system for displaying messages, such as telling the user why they won/lost without the win being visible due to the nature of the board being a cube. I was going to make a class to handle all the popups, but I settled for global variables and functions. Probably not the best practice, but it works, and if it ain’t broke don’t fix it. I also added a entire new menu, the help menu. It could probably use some improvements, so if you have anything you’re curious about or confused about, drop a comment. There’s like 8 people that have seen this project, so I’m really expecting anything, but it would be appreciated greatly. I lowkey forgot to add one break statement, so I spent like 30 minutes trying to figure out why it wasn’t working Still, how the hell did this take 7 hours? I swear I’m not inflating my time by any means.
Devlog #25: I tried to make the UI look good. It isn’t necessarily good, but it’s better than it used to be IMO. I just changed the color scheme, and now the text is round and the boxes are rounded. I also reworked the board position display system. Since the squares are just buttons, and the button class can display text, I just made the board display text by itself. For context I wrote the button class to draw and handle buttons. There might be a class for this or something but idc i just wrote it myself like 17 days ago.
Devlog #26: Pretty short devlog. I added some simple QoL changes: the main menu title is now centered, and the popup and some captions now have a margin around them so they aren’t stuck right on the edge. Also this was technically done a couple of devlogs ago, but I added shell scripts to compile and run the program so I don’t have to type g++ -std=c++17 -Wall -Wextra -Werror -pedantic -o build/tic-tac-cube src/main.cpp src/board.cpp src/bot.cpp src/logs.cpp -lraylib every single time I want to compile the program.
Devlog #27 (a1b005f): I highkey have trouble keeping track of what I did between devlogs sometimes, so I’m adding the SHA of the Git commit to devlogs. So I tried to create a dedicated c++ file for handling buttons, since I wanted to have even more control over them, but ran into the issue of not having a way to share variables across different files. I know global variables are kinda bad, but I mean in this scenario they’re like config stuff that isn’t really going to be that harmful… Most of the time was spent creating the button.cpp and button.h files, and they’re not even in GitHub yet lol
Devlog #28 (ac77900): I added an entire separate .cpp file for handling buttons because I wasn’t satisfied with how they were working (I love ricing). Yes, it did take 9 hours. I have a skill issue. There are 3 main things I improved on: The buttons are now more customizable, as they now accept JSON files as setup input instead of like only 4 parameters. A function was added to change the button upon hover It’s more organized since the files are separate. (I haven’t actually tested the code out yet, I feel pressured to get the devlog out ASAP)
Devlog #29 (57bac36): Guess what I did: a: Made my code work again b: Add new features c: Complete the button rice d: Look up the GitHub Repo for DeepSeek because I got bored and discover how to add badges to my README. I had way to much fun doing this (it was d)
Devlog #30 (b5f8085): The code is now compiling again, thanks to, as much as I hate to admit it, Visual Studio Code. I’m on Linux so I can’t use Visual Studio, CLion is kinda weird and the error messages are broken, and KDevelop doesn’t have a Wakatime/Hackatime plugin yet (maybe it does, but it isn’t in the Hackatime docs) I opened VSCode and was met with like a hundred errors. With a combination of VSCode’s functional error messages, DeepSeek telling me what those messages mean, and my pretty average brain, I managed to remove all the errors. But since I didn’t know how to use makefiles and stuff (still don’t ) I had to compile the program manually again. Apart from the fact that it crashes upon any user mouse input, it’s functional!
Devlog #31 (6639676): I fixed the code! Essentially, the code was breaking because the hover info for the code was undefined. I fixed it by setting the hover info to the regular button info if the hover info was not defined. Then I ran into another issue, which was that the buttons, upon hover, were being drawn from the center instead of the corner. It was a simple enough fix, I just changed like 2 values to use the calibrated values instead of the center coordinates. And yeah, the only real issue right now is that the text on the board is slightly offcentre, but that’s not really a big issue.
Devlog #32 (ca5f14e): I changed the theming yet again. I’m not really good at making programs look good, and even when I do, my designs are usually really basic. Yes, it’s inspired by discord. Please tell me how this looks in the comments, I really need feedback. I also finally added a little change in color to some of the buttons when selected, which was the entire reason I decided to rework buttons in the first place. I’ll also attach a beta design that’s more of a retro/terminal aesthetic, but contrasted too much with the cube and letters IMO
Devlog #33 (d16d3b8): This time was used for trying to make the project work for webassembly, which i have decided to abandon. Therefore, this time should probably be deflated to account for the lack of progress. I probably picked the worst language for compiling for the web, and next time I want to make a web version of anything, I’m going to use a game engine. This just did not work out, and was too much effort to save maybe ~2 seconds of time. I’m sorry that this will cause any reviewers to have to download the game to play it, and to compensate I will be attaching a link to a YouTube video demoing the game either on the readme, on the itch.io page, or both. I feel like a failure for this, but maybe it’s the right choice for my mental health and academic… idk is health also the right word for this situation?
Devlog #34 (4eec49b): I changed the font! And also updated the README. Fonts in raylib are REALLY hard. Since I’m using multiple different font sizes, the scaling is really screwed up and blurry sometimes. When I was trying to add the custom font, I may or may not have… lagged out my computer and had to restart. as for the readme upgrade, i added instructions to play i also removed some semicolons. took me like half and hour
Devlog #35 (b48efd0): I fixed most of the font scaling issues, and also updated the README at bit (as always). I did this by loading the same font 3 times, once at 20 font size, once at 40, and once at 80. I changed the code to use a either the 20, 40, or 80 version of the font according to the font size to make the text look smoother.
Devlog #36 (fcc4f2f): I made the first gameplay change in a while, and also changed the theming a bit more. The gameplay changes I noticed that the game was getting a bit… repetitive, so I changed the bot to have an element of randomness when there are multiple spots that provide similar advantage. This took me a long time, because my code is spaghetti, and also because random in JavaScript is so much better than in C++ The visual changes I changed the theming of the game because I didn’t think the discord-esque style looked very good. Now, it’s changed to match the “Arch” theme on Monkeytype. I also changed the font to Roboto Mono since that’s what my configuration of Monkeytype uses. Stuff to do Compile this for Windows and Mac, put this on Itch.io. Ship the project
Devlog #37 (8b55316): I made a web build for the game! I took a break from Stardance to make something for Out to C, and when I was making a C game with Raylib I discovered that it is extremely hard to make a downloadable executable run well on Windows or MacOS, because on Windows you have to include DLL files, and on MacOS it’s just harder to install Raylib. In the end, I ended up making a web build, and since I wasn’t so bad, I decided to make a web build for this. I used Emscripten, and using the em++ tool with the asyncify option, manage to get most of the game logic working, with only one small frame generation bug, which I fixed by changing this_thread::sleep for to something that is easier for the browser to render. I also made some other QoL changes so that the bot feels less stagnant, hopefully.
Devlog #38 (25c796f): the beans aren’t going to know what hit them (regarding my 145 hours waiting to be shipped) I made a couple of changes, such as improving the readme and disabling the exit button, greying it out and making so that it can’t be pressed. For context, the game can only run on the web, and the exit button just doesn’t do anything useful on the web. I also customized the itch.io page (which hasn’t been released yet but you can access it here via secret url). It looks kinda decent (i just copied the game’s color scheme)
Final Devlog Before Ship I’m done stalling. Every time I’ve shipped a project for Stardance, I’ve stalled for like a week trying to make sure it’s good enough. This time, I’ve stalled for more than a month. I’ve even shipped 2 separate projects to different Hack Club events in the time that this project has technically been “good enough”. Essentially, I just worked on the README a bit more. I did manage to fix a few errors. For example, I had a few spelling and grammar errors. I also added a bit more detail to the readme.
Ships:
I made a tic-tac-cube game where you can rotate the board like a Rubik’s cube! It was made in C++ with Raylib without a game engine, and only uses 2 libraries, Raylib, and Nlohmann-JSON. I’m really proud of the way I coded the entire GUI, buttons, board, and bot. Features Tic-Tac-Toe game on a Rubik’s cube Singleplayer mode against computer Local multiplayer against another player (or yourself) Main menu & help page. I coded the bot to be somewhat intelligent, and will actively try to block your attacks and create it’s own ones. It can turn the cube just like you, and will rotate the cube to get out of a pickle. This is my first C++ project, and my first experience with languages that have to be compiled before running. It was honestly really fun to make. I put a LOT of effort into this game, over 140 hours....
|
1793400548.9540048
|
1793486948.9540048
|
|
46067
|
My own site! by @nitikpsn | Stardance
|
nitikpsn
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-19T17:27:09Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "shipping my site ;)", "repo": "https://github.com/Nitikpsn/nitik-personal-siite", "demo": "https://www.nitikpsn.xyz/"}]...
|
[{"post_id": 81041, "ts": "202 [{"post_id": 81041, "ts": "2026-10-19T17:21:50Z", "hours": 2.3806, "text": "My personal site is done ;)"}]...
|
Title: My own site! by @nitikpsn | Stardance
Devl Title: My own site! by @nitikpsn | Stardance
Devlogs:
My personal site is done ;)
Ships:
shipping my site ;)...
|
1793400550.3889616
|
1793486950.3889616
|
|
46069
|
OPENCALCULATE by @jagathram | Stardance
|
jagathram
|
1
|
10.0
|
31
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-23T03:49:53Z", "hours": 10.0, "multiplier": 3.01, "payout": 31, "blessing": "neutral", "text": "I’m not here to play with AI—just try my projects and rate them. These are my learning projects, so don’t expect groundbreaking uniqueness, but I’ve put serious effort into them.", "repo": "https://github.com/jagathram-tech/OPENCALCULATE", "demo": "https://opencalculate.vercel.app"}]...
|
[{"post_id": 49620, "ts": "202 [{"post_id": 49620, "ts": "2026-08-18T14:41:15Z", "hours": 3.7678, "text": "New features are dropping soon 🤌🤌"}, {"post_id": 46671, "ts": "2026-08-14T03:32:34Z", "hours": 2.7994, "text": "ADDED the theme toggle , and expanded the capabilities of my basic calc"}, {"post_id": 44414, "ts": "2026-08-10T04:40:20Z", "hours": 1.3992, "text": "Bug Fixes and integrated keyboard input"}, {"post_id": 44388, "ts": "2026-08-10T03:06:49Z", "hours": 2.2083, "text": "THE README AND THE other files are renovated"}]...
|
Title: OPENCALCULATE by @jagathram | Stardance
De Title: OPENCALCULATE by @jagathram | Stardance
Devlogs:
THE README AND THE other files are renovated
Bug Fixes and integrated keyboard input
ADDED the theme toggle , and expanded the capabilities of my basic calc
New features are dropping soon 🤌🤌
Ships:
I’m not here to play with AI—just try my projects and rate them. These are my learning projects, so don’t expect groundbreaking uniqueness, but I’ve put serious effort into them....
|
1792882068.7344944
|
1793746068.7344944
|
|
46076
|
Wirenux.zip by @Wirenux | Stardance
|
Wirenux
|
1
|
7.37
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-14T09:13:45Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Wirenux.zip YAY ! After 6 hour I finally have my custom website ! The .zip domain extension is funny ! I think the black and white aesthetic look very nice !", "repo": "https://github.com/wirenux/wirenux.zip", "demo": "https://wirenux.com"}]...
|
[{"post_id": 61410, "ts": "202 [{"post_id": 61410, "ts": "2026-09-04T09:41:45Z", "hours": 0.7394, "text": "I added new project to the list and change the CSS to look good with different image size"}, {"post_id": 51624, "ts": "2026-08-21T12:25:45Z", "hours": 0.6269, "text": "I spend 30min optimizing my website. Now the whole website is ~1MB ! and load under 500ms ! (without cache) (It’s was mostly the picture)"}, {"post_id": 46775, "ts": "2026-08-14T08:44:26Z", "hours": 0.7253, "text": "Now the copy and share button work ! I also fixed some mobile bug. I also put the clock in a custom container !"}, {"post_id": 46447, "ts": "2026-08-13T17:38:14Z", "hours": 0.9506, "text": "I have added the stack section ! I also fixed some bug with the cursor on both Desktop and mobile"}, {"post_id": 45206, "ts": "2026-08-11T15:07:08Z", "hours": 0.3547, "text": "Just added a simple footer"}, {"post_id": 44539, "ts": "2026-08-10T11:27:25Z", "hours": 0.7561, "text": "Added the projects section !"}, {"post_id": 44521, "ts": "2026-08-10T10:35:12Z", "hours": 1.0633, "text": "I have added a lot ! First: new main text ! with icon. Now every link have a tool tip. I added a custom cursor that change form when hovering a text."}, {"post_id": 44232, "ts": "2026-08-09T21:03:18Z", "hours": 1.2622, "text": "I have done a lot of things since the last time ! new font, hour at the nav bar and hero"}, {"post_id": 44106, "ts": "2026-08-09T17:31:34Z", "hours": 0.5461, "text": "Hi ! I am breaking down idea for my personal website"}]...
|
Title: Wirenux.zip by @Wirenux | Stardance
Devlog Title: Wirenux.zip by @Wirenux | Stardance
Devlogs:
Hi ! I am breaking down idea for my personal website
I have done a lot of things since the last time ! new font, hour at the nav bar and hero
I have added a lot ! First: new main text ! with icon. Now every link have a tool tip. I added a custom cursor that change form when hovering a text.
Added the projects section !
Just added a simple footer
I have added the stack section ! I also fixed some bug with the cursor on both Desktop and mobile
Now the copy and share button work ! I also fixed some mobile bug. I also put the clock in a custom container !
I spend 30min optimizing my website. Now the whole website is ~1MB ! and load under 500ms ! (without cache) (It’s was mostly the picture)
I added new project to the list and change the CSS to look good with different image size
Ships:
Wirenux.zip YAY ! After 6 hour I finally have my custom website ! The .zip domain extension is funny ! I think the black and white aesthetic look very nice !...
|
1793487307.7939353
|
1793573707.7939353
|
|
46100
|
Stoic-Nasa by @anshum_2422 | Stardance
|
anshum_2422
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T18:30:50Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a NASA picture viewer because I wanted something clean and simple to look at space pictures without all the extra stuff. It shows you the Astronomy Picture of the Day with the title and description. Click “See the Cosmos” and it loads up whatever NASA posted today. Some days it’s a galaxy, some days it’s a nebula, sometimes it’s a video. It handles both. I added 3 themes because I couldn’t pick one: Stoic - earthy, calm, muted tones Sakura - pink, soft, dreamy Simple - clean, minimal, nothing extra You can switch themes by clicking the button or just pressing S on your keyboard. Press Spacebar to get a new picture without touching your mouse. The font is Space Mono because I like how Nothing phones look. Clean, monospace, doesn’t get in the way. Built this with HTML, CSS, and JavaScript. Nothing fancy, no frameworks. Just code that works. Used NASA’s APOD API for the pictures and GitHub Pages to host it. Took me a while to figure out the API key and deployment but it’s finally live. Learned a bunch about CSS variables, keyboard events, and how to make things look decent without over complicating it. Check it out here: https://anshum2422.github.io/stoic-space/", "repo": "https://github.com/anshum2422/stoic-space", "demo": "https://anshum2422.github.io/stoic-space/"}]...
|
[{"post_id": 44119, "ts": "202 [{"post_id": 44119, "ts": "2026-08-09T17:53:59Z", "hours": 0.7933, "text": "Built a NASA picture viewer from scratch. Shows the daily space picture with title and description. Added a Change Theme button that toggles between dark and light mode. Uses Nothing OS font. Clean and simple design. Typed everything myself. Live: https://anshum2422.github.io/stoic-space/ GitHub: https://github.com/anshum2422/stoic-space"}]...
|
Title: Stoic-Nasa by @anshum_2422 | Stardance
Dev Title: Stoic-Nasa by @anshum_2422 | Stardance
Devlogs:
Built a NASA picture viewer from scratch. Shows the daily space picture with title and description. Added a Change Theme button that toggles between dark and light mode. Uses Nothing OS font. Clean and simple design. Typed everything myself. Live: https://anshum2422.github.io/stoic-space/ GitHub: https://github.com/anshum2422/stoic-space
Ships:
I built a NASA picture viewer because I wanted something clean and simple to look at space pictures without all the extra stuff. It shows you the Astronomy Picture of the Day with the title and description. Click “See the Cosmos” and it loads up whatever NASA posted today. Some days it’s a galaxy, some days it’s a nebula, sometimes it’s a video. It handles both. I added 3 themes because I couldn’t pick one: Stoic - earthy, calm, muted tones Sakura - pink, soft, dreamy Simple - clean, minimal, nothing extra You can switch themes by clicking the button or just pressing S on your keyboard. Press Spacebar to get a new picture without touching your mouse. The font is Space Mono because I like how Nothing phones look. Clean, monospace, doesn’t get in the way. Built this with HTML, CSS, and JavaScript. Nothing fancy, no frameworks. Just code that works. Used NASA’s APOD API for the pictures and GitHub Pages to host it. Took me a while to figure out the API key and deployment but it’s finally live. Learned a bunch about CSS variables, keyboard events, and how to make things look decent without over complicating it. Check it out here: https://anshum2422.github.io/stoic-space/...
|
1793523223.5956626
|
1793609623.5956626
|
|
46120
|
Iris Flower Predictor by @omarelhalaby76 | Stardan Iris Flower Predictor by @omarelhalaby76 | Stardance...
|
omarelhalaby76
|
1
|
2.56
|
9
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-21T15:19:11Z", "hours": 2.0, "multiplier": 5.59, "payout": 9, "blessing": "neutral", "text": "i made an iris flower predictor both GUI and CLI versions, it was easy to do the AI model, but the GUI was kind of challenging since it was my first time making a website using python, it take in measurements in cm and predicts the species and gives you probablilities too!", "repo": "https://github.com/omarelhalaby76-coder/iris-species-predictor-CLI", "demo": "https://pypi.org/project/iris-species-cli/"}]...
|
[{"post_id": 52057, "ts": "202 [{"post_id": 52057, "ts": "2026-08-22T03:11:26Z", "hours": 0.5594, "text": "UPDATE: GUI has some errors so i temporarily removed it and now only the CLI version is available through PIP"}, {"post_id": 51708, "ts": "2026-08-21T15:17:20Z", "hours": 1.5258, "text": "i just finished the CLI version and the GUI version of a flower species predictor, for a simple start!"}]...
|
Title: Iris Flower Predictor by @omarelhalaby76 | Title: Iris Flower Predictor by @omarelhalaby76 | Stardance
Devlogs:
i just finished the CLI version and the GUI version of a flower species predictor, for a simple start!
UPDATE: GUI has some errors so i temporarily removed it and now only the CLI version is available through PIP
Ships:
i made an iris flower predictor both GUI and CLI versions, it was easy to do the AI model, but the GUI was kind of challenging since it was my first time making a website using python, it take in measurements in cm and predicts the species and gives you probablilities too!...
|
1793436902.1494927
|
1793523302.1494927
|
|
46133
|
Motivation Player by @gavinwu42711 | Stardance
|
gavinwu42711
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T17:12:46Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Often, I feel myself out of motivation and falling into doom scrolling. So, I built an MP3-like player where I can play motivational/funny quotes from my friends to help bring me up One of the main challenges I faced was not really being able to prototype and making my second PCB design ever. I was very anxious for when the PCB originally arrived since I had no way to test on the breadboard if the research I had done online was correct until after I ordered my PCB (I didn’t have the parts at the time and waiting until they came would have taken too long for the PCB). Luckily –and thankfully – the PCB worked out as intended. Overall, given this is my first time using an audio amplifier, working with SD cards, and not using a step-by-step tutorial for any of the parts, I’m really proud that the project works smoothly, with the audio being pretty decent.", "repo": "https://github.com/GavinWu42711/Motivation-Player", "demo": ""}]...
|
[{"post_id": 67498, "ts": "202 [{"post_id": 67498, "ts": "2026-09-13T16:43:00Z", "hours": 1.6131, "text": "Finished! After definitely not procrasinating for a week, I finished the Motivation Player! I soldered all the parts together and assembled it together. Very happy that the PCB worked first try. At this point, the project is done but there are some last things I’d like to say that happened (and I hope to be more careful about in future projects) Bad :C : The container is just a shy too short for the batteries, and almost can’t close (thankfully the plastic top can bend) The potentiometer is really annoying to use All the “controls” would’ve been easier to used if they were elevated from the top Basically, I should’ve put all the input on one side so it could be flush with the lid and every other component on the other side Good :D : The batteries provide more amps than my test set up, leading to a pretty decent volume (the connections are also much better) A weird hardware/software bug causes the buttons and potentiometer to create a spike in the sound, leading to a beeping noise whenever they are used (which actually sounds like it belongs – happy accident) Overall, pretty happy that it worked out. Just need to update the read me to ship!"}, {"post_id": 59955, "ts": "2026-09-02T00:56:22Z", "hours": 2.1642, "text": "Debugging Code Over the past week (on and off), I’ve been slowly assembling the motivation player on the breadboard. I soldered all the parts I could and debugged the code after uploading it to the Raspberry Pi. Can’t say it didn’t take awhile… Luckily, I got the code working and the speaker to function. Unluckily, I had a brain fart and decided minimum voltage = optimal voltage. The audio amplifier works but is kind of scuffed because there isn’t enough voltage and current. I think it works well enough that I won’t solder in an extra battery container to increase the voltage and current (especially because the PCB doesn’t have any regulators) Basically just waiting on the PCB at this point…"}, {"post_id": 49193, "ts": "2026-08-17T20:51:24Z", "hours": 1.32, "text": "Finished Programming :D I finished the firmware! I decided to move to Circuit Python since it works better with the Pi Pico. The project is almost done and ready to be reviewed. Some things I need to do before that: Create a BOM Add more info in the README Add a folder with all the files with the libraries"}, {"post_id": 48580, "ts": "2026-08-17T01:14:31Z", "hours": 0.7186, "text": "Finished CAD! I finished the CAD for the enclosure and got everything assembled in CAD. Luckily everything worked out! :D Might’ve put too much space for the SD card on the PCB… I also started working on the firmware. Originally, I wanted to use Arduino IDE but it might not be the friendliest for the Pi Pico. I plan on looking into circuit python to see if it is better for reading SD cards and playing audio."}, {"post_id": 47825, "ts": "2026-08-16T01:25:33Z", "hours": 1.1167, "text": "Cadding Enclosure (pt. 3) I finished adding the holes, fixed a few issues with not giving enough tolerence, and started adding the rest of the parts in an assembled CAD model to give an idea of the finished product and double check that everything will fit together. Some parts (currently the potentiometer) I couldn’t find the right model for so I’ll be using a stand in model for them. I used the “thread” feature in Fusion and I’m hoping the tolerence won’t be too tight for the screws I have… worst case hot glue will save me XD"}, {"post_id": 47240, "ts": "2026-08-15T01:06:58Z", "hours": 1.0806, "text": "Cadding the enclosure (cont.) I’m almost done with CAD!… at least I think so. I finished up the cutouts in the top and adjusted a few things for the bottom part to better sit the PCB. Decided to go with a 30 mm diameter Gikfun speaker and just have it at the very front. The last part I need to add are the holes for the screws to keep the top and bottom together. Not sure the size for that so I’ll need to do some more research. Hopefully I didn’t make the sides of the container too thin…"}, {"post_id": 46637, "ts": "2026-08-14T01:08:13Z", "hours": 1.0217, "text": "Cadding the enclosure Started using Fusion360 to CAD the enclosure for the project. I got the bottom part mostly done and got 2 of the holes needed for the lid done. I still need to do the holes for the other buttons, display, and screws to put together. At some point, I’ll also need to finalize the speaker I want to be able to decide where to have it in the CAD."}, {"post_id": 46603, "ts": "2026-08-13T23:17:58Z", "hours": 0.4333, "text": "PCB Finished (Actually) Turns out I forgot to do some steps… oops haha? Luckily it was just running the DRC, adding a few wires between the ground references and adding a rectangle in the cut layer. Onto making the CAD for the box!"}, {"post_id": 46082, "ts": "2026-08-13T01:13:11Z", "hours": 1.6508, "text": "PCB Finished! (I hope…) I finished the PCB design! For the most part, it was smooth sailing to rearrange all the components into a neat-ish rectangle and to wire everything up. There were a few issues with the parts being wired wrong in the schematic that I had to fix… Hopefully no more of that comes up. I’ll be doing final touches and double checking the PCB before moving on to making a 3d print for its case."}, {"post_id": 44822, "ts": "2026-08-10T20:56:00Z", "hours": 1.8167, "text": "PCB Design (2) I finished up the schematic for the PCB and assigned all the footprints for the parts I’m using. I decided to stick with the LM386 and to use 3 AA batteries to achieve the minimum voltage needed for the audio amplifier. For the power toggle switch and the speaker, I decided to just use connector wires as a comprise for not knowing which one I will be using (gives me more flexibility for where I want them to be on the final build) Next steps I need to do: Design the PCB Write the code/firmware Design the CAD model for the finished project and any 3D printed parts I need"}, {"post_id": 44264, "ts": "2026-08-09T22:01:22Z", "hours": 0.8, "text": "PCB Design Using KiCad, I wired together most of the components I plan on using. These include: A play button A random button (to give a random motivational audio) A rotary encoder (to scroll through all the available audios) A Raspberry Pi Pico (the microcontroller to read the SD card and do all the logic) SSD 1306 (oled display – 1.36 inch) SD card module (to hold the audio files) Some things that I still need to add: Audio amplifier Speaker Potentiometer (for volume adjustment) Battery container (idk what to call it) w/ a power switch I was originally going to use the LM386 for audio amplifying but it runs above 3.3V according to online research. If anyone has reccomendations, please let me know! (I have no idea what I’m doing to be honest)"}]...
|
Title: Motivation Player by @gavinwu42711 | Starda Title: Motivation Player by @gavinwu42711 | Stardance
Devlogs:
PCB Design Using KiCad, I wired together most of the components I plan on using. These include: A play button A random button (to give a random motivational audio) A rotary encoder (to scroll through all the available audios) A Raspberry Pi Pico (the microcontroller to read the SD card and do all the logic) SSD 1306 (oled display – 1.36 inch) SD card module (to hold the audio files) Some things that I still need to add: Audio amplifier Speaker Potentiometer (for volume adjustment) Battery container (idk what to call it) w/ a power switch I was originally going to use the LM386 for audio amplifying but it runs above 3.3V according to online research. If anyone has reccomendations, please let me know! (I have no idea what I’m doing to be honest)
PCB Design (2) I finished up the schematic for the PCB and assigned all the footprints for the parts I’m using. I decided to stick with the LM386 and to use 3 AA batteries to achieve the minimum voltage needed for the audio amplifier. For the power toggle switch and the speaker, I decided to just use connector wires as a comprise for not knowing which one I will be using (gives me more flexibility for where I want them to be on the final build) Next steps I need to do: Design the PCB Write the code/firmware Design the CAD model for the finished project and any 3D printed parts I need
PCB Finished! (I hope…) I finished the PCB design! For the most part, it was smooth sailing to rearrange all the components into a neat-ish rectangle and to wire everything up. There were a few issues with the parts being wired wrong in the schematic that I had to fix… Hopefully no more of that comes up. I’ll be doing final touches and double checking the PCB before moving on to making a 3d print for its case.
PCB Finished (Actually) Turns out I forgot to do some steps… oops haha? Luckily it was just running the DRC, adding a few wires between the ground references and adding a rectangle in the cut layer. Onto making the CAD for the box!
Cadding the enclosure Started using Fusion360 to CAD the enclosure for the project. I got the bottom part mostly done and got 2 of the holes needed for the lid done. I still need to do the holes for the other buttons, display, and screws to put together. At some point, I’ll also need to finalize the speaker I want to be able to decide where to have it in the CAD.
Cadding the enclosure (cont.) I’m almost done with CAD!… at least I think so. I finished up the cutouts in the top and adjusted a few things for the bottom part to better sit the PCB. Decided to go with a 30 mm diameter Gikfun speaker and just have it at the very front. The last part I need to add are the holes for the screws to keep the top and bottom together. Not sure the size for that so I’ll need to do some more research. Hopefully I didn’t make the sides of the container too thin…
Cadding Enclosure (pt. 3) I finished adding the holes, fixed a few issues with not giving enough tolerence, and started adding the rest of the parts in an assembled CAD model to give an idea of the finished product and double check that everything will fit together. Some parts (currently the potentiometer) I couldn’t find the right model for so I’ll be using a stand in model for them. I used the “thread” feature in Fusion and I’m hoping the tolerence won’t be too tight for the screws I have… worst case hot glue will save me XD
Finished CAD! I finished the CAD for the enclosure and got everything assembled in CAD. Luckily everything worked out! :D Might’ve put too much space for the SD card on the PCB… I also started working on the firmware. Originally, I wanted to use Arduino IDE but it might not be the friendliest for the Pi Pico. I plan on looking into circuit python to see if it is better for reading SD cards and playing audio.
Finished Programming :D I finished the firmware! I decided to move to Circuit Python since it works better with the Pi Pico. The project is almost done and ready to be reviewed. Some things I need to do before that: Create a BOM Add more info in the README Add a folder with all the files with the libraries
Debugging Code Over the past week (on and off), I’ve been slowly assembling the motivation player on the breadboard. I soldered all the parts I could and debugged the code after uploading it to the Raspberry Pi. Can’t say it didn’t take awhile… Luckily, I got the code working and the speaker to function. Unluckily, I had a brain fart and decided minimum voltage = optimal voltage. The audio amplifier works but is kind of scuffed because there isn’t enough voltage and current. I think it works well enough that I won’t solder in an extra battery container to increase the voltage and current (especially because the PCB doesn’t have any regulators) Basically just waiting on the PCB at this point…
Finished! After definitely not procrasinating for a week, I finished the Motivation Player! I soldered all the parts together and assembled it together. Very happy that the PCB worked first try. At this point, the project is done but there are some last things I’d like to say that happened (and I hope to be more careful about in future projects) Bad :C : The container is just a shy too short for the batteries, and almost can’t close (thankfully the plastic top can bend) The potentiometer is really annoying to use All the “controls” would’ve been easier to used if they were elevated from the top Basically, I should’ve put all the input on one side so it could be flush with the lid and every other component on the other side Good :D : The batteries provide more amps than my test set up, leading to a pretty decent volume (the connections are also much better) A weird hardware/software bug causes the buttons and potentiometer to create a spike in the sound, leading to a beeping noise whenever they are used (which actually sounds like it belongs – happy accident) Overall, pretty happy that it worked out. Just need to update the read me to ship!
Ships:
Often, I feel myself out of motivation and falling into doom scrolling. So, I built an MP3-like player where I can play motivational/funny quotes from my friends to help bring me up One of the main challenges I faced was not really being able to prototype and making my second PCB design ever. I was very anxious for when the PCB originally arrived since I had no way to test on the breadboard if the research I had done online was correct until after I ordered my PCB (I didn’t have the parts at the time and waiting until they came would have taken too long for the PCB). Luckily –and thankfully – the PCB worked out as intended. Overall, given this is my first time using an audio amplifier, working with SD cards, and not using a step-by-step tutorial for any of the parts, I’m really proud that the project works smoothly, with the audio being pretty decent....
|
1793346705.1635394
|
1793433105.1635394
|
|
46150
|
Motion Sensor by @vik | Stardance
|
vik
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T01:43:31Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Made an Arduino motion sensor connected to an LCD display. Every time it senses motion, the LCD will light up, “MOTION DETECTED”. It was overall a super instructive experience, I learned how to cut and strip wires well, make a stable-ish connection with janky wires, read some confusing electrical diagrams, and write (technically modify) Arduino code (because online sample code was awful). I figured out how to troubleshoot problems on my own (eg wiring V0 to ground with a resistor because the display was too bright) and made sure to include the issue and fix in my documentation. Note that in the video, the sensor was triggered a bunch of times by my moving the camera. It works decent, I promise (╥﹏╥)", "repo": "https://github.com/vikh6/motion-sensor", "demo": ""}]...
|
[{"post_id": 46078, "ts": "202 [{"post_id": 46078, "ts": "2026-08-13T01:07:20Z", "hours": 1.6508, "text": "Small afternoon project that I’ve been putting off for a long time: wiring a PIR motion sensor and LCD to my Arduino Uno, mostly just to finally try both the components at the same time. The PIR sensor was pretty straightforward, three wires, but really janky because I don’t have a sensor shield or spare jumper wires (!). If the Neutral (white) wire isn’t connected well (it wasn’t) the digital pin will seesaw back and forth between Low and High with no rhyme or reason. The LCD was a complete pain, again because I don’t have anything but some cheap wires and had to turn my breadboard into a rat’s nest. Also put one wire one spot to the right of where it should’ve been. “This little maneuver’s gonna cost us 51 years” type situation. Anyway after that, wiring them both together was surprisingly painless, and with the help of some copy-pasted code I got it up and running quickly. Yippee, I have a little box that says MOTION DETECTED every time I walk by."}]...
|
Title: Motion Sensor by @vik | Stardance
Devlogs: Title: Motion Sensor by @vik | Stardance
Devlogs:
Small afternoon project that I’ve been putting off for a long time: wiring a PIR motion sensor and LCD to my Arduino Uno, mostly just to finally try both the components at the same time. The PIR sensor was pretty straightforward, three wires, but really janky because I don’t have a sensor shield or spare jumper wires (!). If the Neutral (white) wire isn’t connected well (it wasn’t) the digital pin will seesaw back and forth between Low and High with no rhyme or reason. The LCD was a complete pain, again because I don’t have anything but some cheap wires and had to turn my breadboard into a rat’s nest. Also put one wire one spot to the right of where it should’ve been. “This little maneuver’s gonna cost us 51 years” type situation. Anyway after that, wiring them both together was surprisingly painless, and with the help of some copy-pasted code I got it up and running quickly. Yippee, I have a little box that says MOTION DETECTED every time I walk by.
Ships:
Made an Arduino motion sensor connected to an LCD display. Every time it senses motion, the LCD will light up, “MOTION DETECTED”. It was overall a super instructive experience, I learned how to cut and strip wires well, make a stable-ish connection with janky wires, read some confusing electrical diagrams, and write (technically modify) Arduino code (because online sample code was awful). I figured out how to troubleshoot problems on my own (eg wiring V0 to ground with a resistor because the display was too bright) and made sure to include the issue and fix in my documentation. Note that in the video, the sensor was triggered a bunch of times by my moving the camera. It works decent, I promise (╥﹏╥)...
|
1793497680.8476562
|
1793584080.8476562
|
|
46153
|
Powerful Bruce hacking device by @Karam_Abed | Sta Powerful Bruce hacking device by @Karam_Abed | Stardance...
|
Karam_Abed
|
1
|
16.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-31T03:49:37Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Box where it has edited Bruce firmware that can fit a 4.0inch screen, it features 4+ modules. I faced alot of challenges starting with learning CAD’s basics and then trying to edit the codes with AI.. I had a problem with my first ESP32 module where I accidentally bought a devkit that has no PSRAM which will never handle Bruce firmware so I bought an R8r8 devkit . Although these challenges where hard I continued and its the start of my learning journey .. Error = learning !", "repo": "https://github.com/karam7854A/Bruce_Powerful_Device", "demo": ""}]...
|
[{"post_id": 58557, "ts": "202 [{"post_id": 58557, "ts": "2026-08-31T00:22:13Z", "hours": 1.4, "text": "soldered all sensors. Officially last Post!"}, {"post_id": 53335, "ts": "2026-08-23T20:27:24Z", "hours": 1.3667, "text": "I added Bruce software to the new esp32 and trying to connect my TFT 4.0 inch screen to it"}, {"post_id": 50510, "ts": "2026-08-19T18:00:38Z", "hours": 0.5667, "text": "I made a smaller box for the project hope it be the last prototype !"}, {"post_id": 49307, "ts": "2026-08-18T01:36:44Z", "hours": 7.1331, "text": "well, I am working on adding Bruce firmware to my ESP32 C5, my issue is that it only has 4MB its suppose to have 8MB so today, it took me 5+h trying to find another way for my 4MB to work but it never did so unfourtunatly I have to buy a new ESP32-C5 :("}, {"post_id": 45477, "ts": "2026-08-11T23:52:51Z", "hours": 1.7022, "text": "A box where it will be the container of the sensors and microcontroller"}, {"post_id": 44394, "ts": "2026-08-10T03:19:55Z", "hours": 3.8311, "text": "I designed a prototype for my project by a sketch app and 3d model it by AI i will keep working one the model by myself cause AI missed things up"}]...
|
Title: Powerful Bruce hacking device by @Karam_Abe Title: Powerful Bruce hacking device by @Karam_Abed | Stardance
Devlogs:
I designed a prototype for my project by a sketch app and 3d model it by AI i will keep working one the model by myself cause AI missed things up
A box where it will be the container of the sensors and microcontroller
well, I am working on adding Bruce firmware to my ESP32 C5, my issue is that it only has 4MB its suppose to have 8MB so today, it took me 5+h trying to find another way for my 4MB to work but it never did so unfourtunatly I have to buy a new ESP32-C5 :(
I made a smaller box for the project hope it be the last prototype !
I added Bruce software to the new esp32 and trying to connect my TFT 4.0 inch screen to it
soldered all sensors. Officially last Post!
Ships:
I made a Box where it has edited Bruce firmware that can fit a 4.0inch screen, it features 4+ modules. I faced alot of challenges starting with learning CAD’s basics and then trying to edit the codes with AI.. I had a problem with my first ESP32 module where I accidentally bought a devkit that has no PSRAM which will never handle Bruce firmware so I bought an R8r8 devkit . Although these challenges where hard I continued and its the start of my learning journey .. Error = learning !...
|
1793469283.8459017
|
1793555683.8459017
|
|
46156
|
0XVINCE by @0xvince | Stardance
|
0xvince
|
1
|
45.8
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T23:13:07Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Cybersecurity Portfolio Built my personal site around 8 sections — Hero, About , Skills, Experience, Projects, CTF, Blog, and Contact — to double as both a portfolio and a place to show off some of the CTF/security work I do. The feature I had the most fun with was hiding a Konami-code easter egg in the site. Triggering it and it opens a fake terminal that runs through a little “authentication” sequence before landing on a hidden message: $ sudo unlock easter-egg –user=visitor authenticating… ✓ access granted you found the hidden terminal. not many people get here. you’ve got good taste — and patience. feel free to reach out anytime. — 0xVince It’s basically a mini CTF built into my own portfolio — most visitors will never find it unless they poke around the site a lot, which was kind of the point. Biggest struggle was some of my motion/animation classes just not applying — styles I expected to show up weren’t rendering. Went back through the Tailwind docs to figure out what was actually going wrong instead of guessing, and got it working from there. AI use: I used OpenCode, but only for UI work — not for the structure, content, or the core logic like the easter egg terminal sequence.", "repo": "https://github.com/Vlex127/0xvince", "demo": "https://vincentiwuno.me"}]...
|
[{"post_id": 50346, "ts": "202 [{"post_id": 50346, "ts": "2026-08-19T15:04:24Z", "hours": 7.8703, "text": "Refactored the codebase after review feedback — real types, shared components, and copy that actually sounds like me Got flagged for overusing AI in the submission, so I went back through the whole thing file by file instead of just tweaking the surface. Turned into a proper refactor pass. What’s in it Fixed the types instead of casting around them — Project and ExperienceItem in lib/data.ts were missing fields ( status , link , impact , highlights ), so every component consuming them was littered with as any . Extended the actual types and removed every cast. Extracted Badge and TerminalWindow — the same colored-badge markup was copy-pasted near-identically across Projects.tsx , Experience.tsx , CTF.tsx , and Contact.tsx , and the terminal-window mock was duplicated in two more places. Pulled both into shared components. Simplified the Brevo integration — lib/brevo.ts had a full HTML “email card” builder with its own design-token constants and a hand-rolled escapeHtml , for an email that only ever lands in my own inbox. Cut it down to what the contact form actually needs. Killed a recurring string hack — color.replace(\"1)\", \"0.2)\") to derive a lighter shade from an rgba string was showing up in three different files. Replaced with actual stored bg values. Rewrote the bio and project/experience copy — the original text in data.ts and About.tsx all had the same over-polished, bolded-keyword rhythm you get from one AI pass. Rewrote it to sound like how I'd actually describe this stuff. Repo cleanup — deleted a pile of unused screenshots in /public and a stale implementation.md that no longer matched the site. Swapped a placeholder hero stat for a real one — now shows my actual HackerDNA rank (#1 in Nigeria) instead of a filler number, and fixed the scroll-behavior build warning while I was in there. Why this fits The flag wasn’t wrong to catch — a lot of this genuinely read as generated: duplicated markup that was never refactored, any -casts instead of fixed types, an over-engineered email builder for a one-off form, and bio copy that hit every AI-bio beat (bolded keywords, tidy aphoristic closers). Going through it properly meant fixing the root causes — bad types, real duplication — not just rewording things. Ended up being a better codebase either way, not just a resubmission."}, {"post_id": 49237, "ts": "2026-08-17T22:13:31Z", "hours": 3.0289, "text": "Rewrote the README to actually tell the story — from “way too extra” to stripped down and fast Went back through and rewrote the whole README instead of just patching the stack table. The old version was still describing the Framer Motion / matrix rain / glitch loader era even after most of that got ripped out — docs had drifted from what the site actually does. What’s in it Origin story section — laid out the actual arc: started with zero Next.js/React experience, went overboard with a full boot loader, matrix rain, glitch text, parallax orbs, 3D-tilt avatar, mouse-tracked glow cards, background video — then got told the UI was too heavy and stripped it all back to plain CSS hover states and server components. Mail server callout — pulled the SMTP/Postfix/Brevo relay work (SPF, DKIM, DMARC) out as its own section since that was the actually hard part of this project, not the frontend. Updated section list — Hero, About, Skills, Experience, Projects, CTF, Blog, Uses, Contact — added the new /uses page and dropped references to features that no longer exist. Stack table cleaned up — removed Framer Motion entirely, added fonts (Inter + JetBrains Mono), content pipeline (blog posts as data via react-markdown), and domain info. Dev setup switched to pnpm — pnpm install / pnpm dev / pnpm check instead of npm, matching the actual workspace config. Real project structure — updated the tree to match current src/app , src/components , src/lib layout instead of the old flat structure. “What I’d do differently” section — added a retro-style note: start simpler, ship the blog earlier, set up pnpm check from day one instead of relying on build to catch mistakes. Why this fits Docs that describe features you already deleted are worse than no docs — anyone landing on the repo (recruiter, hiring manager, another dev) would’ve read about a matrix-rain loader that doesn’t exist anymore. Rewriting it to match reality, and being upfront about the “too extra” phase instead of hiding it, is the same instinct as the frontend rework itself: cut what doesn’t need to be there."}, {"post_id": 48903, "ts": "2026-08-17T13:49:08Z", "hours": 9.1403, "text": "Reworked the frontend performance by stripping out Framer Motion and eliminating heavy UI animations to fix site bloat and maximize loading speed. What’s in it Framer Motion removal: Purged all heavy animation dependencies to drastically reduce JavaScript bundle size and eliminate layout thrashing. CSS-only micro-interactions: Replaced JS-driven animations with lightweight, native CSS transitions that respect user prefers-reduced-motion settings. Zero-JS state handling: Shifted dynamic hover/focus states directly to native CSS pseudo-classes ( :hover , :focus-visible ). Render optimization: Minimized DOM paint bottlenecks and improved Core Web Vitals (LCP and CLS) for near-instant page loads. Why this fits Refactored directly in response to submission feedback ( “your project has heavy UI usage, please rework the frontend and resubmit” ). Stripping unnecessary motion bloat aligns the portfolio with a core cybersecurity principle: prioritizing speed, efficiency, and zero-fluff performance over visual bloat."}, {"post_id": 45000, "ts": "2026-08-11T04:14:12Z", "hours": 6.1703, "text": "Added a custom 404 page styled as a hacker terminal — fitting the cybersecurity theme instead of using a generic “page not found.” What’s in it Fake nmap scan output styled to look like a real terminal session Scans the broken URL path itself ( vincentiwuno.me/??? ) as if probing it Returns a fitting “host unreachable · port closed” error in place of a normal 404 message Exit code echoed back as 404 ( echo $? ) — a small detail that doubles as both a joke and the actual HTTP status Simple “← back to home” link to get users back on track Why this fits Keeps the visitor inside the site’s aesthetic even when they hit a broken link, instead of dropping them into a default framework error page. Small detail, but it’s the kind of thing that reinforces the whole cybersecurity-portfolio identity rather than breaking it."}, {"post_id": 44845, "ts": "2026-08-10T21:32:38Z", "hours": 9.6775, "text": "Wired up email sending with Brevo so contact form submissions land straight in my inbox. Built out the /contact page with a subject dropdown (security consultation, pentesting inquiry, CTF collaboration, job opportunity, etc.) and a message field, backed by Brevo to actually deliver the emails instead of just sitting in a form with nowhere to go. What’s in it Contact form with subject categorization so I can triage messages faster 500-character message limit with live counter Brevo integration to handle delivery reliably instead of rolling my own SMTP Social/contact links section (GitHub, LinkedIn, X, TryHackMe, HackTheBox, HackerDNA, Instagram) alongside the form Problems faced Ran into domain/IP verification issues with Brevo — emails weren’t sending properly until the sending domain was correctly verified. Had to go through and set up the DNS/domain verification properly on Brevo’s side before delivery actually started working. Notes Add basic rate limiting on the form itself to prevent spam/abuse Auto-reply confirmation email on submit"}, {"post_id": 44435, "ts": "2026-08-10T05:54:50Z", "hours": 6.9128, "text": "Added Hacker style Art loading"}, {"post_id": 44291, "ts": "2026-08-09T23:00:21Z", "hours": 1.515, "text": "writing up blogs"}, {"post_id": 44240, "ts": "2026-08-09T21:18:59Z", "hours": 1.1342, "text": "My personal website portfolio"}]...
|
Title: 0XVINCE by @0xvince | Stardance
Devlogs:
M Title: 0XVINCE by @0xvince | Stardance
Devlogs:
My personal website portfolio
writing up blogs
Added Hacker style Art loading
Wired up email sending with Brevo so contact form submissions land straight in my inbox. Built out the /contact page with a subject dropdown (security consultation, pentesting inquiry, CTF collaboration, job opportunity, etc.) and a message field, backed by Brevo to actually deliver the emails instead of just sitting in a form with nowhere to go. What’s in it Contact form with subject categorization so I can triage messages faster 500-character message limit with live counter Brevo integration to handle delivery reliably instead of rolling my own SMTP Social/contact links section (GitHub, LinkedIn, X, TryHackMe, HackTheBox, HackerDNA, Instagram) alongside the form Problems faced Ran into domain/IP verification issues with Brevo — emails weren’t sending properly until the sending domain was correctly verified. Had to go through and set up the DNS/domain verification properly on Brevo’s side before delivery actually started working. Notes Add basic rate limiting on the form itself to prevent spam/abuse Auto-reply confirmation email on submit
Added a custom 404 page styled as a hacker terminal — fitting the cybersecurity theme instead of using a generic “page not found.” What’s in it Fake nmap scan output styled to look like a real terminal session Scans the broken URL path itself ( vincentiwuno.me/??? ) as if probing it Returns a fitting “host unreachable · port closed” error in place of a normal 404 message Exit code echoed back as 404 ( echo $? ) — a small detail that doubles as both a joke and the actual HTTP status Simple “← back to home” link to get users back on track Why this fits Keeps the visitor inside the site’s aesthetic even when they hit a broken link, instead of dropping them into a default framework error page. Small detail, but it’s the kind of thing that reinforces the whole cybersecurity-portfolio identity rather than breaking it.
Reworked the frontend performance by stripping out Framer Motion and eliminating heavy UI animations to fix site bloat and maximize loading speed. What’s in it Framer Motion removal: Purged all heavy animation dependencies to drastically reduce JavaScript bundle size and eliminate layout thrashing. CSS-only micro-interactions: Replaced JS-driven animations with lightweight, native CSS transitions that respect user prefers-reduced-motion settings. Zero-JS state handling: Shifted dynamic hover/focus states directly to native CSS pseudo-classes ( :hover , :focus-visible ). Render optimization: Minimized DOM paint bottlenecks and improved Core Web Vitals (LCP and CLS) for near-instant page loads. Why this fits Refactored directly in response to submission feedback ( “your project has heavy UI usage, please rework the frontend and resubmit” ). Stripping unnecessary motion bloat aligns the portfolio with a core cybersecurity principle: prioritizing speed, efficiency, and zero-fluff performance over visual bloat.
Rewrote the README to actually tell the story — from “way too extra” to stripped down and fast Went back through and rewrote the whole README instead of just patching the stack table. The old version was still describing the Framer Motion / matrix rain / glitch loader era even after most of that got ripped out — docs had drifted from what the site actually does. What’s in it Origin story section — laid out the actual arc: started with zero Next.js/React experience, went overboard with a full boot loader, matrix rain, glitch text, parallax orbs, 3D-tilt avatar, mouse-tracked glow cards, background video — then got told the UI was too heavy and stripped it all back to plain CSS hover states and server components. Mail server callout — pulled the SMTP/Postfix/Brevo relay work (SPF, DKIM, DMARC) out as its own section since that was the actually hard part of this project, not the frontend. Updated section list — Hero, About, Skills, Experience, Projects, CTF, Blog, Uses, Contact — added the new /uses page and dropped references to features that no longer exist. Stack table cleaned up — removed Framer Motion entirely, added fonts (Inter + JetBrains Mono), content pipeline (blog posts as data via react-markdown), and domain info. Dev setup switched to pnpm — pnpm install / pnpm dev / pnpm check instead of npm, matching the actual workspace config. Real project structure — updated the tree to match current src/app , src/components , src/lib layout instead of the old flat structure. “What I’d do differently” section — added a retro-style note: start simpler, ship the blog earlier, set up pnpm check from day one instead of relying on build to catch mistakes. Why this fits Docs that describe features you already deleted are worse than no docs — anyone landing on the repo (recruiter, hiring manager, another dev) would’ve read about a matrix-rain loader that doesn’t exist anymore. Rewriting it to match reality, and being upfront about the “too extra” phase instead of hiding it, is the same instinct as the frontend rework itself: cut what doesn’t need to be there.
Refactored the codebase after review feedback — real types, shared components, and copy that actually sounds like me Got flagged for overusing AI in the submission, so I went back through the whole thing file by file instead of just tweaking the surface. Turned into a proper refactor pass. What’s in it Fixed the types instead of casting around them — Project and ExperienceItem in lib/data.ts were missing fields ( status , link , impact , highlights ), so every component consuming them was littered with as any . Extended the actual types and removed every cast. Extracted Badge and TerminalWindow — the same colored-badge markup was copy-pasted near-identically across Projects.tsx , Experience.tsx , CTF.tsx , and Contact.tsx , and the terminal-window mock was duplicated in two more places. Pulled both into shared components. Simplified the Brevo integration — lib/brevo.ts had a full HTML “email card” builder with its own design-token constants and a hand-rolled escapeHtml , for an email that only ever lands in my own inbox. Cut it down to what the contact form actually needs. Killed a recurring string hack — color.replace("1)", "0.2)") to derive a lighter shade from an rgba string was showing up in three different files. Replaced with actual stored bg values. Rewrote the bio and project/experience copy — the original text in data.ts and About.tsx all had the same over-polished, bolded-keyword rhythm you get from one AI pass. Rewrote it to sound like how I'd actually describe this stuff. Repo cleanup — deleted a pile of unused screenshots in /public and a stale implementation.md that no longer matched the site. Swapped a placeholder hero stat for a real one — now shows my actual HackerDNA rank (#1 in Nigeria) instead of a filler number, and fixed the scroll-behavior build warning while I was in there. Why this fits The flag wasn’t wrong to catch — a lot of this genuinely read as generated: duplicated markup that was never refactored, any -casts instead of fixed types, an over-engineered email builder for a one-off form, and bio copy that hit every AI-bio beat (bolded keywords, tidy aphoristic closers). Going through it properly meant fixing the root causes — bad types, real duplication — not just rewording things. Ended up being a better codebase either way, not just a resubmission.
Ships:
Cybersecurity Portfolio Built my personal site around 8 sections — Hero, About , Skills, Experience, Projects, CTF, Blog, and Contact — to double as both a portfolio and a place to show off some of the CTF/security work I do. The feature I had the most fun with was hiding a Konami-code easter egg in the site. Triggering it and it opens a fake terminal that runs through a little “authentication” sequence before landing on a hidden message: $ sudo unlock easter-egg –user=visitor authenticating… ✓ access granted you found the hidden terminal. not many people get here. you’ve got good taste — and patience. feel free to reach out anytime. — 0xVince It’s basically a mini CTF built into my own portfolio — most visitors will never find it unless they poke around the site a lot, which was kind of the point. Biggest struggle was some of my motion/animation classes just not applying — styles I expected to show up weren’t rendering. Went back through the Tailwind docs to figure out what was actually going wrong instead of guessing, and got it working from there. AI use: I used OpenCode, but only for UI work — not for the structure, content, or the core logic like the easter egg terminal sequence....
|
1793526451.7913554
|
1793612851.7913554
|
|
46158
|
Otasifiy by @nightowl | Stardance
|
nightowl
|
1
|
23.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-29T23:06:42Z", "hours": 23.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "An self hosted alternative to EAS Updates, basically a reimplementation of the public protocol they offer in next js with a cool dashboard!", "repo": "https://github.com/nightowl-devs/Otasifiy", "demo": "https://otasifiy.vercel.app/"}]...
|
[{"post_id": 84624, "ts": "202 [{"post_id": 84624, "ts": "2026-10-29T23:03:09Z", "hours": 1.5697, "text": "Added a live demo so anyone can preview the site!"}, {"post_id": 71434, "ts": "2026-09-20T20:19:27Z", "hours": 3.9694, "text": "bugfixesssss - creating a project finally shows you the api key instead of null xd, introducing brand new innovative technology - github tokens are encrypted in db now also fixed sum performance issues and the middleware rejecting good requests"}, {"post_id": 47362, "ts": "2026-08-15T08:06:43Z", "hours": 17.9569, "text": "if you make expo mobile apps you know what expo update server is. its an update service well its also kinda costly thats why using the protocols specification recreated it and opensouced it (wth I cant add enters in this ???) current features: - shit readme -has expo updates (kinda obvious) -login with GitHub -connect environments to github support for teams (experimental) - inviting to project - analytics - auto push next update from ci um since they are robbing me of the time - “You have 17h 57m without a devlog- only 10h of it can count toward your ship payout. Post a devlog now so you don’t lose more!” next thing will probably be testing the teams and writing an actual readme and probably fixing 1000 bugs. cya."}]...
|
Title: Otasifiy by @nightowl | Stardance
Devlogs: Title: Otasifiy by @nightowl | Stardance
Devlogs:
if you make expo mobile apps you know what expo update server is. its an update service well its also kinda costly thats why using the protocols specification recreated it and opensouced it (wth I cant add enters in this ???) current features: - shit readme -has expo updates (kinda obvious) -login with GitHub -connect environments to github support for teams (experimental) - inviting to project - analytics - auto push next update from ci um since they are robbing me of the time - “You have 17h 57m without a devlog- only 10h of it can count toward your ship payout. Post a devlog now so you don’t lose more!” next thing will probably be testing the teams and writing an actual readme and probably fixing 1000 bugs. cya.
bugfixesssss - creating a project finally shows you the api key instead of null xd, introducing brand new innovative technology - github tokens are encrypted in db now also fixed sum performance issues and the middleware rejecting good requests
Added a live demo so anyone can preview the site!
Ships:
An self hosted alternative to EAS Updates, basically a reimplementation of the public protocol they offer in next js with a cool dashboard!...
|
1793371805.8857741
|
1793458205.8857741
|
|
46161
|
Particle Evolution by @dubbyy | Stardance
|
dubbyy
|
1
|
21.0
|
314
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-16T23:52:08Z", "hours": 21.0, "multiplier": 14.66, "payout": 314, "blessing": "neutral", "text": "Project is available for download on Windows and Linux I made a particle simulator with genomes. Inspired by Particle Life, the particles interact with each other through attraction and repulsion which when millions of times across thousands of particles creates really cool patterns. The particles also have DNA as explained in the README This was a lot of fun, I find emergent behaviours really cool, and even though I wasn’t able to accomplish everything I wanted to do I’m still happy with how it turned out. I also learned a lot about how GPUs work which is becoming very relevant very fast. This might be my last Stardance project so I just want to say thank you to all the Hack Club staff for running this, and all the other Stardancers for making it what it is. I had a great summer and I hope you all did too :>", "repo": "https://github.com/dubbyy1/particle-evo", "demo": "https://github.com/dubbyy1/particle-evo/releases/tag/v1.0.0"}]...
|
[{"post_id": 69393, "ts": "202 [{"post_id": 69393, "ts": "2026-09-16T23:40:57Z", "hours": 1.0261, "text": "Devlog 4 Last one before I ship! I finalised a few things before release, mostly just messed with the UI. This project was also really hard to package because of the way Taichi compiles code. Long story short before it compiles it check to see if what you’re doing is legal, and for that it has to read the actual source code. When you package a project with something like PyInstaller, the source code gets lost which breaks Taichi. The fix for this was to include a copy of the physics code in plaintext within the executable, so Taichi had something to look at. Shout out to Claude for helping me fix that, I probably never would have figured that out on my own. Anyway that’s it"}, {"post_id": 69312, "ts": "2026-09-16T19:39:18Z", "hours": 7.205, "text": "Devlog 3 It’s been a long time! After a lot of procrastinating and trial and error, and banging my head against the wall trying to figure out evolution, I decided to pivot. I kept the genome system, but scrapped the evolution in favour of manual tuning Genomes I went over this in the last devlog but I’ll mention it again cause it’s important and it’s changed a little. The current system works with a fixed number of species , each with a unique genome. A genome is made of 3 traits (0 to 1) and 3 receptors (-1 to 1) and each receptor interacts with it’s respective trait on a neighbouring particle. For example, if Trait 1 on Particle A is 1, and Receptor 2 on Particle B is also 1, B will be attracted to A . Likewise, if Receptor 1 on Particle B is -1, B will be repelled by A Rendering Aside from solidifying the genome system, the biggest change from the last update is a full shift to GPU rendering. The previous version used Pygame to draw the window, but now I’m using Taichi’s UI library. The benefits of this are that information is no longer being sent between the CPU and GPU, significantly increasing speed. Also, the rendering itself is parallelized, making it even faster. Other Changes I added detailed controls for changing population, species count, genomes, visuals and more. I also added a system to save and load configurations. Next? I’m gonna leave this project for a bit, but I might come back to it in the future. If I do, I want to find some way to turn it into a live wallpaper / screensaver. It’s like the moon!"}, {"post_id": 52682, "ts": "2026-08-22T23:04:28Z", "hours": 1.6047, "text": "Devlog 2.5 - Chaos Really small update! I starting implementing the evolution, it’s very very simple right now but I just wanted to share this cause I think it looks cool. I won’t go into too much detail here but basically instead of a fixed species/color each particle has a genome. The genome is made of traits, and receptors (attraction/repulsion to certain traits). When particles get close to each other, they share a bit of DNA. I’ll probably change the evolution mechanism very soon because I don’t think this method is really viable but it’s a start :>"}, {"post_id": 49248, "ts": "2026-08-17T22:42:46Z", "hours": 3.5361, "text": "Devlog 2 - Organisms I finally got around to adding GPU integration. I can now comfortably run 20,000+ particles, before I was capped at around 1,500. There’s no other additions so I’m gonna talk about the implementation for a bit. I used a really cool module called Taichi . It basically lets you put a little tag above functions to tell them to compile into GPU code. For it to work you have to convert whatever you’re doing to use different datatypes since the GPU doesn’t understand python types. Regular numbers are the same but I struggled a good but trying to understand Vectors and Fields . I think a field is like a space that contains data, in 1, 2, or 3 dimensions. A vector is roughly equivalent to a list in Python. The part that confused me was putting vectors in fields, and the difference between vector dimensions and field dimensions. To actually implement Taichi I pretty much had to rewrite the whole backend, but thankfully the actual equations stayed mostly the same it was just the structure. Previously I had a big list of Particle objects with their own functions handling their own physics. Now particles are purely numerical, there’s just a big list of positions and a big list of colors used to render them. It was pretty interesting learning how to use Taichi, I’ll probably integrate it into future projects. or experiment with the GPU in other languages. As for this project, I called it Particle Evolution but I still haven’t fully figured out how I want the evolution to function. Hopefully I’ll have something next devlog :> 30,000 particles!"}, {"post_id": 48926, "ts": "2026-08-17T14:19:48Z", "hours": 1.12, "text": "Devlog 1.5 - Life Another small update. I still wasn’t completely happy with the physics after my last devlog so I looked at the code of another particle life simulation and realised I was doing some of the calculations wrong. It turns out I never fully fixed the strong repulsion equation, also I was applying the friction in the wrong order. Aside from bug fixes, I incorporated delta (the real time since the last frame) into all the calculations to account for framerate fluctuations. I’m now pretty happy with the way the particles interact, and I think I can start translating the code to run on the GPU - hopefully I don’t need to rewrite too much of it"}, {"post_id": 47208, "ts": "2026-08-14T23:38:27Z", "hours": 3.3586, "text": "Devlog 1 - Cells Quick update to my Particle Life project. I did some work to stabilise the physics, there were a lot of small mistakes in the code that added up to very erratic behaviours. For example, the repulsion force that’s supposed to stop the particles from overlapping too much was partially inverted and actually made things worse. I’m starting to get better results now but it’ sstill not perfect. I also added a little grid to visualise the relationships between different ‘species’. I’m still relatively new to Pygame so it was interesting trying to get the dragging and clicking working The last change is less noticeable but I did some light optimization. I basically added an invisible grid, so instead of checking the distance to every particle every frame, each particle only looks at neighbouring cells. It’s an improvement, but there’s still a long way to go as far as optimization. Hopefully I can figure out how to get it to run on the GPU soon"}, {"post_id": 44261, "ts": "2026-08-09T21:58:04Z", "hours": 3.5419, "text": "Devlog 0 - Primordial Soup I started making my Particle Life simulation. I got the basic features working, but it’s very unoptimised. Every particle checks every other particle every frame, and it’s all done using the CPU. I’ll elaborate more on how I’m going to solve this in the future. For anyone who doesn’t know, Particle Life works by simulating attraction and repulsion forces between different kinds of particles. For example, here you can see that blue is attracted to itself, causing it to form big clumps. You can also see that blue is attracted to green, but green repels blue, effectively making blue chase green around really fast. What’s Next? The two things I plan on doing next are optimisation, and customisation. I’m not sure which will come first, but hopefully by the time I finish I’ll know how I want to implement the evolution"}]...
|
Title: Particle Evolution by @dubbyy | Stardance
Title: Particle Evolution by @dubbyy | Stardance
Devlogs:
Devlog 0 - Primordial Soup I started making my Particle Life simulation. I got the basic features working, but it’s very unoptimised. Every particle checks every other particle every frame, and it’s all done using the CPU. I’ll elaborate more on how I’m going to solve this in the future. For anyone who doesn’t know, Particle Life works by simulating attraction and repulsion forces between different kinds of particles. For example, here you can see that blue is attracted to itself, causing it to form big clumps. You can also see that blue is attracted to green, but green repels blue, effectively making blue chase green around really fast. What’s Next? The two things I plan on doing next are optimisation, and customisation. I’m not sure which will come first, but hopefully by the time I finish I’ll know how I want to implement the evolution
Devlog 1 - Cells Quick update to my Particle Life project. I did some work to stabilise the physics, there were a lot of small mistakes in the code that added up to very erratic behaviours. For example, the repulsion force that’s supposed to stop the particles from overlapping too much was partially inverted and actually made things worse. I’m starting to get better results now but it’ sstill not perfect. I also added a little grid to visualise the relationships between different ‘species’. I’m still relatively new to Pygame so it was interesting trying to get the dragging and clicking working The last change is less noticeable but I did some light optimization. I basically added an invisible grid, so instead of checking the distance to every particle every frame, each particle only looks at neighbouring cells. It’s an improvement, but there’s still a long way to go as far as optimization. Hopefully I can figure out how to get it to run on the GPU soon
Devlog 1.5 - Life Another small update. I still wasn’t completely happy with the physics after my last devlog so I looked at the code of another particle life simulation and realised I was doing some of the calculations wrong. It turns out I never fully fixed the strong repulsion equation, also I was applying the friction in the wrong order. Aside from bug fixes, I incorporated delta (the real time since the last frame) into all the calculations to account for framerate fluctuations. I’m now pretty happy with the way the particles interact, and I think I can start translating the code to run on the GPU - hopefully I don’t need to rewrite too much of it
Devlog 2 - Organisms I finally got around to adding GPU integration. I can now comfortably run 20,000+ particles, before I was capped at around 1,500. There’s no other additions so I’m gonna talk about the implementation for a bit. I used a really cool module called Taichi . It basically lets you put a little tag above functions to tell them to compile into GPU code. For it to work you have to convert whatever you’re doing to use different datatypes since the GPU doesn’t understand python types. Regular numbers are the same but I struggled a good but trying to understand Vectors and Fields . I think a field is like a space that contains data, in 1, 2, or 3 dimensions. A vector is roughly equivalent to a list in Python. The part that confused me was putting vectors in fields, and the difference between vector dimensions and field dimensions. To actually implement Taichi I pretty much had to rewrite the whole backend, but thankfully the actual equations stayed mostly the same it was just the structure. Previously I had a big list of Particle objects with their own functions handling their own physics. Now particles are purely numerical, there’s just a big list of positions and a big list of colors used to render them. It was pretty interesting learning how to use Taichi, I’ll probably integrate it into future projects. or experiment with the GPU in other languages. As for this project, I called it Particle Evolution but I still haven’t fully figured out how I want the evolution to function. Hopefully I’ll have something next devlog :> 30,000 particles!
Devlog 2.5 - Chaos Really small update! I starting implementing the evolution, it’s very very simple right now but I just wanted to share this cause I think it looks cool. I won’t go into too much detail here but basically instead of a fixed species/color each particle has a genome. The genome is made of traits, and receptors (attraction/repulsion to certain traits). When particles get close to each other, they share a bit of DNA. I’ll probably change the evolution mechanism very soon because I don’t think this method is really viable but it’s a start :>
Devlog 3 It’s been a long time! After a lot of procrastinating and trial and error, and banging my head against the wall trying to figure out evolution, I decided to pivot. I kept the genome system, but scrapped the evolution in favour of manual tuning Genomes I went over this in the last devlog but I’ll mention it again cause it’s important and it’s changed a little. The current system works with a fixed number of species , each with a unique genome. A genome is made of 3 traits (0 to 1) and 3 receptors (-1 to 1) and each receptor interacts with it’s respective trait on a neighbouring particle. For example, if Trait 1 on Particle A is 1, and Receptor 2 on Particle B is also 1, B will be attracted to A . Likewise, if Receptor 1 on Particle B is -1, B will be repelled by A Rendering Aside from solidifying the genome system, the biggest change from the last update is a full shift to GPU rendering. The previous version used Pygame to draw the window, but now I’m using Taichi’s UI library. The benefits of this are that information is no longer being sent between the CPU and GPU, significantly increasing speed. Also, the rendering itself is parallelized, making it even faster. Other Changes I added detailed controls for changing population, species count, genomes, visuals and more. I also added a system to save and load configurations. Next? I’m gonna leave this project for a bit, but I might come back to it in the future. If I do, I want to find some way to turn it into a live wallpaper / screensaver. It’s like the moon!
Devlog 4 Last one before I ship! I finalised a few things before release, mostly just messed with the UI. This project was also really hard to package because of the way Taichi compiles code. Long story short before it compiles it check to see if what you’re doing is legal, and for that it has to read the actual source code. When you package a project with something like PyInstaller, the source code gets lost which breaks Taichi. The fix for this was to include a copy of the physics code in plaintext within the executable, so Taichi had something to look at. Shout out to Claude for helping me fix that, I probably never would have figured that out on my own. Anyway that’s it
Ships:
Project is available for download on Windows and Linux I made a particle simulator with genomes. Inspired by Particle Life, the particles interact with each other through attraction and repulsion which when millions of times across thousands of particles creates really cool patterns. The particles also have DNA as explained in the README This was a lot of fun, I find emergent behaviours really cool, and even though I wasn’t able to accomplish everything I wanted to do I’m still happy with how it turned out. I also learned a lot about how GPUs work which is becoming very relevant very fast. This might be my last Stardance project so I just want to say thank you to all the Hack Club staff for running this, and all the other Stardancers for making it what it is. I had a great summer and I hope you all did too :>...
|
1793346721.4600546
|
1793433121.4600546
|
|
46202
|
Will you Rush? by @Domenica | Stardance
|
Domenica
|
1
|
7.4
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T15:50:08Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created a game using Godot Engine, which I named “Will You Rush?”. Within it, you will find 2 mingames and a level 2 for one of them in order to finish the game. Games Once you start the game, you must win all games to win. Losing any of them because of time or a wrong answer will take you back to the title screen. Game 1: Whack A Mole (Catch 20 moles in 15 seconds). Game 2: Quiz (Answer math questions in less than 5 seconds). Game 3: Whack A Mole 2 (Catch 20 moles in 10 seconds). Features Personalised title screen, game over screen, victory screen Personalised sprites (e.g. moles) Timer Points", "repo": "https://github.com/Domenica-Santayana/WillYouRush", "demo": "https://dsc-217.itch.io/will-you-rush"}]...
|
[{"post_id": 79189, "ts": "202 [{"post_id": 79189, "ts": "2026-10-12T23:30:50Z", "hours": 0.3964, "text": "Hello there! I’ve doing some corrections to the game, it appeared to have some bugs due to the font I was using in some parts. Anyways, go and check it out!!"}, {"post_id": 75069, "ts": "2026-09-29T01:52:49Z", "hours": 1.9414, "text": "Hello there! I’m so happy to announce you that after some hours of work, Will you Rush is finally finished. So, the game is divided into 2 minigames, but two levels. First, a whack a mole (20 moles in 15 s), then a math quiz (5s per question) and finally, level 2 : whack a mole (20 moles in 10s). Each part has a introduction card to explain the game. Moreover, if you lose, there’s a personalized game over with a try again to start the whole game again. Finally, if you are fast enough to rush the whole game, you will find a personalized victory card. All process of sprites and cards can be seen in Lapse. Hope you like it!"}, {"post_id": 67068, "ts": "2026-09-13T03:39:32Z", "hours": 2.5042, "text": "Hello there! I’m so happy to announce that I’ve finally finished the first mini-game of Will You Rush. I’ve created an instructions page and then manage to fix some issues of the first code. Hope you like it!"}, {"post_id": 63286, "ts": "2026-09-07T01:05:12Z", "hours": 0.655, "text": "Hello there! I’ve just created my first minigame: Whack a Mole! Quite an experience considering I’m starting to learn how to use Godot, but look what I’ve got. I believe it isn’t that bad. I’m looking foward to make a thing that counts points and put somehow a timer. Hope you like it!"}, {"post_id": 51632, "ts": "2026-08-21T12:39:57Z", "hours": 0.5333, "text": "Hello there! I’ve been working on my second sprite for the game “Will You Rush?” When drawing the sprite, I took inspiration from Nintendo’s Super Mario Bros Pipes. See my timelapse on Lapse. See you!"}, {"post_id": 46052, "ts": "2026-08-13T00:02:46Z", "hours": 0.55, "text": "Hello there! I just made the first character for my game: Will You Rush. It’s a mole for the minigame of whack a mole. Hope you like!"}, {"post_id": 45510, "ts": "2026-08-12T01:37:06Z", "hours": 0.9472, "text": "Hello there! I’ve embarked on a new adventure: creating a game. I’ve managed to set up Godot (1st using it so wish me luck), Lapse, and I’ve started the design. I made the pixel art of the clock myself (it’s my first time trying this style of drawing) + and i used canva for the rest. If you would like to see my process, you can check out my timelapse in Lapse. Hope you like it!"}]...
|
Title: Will you Rush? by @Domenica | Stardance
De Title: Will you Rush? by @Domenica | Stardance
Devlogs:
Hello there! I’ve embarked on a new adventure: creating a game. I’ve managed to set up Godot (1st using it so wish me luck), Lapse, and I’ve started the design. I made the pixel art of the clock myself (it’s my first time trying this style of drawing) + and i used canva for the rest. If you would like to see my process, you can check out my timelapse in Lapse. Hope you like it!
Hello there! I just made the first character for my game: Will You Rush. It’s a mole for the minigame of whack a mole. Hope you like!
Hello there! I’ve been working on my second sprite for the game “Will You Rush?” When drawing the sprite, I took inspiration from Nintendo’s Super Mario Bros Pipes. See my timelapse on Lapse. See you!
Hello there! I’ve just created my first minigame: Whack a Mole! Quite an experience considering I’m starting to learn how to use Godot, but look what I’ve got. I believe it isn’t that bad. I’m looking foward to make a thing that counts points and put somehow a timer. Hope you like it!
Hello there! I’m so happy to announce that I’ve finally finished the first mini-game of Will You Rush. I’ve created an instructions page and then manage to fix some issues of the first code. Hope you like it!
Hello there! I’m so happy to announce you that after some hours of work, Will you Rush is finally finished. So, the game is divided into 2 minigames, but two levels. First, a whack a mole (20 moles in 15 s), then a math quiz (5s per question) and finally, level 2 : whack a mole (20 moles in 10s). Each part has a introduction card to explain the game. Moreover, if you lose, there’s a personalized game over with a try again to start the whole game again. Finally, if you are fast enough to rush the whole game, you will find a personalized victory card. All process of sprites and cards can be seen in Lapse. Hope you like it!
Hello there! I’ve doing some corrections to the game, it appeared to have some bugs due to the font I was using in some parts. Anyways, go and check it out!!
Ships:
I created a game using Godot Engine, which I named “Will You Rush?”. Within it, you will find 2 mingames and a level 2 for one of them in order to finish the game. Games Once you start the game, you must win all games to win. Losing any of them because of time or a wrong answer will take you back to the title screen. Game 1: Whack A Mole (Catch 20 moles in 15 seconds). Game 2: Quiz (Answer math questions in less than 5 seconds). Game 3: Whack A Mole 2 (Catch 20 moles in 10 seconds). Features Personalised title screen, game over screen, victory screen Personalised sprites (e.g. moles) Timer Points...
|
1793346722.6806092
|
1793433122.6806092
|
|
46223
|
MALLOW - REV2 by @mallow_dev | Stardance
|
mallow_dev
|
1
|
54.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-19T22:42:11Z", "hours": 54.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "hello everyone! it’s finally time to ship! i made a handheld gaming device inspired by Nintendo’s Game Boy that runs off of custom cartridges made by YOU! my goals were to make it affordable, run custom games, and learn a lot in the process, and i’d say i met all of them! the most challenging part of this project was definitely the programming, though i learned a lot in the process of doing so: it’s important to read documentation, even though it’s boring. i dont care whether it’s hardware or software, you gotta do it. SPI lines are sick! it’s just a bunch of timing with 1s and 0s. what ground planes are, as well as stitching vias. advanced C syntax (did you know structs can hold functions? neither did i)", "repo": "https://github.com/twentyfivefishinthetoilet/mallow", "demo": ""}]...
|
[{"post_id": 80781, "ts": "202 [{"post_id": 80781, "ts": "2026-10-18T19:34:11Z", "hours": 5.7589, "text": "final update before shipping mallow has finally been assembled and tested, and everything i programmed it to do is working fine. it can run different cartridges, all the buttons work fine, and the POWER PAK on the back works… decently. look, it’s not the prettiest, but it gets the job done. im gonna upload everything to github shortly, throw together a demonstration video, and then i should be ready to ship!"}, {"post_id": 80025, "ts": "2026-10-16T00:26:26Z", "hours": 5.5167, "text": "chassis for mallow + POWER PAK (power supply) the chassis took a bit more than the 5:30 i logged, but i would rather tank some hours than keep turning on lapse every few runs to the 3d printer. back to the model: all of these parts can be disassembled: the controller, the motherboard, and game cartridge. the POWER PAK snaps onto the back. (chose the name POWER PAK because it sounds like something out of the 80s) all i need are the electronics (that should ship soon ) then i can ship"}, {"post_id": 77975, "ts": "2026-10-09T02:46:11Z", "hours": 4.7514, "text": "revision 2.3 update well, i mean, it works! the video shows it running a game cartridge, the second image shows it recognizing that there’s no cartridge in the slot (i threw that screen together in krita in under a minute). seems like everything is working great until you look at the mess of tape and jumpers on the back. for some reason, the screen wasnt receiving power, and to this day, i still dont know why. the only way i was able to get it to work was by soldering a wire from the voltage regulator output to the screen’s LED_A (anode) pin and the general power pin. in the new, and TRULY final circuit board, i tried to make thicker wires. who knows, maybe it was a manufacturing issue, maybe it was some math i dont understand. whatever it was, i hope it works. if it doesnt, i added bare pads for be to easily connect a jumper wire again. i also added an fpc slot for the touch controls cable too. in the meantime, im going to finish up the programming and prototype a basic game for it in raylib. thanks for reading"}, {"post_id": 64568, "ts": "2026-09-09T02:29:57Z", "hours": 1.2956, "text": "while i wait for my circuit boards, im stuck programming and designing the shell for mallow. this is gonna be a short update because it’s not much of an update at all, rather a todo list. the first screenshot: my todo list the x means it’s done already, the - means it’s halfway done, and nothing at all means that i have yet to start that. in short, i have to complete some draw functions, lua(?), flash memory, and the sd card (all in the respective order of easy to hard ) the second screenshot: ifdefs i got inspiration from the TFT_eSPI UserSetup.h file where you uncomment the settings you want. in this case, im just gonna swap back and forth. ifdef just checks if the macro is defined, so BREADBOARD or PCB doesnt hold a value. the third screenshot: new way of handling flash i connected the CS pins to an mcp23017 since CS is just high or low values. little did i know, this would make using spi lines harder than it already is flash is easy: set the mcp pin to output, add helper functions to drive the CS pin high or low, call it before every spi transaction. sd cards on the other hand are along the same line now that i think about it. i just say it’s a pain because i need to do exactly what i did for the flash memory again, except for sd card commands. time to read through more documentation other: + i think i mentioned this somewhere in my code, but it wouldnt be a shame if the sd card slot doesnt work. i just need it to read from flash memory. i can always flash the game cartridges on my breadboard system. + i used carbon for my fancy code screenshots ( https://carbon.now.sh )"}, {"post_id": 61910, "ts": "2026-09-05T02:37:06Z", "hours": 6.4267, "text": "the final circuit board … for revision 2 CHANGES: + micro sd card wiring + new screen! instead of using the i80 parallel bus, im using a screen in spi mode. there’s two fpc connectors: one for the screen, one for touch controls + controller layout and wiring + new game cartridge OTHER: + i made a shell for mallow to show an example of how i want the project to look fully assembled. + PCB ART!!!!!! check the slack art channel if you wanna see it + while i wait for these circuit boards to come in, im going to rewrite my program to suit the pcb wiring rather than the breadboard wiring. + i really hope this screen works, because if it doesnt, i dont have a backup plan + my mallow neocities website is under construction. i forgot i had that on my circuit board."}, {"post_id": 55290, "ts": "2026-08-27T00:55:20Z", "hours": 5.3547, "text": "the debug board was… a flop let’s get the bad out of the way first: the screen won’t work and the wires heat up. i don’t know why, i followed the pinout and checked for shorts on the circuit board. only the backlight goes on. i think i might try another raw screen, but plan for another failure and have a slot for a pre-built module. no audio. i followed the schematic of a pre-built module and, when testing, i couldn’t figure out why audio wouldn’t come out of the speaker. there are no shorts on the amp, all the pins i used to wire it up are valid. maybe it’s a programming issue, or everything i just listed into one. all i know is that i might use another pre-built module for the sake of shipping my project in time. the final version will have an embedded screen and amp, im just starting to get on a strict time frame with only a month left of this challenge. okay, those are the failures. im happy to announce that the buttons and gpio expander work fine! i didn’t test out the flash memory yet, as well as the micro sd card slot. a few issues with the pin configuration for the controller (image 4), but so far it’s working good. in short: im going to shoot my shot with another raw screen, but if that doesn’t work, im using a pre-built module, as well as the same for the amp. we’ll see if the micro sd card works tomorrow when i get the slot in, as well as flash. im almost finished with the breadboard mallow configuration, it’s just the pcb that’s driving me nuts. ps: the esp32 s3 module on the main board is a temp solution. im getting another s3 wroom 1u, the one without the antenna. as always, thanks for reading. i hope to come back with good news next devlog"}, {"post_id": 54137, "ts": "2026-08-24T23:26:47Z", "hours": 3.7481, "text": "a little bit of this, a little bit of that: yet another programming update (except i locked in today) today was a long day. after almost 4 hours, i finally got images working. a quick way to describe what i did was making a little file system to work with. i also quickly added a few lines of code that checks if a flash_update.txt file exists before flashing the program. if it doesn’t, it’ll just read from the cartridge. this is so it doesn’t wear out the flash chip and so i dont have to wait 3 minutes for it to load. hopefully by the next time i upload another devlog, i’ll have audio and images working better. right now, i need to go into the esp-idf code and tell the code what files to flash (instead of it flashing everything inside of the images directory automatically). loading audio into flash memory will probably be interesting, i never even thought about it before. i attached a video of carbuncle from puyo puyo dancing. the raw binary files of the frames are on my github if, for some odd reason, anyone wants them."}, {"post_id": 53518, "ts": "2026-08-24T03:10:46Z", "hours": 5.3236, "text": "programming update (8/23/26): added a workflow closer to mallow revision 1.4’s i added an sd card slot to the flash spi line for uploading lua files easier. before, it was just a small const char* script = \"print(\\\"hi\\\")\"; expression. it works, but it gets messy for long scripts. now, a main.lua file can be stored on the sd card and flashed to memory with ease. rant about the sd card and sending lua files to flash one thing that’s cool about the sd card system is that once it’s mounted, you can use plain old fopen expressions like you would on a computer. to load the lua file onto flash memory, i used fseek to get the length of the file. i then used that length to malloc that file size + 1 byte for the string null terminator. then it sends the fseek pointer back to the start of the file, iterates through each character, and loads that into a buffer. the buffer is sent to flash with my flash_write_script function from last time (just check my github page. you’ll see it at programs/08_23_26.) something that is worth mentioning that i forgot about is that multiple devices can have the same spi line, just different CS pins. there’s 3 hosts for the esp32 s3: SPI1_HOST for internal ram and SPI2/SPI3_HOST for external devices. another thing i love about this sd card is that i can just easily edit the main.lua file on the sd card and pop it back into the card slot. it’s way easier than reflashing the esp32 s3 just to get a new rectangle on the screen. tomorrow im gonna work on trying to make a makeshift file system for loading up image files into flash and displaying them on screen via lua."}, {"post_id": 50690, "ts": "2026-08-20T00:30:34Z", "hours": 3.7864, "text": "programming update: implemented most of the flash memory into my program, as well as some (SOME) lua. flash memory took the longest. reading through documentation is boring but informative. i got a better understanding of how SPI works, and if not that, how the chip itself works. they have these diagrams of the MISO, MOSI, CS, and SCK lines which shows how data gets transferred. i attached a picture of one of those diagrams below. regarding lua: it didn’t take that long because i’ve experimented with it before in mallow revision 1.4. lua is interesting since, using the lua VM in C at least, it’s stack-based, using pop and push functions. it reminds me of the time i tried learning assembly. i need to try to push an actual file so i dont need to write down files like this… // i'll probably need to store the length of the script somewhere. // a script struct is probably going to be used for organization const char *script = \"local counter = 0\\n\" \"function update() end\\n\" \"function render()\\n\" \"if counter >= 0.5 then\\n\" \"draw_rect_filled(5, 5, 310, 230, 0xf81f)\\n\" \"display_fb()\\n\" \"counter = 0\\n\" \"end\\n\" \"counter = counter + delta_time\\n\" \"end\\n\"; …it works for now, but it’s gonna get messy if i were to push an actual game file. i need to also figure out how to push image data to flash. here’s an example of popping stuff in lua (from my program on 8/19/26: // get and call update lua_getglobal(L, \"update\"); if (lua_isfunction(L, -1)){ if (lua_pcall(L, 0, 0, 0) != LUA_OK){ printf(\"ERR CALLING UPDATE: %s\\n\", lua_tostring(L, -1)); lua_pop(L, 1); } } else { lua_pop(L, 1); } when you get the function, it pushes it to the top of the stack. then it checks if what you got was a function, as well as actually calling the code inside the function. if something goes wrong, it print’s the error. either way, it pops the function from the stack since we dont need it any more for that while loop cycle. this is the same process for render . if anyone actually decided to read through all of this, tell me about your own project. idk if im yapping into the void or not. i cant wait for my pcbs to come in, programming gets boring sometimes 🥹"}, {"post_id": 47262, "ts": "2026-08-15T02:28:37Z", "hours": 3.7411, "text": "over the span of today and some of yesterday, i designed the rest of mallow revision 2.2 and a controller for it. this board is haphazardly laid out, these aren’t the final component placements. on the back of the main board (image 2), there’s pads that i can solder to for debugging. let’s say i wired something up to the wrong pin in the schematics. i can just cut the trace and solder a wire from point A to point B to make up for that mistake. i probably could have just used a bunch of 0ohm resistors for this instead of cutting the trace, but idk cutting traces is more fun. the controller port is really just a 2.54mm 2x10 pin female header that the male header pins connect into. i couldn’t find the footprint for what i was looking for, so i just laid out through holes, making my own footprint essentially. long story short, this is just a debugging board and a test run"}, {"post_id": 46018, "ts": "2026-08-12T22:03:33Z", "hours": 5.94, "text": "there’s gonna be two parts of this devlog: the hardware and software. regarding the software, i just ran the draw_rect_filled function from my draw_functions.h header that i worked on yesterday and alternated the colors (see the gif) hardware is where everything started to fall apart. the good news is that the esp32 s3 works fine: no shorts, no errors when plugging it in. the main issues are the screen and the speaker. the screen is a cheap one i got off of aliexpress. it had an unusual pinout, or at least not the standard miso, mosi, etc that im used to. for anyone curious, it’s an i80 parallel spi interface. the pinout can be found here for the audio module, i already know that’s not gonna work. it was only during my debugging session last night that i realized this: GPIO37 is reserved for PSRAM, and i connected my audio module to pins GPIO35-39. what this means for future revisions: revision 2.2 is going to be a debugging board. there’s going to be a through hole for every component’s pins so i can cut traces and wire to another gpio/pin if i wanted to. that’s what i did with mallow rev 1.4. im going to start mallow revision 2.2 tonight! edit: the gif didnt work, just take my word for it 😭"}, {"post_id": 44883, "ts": "2026-08-10T22:31:34Z", "hours": 2.2317, "text": "DEVLOG 1: programming day 1 today i crossed off a little from my roadmap today: // TODO: // FLASH MEMORY [] - https://www.pjrc.com/teensy/W25Q128FV.pdf // ESP_LCD [x] // DRAW FUNCTIONS/VISUALS [-] // LUA INTEGRATION [] // BUTTONS [x] this is at the top of every main.c file i have on my github page. you can find today’s work here on my github page. some things i learned today: how to make header files. this one was actually kind of fun. i liked writing the descriptions for the functions and seeing them show up when i hover over the function in vscode. it’s a good way of organizing different functions. i was originally going to use a struct or something to hold all of the functions, like how a class would, but header files seemed like the better choice. how to use pointers. not fun at all, but it had to be done. learned from this video the most: https://www.youtube.com/watch?v=2ybLD6_2gKM&t=438s . i used that for my get_button_press function those are the major things i learned. tomorrow i plan on using littlefs for the flash memory so i don’t need to set raw memory addresses and break stuff. i wrote this kind of program before, so that’s why i was able to do this on the faster side. tomorrow will probably be a much slower day since im learning something completely new (littlefs). i really hope stardance allows me to timelapse my drawing process, that would be an easy day off…….👀 the first image shows my wiring, the second shows the program actually running. i dont know why i chose that gross color, let’s just pretend i did yellow for a star for stardance"}]...
|
Title: MALLOW - REV2 by @mallow_dev | Stardance
D Title: MALLOW - REV2 by @mallow_dev | Stardance
Devlogs:
DEVLOG 1: programming day 1 today i crossed off a little from my roadmap today: // TODO: // FLASH MEMORY [] - https://www.pjrc.com/teensy/W25Q128FV.pdf // ESP_LCD [x] // DRAW FUNCTIONS/VISUALS [-] // LUA INTEGRATION [] // BUTTONS [x] this is at the top of every main.c file i have on my github page. you can find today’s work here on my github page. some things i learned today: how to make header files. this one was actually kind of fun. i liked writing the descriptions for the functions and seeing them show up when i hover over the function in vscode. it’s a good way of organizing different functions. i was originally going to use a struct or something to hold all of the functions, like how a class would, but header files seemed like the better choice. how to use pointers. not fun at all, but it had to be done. learned from this video the most: https://www.youtube.com/watch?v=2ybLD6_2gKM&t=438s . i used that for my get_button_press function those are the major things i learned. tomorrow i plan on using littlefs for the flash memory so i don’t need to set raw memory addresses and break stuff. i wrote this kind of program before, so that’s why i was able to do this on the faster side. tomorrow will probably be a much slower day since im learning something completely new (littlefs). i really hope stardance allows me to timelapse my drawing process, that would be an easy day off…….👀 the first image shows my wiring, the second shows the program actually running. i dont know why i chose that gross color, let’s just pretend i did yellow for a star for stardance
there’s gonna be two parts of this devlog: the hardware and software. regarding the software, i just ran the draw_rect_filled function from my draw_functions.h header that i worked on yesterday and alternated the colors (see the gif) hardware is where everything started to fall apart. the good news is that the esp32 s3 works fine: no shorts, no errors when plugging it in. the main issues are the screen and the speaker. the screen is a cheap one i got off of aliexpress. it had an unusual pinout, or at least not the standard miso, mosi, etc that im used to. for anyone curious, it’s an i80 parallel spi interface. the pinout can be found here for the audio module, i already know that’s not gonna work. it was only during my debugging session last night that i realized this: GPIO37 is reserved for PSRAM, and i connected my audio module to pins GPIO35-39. what this means for future revisions: revision 2.2 is going to be a debugging board. there’s going to be a through hole for every component’s pins so i can cut traces and wire to another gpio/pin if i wanted to. that’s what i did with mallow rev 1.4. im going to start mallow revision 2.2 tonight! edit: the gif didnt work, just take my word for it 😭
over the span of today and some of yesterday, i designed the rest of mallow revision 2.2 and a controller for it. this board is haphazardly laid out, these aren’t the final component placements. on the back of the main board (image 2), there’s pads that i can solder to for debugging. let’s say i wired something up to the wrong pin in the schematics. i can just cut the trace and solder a wire from point A to point B to make up for that mistake. i probably could have just used a bunch of 0ohm resistors for this instead of cutting the trace, but idk cutting traces is more fun. the controller port is really just a 2.54mm 2x10 pin female header that the male header pins connect into. i couldn’t find the footprint for what i was looking for, so i just laid out through holes, making my own footprint essentially. long story short, this is just a debugging board and a test run
programming update: implemented most of the flash memory into my program, as well as some (SOME) lua. flash memory took the longest. reading through documentation is boring but informative. i got a better understanding of how SPI works, and if not that, how the chip itself works. they have these diagrams of the MISO, MOSI, CS, and SCK lines which shows how data gets transferred. i attached a picture of one of those diagrams below. regarding lua: it didn’t take that long because i’ve experimented with it before in mallow revision 1.4. lua is interesting since, using the lua VM in C at least, it’s stack-based, using pop and push functions. it reminds me of the time i tried learning assembly. i need to try to push an actual file so i dont need to write down files like this… // i'll probably need to store the length of the script somewhere. // a script struct is probably going to be used for organization const char *script = "local counter = 0\n" "function update() end\n" "function render()\n" "if counter >= 0.5 then\n" "draw_rect_filled(5, 5, 310, 230, 0xf81f)\n" "display_fb()\n" "counter = 0\n" "end\n" "counter = counter + delta_time\n" "end\n"; …it works for now, but it’s gonna get messy if i were to push an actual game file. i need to also figure out how to push image data to flash. here’s an example of popping stuff in lua (from my program on 8/19/26: // get and call update lua_getglobal(L, "update"); if (lua_isfunction(L, -1)){ if (lua_pcall(L, 0, 0, 0) != LUA_OK){ printf("ERR CALLING UPDATE: %s\n", lua_tostring(L, -1)); lua_pop(L, 1); } } else { lua_pop(L, 1); } when you get the function, it pushes it to the top of the stack. then it checks if what you got was a function, as well as actually calling the code inside the function. if something goes wrong, it print’s the error. either way, it pops the function from the stack since we dont need it any more for that while loop cycle. this is the same process for render . if anyone actually decided to read through all of this, tell me about your own project. idk if im yapping into the void or not. i cant wait for my pcbs to come in, programming gets boring sometimes 🥹
programming update (8/23/26): added a workflow closer to mallow revision 1.4’s i added an sd card slot to the flash spi line for uploading lua files easier. before, it was just a small const char* script = "print(\"hi\")"; expression. it works, but it gets messy for long scripts. now, a main.lua file can be stored on the sd card and flashed to memory with ease. rant about the sd card and sending lua files to flash one thing that’s cool about the sd card system is that once it’s mounted, you can use plain old fopen expressions like you would on a computer. to load the lua file onto flash memory, i used fseek to get the length of the file. i then used that length to malloc that file size + 1 byte for the string null terminator. then it sends the fseek pointer back to the start of the file, iterates through each character, and loads that into a buffer. the buffer is sent to flash with my flash_write_script function from last time (just check my github page. you’ll see it at programs/08_23_26.) something that is worth mentioning that i forgot about is that multiple devices can have the same spi line, just different CS pins. there’s 3 hosts for the esp32 s3: SPI1_HOST for internal ram and SPI2/SPI3_HOST for external devices. another thing i love about this sd card is that i can just easily edit the main.lua file on the sd card and pop it back into the card slot. it’s way easier than reflashing the esp32 s3 just to get a new rectangle on the screen. tomorrow im gonna work on trying to make a makeshift file system for loading up image files into flash and displaying them on screen via lua.
a little bit of this, a little bit of that: yet another programming update (except i locked in today) today was a long day. after almost 4 hours, i finally got images working. a quick way to describe what i did was making a little file system to work with. i also quickly added a few lines of code that checks if a flash_update.txt file exists before flashing the program. if it doesn’t, it’ll just read from the cartridge. this is so it doesn’t wear out the flash chip and so i dont have to wait 3 minutes for it to load. hopefully by the next time i upload another devlog, i’ll have audio and images working better. right now, i need to go into the esp-idf code and tell the code what files to flash (instead of it flashing everything inside of the images directory automatically). loading audio into flash memory will probably be interesting, i never even thought about it before. i attached a video of carbuncle from puyo puyo dancing. the raw binary files of the frames are on my github if, for some odd reason, anyone wants them.
the debug board was… a flop let’s get the bad out of the way first: the screen won’t work and the wires heat up. i don’t know why, i followed the pinout and checked for shorts on the circuit board. only the backlight goes on. i think i might try another raw screen, but plan for another failure and have a slot for a pre-built module. no audio. i followed the schematic of a pre-built module and, when testing, i couldn’t figure out why audio wouldn’t come out of the speaker. there are no shorts on the amp, all the pins i used to wire it up are valid. maybe it’s a programming issue, or everything i just listed into one. all i know is that i might use another pre-built module for the sake of shipping my project in time. the final version will have an embedded screen and amp, im just starting to get on a strict time frame with only a month left of this challenge. okay, those are the failures. im happy to announce that the buttons and gpio expander work fine! i didn’t test out the flash memory yet, as well as the micro sd card slot. a few issues with the pin configuration for the controller (image 4), but so far it’s working good. in short: im going to shoot my shot with another raw screen, but if that doesn’t work, im using a pre-built module, as well as the same for the amp. we’ll see if the micro sd card works tomorrow when i get the slot in, as well as flash. im almost finished with the breadboard mallow configuration, it’s just the pcb that’s driving me nuts. ps: the esp32 s3 module on the main board is a temp solution. im getting another s3 wroom 1u, the one without the antenna. as always, thanks for reading. i hope to come back with good news next devlog
the final circuit board … for revision 2 CHANGES: + micro sd card wiring + new screen! instead of using the i80 parallel bus, im using a screen in spi mode. there’s two fpc connectors: one for the screen, one for touch controls + controller layout and wiring + new game cartridge OTHER: + i made a shell for mallow to show an example of how i want the project to look fully assembled. + PCB ART!!!!!! check the slack art channel if you wanna see it + while i wait for these circuit boards to come in, im going to rewrite my program to suit the pcb wiring rather than the breadboard wiring. + i really hope this screen works, because if it doesnt, i dont have a backup plan + my mallow neocities website is under construction. i forgot i had that on my circuit board.
while i wait for my circuit boards, im stuck programming and designing the shell for mallow. this is gonna be a short update because it’s not much of an update at all, rather a todo list. the first screenshot: my todo list the x means it’s done already, the - means it’s halfway done, and nothing at all means that i have yet to start that. in short, i have to complete some draw functions, lua(?), flash memory, and the sd card (all in the respective order of easy to hard ) the second screenshot: ifdefs i got inspiration from the TFT_eSPI UserSetup.h file where you uncomment the settings you want. in this case, im just gonna swap back and forth. ifdef just checks if the macro is defined, so BREADBOARD or PCB doesnt hold a value. the third screenshot: new way of handling flash i connected the CS pins to an mcp23017 since CS is just high or low values. little did i know, this would make using spi lines harder than it already is flash is easy: set the mcp pin to output, add helper functions to drive the CS pin high or low, call it before every spi transaction. sd cards on the other hand are along the same line now that i think about it. i just say it’s a pain because i need to do exactly what i did for the flash memory again, except for sd card commands. time to read through more documentation other: + i think i mentioned this somewhere in my code, but it wouldnt be a shame if the sd card slot doesnt work. i just need it to read from flash memory. i can always flash the game cartridges on my breadboard system. + i used carbon for my fancy code screenshots ( https://carbon.now.sh )
revision 2.3 update well, i mean, it works! the video shows it running a game cartridge, the second image shows it recognizing that there’s no cartridge in the slot (i threw that screen together in krita in under a minute). seems like everything is working great until you look at the mess of tape and jumpers on the back. for some reason, the screen wasnt receiving power, and to this day, i still dont know why. the only way i was able to get it to work was by soldering a wire from the voltage regulator output to the screen’s LED_A (anode) pin and the general power pin. in the new, and TRULY final circuit board, i tried to make thicker wires. who knows, maybe it was a manufacturing issue, maybe it was some math i dont understand. whatever it was, i hope it works. if it doesnt, i added bare pads for be to easily connect a jumper wire again. i also added an fpc slot for the touch controls cable too. in the meantime, im going to finish up the programming and prototype a basic game for it in raylib. thanks for reading
chassis for mallow + POWER PAK (power supply) the chassis took a bit more than the 5:30 i logged, but i would rather tank some hours than keep turning on lapse every few runs to the 3d printer. back to the model: all of these parts can be disassembled: the controller, the motherboard, and game cartridge. the POWER PAK snaps onto the back. (chose the name POWER PAK because it sounds like something out of the 80s) all i need are the electronics (that should ship soon ) then i can ship
final update before shipping mallow has finally been assembled and tested, and everything i programmed it to do is working fine. it can run different cartridges, all the buttons work fine, and the POWER PAK on the back works… decently. look, it’s not the prettiest, but it gets the job done. im gonna upload everything to github shortly, throw together a demonstration video, and then i should be ready to ship!
Ships:
hello everyone! it’s finally time to ship! i made a handheld gaming device inspired by Nintendo’s Game Boy that runs off of custom cartridges made by YOU! my goals were to make it affordable, run custom games, and learn a lot in the process, and i’d say i met all of them! the most challenging part of this project was definitely the programming, though i learned a lot in the process of doing so: it’s important to read documentation, even though it’s boring. i dont care whether it’s hardware or software, you gotta do it. SPI lines are sick! it’s just a bunch of timing with 1s and 0s. what ground planes are, as well as stitching vias. advanced C syntax (did you know structs can hold functions? neither did i)...
|
1793400584.636692
|
1793486984.636692
|
|
46243
|
OPEN-ZEUS by @jagathram | Stardance
|
jagathram
|
1
|
7.0
|
19
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T01:32:18Z", "hours": 7.0, "multiplier": 2.64, "payout": 19, "blessing": "neutral", "text": "I built open zeus as a simple, fast, and free AI chat platform where you can interact with AI without making things complicated. It’s still growing, but the goal is to make AI easy and accessible for everyone. Built by a teenager who just wanted to create something cool and useful.", "repo": "https://github.com/jagathram-tech/OPEN-ZEUS", "demo": "https://open-zeus-ai.vercel.app/"}]...
|
[{"post_id": 45508, "ts": "202 [{"post_id": 45508, "ts": "2026-08-12T01:29:52Z", "hours": 3.5653, "text": "Added many error reactants and Huge hats off to puter.js for still giving free usage try my we app , it let’s you connect with puter.js and access multiple ai models"}, {"post_id": 44488, "ts": "2026-08-10T08:56:16Z", "hours": 3.5444, "text": "guys please try this"}]...
|
Title: OPEN-ZEUS by @jagathram | Stardance
Devlog Title: OPEN-ZEUS by @jagathram | Stardance
Devlogs:
guys please try this
Added many error reactants and Huge hats off to puter.js for still giving free usage try my we app , it let’s you connect with puter.js and access multiple ai models
Ships:
I built open zeus as a simple, fast, and free AI chat platform where you can interact with AI without making things complicated. It’s still growing, but the goal is to make AI easy and accessible for everyone. Built by a teenager who just wanted to create something cool and useful....
|
1792882084.1873393
|
1793746084.1873393
|
|
46259
|
OEDO by @Cherish9 | Stardance
|
Cherish9
|
1
|
9.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-03T23:52:48Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finally shipped my second ever cad project!! (First one was a wire organizer but not on stardance) Designed this whole multi-part build in FreeCAD across a few weeks of weekend grinding to solve my messy desk problem since my essentials kept getting misplaced. It holds my watche, pens, bracelet, USB and Micro SD cards. I learned a lot from this experience like threading, fastener workbench, and assembly. It took around 9 hours but it doesn’t include the time outside where I was figuring out how to do certain stuff. So I’m super happy to finally ship this!", "repo": "https://github.com/Cherish-everything/OEDO", "demo": ""}]...
|
[{"post_id": 76353, "ts": "202 [{"post_id": 76353, "ts": "2026-10-03T08:58:48Z", "hours": 0.5, "text": "FINAL UPDATE ON OEDO!! Omg this has been a long long journey and countless hours figuring out how things work. It was a nice learning journey as I learned assembly and threading (that was a painn) now I’m probably not going print this out because I haven’t gotten access to a 3d printer yet but when I do I’ll maybe try it out (but by then I’d probably have atleast 3 other projects lol)"}, {"post_id": 57970, "ts": "2026-08-30T09:35:31Z", "hours": 0.7667, "text": "I’m almost done modeling this! The middle body was rlly hard for me to model since I wanted it to have this snap lock hanger for my watch and bracelets and then it has a camfollower thing inside that hopefully if it works pushes out my usb and sd card as I turn the part Though next session I’ll do these fixes cuz i just realized it won’t work without these and i’m too tired to do it rn Remove threads on hanger body, replace with smooth insert like the one I made under the pencil holder The camfollower connects to pole that goes through hanger body from top of drawer section, act as pivot"}, {"post_id": 52904, "ts": "2026-08-23T08:57:39Z", "hours": 3.2669, "text": "Today I modeled the camfollower (idk what it’s called but it’s supposed to pushed things out when rotated, don’t have a pic rn) and also finally figured out how to make easy male and female threads. This whole thing took a lot of crashing out on freeCAD haha but I’m finally getting somewhere! So my plan is to have the drawer, hanger for my watch & braceletes and slots for usb and my sd card. If you’re wondering why I’m adding threads it’s because to learn I will print at a library like 30 minutes from here and I can only at max print for 4 hours so I need to find a way to do one section at a time then assemble them together lol. So I also learned how to add joints in assembly so I can see it coming together. Next session I’ll finish up the cam follower thing and fix up the hanger measurements because it doesn’t quite fit and this thing is already stressing me out. Then after those are done I just need to add a sticky note holder + a pencil holder on top and done! (+ a second drawer but I just need the same drawer piece twice for that)"}, {"post_id": 52233, "ts": "2026-08-22T10:23:08Z", "hours": 1.6172, "text": "I modelled the hanger part but oh my days this took so long just because FreeCad kept giving me errors lol but I’m one step closer to finishing OEDO!"}, {"post_id": 50187, "ts": "2026-08-19T09:50:31Z", "hours": 1.5336, "text": "Today I learned how to do threads so I can at some point screw them together ig since I’ll be printing them seperately, I also modelled the simple base platform for it"}, {"post_id": 48070, "ts": "2026-08-16T11:02:30Z", "hours": 1.7169, "text": "Made the drawer section of OEDO (Over-engineered desk organizer"}]...
|
Title: OEDO by @Cherish9 | Stardance
Devlogs:
Mad Title: OEDO by @Cherish9 | Stardance
Devlogs:
Made the drawer section of OEDO (Over-engineered desk organizer
Today I learned how to do threads so I can at some point screw them together ig since I’ll be printing them seperately, I also modelled the simple base platform for it
I modelled the hanger part but oh my days this took so long just because FreeCad kept giving me errors lol but I’m one step closer to finishing OEDO!
Today I modeled the camfollower (idk what it’s called but it’s supposed to pushed things out when rotated, don’t have a pic rn) and also finally figured out how to make easy male and female threads. This whole thing took a lot of crashing out on freeCAD haha but I’m finally getting somewhere! So my plan is to have the drawer, hanger for my watch & braceletes and slots for usb and my sd card. If you’re wondering why I’m adding threads it’s because to learn I will print at a library like 30 minutes from here and I can only at max print for 4 hours so I need to find a way to do one section at a time then assemble them together lol. So I also learned how to add joints in assembly so I can see it coming together. Next session I’ll finish up the cam follower thing and fix up the hanger measurements because it doesn’t quite fit and this thing is already stressing me out. Then after those are done I just need to add a sticky note holder + a pencil holder on top and done! (+ a second drawer but I just need the same drawer piece twice for that)
I’m almost done modeling this! The middle body was rlly hard for me to model since I wanted it to have this snap lock hanger for my watch and bracelets and then it has a camfollower thing inside that hopefully if it works pushes out my usb and sd card as I turn the part Though next session I’ll do these fixes cuz i just realized it won’t work without these and i’m too tired to do it rn Remove threads on hanger body, replace with smooth insert like the one I made under the pencil holder The camfollower connects to pole that goes through hanger body from top of drawer section, act as pivot
FINAL UPDATE ON OEDO!! Omg this has been a long long journey and countless hours figuring out how things work. It was a nice learning journey as I learned assembly and threading (that was a painn) now I’m probably not going print this out because I haven’t gotten access to a 3d printer yet but when I do I’ll maybe try it out (but by then I’d probably have atleast 3 other projects lol)
Ships:
Finally shipped my second ever cad project!! (First one was a wire organizer but not on stardance) Designed this whole multi-part build in FreeCAD across a few weeks of weekend grinding to solve my messy desk problem since my essentials kept getting misplaced. It holds my watche, pens, bracelet, USB and Micro SD cards. I learned a lot from this experience like threading, fastener workbench, and assembly. It took around 9 hours but it doesn’t include the time outside where I was figuring out how to do certain stuff. So I’m super happy to finally ship this!...
|
1793346768.7613401
|
1793433168.7613401
|
|
46274
|
SnackbarOS by @222erik | Stardance
|
222erik
|
1
|
16.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-13T17:22:26Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a operating system that runs in the browser. It’s of course not a real operating system. In other words, it’s a website where you can open and close applications, and move their windows. There are two apps. A notes app and a calculator app. I think the calculator app was the hardest thing to code, like, it supports floating point numbers. The notes app was also challenging because of the editor, I’m most proud of that.", "repo": "https://github.com/222erik/web-os/", "demo": "https://222erik.github.io/web-os/"}]...
|
[{"post_id": 53202, "ts": "202 [{"post_id": 53202, "ts": "2026-08-23T17:16:27Z", "hours": 3.1464, "text": "devlog 3, i made a calculator app that calculates the four operations and supports floating-point numbers"}, {"post_id": 49792, "ts": "2026-08-18T18:44:39Z", "hours": 4.2172, "text": "devlog 2, i made a javascript-powered notes app where you can manage notes"}, {"post_id": 45631, "ts": "2026-08-12T07:48:52Z", "hours": 8.6433, "text": "The first devlog, i added a welcome window and a notes app (it doesn’t work yet), the windows have a close button. I also made two bars, one at the top that shows time and one at the bottom which is the application launcher."}]...
|
Title: SnackbarOS by @222erik | Stardance
Devlogs Title: SnackbarOS by @222erik | Stardance
Devlogs:
The first devlog, i added a welcome window and a notes app (it doesn’t work yet), the windows have a close button. I also made two bars, one at the top that shows time and one at the bottom which is the application launcher.
devlog 2, i made a javascript-powered notes app where you can manage notes
devlog 3, i made a calculator app that calculates the four operations and supports floating-point numbers
Ships:
I made a operating system that runs in the browser. It’s of course not a real operating system. In other words, it’s a website where you can open and close applications, and move their windows. There are two apps. A notes app and a calculator app. I think the calculator app was the hardest thing to code, like, it supports floating point numbers. The notes app was also challenging because of the editor, I’m most proud of that....
|
1793400606.9514966
|
1793487006.9514966
|