|
14918
|
My first Self balancing robot by @aimaneon | Stard My first Self balancing robot by @aimaneon | Stardance...
|
aimaneon
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first Self balancing robot by @aimaneon Title: My first Self balancing robot by @aimaneon | Stardance...
|
1792612254.6426709
|
1793217054.6426709
|
|
13747
|
Untitled Dice Game by @BillWarrenTio | Stardance
|
BillWarrenTio
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled Dice Game by @BillWarrenTio | Star Title: Untitled Dice Game by @BillWarrenTio | Stardance...
|
1792612255.4992292
|
1793217055.4992292
|
|
41626
|
BoilermakerOS by @ylu | Stardance
|
ylu
|
1
|
18.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T23:00:19Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made BoilermakerOS, a Purdue University themed webOS. My biggest challenges were probably with the 3D renders. It took a lot of tweaks and re-renders until they looked close to what I wanted. I’m proud of the aesthetics, but I’m also proud of how I organized the code with modules and classes.", "repo": "https://github.com/Why-Am/BoilermakerOS", "demo": "https://why-am.github.io/BoilermakerOS/"}]...
|
[{"post_id": 44085, "ts": "202 [{"post_id": 44085, "ts": "2026-08-09T16:40:58Z", "hours": 0.8083, "text": "I added dark mode using the light-dark() CSS function. I also fixed an issue where the splash text in the bottom bar wasn’t properly centered. Beforehand I had tried using justify-content and flex-grow , but my final solution was as simple as setting the width of the bottom bar elements to 33% . Finally, I filled out my README with screenshots and information."}, {"post_id": 42213, "ts": "2026-08-06T20:37:08Z", "hours": 3.7481, "text": "I added 2 new apps: a weather app and a clock app, both showing information pertaining to West Lafayette (where Purdue University is). I also added a Minecraft-style splash text to the bottom bar that is randomly selected on site load. I finally fixed an issue where renaming a file from “window.js” to “Window.js” wasn’t being picked up by git, probably because in Windows file names are case insensitive. I fixed it by temporarily setting git config core.ignorecase false . Finally, I created a 3D rendered favicon for the website. I had to add a little drop shadow to improve contrast (see 2nd image)."}, {"post_id": 41067, "ts": "2026-08-05T00:55:11Z", "hours": 9.1792, "text": "I added desktop icons and a new “links” app that has a bunch of Purdue related links. I also wrote some code to make adding new apps simpler."}, {"post_id": 38903, "ts": "2026-08-01T14:17:18Z", "hours": 2.0478, "text": "New in my Purdue University themed webOS: Window dragging Gradients 3D rendered window close button Hover over the close button, and it lights up. I achieved this with the CSS :hover selector and two different button images, each rendered with a different light intensity."}, {"post_id": 37933, "ts": "2026-07-30T23:15:13Z", "hours": 1.88, "text": "I have started work on my Purdue University themed webOS, BoilermakerOS. So far I have a wallpaper, welcome window, and bottom bar. I’m most excited about the wallpaper, which I made fairly quickly in Blender. I think I will incorporate the glass material into my theme."}]...
|
Title: BoilermakerOS by @ylu | Stardance
Devlogs: Title: BoilermakerOS by @ylu | Stardance
Devlogs:
I have started work on my Purdue University themed webOS, BoilermakerOS. So far I have a wallpaper, welcome window, and bottom bar. I’m most excited about the wallpaper, which I made fairly quickly in Blender. I think I will incorporate the glass material into my theme.
New in my Purdue University themed webOS: Window dragging Gradients 3D rendered window close button Hover over the close button, and it lights up. I achieved this with the CSS :hover selector and two different button images, each rendered with a different light intensity.
I added desktop icons and a new “links” app that has a bunch of Purdue related links. I also wrote some code to make adding new apps simpler.
I added 2 new apps: a weather app and a clock app, both showing information pertaining to West Lafayette (where Purdue University is). I also added a Minecraft-style splash text to the bottom bar that is randomly selected on site load. I finally fixed an issue where renaming a file from “window.js” to “Window.js” wasn’t being picked up by git, probably because in Windows file names are case insensitive. I fixed it by temporarily setting git config core.ignorecase false . Finally, I created a 3D rendered favicon for the website. I had to add a little drop shadow to improve contrast (see 2nd image).
I added dark mode using the light-dark() CSS function. I also fixed an issue where the splash text in the bottom bar wasn’t properly centered. Beforehand I had tried using justify-content and flex-grow , but my final solution was as simple as setting the width of the bottom bar elements to 33% . Finally, I filled out my README with screenshots and information.
Ships:
I made BoilermakerOS, a Purdue University themed webOS. My biggest challenges were probably with the 3D renders. It took a lot of tweaks and re-renders until they looked close to what I wanted. I’m proud of the aesthetics, but I’m also proud of how I organized the code with modules and classes....
|
1793130656.1190252
|
1793217056.1190252
|
|
25228
|
Heads up display by @NathanOsborne | Stardance
|
NathanOsborne
|
0
|
16.2
|
0
|
[]
|
[{"post_id": 49685, "ts": "202 [{"post_id": 49685, "ts": "2026-08-18T16:03:49Z", "hours": 0.9697, "text": "Fixed RLE Bugs where some data would be missing and some duplicate data would be made."}, {"post_id": 49254, "ts": "2026-08-17T22:56:47Z", "hours": 3.2139, "text": "Image decompressing has been added to the esp32 and some error handling has been added to the packet system on both the server and client side. I broke the display I was going to use for this project (the voltage reg blew (somehow…)). But that is fixed now i think and should be good fro tommow. The bugs with the Arduino IDE have been fixed. Here is some C++ Arduino RLE Code. (I have no idea if the code works yet so that will be tested tommow.)"}, {"post_id": 48468, "ts": "2026-08-16T20:28:21Z", "hours": 1.3256, "text": "Troubles with Arduino IDE. will get the problems fixed. I don’t even have 749 lines…"}, {"post_id": 47766, "ts": "2026-08-15T22:20:31Z", "hours": 5.2092, "text": "Spent hours converting an image from 24-Bit to 8-Bit and compressing it with RLE (Run Length Encoding). And the image size went from 216KB to roughly 20KB. It’s a MASSIVE improvement. Roughly a 90% file size decrease! (Less quality tho… But it’s smaller)"}, {"post_id": 46879, "ts": "2026-08-14T12:46:01Z", "hours": 2.1289, "text": "Screen shots can be taken and and sent to an esp32. The esp32 doesnt understand it yet tho."}, {"post_id": 46608, "ts": "2026-08-13T23:32:23Z", "hours": 0.8747, "text": "Got c++ arduino code compiled and running on the esp32-c3. (That too 3 and a half hourrrrssssss…)"}, {"post_id": 46498, "ts": "2026-08-13T19:08:49Z", "hours": 2.4786, "text": "Basic design of the head up display"}]...
|
Title: Heads up display by @NathanOsborne | Starda Title: Heads up display by @NathanOsborne | Stardance
Devlogs:
Basic design of the head up display
Got c++ arduino code compiled and running on the esp32-c3. (That too 3 and a half hourrrrssssss…)
Screen shots can be taken and and sent to an esp32. The esp32 doesnt understand it yet tho.
Spent hours converting an image from 24-Bit to 8-Bit and compressing it with RLE (Run Length Encoding). And the image size went from 216KB to roughly 20KB. It’s a MASSIVE improvement. Roughly a 90% file size decrease! (Less quality tho… But it’s smaller)
Troubles with Arduino IDE. will get the problems fixed. I don’t even have 749 lines…
Image decompressing has been added to the esp32 and some error handling has been added to the packet system on both the server and client side. I broke the display I was going to use for this project (the voltage reg blew (somehow…)). But that is fixed now i think and should be good fro tommow. The bugs with the Arduino IDE have been fixed. Here is some C++ Arduino RLE Code. (I have no idea if the code works yet so that will be tested tommow.)
Fixed RLE Bugs where some data would be missing and some duplicate data would be made....
|
1792612256.3428411
|
1793217056.3428411
|
|
4293
|
My awesome macropad! by @sqnder_ | Stardance
|
sqnder_
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @sqnder_ | Stardanc Title: My awesome macropad! by @sqnder_ | Stardance...
|
1792612257.2754407
|
1793217057.2754407
|
|
9806
|
My awesome macropad! by @barseghian_daniel | Stard My awesome macropad! by @barseghian_daniel | Stardance...
|
barseghian_daniel
|
0
|
0.73
|
0
|
[]
|
[{"post_id": 4303, "ts": "2026 [{"post_id": 4303, "ts": "2026-06-07T15:47:21Z", "hours": 0.7314, "text": "Finshed designing micropad it took 10h+ but i wasnt recording with hackatime/lapse. it was very fun and refreshing since i was only coding for almost 6 months. I’m very exsited to get the parts to build it!"}]...
|
Title: My awesome macropad! by @barseghian_daniel Title: My awesome macropad! by @barseghian_daniel | Stardance
Devlogs:
Finshed designing micropad it took 10h+ but i wasnt recording with hackatime/lapse. it was very fun and refreshing since i was only coding for almost 6 months. I’m very exsited to get the parts to build it!...
|
1792612258.1162834
|
1793217058.1162834
|
|
89
|
Frictionless by @flamex | Stardance
|
flamex
|
0
|
1.07
|
0
|
[]
|
[{"post_id": 281, "ts": "2026- [{"post_id": 281, "ts": "2026-06-01T14:51:26Z", "hours": 1.0711, "text": "i am making a game that runs on your terminal . Im making this project to learn more about"}]...
|
Title: Frictionless by @flamex | Stardance
Devlog Title: Frictionless by @flamex | Stardance
Devlogs:
i am making a game that runs on your terminal . Im making this project to learn more about...
|
1792612258.9861045
|
1793217058.9861045
|
|
4368
|
Pluggable Discord Bot by @jacob6855 | Stardance
|
jacob6855
|
0
|
3.14
|
0
|
[]
|
[{"post_id": 1396, "ts": "2026 [{"post_id": 1396, "ts": "2026-06-03T12:32:54Z", "hours": 1.3144, "text": "Using Gemini CLI, looks good to me"}, {"post_id": 763, "ts": "2026-06-02T12:41:19Z", "hours": 1.4686, "text": "finally done coding for today ig not tested yet but pushed first 💀"}, {"post_id": 735, "ts": "2026-06-02T11:08:22Z", "hours": 0.3617, "text": "POV: you are writing readme before writing code :3"}]...
|
Title: Pluggable Discord Bot by @jacob6855 | Stard Title: Pluggable Discord Bot by @jacob6855 | Stardance
Devlogs:
POV: you are writing readme before writing code :3
finally done coding for today ig not tested yet but pushed first 💀
Using Gemini CLI, looks good to me...
|
1792612259.8539853
|
1793217059.8539853
|
|
14609
|
Untitled project by @imprettychill | Stardance
|
imprettychill
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @imprettychill | Starda Title: Untitled project by @imprettychill | Stardance...
|
1792612260.8908014
|
1793217060.8908014
|
|
286
|
My Website by @stefdp | Stardance
|
stefdp
|
2
|
7.75
|
28
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-29T10:49:14Z", "hours": 3.0, "multiplier": 5.13, "payout": 16, "blessing": "neutral", "text": "I updated the webring code so that now: The webring is on the bottom right (moved neko credits from bottom right to bottom center), a bit more above the bottom so that on small screens like phones it doesn’t overlap with the credits It’s now vertical Added a new webring ( https://horser.ing , only for friends) and so i added a select to choose the ring and also a ?webring query that auto selects given ring (currently as values there’s hackclub for hc ring and horsering for the horsering) it’s wasn’t really challenging, only thing that took me a bit was find out which class added a horizontal padding to the select cuz none of my tailwind classes added it, then i found out it was DaisyUI’s btn class", "repo": "https://git.stefdp.com/Stef/personal-site", "demo": "https://stefdp.com"}, {"ship_num": 2, "ts": "2026-06-06T12:53:05Z", "hours": 1.0, "multiplier": 8.07, "payout": 12, "blessing": "neutral", "text": "I added a switch for plain text & code in the about me section and switched from nix webring to hackclub webring nothnig was really challenging, only issue i had was that the webring iframe for some reason looked good on my laptop but when i pushed to prod it got some weird white bg, couldn’t figure out how to fix it so i just ended up making my own buttons (and also added a random page button which official webring doesn’t have! :D)", "repo": "https://git.stefdp.com/Stef/personal-site", "demo": "https://stefdp.com"}]...
|
[{"post_id": 71777, "ts": "202 [{"post_id": 71777, "ts": "2026-09-21T15:03:47Z", "hours": 2.6286, "text": "Updated the main embed to add social links and page specific text/images too and also fix buttons’ urls"}, {"post_id": 70204, "ts": "2026-09-18T18:12:30Z", "hours": 1.1197, "text": "Added the new discord embed with components v2"}, {"post_id": 36934, "ts": "2026-07-29T10:42:29Z", "hours": 0.4753, "text": "Made the horizontal padding of the select smaller I legit couldn’t find what that padding was caused by cuz i didn’t have any p* classes and after like 20 mins i found out that it was the DaisyUI’s btn class that added padding-inline 🥀 so i fixed it with px-2 (which in tailwind stands for 0.5rem or 8px"}, {"post_id": 36485, "ts": "2026-07-28T16:54:50Z", "hours": 2.4244, "text": "Added the Horsering in the rings (friend only ring) Moved the neko credits in the middle Moved the webring on the right and made it vertical"}, {"post_id": 3493, "ts": "2026-06-06T13:36:40Z", "hours": 0.2644, "text": "Updated the README.md (I had forgot to update it before shipping 😭)"}, {"post_id": 3467, "ts": "2026-06-06T12:47:26Z", "hours": 1.4947, "text": "Added a “Switch to Code/Plain Text” in the about me so people who don’t know Typescript can just read it as plain text Moved from Nix Webring to Hack Club Webring since i don’t use NixOS anymore"}]...
|
Title: My Website by @stefdp | Stardance
Devlogs: Title: My Website by @stefdp | Stardance
Devlogs:
Added a “Switch to Code/Plain Text” in the about me so people who don’t know Typescript can just read it as plain text Moved from Nix Webring to Hack Club Webring since i don’t use NixOS anymore
Updated the README.md (I had forgot to update it before shipping 😭)
Added the Horsering in the rings (friend only ring) Moved the neko credits in the middle Moved the webring on the right and made it vertical
Made the horizontal padding of the select smaller I legit couldn’t find what that padding was caused by cuz i didn’t have any p* classes and after like 20 mins i found out that it was the DaisyUI’s btn class that added padding-inline 🥀 so i fixed it with px-2 (which in tailwind stands for 0.5rem or 8px
Added the new discord embed with components v2
Updated the main embed to add social links and page specific text/images too and also fix buttons’ urls
Ships:
I added a switch for plain text & code in the about me section and switched from nix webring to hackclub webring nothnig was really challenging, only issue i had was that the webring iframe for some reason looked good on my laptop but when i pushed to prod it got some weird white bg, couldn’t figure out how to fix it so i just ended up making my own buttons (and also added a random page button which official webring doesn’t have! :D)
I updated the webring code so that now: The webring is on the bottom right (moved neko credits from bottom right to bottom center), a bit more above the bottom so that on small screens like phones it doesn’t overlap with the credits It’s now vertical Added a new webring ( https://horser.ing , only for friends) and so i added a select to choose the ring and also a ?webring query that auto selects given ring (currently as values there’s hackclub for hc ring and horsering for the horsering) it’s wasn’t really challenging, only thing that took me a bit was find out which class added a horizontal padding to the select cuz none of my tailwind classes added it, then i found out it was DaisyUI’s btn class...
|
1793130661.1273808
|
1793217061.1273808
|
|
37515
|
My very own WebOS by @Jamie90 | Stardance
|
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Jamie90 | Stardance
|
1792612261.8339372
|
1793217061.8339372
|
|
1662
|
Speach to to-do by @heesenfaas | Stardance
|
heesenfaas
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Speach to to-do by @heesenfaas | Stardance
|
1792612262.7110648
|
1793217062.7110648
|
|
29509
|
VibeCalender by @as | Stardance
|
as
|
1
|
4.56
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-02T02:15:41Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I developed a calendar app that merges unmovable commitments, and tasks that the user has to complete to create a customizable schedule for the user automatically.", "repo": "https://github.com/AI-DEV-CS/calendar-web", "demo": "https://ai-dev-cs.github.io/calendar-web/"}]...
|
[{"post_id": 24461, "ts": "202 [{"post_id": 24461, "ts": "2026-07-08T01:16:57Z", "hours": 0.4567, "text": "I am working on adding routes to the API to manage tasks, and finishing the commitments SQL Alchemy class."}, {"post_id": 23153, "ts": "2026-07-05T22:50:42Z", "hours": 0.7922, "text": "Began implementing Flutter integration with Flask REST API for database."}, {"post_id": 21860, "ts": "2026-07-04T00:50:38Z", "hours": 1.8692, "text": "I am working on a database using SQL Alchemy and Flask to allow for data persistence, I want to ensure that users have their data saved even if the app is fully exited. I am also working on implementing a login system using JWT Authentication."}, {"post_id": 20881, "ts": "2026-07-02T16:31:46Z", "hours": 0.4383, "text": "Added page for AI interaction. I plan on using this page to ask the AI for feedback on the schedule, if possible, maybe have the AI auto modify the schedule according to the user’s parameters."}, {"post_id": 20467, "ts": "2026-07-02T02:07:37Z", "hours": 0.5056, "text": "Developed a first draft of website using AI as a template, and making changes, and adding stuff accordingly. Next, I plan to work on adding LLM integration to modify the calendar based on user prompts to allow for more customizability."}]...
|
Title: VibeCalender by @as | Stardance
Devlogs:
D Title: VibeCalender by @as | Stardance
Devlogs:
Developed a first draft of website using AI as a template, and making changes, and adding stuff accordingly. Next, I plan to work on adding LLM integration to modify the calendar based on user prompts to allow for more customizability.
Added page for AI interaction. I plan on using this page to ask the AI for feedback on the schedule, if possible, maybe have the AI auto modify the schedule according to the user’s parameters.
I am working on a database using SQL Alchemy and Flask to allow for data persistence, I want to ensure that users have their data saved even if the app is fully exited. I am also working on implementing a login system using JWT Authentication.
Began implementing Flutter integration with Flask REST API for database.
I am working on adding routes to the API to manage tasks, and finishing the commitments SQL Alchemy class.
Ships:
I developed a calendar app that merges unmovable commitments, and tasks that the user has to complete to create a customizable schedule for the user automatically....
|
1793130663.1689272
|
1793217063.1689272
|
|
30536
|
My own site! by @ronlerner | Stardance
|
ronlerner
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @ronlerner | Stardance
|
1792612263.5478795
|
1793217063.5478795
|
|
34765
|
Frictionless by @enochhpaul | Stardance
|
enochhpaul
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @enochhpaul | Stardance
|
1792612264.3938084
|
1793217064.3938084
|
|
26297
|
My first slack bot! by @haiclop6 | Stardance
|
haiclop6
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @haiclop6 | Stardanc Title: My first slack bot! by @haiclop6 | Stardance...
|
1792612265.2431934
|
1793217065.2431934
|
|
743
|
Pokemon Macropad by @Sahild | Stardance
|
Sahild
|
1
|
42.46
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-20T01:52:51Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Pokemon Hackpad is a 5 key macropad with a rotary encoder, and 4 SK6812 MINI E RGB LEDs. It uses KMK firmware Features: An EC11 rotary encoder, controls volume, click to mute 4 SK6812 MINI E RGB LEDs, swirl and static modes 5 Cherry MX style keys, encoder click counts as the 5th Pokemon themed design", "repo": "https://github.com/sahilchess/Pokemon-Hackpad", "demo": ""}]...
|
[{"post_id": 25085, "ts": "202 [{"post_id": 25085, "ts": "2026-07-09T01:56:48Z", "hours": 0.3078, "text": "kmk update i added oled support and thats really it"}, {"post_id": 24799, "ts": "2026-07-08T16:21:22Z", "hours": 0.4333, "text": "done im not writing anything her ebc imma write a ship post nvm you dont ship post for hardware….. here is my hackpad: 5 keys and a rotary encoder/switch in matrix wiring, an OLED scree, 3 rgb LEDS (1 for underglow, 2 for key glow and lighting up the case.). the case has a 2 degree tilt. thereason it isnt more is bc the screws wouldn’t reach if it was more. the case is 126.64mm (length) x 95.18mm (width) x 21.5mm (height)"}, {"post_id": 24459, "ts": "2026-07-08T01:12:48Z", "hours": 0.4667, "text": "almost done early devlog here. im just saing i finsihed teh redo for the holes making them 7mm from the wall instead of 5mm. but now i mchoosing to make them 10mm isntead of 7mm. here it is rn i should be done by next session or max tmmrw"}, {"post_id": 24452, "ts": "2026-07-08T00:43:36Z", "hours": 4.45, "text": "holy crappedididapidee I’m almost done and this is like surreal. finally, all my hard work is coming to an end. all my pain suffering diligence is showing as a final product i added a hc logo in the top right. i gave up on the “cool effect” for a pokemon logo bc i keep getting manifold body errors. I used the 2020 HC progress logo so i could get a cool rounded fillet effect. also, instead of making the holes 5mm from the wall, they are 7mm. i saw some pics also changing the name to pokepad"}, {"post_id": 23233, "ts": "2026-07-06T01:45:36Z", "hours": 5.2564, "text": "design im now more focused on designs i added a pikachu and meowth. im ttryna add the pokemon logo. whats cool is that imma make it so the blue part with bbe at a different height from teh yellow and is will be a very cool effect."}, {"post_id": 21899, "ts": "2026-07-04T02:21:15Z", "hours": 0.3836, "text": "production productive I got a good job. I got the HC banner into the bottom, got the under glow led fixated. I was forced to move the old screen because it was too close and I wanted to chamfer the keys. Then I chamfered the keys. i removed the fillets for less ram usage also here are the 2.9 hours that i didn’t record to hackatime: one two three"}, {"post_id": 21224, "ts": "2026-07-03T01:41:03Z", "hours": 0.9836, "text": "uhh so um. i was looking at my previous timlapses and i noticed…. that i was idling a ton. so and um.i dont want to count for fraud, so… uh…. my idea was to record my self designing for like 4 hours and would NOT put that in hackatime/lookout/lapse. i would just record it. i i would put it here. but yeah thats what happened. i also got a 3rd layer"}, {"post_id": 21041, "ts": "2026-07-02T20:17:23Z", "hours": 2.1453, "text": "im going crazy finished importing all the parts and moved them out of the main document so my computer doesn’t die opening it found a problem though. the plate is only sized for the upper part of the switch base and not the bottom part so nothing sits right when i put it together gonna need to add some tolerances to the parts too or nothing’s gonna fit clean back to onshape"}, {"post_id": 20092, "ts": "2026-07-01T16:42:35Z", "hours": 0.4503, "text": "onshape onshape is soooooo slow, even on unshaded graphics and ambient occlusion and 0%. like this is crazy. just yesterday it was good and now it is horrible"}, {"post_id": 19625, "ts": "2026-07-01T00:17:04Z", "hours": 1.2669, "text": "wow i made a lot of updates here they are: usbc hole is rounded added in the pcb started adding in the parts removed my shading and maybe (call me crazy) i might use unshaded some of the time"}, {"post_id": 17654, "ts": "2026-06-28T15:16:18Z", "hours": 3.7528, "text": "bro what i really dont know waht i did for 3hrs but ig i will devlog i uh imported my pcb into onshape and that took really long ig and i am still tryna figure out why my top case doesnt align with the silkscreen on my pcb"}, {"post_id": 15140, "ts": "2026-06-24T16:27:00Z", "hours": 1.285, "text": "Routing done yeah ig thats it, i finished routing, now we gonna cad some more. I also figured out that you can use KMK for all of this. idk what QMK is for if KMK has all of this. ts is just in a harder coding lang"}, {"post_id": 14780, "ts": "2026-06-24T00:35:11Z", "hours": 4.6083, "text": "updates and descisions i updated the board by rounding the corners, i updated the 3d models of parts in kicad, and now it looks very good. I also added an OLDE. future i am gonna make my thign look like the orpheuspad like qcoral :). (not copying) but like I would like it to look as clean as it with the round corners and no screw holes on the tops."}, {"post_id": 13899, "ts": "2026-06-22T19:42:57Z", "hours": 3.6661, "text": "im tilting I added a tilt and this is prolly the coolest thing abt this case. how i did it was i created a rectangle with lenght of the case width. then extrudedd that and rotated it just like the rest of the case. tehn i got the mesurement of the triangle it created. then i extrueded teh triangle. that is the wedge created. next, I added one hole for the screw and insert. since i only get 6 screws and inserts and already used 4, i can only secure the tilt with 2. i had to use a hole instead of the extrude because the screws have to be perpendicualr to the bottom. i also made the insert be in the bottom case instead of the tilt because i didn’t like the vision of the heatset insert being visible"}, {"post_id": 12289, "ts": "2026-06-20T01:50:32Z", "hours": 6.2314, "text": "pokemon macropad is done finished the wiring changes, added the 4 rgb leds, wrote the kmk firmware for the encoder and keys, finalized the case in onshape, and wrapped up the submission reqs. fully built, fully working, pokemon themed start to finish"}, {"post_id": 3807, "ts": "2026-06-06T21:13:28Z", "hours": 2.3547, "text": "Case Designing so i basically worked for 2 hours and finished the case and am planning to add more flair like my name and some pokemon later👍"}, {"post_id": 2938, "ts": "2026-06-05T20:54:41Z", "hours": 0.6283, "text": "next step is the usb c hole and the firmware!"}, {"post_id": 2906, "ts": "2026-06-05T20:11:40Z", "hours": 3.9333, "text": "🫠fusion blew my computer up so i had to shift to onshape"}]...
|
Title: Pokemon Macropad by @Sahild | Stardance
De Title: Pokemon Macropad by @Sahild | Stardance
Devlogs:
🫠fusion blew my computer up so i had to shift to onshape
next step is the usb c hole and the firmware!
Case Designing so i basically worked for 2 hours and finished the case and am planning to add more flair like my name and some pokemon later👍
pokemon macropad is done finished the wiring changes, added the 4 rgb leds, wrote the kmk firmware for the encoder and keys, finalized the case in onshape, and wrapped up the submission reqs. fully built, fully working, pokemon themed start to finish
im tilting I added a tilt and this is prolly the coolest thing abt this case. how i did it was i created a rectangle with lenght of the case width. then extrudedd that and rotated it just like the rest of the case. tehn i got the mesurement of the triangle it created. then i extrueded teh triangle. that is the wedge created. next, I added one hole for the screw and insert. since i only get 6 screws and inserts and already used 4, i can only secure the tilt with 2. i had to use a hole instead of the extrude because the screws have to be perpendicualr to the bottom. i also made the insert be in the bottom case instead of the tilt because i didn’t like the vision of the heatset insert being visible
updates and descisions i updated the board by rounding the corners, i updated the 3d models of parts in kicad, and now it looks very good. I also added an OLDE. future i am gonna make my thign look like the orpheuspad like qcoral :). (not copying) but like I would like it to look as clean as it with the round corners and no screw holes on the tops.
Routing done yeah ig thats it, i finished routing, now we gonna cad some more. I also figured out that you can use KMK for all of this. idk what QMK is for if KMK has all of this. ts is just in a harder coding lang
bro what i really dont know waht i did for 3hrs but ig i will devlog i uh imported my pcb into onshape and that took really long ig and i am still tryna figure out why my top case doesnt align with the silkscreen on my pcb
wow i made a lot of updates here they are: usbc hole is rounded added in the pcb started adding in the parts removed my shading and maybe (call me crazy) i might use unshaded some of the time
onshape onshape is soooooo slow, even on unshaded graphics and ambient occlusion and 0%. like this is crazy. just yesterday it was good and now it is horrible
im going crazy finished importing all the parts and moved them out of the main document so my computer doesn’t die opening it found a problem though. the plate is only sized for the upper part of the switch base and not the bottom part so nothing sits right when i put it together gonna need to add some tolerances to the parts too or nothing’s gonna fit clean back to onshape
uhh so um. i was looking at my previous timlapses and i noticed…. that i was idling a ton. so and um.i dont want to count for fraud, so… uh…. my idea was to record my self designing for like 4 hours and would NOT put that in hackatime/lookout/lapse. i would just record it. i i would put it here. but yeah thats what happened. i also got a 3rd layer
production productive I got a good job. I got the HC banner into the bottom, got the under glow led fixated. I was forced to move the old screen because it was too close and I wanted to chamfer the keys. Then I chamfered the keys. i removed the fillets for less ram usage also here are the 2.9 hours that i didn’t record to hackatime: one two three
design im now more focused on designs i added a pikachu and meowth. im ttryna add the pokemon logo. whats cool is that imma make it so the blue part with bbe at a different height from teh yellow and is will be a very cool effect.
holy crappedididapidee I’m almost done and this is like surreal. finally, all my hard work is coming to an end. all my pain suffering diligence is showing as a final product i added a hc logo in the top right. i gave up on the “cool effect” for a pokemon logo bc i keep getting manifold body errors. I used the 2020 HC progress logo so i could get a cool rounded fillet effect. also, instead of making the holes 5mm from the wall, they are 7mm. i saw some pics also changing the name to pokepad
almost done early devlog here. im just saing i finsihed teh redo for the holes making them 7mm from the wall instead of 5mm. but now i mchoosing to make them 10mm isntead of 7mm. here it is rn i should be done by next session or max tmmrw
done im not writing anything her ebc imma write a ship post nvm you dont ship post for hardware….. here is my hackpad: 5 keys and a rotary encoder/switch in matrix wiring, an OLED scree, 3 rgb LEDS (1 for underglow, 2 for key glow and lighting up the case.). the case has a 2 degree tilt. thereason it isnt more is bc the screws wouldn’t reach if it was more. the case is 126.64mm (length) x 95.18mm (width) x 21.5mm (height)
kmk update i added oled support and thats really it
Ships:
Pokemon Hackpad is a 5 key macropad with a rotary encoder, and 4 SK6812 MINI E RGB LEDs. It uses KMK firmware Features: An EC11 rotary encoder, controls volume, click to mute 4 SK6812 MINI E RGB LEDs, swirl and static modes 5 Cherry MX style keys, encoder click counts as the 5th Pokemon themed design...
|
1793130665.569636
|
1793217065.569636
|
|
19505
|
Untitled by @qcoral | Stardance
|
qcoral
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @qcoral | Stardance
|
1792612266.0870264
|
1793217066.0870264
|
|
7639
|
svelte-streamdown by @undivisible | Stardance
|
undivisible
|
0
|
2.53
|
0
|
[]
|
[{"post_id": 13502, "ts": "202 [{"post_id": 13502, "ts": "2026-06-22T03:00:54Z", "hours": 0.9381, "text": "it supports mermaid charts now!"}, {"post_id": 13463, "ts": "2026-06-22T01:28:26Z", "hours": 1.5961, "text": "i made a live site demoing my version of streamdown for svelte https://sveltestreamdown.undivisible.dev"}]...
|
Title: svelte-streamdown by @undivisible | Stardan Title: svelte-streamdown by @undivisible | Stardance
Devlogs:
i made a live site demoing my version of streamdown for svelte https://sveltestreamdown.undivisible.dev
it supports mermaid charts now!...
|
1792612266.9181774
|
1793217066.9181774
|
|
10762
|
My awesome macropad! by @meshu | Stardance
|
meshu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @meshu | Stardance
|
1792612267.7793107
|
1793217067.7793107
|
|
3291
|
ContextGuard Lite by @Siddharth | Stardance
|
Siddharth
|
1
|
0.52
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T00:22:35Z", "hours": 0.0, "multiplier": 3.47, "payout": 1, "blessing": "neutral", "text": "I made ContextGuard Lite, a local-first browser extension that helps people remove private information before pasting text into AI tools. The extension detects things like emails, phone numbers, API keys, passwords, URLs, student IDs, SSN-like numbers, and card-like patterns. It can replace them with safe labels like [EMAIL] or [PHONE]. I also added a Grammarly-style feature where risky text can be underlined, then clicked or hovered over to replace it. The hardest part was making the detection accurate without sending anything to a server. I’m proud that it has no backend, no login, no tracking, no paid API, and no API keys. To test it, load the extension in Chrome/Edge, open the popup, paste text with private info, and click the redaction button. You can also test the underline replacement flow on supported AI text boxes.", "repo": "https://github.com/FlashSpeedie/contextguard-lite", "demo": "https://github.com/FlashSpeedie/ContextGuard-Lite/releases/tag/v1.0.0"}]...
|
[{"post_id": 13232, "ts": "202 [{"post_id": 13232, "ts": "2026-06-21T17:45:39Z", "hours": 0.5158, "text": "Today I fixed the shipping issue for ContextGuard Lite by creating a proper GitHub Release with a downloadable .crx file. The project was already working, but the demo link needed to point to an actual release asset instead of only the repository. I packaged the Chrome/Edge extension, uploaded contextguard-lite.crx to the v1.0.0 release, and added a clear release description. Now testers can download the extension directly from the GitHub Release and try the local-first redaction features, including the popup scanner, file scanner, privacy risk score, and AI-site floating ContextGuard button. Next, I want to keep improving the inline Grammarly-style underline replacement flow and test it on more AI websites."}, {"post_id": 10975, "ts": "2026-06-18T00:15:35Z", "hours": 0.415, "text": "Today I worked on making ContextGuard Lite more polished and closer to production-ready. I reviewed the project files, checked the extension flow, and improved the idea for the Grammarly-style privacy warnings. The goal is for detected private information to be underlined directly in the page or text area, then show a small popup when the user hovers or clicks it. From there, the user can replace the risky text with a safe label like [EMAIL], [PHONE], [API_KEY], or [PASSWORD]. I also focused on keeping the extension local-first. There is still no backend, no login, no tracking, and no paid API. Everything should run inside the browser so users can redact private information before pasting text into AI tools. Next, I want to test more websites, improve false-positive detection, and polish the popup/tooltip UI."}]...
|
Title: ContextGuard Lite by @Siddharth | Stardance Title: ContextGuard Lite by @Siddharth | Stardance
Devlogs:
Today I worked on making ContextGuard Lite more polished and closer to production-ready. I reviewed the project files, checked the extension flow, and improved the idea for the Grammarly-style privacy warnings. The goal is for detected private information to be underlined directly in the page or text area, then show a small popup when the user hovers or clicks it. From there, the user can replace the risky text with a safe label like [EMAIL], [PHONE], [API_KEY], or [PASSWORD]. I also focused on keeping the extension local-first. There is still no backend, no login, no tracking, and no paid API. Everything should run inside the browser so users can redact private information before pasting text into AI tools. Next, I want to test more websites, improve false-positive detection, and polish the popup/tooltip UI.
Today I fixed the shipping issue for ContextGuard Lite by creating a proper GitHub Release with a downloadable .crx file. The project was already working, but the demo link needed to point to an actual release asset instead of only the repository. I packaged the Chrome/Edge extension, uploaded contextguard-lite.crx to the v1.0.0 release, and added a clear release description. Now testers can download the extension directly from the GitHub Release and try the local-first redaction features, including the popup scanner, file scanner, privacy risk score, and AI-site floating ContextGuard button. Next, I want to keep improving the inline Grammarly-style underline replacement flow and test it on more AI websites.
Ships:
I made ContextGuard Lite, a local-first browser extension that helps people remove private information before pasting text into AI tools. The extension detects things like emails, phone numbers, API keys, passwords, URLs, student IDs, SSN-like numbers, and card-like patterns. It can replace them with safe labels like [EMAIL] or [PHONE]. I also added a Grammarly-style feature where risky text can be underlined, then clicked or hovered over to replace it. The hardest part was making the detection accurate without sending anything to a server. I’m proud that it has no backend, no login, no tracking, no paid API, and no API keys. To test it, load the extension in Chrome/Edge, open the popup, paste text with private info, and click the redaction button. You can also test the underline replacement flow on supported AI text boxes....
|
1793130668.5576952
|
1793217068.5576952
|
|
4006
|
My awesome macropad! by @miki14 | Stardance
|
miki14
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @miki14 | Stardance
|
1792612268.6239712
|
1793217068.6239712
|
|
22857
|
HelpMe Utilities by @Charlie_Coder | Stardance
|
Charlie_Coder
|
2
|
7.42
|
65
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-03T00:47:06Z", "hours": 3.0, "multiplier": 4.56, "payout": 11, "blessing": "neutral", "text": "I have made a website with helpful utilities that can be easily accessed. I have made many changes from my first ship, mainly based off the feedback I received (though I still plan on actioning more feedback!). Features include: Quick Site Access - Easily access commonly used sites! Edit button to change the quick site access Stores quick access for next time in local storage Time in analog format Weather based off browser location Map showing location that weather is being displayed for Stopwatch Localstorage-stored simple notepad tool Image insert spot for a commonly required image or timetable Search bar for DuckDuckGo Dark mode I am proud of this site, and how I formatted it, as well as my ideas, and how much effort I put in and how much I have coded and worked on it. I hope you enjoy, and if you want, I encourage you to use this as your new tab page, or home button on your browser! Note: Some people can’t see the clock, and that is not a problem with my development, and is because of ad blocks and other software and networking blocking time and date widgets I believe.", "repo": "https://github.com/CharlieLindsay/websitehelper/", "demo": "https://demo.charleilei.dpdns.org/"}, {"ship_num": 2, "ts": "2026-06-24T05:42:56Z", "hours": 3.0, "multiplier": 16.63, "payout": 54, "blessing": "neutral", "text": "Everything is always all over the place. This simple website I created helps bring 6 commonly needed tools and functions into a peaceful workspace. While my website html writing skills are limited, I tried to make the most of what I could do. On top of solving these problems, it also allows the user to enter a space of calm, with lots of whitespace to keep a clear mind. More information about my project here (copied from my README which can be read on my Github Repo): There is no central place where utilties can be easily accessed, such as by pressing your browsers home button or switching tabs. That is why I have made a simple, easy to understand and comfortable HelpMe Utilties, which gives plenty of whitespace for the user to breathe. Some of the features are listed below. I hope you really enjoy my website and end up using it yourself :). I’m not going to take down the site anytime soon, and setting the site as the home button on your browser is an easy way to quickly access these simple tools. After shipping I don’t believe I can add more devlogs, but I will continue to add stuff for my own gain, and for others to enjoy.", "repo": "https://github.com/CharlieLindsay/websitehelper/", "demo": "https://demo.charleilei.dpdns.org/"}]...
|
[{"post_id": 59415, "ts": "202 [{"post_id": 59415, "ts": "2026-09-01T07:18:31Z", "hours": 0.8372, "text": "Quite a lot of styling changes, and now the dark mode is on the same website (as per feedback) and remembers using localstorage the previous selection."}, {"post_id": 57718, "ts": "2026-08-29T23:40:17Z", "hours": 0.5861, "text": "Made quite a few changes including changing the customise button to a pencil, as per feedback I received."}, {"post_id": 21202, "ts": "2026-07-03T00:40:38Z", "hours": 1.9267, "text": "I have done lots of changes to the styling and alignment. I also added a map next to the weather. I added more rounding to certain elements, and made changes to the readme."}, {"post_id": 20647, "ts": "2026-07-02T09:23:12Z", "hours": 0.6108, "text": "I have been making some mainly invisible changes. Also, I changed the styling for the button as per feedback. I have been reading all my shipment feedback - and if anyone reading this provided me with feedback then thank you! - and I have been deciding how to implement this. One of the suggestions was a search bar. Specifically, DuckDuckGo. I haven’t decided on the search engine I plan to use yet, but it may be DuckDuckGo, as per the suggestion. I have moved the header div tag around a bit to help make it less vertically large to allow a search to blend in better. I encourage people to use this as their home button or new tab on their browser if you want to, and as such I think it was a great suggestion to add the search bar (which I hope I will have done, or made more preparations for and done other changes for by next development log)."}, {"post_id": 14887, "ts": "2026-06-24T05:24:24Z", "hours": 0.5758, "text": "Added to utilities. Added stopwatch (embedded, and changes depending on light/dark mode), notepad (a simple code with script from the internet), and made it so it now has an image section, so you can upload an image, such as a timetable or something else that is needed frequently. The image doesn’t actually upload but converts to base64, and the browser stores it in local storage."}, {"post_id": 14865, "ts": "2026-06-24T04:11:46Z", "hours": 0.3039, "text": "Dark Mode Added! There is now a button that toggles between modes. The logo also now changes colour."}, {"post_id": 14253, "ts": "2026-06-23T08:44:49Z", "hours": 0.2969, "text": "Added the weather part to the website. It gets location through the browser, which will now ask for location for that. It’s styling is still a work in progress, but getting weather on here (through an api) is an improvement."}, {"post_id": 14233, "ts": "2026-06-23T07:44:02Z", "hours": 0.5575, "text": "I added more styling, and embedded a timeanddate clock, as well as gave the quick links an extra option that can be edited."}, {"post_id": 14218, "ts": "2026-06-23T07:06:04Z", "hours": 1.0931, "text": "I have added the main boxes for the important parts for the site and started to work on the utilities inside the website. The main part is the quick site access. People have different needs when it comes to the websites they use. For that reason, there are edit buttons (which I plan to improve in styling with css). The edit buttons accept name renaming and the link, which changes what shows, and what happens once the button is clicked. The link accepts both with and without https:// or http:// . It asks for this information through a popup, as shown below. The data is stored in local storage in the browser, as usual. This has been tested in Google Chrome, but most common browsers should work with this."}, {"post_id": 12412, "ts": "2026-06-20T08:01:15Z", "hours": 0.4722, "text": "The beginning of the html, setting up the main template and some simple styling. The website needs to be good for the users, and a part of that is making it easy to understand, and comfortable to look at and use. I also made it available at demo.charleilei.dpdns.org, and started my readme file."}]...
|
Title: HelpMe Utilities by @Charlie_Coder | Starda Title: HelpMe Utilities by @Charlie_Coder | Stardance
Devlogs:
The beginning of the html, setting up the main template and some simple styling. The website needs to be good for the users, and a part of that is making it easy to understand, and comfortable to look at and use. I also made it available at demo.charleilei.dpdns.org, and started my readme file.
I have added the main boxes for the important parts for the site and started to work on the utilities inside the website. The main part is the quick site access. People have different needs when it comes to the websites they use. For that reason, there are edit buttons (which I plan to improve in styling with css). The edit buttons accept name renaming and the link, which changes what shows, and what happens once the button is clicked. The link accepts both with and without https:// or http:// . It asks for this information through a popup, as shown below. The data is stored in local storage in the browser, as usual. This has been tested in Google Chrome, but most common browsers should work with this.
I added more styling, and embedded a timeanddate clock, as well as gave the quick links an extra option that can be edited.
Added the weather part to the website. It gets location through the browser, which will now ask for location for that. It’s styling is still a work in progress, but getting weather on here (through an api) is an improvement.
Dark Mode Added! There is now a button that toggles between modes. The logo also now changes colour.
Added to utilities. Added stopwatch (embedded, and changes depending on light/dark mode), notepad (a simple code with script from the internet), and made it so it now has an image section, so you can upload an image, such as a timetable or something else that is needed frequently. The image doesn’t actually upload but converts to base64, and the browser stores it in local storage.
I have been making some mainly invisible changes. Also, I changed the styling for the button as per feedback. I have been reading all my shipment feedback - and if anyone reading this provided me with feedback then thank you! - and I have been deciding how to implement this. One of the suggestions was a search bar. Specifically, DuckDuckGo. I haven’t decided on the search engine I plan to use yet, but it may be DuckDuckGo, as per the suggestion. I have moved the header div tag around a bit to help make it less vertically large to allow a search to blend in better. I encourage people to use this as their home button or new tab on their browser if you want to, and as such I think it was a great suggestion to add the search bar (which I hope I will have done, or made more preparations for and done other changes for by next development log).
I have done lots of changes to the styling and alignment. I also added a map next to the weather. I added more rounding to certain elements, and made changes to the readme.
Made quite a few changes including changing the customise button to a pencil, as per feedback I received.
Quite a lot of styling changes, and now the dark mode is on the same website (as per feedback) and remembers using localstorage the previous selection.
Ships:
Everything is always all over the place. This simple website I created helps bring 6 commonly needed tools and functions into a peaceful workspace. While my website html writing skills are limited, I tried to make the most of what I could do. On top of solving these problems, it also allows the user to enter a space of calm, with lots of whitespace to keep a clear mind. More information about my project here (copied from my README which can be read on my Github Repo): There is no central place where utilties can be easily accessed, such as by pressing your browsers home button or switching tabs. That is why I have made a simple, easy to understand and comfortable HelpMe Utilties, which gives plenty of whitespace for the user to breathe. Some of the features are listed below. I hope you really enjoy my website and end up using it yourself :). I’m not going to take down the site anytime soon, and setting the site as the home button on your browser is an easy way to quickly access these simple tools. After shipping I don’t believe I can add more devlogs, but I will continue to add stuff for my own gain, and for others to enjoy.
I have made a website with helpful utilities that can be easily accessed. I have made many changes from my first ship, mainly based off the feedback I received (though I still plan on actioning more feedback!). Features include: Quick Site Access - Easily access commonly used sites! Edit button to change the quick site access Stores quick access for next time in local storage Time in analog format Weather based off browser location Map showing location that weather is being displayed for Stopwatch Localstorage-stored simple notepad tool Image insert spot for a commonly required image or timetable Search bar for DuckDuckGo Dark mode I am proud of this site, and how I formatted it, as well as my ideas, and how much effort I put in and how much I have coded and worked on it. I hope you enjoy, and if you want, I encourage you to use this as your new tab page, or home button on your browser! Note: Some people can’t see the clock, and that is not a problem with my development, and is because of ad blocks and other software and networking blocking time and date widgets I believe....
|
1793130669.431697
|
1793217069.431697
|
|
22877
|
Untitled by @Korange | Stardance
|
Korange
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @Korange | Stardance
|
1792612269.482032
|
1793217069.482032
|
|
19827
|
My very own WebOS by @omoshjoe02 | Stardance
|
omoshjoe02
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @omoshjoe02 | Stardanc Title: My very own WebOS by @omoshjoe02 | Stardance...
|
1792612270.3721983
|
1793217070.3721983
|
|
15003
|
My very own WebOS by @heidiz | Stardance
|
heidiz
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @heidiz | Stardance
|
1792612271.2248812
|
1793217071.2248812
|
|
21786
|
My first slack bot! by @Abdulatif | Stardance
|
Abdulatif
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-26T11:52:51Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hi, I made a Slack bot for the first time, I even did not know that Slack exists, but with this project I stepped into it. Most challenging part was hosting, but yeah i made it until the end, otherwise I would not be writing this :) I am proud of my project even if it is small and just command but, because it is my first project.", "repo": "https://github.com/Botirsherov/As-cool-bot", "demo": "https://youtu.be/Me9OcB4Q7u4"}]...
|
[{"post_id": 16232, "ts": "202 [{"post_id": 16232, "ts": "2026-06-26T11:31:59Z", "hours": 0.4733, "text": "I created my first project here and it is working. I created Slack bot that runs 24/7. You can try it by As-cool-bot"}]...
|
Title: My first slack bot! by @Abdulatif | Stardan Title: My first slack bot! by @Abdulatif | Stardance
Devlogs:
I created my first project here and it is working. I created Slack bot that runs 24/7. You can try it by As-cool-bot
Ships:
Hi, I made a Slack bot for the first time, I even did not know that Slack exists, but with this project I stepped into it. Most challenging part was hosting, but yeah i made it until the end, otherwise I would not be writing this :) I am proud of my project even if it is small and just command but, because it is my first project....
|
1793130671.5889
|
1793217071.5889
|
|
30101
|
Esp32 Based Home Security System by @RhysEdwards | Esp32 Based Home Security System by @RhysEdwards | Stardance...
|
RhysEdwards
|
0
|
0.37
|
0
|
[]
|
[{"post_id": 21196, "ts": "202 [{"post_id": 21196, "ts": "2026-07-03T00:25:14Z", "hours": 0.3744, "text": "Finished the 5v to 3.3v system using a linear regulator and sketched out an idea for the enable and boot buttons for the esp32. Also I started coming up with ideas for the USB-UART system so I can interface with the esp32."}]...
|
Title: Esp32 Based Home Security System by @RhysEd Title: Esp32 Based Home Security System by @RhysEdwards | Stardance
Devlogs:
Finished the 5v to 3.3v system using a linear regulator and sketched out an idea for the enable and boot buttons for the esp32. Also I started coming up with ideas for the USB-UART system so I can interface with the esp32....
|
1792612272.0895574
|
1793217072.0895574
|
|
25623
|
esp32 s3 by @marina | Stardance
|
marina
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T13:49:30Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "this was a bad usb that was developed to be a very quick project while i develop an ai model along side of it, that will be uploaded very soon!", "repo": "https://github.com/skep13/usb-esp32", "demo": "https://heartfelt-salamander-8bf5c8.netlify.app/"}]...
|
[{"post_id": 17015, "ts": "202 [{"post_id": 17015, "ts": "2026-06-27T16:54:03Z", "hours": 0.3406, "text": "esp32s3 website to interact with commands"}]...
|
Title: esp32 s3 by @marina | Stardance
Devlogs:
e Title: esp32 s3 by @marina | Stardance
Devlogs:
esp32s3 website to interact with commands
Ships:
this was a bad usb that was developed to be a very quick project while i develop an ai model along side of it, that will be uploaded very soon!...
|
1793130672.4516225
|
1793217072.4516225
|
|
29394
|
Untitled project by @kappa | Stardance
|
kappa
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @kappa | Stardance
|
1792612272.9412646
|
1793217072.9412646
|
|
18860
|
Pipe covers by @asher_bana | Stardance
|
asher_bana
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-25T02:27:02Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did I make? I created a 3D-printed 60 mm pipe cover designed to prevent debris and unwanted objects from entering a pipe. The cover uses a friction-fit design so it can be installed and removed easily without extra hardware. What was challenging? The biggest challenge was designing a cover that fit securely while still being easy to remove. I had to adjust the CAD design and test the fit to make sure it worked properly. What am I proud of? I am proud that I was able to design and create a functional part from an idea. I improved the design through testing and created a simple solution to a real problem. What should people know so they can test my project? To test the project, users should place the cover onto a 60 mm pipe and check that it fits securely. They should test how well it stays in place while still being easy to remove.", "repo": "https://github.com/ashtheknight/60-and-68-mm-pipe-covers", "demo": ""}]...
|
[{"post_id": 14118, "ts": "202 [{"post_id": 14118, "ts": "2026-06-23T02:52:13Z", "hours": 0.3431, "text": "I have decided that the second pipe is easier for me to buy from the store as there is already an existing one and the one i had made had failed. i also printed the second version of the pipe cover and it did not fit so i have restored the old four hole version and deleted those holes and created 3 mm holes instead to follow a similar design the failed one."}, {"post_id": 9320, "ts": "2026-06-15T17:13:52Z", "hours": 0.4325, "text": "i designed the first draft for the second pipe “cover” as there is two, with this pipe i decided too go for a different approach and have the “cover” go on the inside instead of covering it form the outside"}, {"post_id": 8986, "ts": "2026-06-14T23:35:06Z", "hours": 0.5064, "text": "I learned about custom features in onshape. and discovered the fill pattern feature. which basically fills a object within boundaries with what ever shape/ hole you want. this proved very useful. in insuring that the air can flow naturally. i also tested the first design for a fit and it was perfect. i am now printing V2"}, {"post_id": 8971, "ts": "2026-06-14T22:42:32Z", "hours": 0.4408, "text": "I built the first version of my design some of my worries are that there might not be enough holes and the pla i am 3d printing these out of might warp in the heat"}]...
|
Title: Pipe covers by @asher_bana | Stardance
Dev Title: Pipe covers by @asher_bana | Stardance
Devlogs:
I built the first version of my design some of my worries are that there might not be enough holes and the pla i am 3d printing these out of might warp in the heat
I learned about custom features in onshape. and discovered the fill pattern feature. which basically fills a object within boundaries with what ever shape/ hole you want. this proved very useful. in insuring that the air can flow naturally. i also tested the first design for a fit and it was perfect. i am now printing V2
i designed the first draft for the second pipe “cover” as there is two, with this pipe i decided too go for a different approach and have the “cover” go on the inside instead of covering it form the outside
I have decided that the second pipe is easier for me to buy from the store as there is already an existing one and the one i had made had failed. i also printed the second version of the pipe cover and it did not fit so i have restored the old four hole version and deleted those holes and created 3 mm holes instead to follow a similar design the failed one.
Ships:
What did I make? I created a 3D-printed 60 mm pipe cover designed to prevent debris and unwanted objects from entering a pipe. The cover uses a friction-fit design so it can be installed and removed easily without extra hardware. What was challenging? The biggest challenge was designing a cover that fit securely while still being easy to remove. I had to adjust the CAD design and test the fit to make sure it worked properly. What am I proud of? I am proud that I was able to design and create a functional part from an idea. I improved the design through testing and created a simple solution to a real problem. What should people know so they can test my project? To test the project, users should place the cover onto a 60 mm pipe and check that it fits securely. They should test how well it stays in place while still being easy to remove....
|
1793130673.3486598
|
1793217073.3486598
|
|
15202
|
My first slack bot! by @Trynocs | Stardance
|
Trynocs
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Trynocs | Stardance
|
1792612273.7897959
|
1793217073.7897959
|
|
14127
|
Puwump by @heiligetomate | Stardance
|
heiligetomate
|
1
|
36.0
|
328
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-21T00:30:35Z", "hours": 36.0, "multiplier": 9.67, "payout": 328, "blessing": "neutral", "text": "local workout App written in rust using egui. was fun to make challenging: egui is an annoying library, ill never use it again i might make this app android compatible in the future", "repo": "https://github.com/Heiligetomate/puwump", "demo": "https://github.com/Heiligetomate/puwump/releases/tag/v0.1.0"}]...
|
[{"post_id": 12829, "ts": "202 [{"post_id": 12829, "ts": "2026-06-21T00:22:21Z", "hours": 0.3842, "text": "Fixed the white dropdown on windows"}, {"post_id": 12807, "ts": "2026-06-20T23:23:09Z", "hours": 0.5158, "text": "Changes: Windows compatible Readme Test yourself instructions"}, {"post_id": 12693, "ts": "2026-06-20T18:47:34Z", "hours": 11.6531, "text": "Changes: Changed the db structure (fixed bugs) More default data Cleaner module structure Removal of old code More generic views Workout view Meal eat view Better home view Implement all missing views The project is basically done as a desktop app."}, {"post_id": 8810, "ts": "2026-06-14T17:14:30Z", "hours": 8.4217, "text": "Changed the Plan view you can now select a plan add exercises remove exercises move exercises change the reps"}, {"post_id": 6991, "ts": "2026-06-11T18:49:19Z", "hours": 7.4478, "text": "Finished the db structure i think Improved the UI Added ingredients to the UI (and made it so the view used for exercises and ingredients is reusable) Restructured a lot"}, {"post_id": 6150, "ts": "2026-06-10T10:38:11Z", "hours": 0.3583, "text": "New logo :3"}, {"post_id": 5904, "ts": "2026-06-09T21:35:12Z", "hours": 6.9081, "text": "The basic database structure is done and a basic ui is implemented"}]...
|
Title: Puwump by @heiligetomate | Stardance
Devlo Title: Puwump by @heiligetomate | Stardance
Devlogs:
The basic database structure is done and a basic ui is implemented
New logo :3
Finished the db structure i think Improved the UI Added ingredients to the UI (and made it so the view used for exercises and ingredients is reusable) Restructured a lot
Changed the Plan view you can now select a plan add exercises remove exercises move exercises change the reps
Changes: Changed the db structure (fixed bugs) More default data Cleaner module structure Removal of old code More generic views Workout view Meal eat view Better home view Implement all missing views The project is basically done as a desktop app.
Changes: Windows compatible Readme Test yourself instructions
Fixed the white dropdown on windows
Ships:
local workout App written in rust using egui. was fun to make challenging: egui is an annoying library, ill never use it again i might make this app android compatible in the future...
|
1793130674.5032647
|
1793217074.5032647
|
|
31629
|
Custom Keypad by @Matthiasbog | Stardance
|
Matthiasbog
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Custom Keypad by @Matthiasbog | Stardance
|
1792612274.604447
|
1793217074.604447
|
|
30321
|
The Thin Man by @ | Stardance
|
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: The Thin Man by @ | Stardance
|
1792612276.2849238
|
1793217076.2849238
|
|
14241
|
Ai agents stickers by @anuj78 | Stardance
|
anuj78
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Ai agents stickers by @anuj78 | Stardance
|
1792612277.1492991
|
1793217077.1492991
|
|
32449
|
Asteroid Shooter by @nautrw | Stardance
|
nautrw
|
1
|
14.0
|
114
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-12T06:06:31Z", "hours": 14.0, "multiplier": 7.96, "payout": 114, "blessing": "neutral", "text": "I made Asteroid Shooter, a space invaders-like game where you shoot asteroids. I made it with Pygame (community edition), pixel art made manually in Aseprite by me, public domain sounds, and a lot of trial and error. It tracks the player’s score, and it gets harder slowly over time. Overall, I learned more about Pygame (sounds, graphics, user input, OOP, etc.), pixel art, and game design.", "repo": "https://github.com/nautrw/asteroid-shooter", "demo": "https://github.com/nautrw/asteroid-shooter/releases/latest"}]...
|
[{"post_id": 27030, "ts": "202 [{"post_id": 27030, "ts": "2026-07-12T06:02:58Z", "hours": 5.1042, "text": "I have done a lot and decided to just bundle it into one last big devlog, but the work was well worth it! First, I finally redrew all of the sprites! This took the longest out of anything else, but it was very much worth the effort. I learned a lot more about pixel art using Aseprite, and I think the sprites came out very well. First, using references from Google, I remade the rocket. Then, I made 3 different sprites for asteroids and 3 for explosions. For the explosions, I learned about using several different colors/tones to create depth, and they look very good inside the game. Both explosions and asteroids will have their sprites chosen randomly when initalized. Then, I remade the bullet sprite. At first I thought I wanted it to be a missile, but it looked weird, so I just made it a fireball and it turned out very well. I used the same principles from the explosions for it. Finally, I drew a background. I made some preset stars and then pasted them throughout the whole thing. I made some balancing adjustments. First, I made it so that the player can only shoot twice per second, as before it was 4 and quite overpowered. Then, I made it so that the minimum interval at which asteroids could spawn decreased over time as the score increased. I did this by subtracting the score multiplied by 0.005 . This makes it so that asteroids spawn 50% faster by the time the player gets to score 100. I then added sounds! I was able to get free public domain (CC0 licensed) sounds from this website called Open Game Art , and then used Audacity to make a loop and edit them to fit the game. I got one for the background music and made it loop infinitely and more-or-less perfectly. Then, I got one for shooting. Alongside the sounds I also added a system for keeping track of the sound’s volumes. This was kind of hard to figure out, but eventually I was able to make a dictionary and then a function that would toggle the volumes between 0 and 1. I had to do this because Pygame doesn’t have a feature to “group” audios or mute globally, and the background music plays constantly but the shooting sound plays ocasionally. I reworked some of the “UIs”. They are still kind of lackluster, but I added a main menu that the player has to press the space key to enter the game, and shows the controls. Then, I made a game over screen and show the player’s final score. I also made the window have a caption and icon. The icon is just the first explosion sprite. I compiled the games into executable files. PyInstaller requires using a special resources function to get paths. This was quite easy to change to, since I have my functions to load assets in one file. I had some troubles with the paths, still, and I ended up moving everything outside of the ./src directory last-minute. The hard part about this was that I switched to Linux a few days before making this project, so I didn’t have another machine to compile the Windows version of the release. At first I found a guide that I could do it through Wine, and then I had to install a Docker image of Ubuntu that had it all set up, but it ended up not working. I ended up just setting up a Windows 11 virtual machine using Gnome Boxes (much easier than having to set up QEMU). It took me a while but it should work. It runs as expected on the VM (Windows Defender notification will pop up but that’s a problem with PyInstaller). I’m probably missing some stuff, as this was quite a while, but yeah. The game is finished."}, {"post_id": 26374, "ts": "2026-07-11T03:52:51Z", "hours": 1.5922, "text": "Quite a few improvements, though the codebase gets even more convoluted. I added explosions. This is pretty simple, just adding a Explosion class, and tracking delta-time against a set lifespan. An explosion will last 1/10th of a second, which I think is good enough. I then added a score display. A score tracked by the main game class. When a player shoots down an asteroid, 1 will be added to the score. I added a main menu and pausing. Usually this would be done in a much nicer way, perhaps with an external library, but I decided to make a few simple screens and display them when variables are True. The player can pause with the Esc. key, and it will toggle a variable paused that is False by default. I also have the main menu, which is True by default and is only toggled at the beginning. Finally, I have one for the game over screen, which is False by default and only toggles when the player has no more lives left. When any of these are True , the sprites will not update, and the game will only listen for input. Overall, the game is basically done and I just need to polish it. I will likely be redrawing the sprites next."}, {"post_id": 25760, "ts": "2026-07-10T06:29:24Z", "hours": 2.5881, "text": "Lots of improvements! All movement is framerate-independent. I did this by tracking delta-time.I could multiply all the movement deltas by the amount of seconds between frames. This will make the game smoother for everyone despite computer specs. I got rid of the global settings file. All speeds were moved into their respective classes, and the main game now has its own Game class. This makes it generally easier, as now I don’t have to wire so many variables between functions and all. Collisions between the player and asteroid, as well as asteroid and ground are checked. When either of these happens, one of the player’s lives will be removed and the sprite will start blinking. This allows me to have a sort of I-frame where if it is blinking it can not take damage, making it somewhat easier for the player. The game will end when the player has no lives left. Pausing has been implemented, mostly to allow me to record for now, lol. I drew up a heart sprite, which will also be getting redesigned along with everything else. It’s coming along great!"}, {"post_id": 25390, "ts": "2026-07-09T17:30:45Z", "hours": 2.2192, "text": "I made some pretty simple changes to the overall codebase but now it’s much cleaner. Instead of storing all globals like movement speed inside the single settings.py file, I moved them into attributes of their own classes. Sprites are now loaded in the __init__ method of their classes. Previously, I was under the impression that this was not possible because you needed to run pygame.init() before you used the .convert() (and similar) methods after loading the image. However, I was putting it outside of the class, so it would always run before running pygame.init() . This overall makes the code much cleaner, as now I don’t have to load in the sprites in the main file. Also, it was getting quite challenging to deal with figuring out ways to pass sprites into functions like player.shoot() so that it would spawn in a Bullet correctly. I am now using .convert_alpha() instead of .convert() , which allows the sprites to have transparency (as seen in picture 2). I had been saving all of the sprites as .png files, but they had a black background when overlapping with other sprites (as seen in picture 3). With this, it actually allows for transparency and looks much nicer. I added meteors. This was actually quite easy, just another class like the Bullet class but falling downwards. Pygame has this really nice feature where I can check for all collisions between all sprites from any 2 groups like so. pygame.sprite.groupcollide() takes in 2 sprite groups ( pygame.sprite.Group ), 2 booleans representing whether to remove the sprite right after, and a callback function. This will be useful later for adding explosions and score. They also spawn at a constant interval regardless of FPS. I did that by using delta-time and adding a counter to get the amount of milliseconds since the last frame. A meteor will spawn every 250 milliseconds. I find that this is a playable amount for now. Shooting now has a cooldown. I do this in the same way as the asteroid spawning. The player can shoot 4 times per second. Next thing to do is to add lives and subtract them when the player gets hit with a meteorite."}, {"post_id": 24779, "ts": "2026-07-08T15:59:09Z", "hours": 1.2875, "text": "I made some pretty drastic changes, but for the better. First, I added shooting. I drew up a quick bullet sprite (also getting changed in the future). The main thing with this was that I wanted to have the Player class have its own .shoot() method, but that required me to pass the sprite Group object, as well as the actual sprite image into the function. I searched for a “better” solution for a while but ultimately couldn’t find one. The shoot() method handles the placement, the creation of the Bullet object, and adding it into the Group . I have an actual file hierarchy now! I took inspiration from DaFluffyPotato, though I am using an assets folder instead of data , because I won’t be storing anything other than sprites and maybe sounds. Also, I will store the .ase files for the sprites just in case, so that I can fully edit them in Aseprite if there are any layers. The one roadblock I came across here was that the paths to the assets were kind of confusing, but I figured it out quickly. Overall, I think it’s coming along great!"}, {"post_id": 24560, "ts": "2026-07-08T06:42:02Z", "hours": 0.9322, "text": "Again it takes longer than I would’ve thought, but I implemented movement. To be honest, the movement part was actually the easiest thing and I spent most of the time fighting with ty (the LSP/type checker). Instead of editing the coordinate attributes of the class in the main event loop, I took inspiration from some established Pygame projects and made the Player class have a custom update() method. Inside, I check for the currently pressed keys and then use an if-statement to eddit the coordinates there. This makes the whole thing much smoother, as with the former option it would be choppy and wouldn’t let you keep holding down the key. Also, when I add the other entities (asteroids), I can make it have its own update() method, and that can be called as well. I am using this cool feature called pygame.sprite.Group , which lets me have a set of sprites and update and draw them all simultaneously. The player can be moved with the left and right arrow keys or A and D . I made it so that if they are both pressed the player will not move at all. The main issue with the type checker/LSP was that Pygame sets the type hint of the rect attribute of pygame.sprite.Sprite to pygame.Rect | pygame.FRect | None , which causes ty to throw an error because None has no attributes. First, I tried ignoring all errors of that type by setting them to \"ignore\" in the ty configuration, but then I figured out I could just set the rect attribute to pygame.Rect | pygame.FRect inside the entity class, and that fixed the issue. It’s a little complex as of right now because of the sort of unique way Pygame projects are structured, but I think it’s coming along very well."}, {"post_id": 24497, "ts": "2026-07-08T02:27:32Z", "hours": 0.6403, "text": "This took somewhat longer than I would’ve expected, but first devlog! I first got a very basic window going, nothing much to say. Then, for the player, I decided to make it its own class. This is because, from my research, games made in Pygame are programmed in OOP ( O bject O riented P rogramming), where each thing is its own class. I also want to draw my own sprites and stuff. Luckily, I purchased Aseprite a while ago on Steam, so I quickly drew up a basic rocket (second image). This will change in the future, but for now it’s just a very basic placeholder."}]...
|
Title: Asteroid Shooter by @nautrw | Stardance
De Title: Asteroid Shooter by @nautrw | Stardance
Devlogs:
This took somewhat longer than I would’ve expected, but first devlog! I first got a very basic window going, nothing much to say. Then, for the player, I decided to make it its own class. This is because, from my research, games made in Pygame are programmed in OOP ( O bject O riented P rogramming), where each thing is its own class. I also want to draw my own sprites and stuff. Luckily, I purchased Aseprite a while ago on Steam, so I quickly drew up a basic rocket (second image). This will change in the future, but for now it’s just a very basic placeholder.
Again it takes longer than I would’ve thought, but I implemented movement. To be honest, the movement part was actually the easiest thing and I spent most of the time fighting with ty (the LSP/type checker). Instead of editing the coordinate attributes of the class in the main event loop, I took inspiration from some established Pygame projects and made the Player class have a custom update() method. Inside, I check for the currently pressed keys and then use an if-statement to eddit the coordinates there. This makes the whole thing much smoother, as with the former option it would be choppy and wouldn’t let you keep holding down the key. Also, when I add the other entities (asteroids), I can make it have its own update() method, and that can be called as well. I am using this cool feature called pygame.sprite.Group , which lets me have a set of sprites and update and draw them all simultaneously. The player can be moved with the left and right arrow keys or A and D . I made it so that if they are both pressed the player will not move at all. The main issue with the type checker/LSP was that Pygame sets the type hint of the rect attribute of pygame.sprite.Sprite to pygame.Rect | pygame.FRect | None , which causes ty to throw an error because None has no attributes. First, I tried ignoring all errors of that type by setting them to "ignore" in the ty configuration, but then I figured out I could just set the rect attribute to pygame.Rect | pygame.FRect inside the entity class, and that fixed the issue. It’s a little complex as of right now because of the sort of unique way Pygame projects are structured, but I think it’s coming along very well.
I made some pretty drastic changes, but for the better. First, I added shooting. I drew up a quick bullet sprite (also getting changed in the future). The main thing with this was that I wanted to have the Player class have its own .shoot() method, but that required me to pass the sprite Group object, as well as the actual sprite image into the function. I searched for a “better” solution for a while but ultimately couldn’t find one. The shoot() method handles the placement, the creation of the Bullet object, and adding it into the Group . I have an actual file hierarchy now! I took inspiration from DaFluffyPotato, though I am using an assets folder instead of data , because I won’t be storing anything other than sprites and maybe sounds. Also, I will store the .ase files for the sprites just in case, so that I can fully edit them in Aseprite if there are any layers. The one roadblock I came across here was that the paths to the assets were kind of confusing, but I figured it out quickly. Overall, I think it’s coming along great!
I made some pretty simple changes to the overall codebase but now it’s much cleaner. Instead of storing all globals like movement speed inside the single settings.py file, I moved them into attributes of their own classes. Sprites are now loaded in the __init__ method of their classes. Previously, I was under the impression that this was not possible because you needed to run pygame.init() before you used the .convert() (and similar) methods after loading the image. However, I was putting it outside of the class, so it would always run before running pygame.init() . This overall makes the code much cleaner, as now I don’t have to load in the sprites in the main file. Also, it was getting quite challenging to deal with figuring out ways to pass sprites into functions like player.shoot() so that it would spawn in a Bullet correctly. I am now using .convert_alpha() instead of .convert() , which allows the sprites to have transparency (as seen in picture 2). I had been saving all of the sprites as .png files, but they had a black background when overlapping with other sprites (as seen in picture 3). With this, it actually allows for transparency and looks much nicer. I added meteors. This was actually quite easy, just another class like the Bullet class but falling downwards. Pygame has this really nice feature where I can check for all collisions between all sprites from any 2 groups like so. pygame.sprite.groupcollide() takes in 2 sprite groups ( pygame.sprite.Group ), 2 booleans representing whether to remove the sprite right after, and a callback function. This will be useful later for adding explosions and score. They also spawn at a constant interval regardless of FPS. I did that by using delta-time and adding a counter to get the amount of milliseconds since the last frame. A meteor will spawn every 250 milliseconds. I find that this is a playable amount for now. Shooting now has a cooldown. I do this in the same way as the asteroid spawning. The player can shoot 4 times per second. Next thing to do is to add lives and subtract them when the player gets hit with a meteorite.
Lots of improvements! All movement is framerate-independent. I did this by tracking delta-time.I could multiply all the movement deltas by the amount of seconds between frames. This will make the game smoother for everyone despite computer specs. I got rid of the global settings file. All speeds were moved into their respective classes, and the main game now has its own Game class. This makes it generally easier, as now I don’t have to wire so many variables between functions and all. Collisions between the player and asteroid, as well as asteroid and ground are checked. When either of these happens, one of the player’s lives will be removed and the sprite will start blinking. This allows me to have a sort of I-frame where if it is blinking it can not take damage, making it somewhat easier for the player. The game will end when the player has no lives left. Pausing has been implemented, mostly to allow me to record for now, lol. I drew up a heart sprite, which will also be getting redesigned along with everything else. It’s coming along great!
Quite a few improvements, though the codebase gets even more convoluted. I added explosions. This is pretty simple, just adding a Explosion class, and tracking delta-time against a set lifespan. An explosion will last 1/10th of a second, which I think is good enough. I then added a score display. A score tracked by the main game class. When a player shoots down an asteroid, 1 will be added to the score. I added a main menu and pausing. Usually this would be done in a much nicer way, perhaps with an external library, but I decided to make a few simple screens and display them when variables are True. The player can pause with the Esc. key, and it will toggle a variable paused that is False by default. I also have the main menu, which is True by default and is only toggled at the beginning. Finally, I have one for the game over screen, which is False by default and only toggles when the player has no more lives left. When any of these are True , the sprites will not update, and the game will only listen for input. Overall, the game is basically done and I just need to polish it. I will likely be redrawing the sprites next.
I have done a lot and decided to just bundle it into one last big devlog, but the work was well worth it! First, I finally redrew all of the sprites! This took the longest out of anything else, but it was very much worth the effort. I learned a lot more about pixel art using Aseprite, and I think the sprites came out very well. First, using references from Google, I remade the rocket. Then, I made 3 different sprites for asteroids and 3 for explosions. For the explosions, I learned about using several different colors/tones to create depth, and they look very good inside the game. Both explosions and asteroids will have their sprites chosen randomly when initalized. Then, I remade the bullet sprite. At first I thought I wanted it to be a missile, but it looked weird, so I just made it a fireball and it turned out very well. I used the same principles from the explosions for it. Finally, I drew a background. I made some preset stars and then pasted them throughout the whole thing. I made some balancing adjustments. First, I made it so that the player can only shoot twice per second, as before it was 4 and quite overpowered. Then, I made it so that the minimum interval at which asteroids could spawn decreased over time as the score increased. I did this by subtracting the score multiplied by 0.005 . This makes it so that asteroids spawn 50% faster by the time the player gets to score 100. I then added sounds! I was able to get free public domain (CC0 licensed) sounds from this website called Open Game Art , and then used Audacity to make a loop and edit them to fit the game. I got one for the background music and made it loop infinitely and more-or-less perfectly. Then, I got one for shooting. Alongside the sounds I also added a system for keeping track of the sound’s volumes. This was kind of hard to figure out, but eventually I was able to make a dictionary and then a function that would toggle the volumes between 0 and 1. I had to do this because Pygame doesn’t have a feature to “group” audios or mute globally, and the background music plays constantly but the shooting sound plays ocasionally. I reworked some of the “UIs”. They are still kind of lackluster, but I added a main menu that the player has to press the space key to enter the game, and shows the controls. Then, I made a game over screen and show the player’s final score. I also made the window have a caption and icon. The icon is just the first explosion sprite. I compiled the games into executable files. PyInstaller requires using a special resources function to get paths. This was quite easy to change to, since I have my functions to load assets in one file. I had some troubles with the paths, still, and I ended up moving everything outside of the ./src directory last-minute. The hard part about this was that I switched to Linux a few days before making this project, so I didn’t have another machine to compile the Windows version of the release. At first I found a guide that I could do it through Wine, and then I had to install a Docker image of Ubuntu that had it all set up, but it ended up not working. I ended up just setting up a Windows 11 virtual machine using Gnome Boxes (much easier than having to set up QEMU). It took me a while but it should work. It runs as expected on the VM (Windows Defender notification will pop up but that’s a problem with PyInstaller). I’m probably missing some stuff, as this was quite a while, but yeah. The game is finished.
Ships:
I made Asteroid Shooter, a space invaders-like game where you shoot asteroids. I made it with Pygame (community edition), pixel art made manually in Aseprite by me, public domain sounds, and a lot of trial and error. It tracks the player’s score, and it gets harder slowly over time. Overall, I learned more about Pygame (sounds, graphics, user input, OOP, etc.), pixel art, and game design....
|
1793130677.3314495
|
1793217077.3314495
|
|
18119
|
My awesome macropad! by @pheredithmipps | Stardanc My awesome macropad! by @pheredithmipps | Stardance...
|
pheredithmipps
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @pheredithmipps | S Title: My awesome macropad! by @pheredithmipps | Stardance...
|
1792612278.0417168
|
1793217078.0417168
|
|
3268
|
Orbit crash by @benMakesStuff | Stardance
|
benMakesStuff
|
2
|
10.0
|
46
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-23T23:50:12Z", "hours": 2.0, "multiplier": 2.32, "payout": 4, "blessing": "neutral", "text": "I added better physics and updated the project and added a title too, and physics for the obstacles too, and gravity waves (*5 gravity every 30-100 secs)", "repo": "https://github.com/benvelzul/Orbit-Crash", "demo": "https://benvelzul.itch.io/orbit-crash"}, {"ship_num": 2, "ts": "2026-07-17T21:23:58Z", "hours": 8.0, "multiplier": 5.34, "payout": 42, "blessing": "neutral", "text": "I made a game that only uses one key to be played. It was really challenging having to learn Godot in one week because i wantd to get my game in OneKey. The game is a space game that you are being pulled by a black hole’s gravity while some asteroids and space debris are foating around. BTW you use your mouse to have a direction. Also, im really sorry for not posting any other devlogs or having better screenshots, i kinda forgot and was only thinking in finishing.", "repo": "https://github.com/benvelzul/Orbit-Crash", "demo": "https://benvelzul.itch.io/orbit-crash"}]...
|
[{"post_id": 31557, "ts": "202 [{"post_id": 31557, "ts": "2026-07-20T01:50:15Z", "hours": 1.7436, "text": "I added better gravity physics, shooting (so you can destroy space debris), and gravity for obstacles too, a better title, and gravity waves (x5 gravity for 10 seconds every so and so)"}, {"post_id": 30383, "ts": "2026-07-17T21:17:40Z", "hours": 8.1242, "text": "I made the game and it works now and yes it looks as one of the best games i have ever made. Sorry i didnt post many devlogs but i just put all my effort to finish it before OneKey ended."}]...
|
Title: Orbit crash by @benMakesStuff | Stardance
Title: Orbit crash by @benMakesStuff | Stardance
Devlogs:
I made the game and it works now and yes it looks as one of the best games i have ever made. Sorry i didnt post many devlogs but i just put all my effort to finish it before OneKey ended.
I added better gravity physics, shooting (so you can destroy space debris), and gravity for obstacles too, a better title, and gravity waves (x5 gravity for 10 seconds every so and so)
Ships:
I made a game that only uses one key to be played. It was really challenging having to learn Godot in one week because i wantd to get my game in OneKey. The game is a space game that you are being pulled by a black hole’s gravity while some asteroids and space debris are foating around. BTW you use your mouse to have a direction. Also, im really sorry for not posting any other devlogs or having better screenshots, i kinda forgot and was only thinking in finishing.
I added better physics and updated the project and added a title too, and physics for the obstacles too, and gravity waves (*5 gravity every 30-100 secs)...
|
1793130678.5287912
|
1793217078.5287912
|
|
7259
|
AI Hardware by @doenertrinker | Stardance
|
doenertrinker
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: AI Hardware by @doenertrinker | Stardance
|
1792612279.2336862
|
1793217079.2336862
|
|
55560
|
Pong by @Max_ | Stardance
|
Max_
|
1
|
5.0
|
24
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-01T20:13:49Z", "hours": 5.0, "multiplier": 4.43, "payout": 24, "blessing": "neutral", "text": "Pong This is classical pong made with HTML, CSS and JS. I made the screen 32x32 pixels(they’re actually divs). I implemented PvP mode and PvB too(PvP online maybe will come out later).\(゚ー゚\) Features Player versus player mode Player versus bot mode", "repo": "https://github.com/OgArkad/Pong", "demo": "https://pong-gamma-pearl.vercel.app/"}]...
|
[{"post_id": 59677, "ts": "202 [{"post_id": 59677, "ts": "2026-09-01T16:30:07Z", "hours": 5.4353, "text": "Pong This is classical pong made with HTML, CSS and JS. I made the screen 32x32 pixels(they’re actually divs). I implemented PvP mode and PvB too(PvP online maybe will come out later).\(゚ー゚\)"}]...
|
Title: Pong by @Max_ | Stardance
Devlogs:
Pong Th Title: Pong by @Max_ | Stardance
Devlogs:
Pong This is classical pong made with HTML, CSS and JS. I made the screen 32x32 pixels(they’re actually divs). I implemented PvP mode and PvB too(PvP online maybe will come out later).\(゚ー゚\)
Ships:
Pong This is classical pong made with HTML, CSS and JS. I made the screen 32x32 pixels(they’re actually divs). I implemented PvP mode and PvB too(PvP online maybe will come out later).\(゚ー゚\) Features Player versus player mode Player versus bot mode...
|
1793130680.2491221
|
1793217080.2491221
|
|
22250
|
Untitled by @ismailmuhammad | Stardance
|
ismailmuhammad
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @ismailmuhammad | Stardance
|
1792612280.6486096
|
1793217080.6486096
|
|
19749
|
My very own WebOS by @Eesh | Stardance
|
Eesh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @Eesh | Stardance
|
1792612281.47592
|
1793217081.47592
|
|
27848
|
ReTrace by @notryaan | Stardance
|
notryaan
|
1
|
11.0
|
150
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-07T19:01:44Z", "hours": 11.0, "multiplier": 14.12, "payout": 150, "blessing": "neutral", "text": "I made retrace, a replay autopsy too for osu! standard. You basically drop your replay file in and it analyzes it after reconstructing your whole play. It then tells you what when wrong and why. Now the core eingine takes your replay frames and re-judges every circle, slider and spinner against the real hit windows while taking into account sstacking, notelock and mods. IT gives you your UR, timing bias and section by section breakdowns while splitting stuff into patterns so it can tell you stuff like you’re bad at streams instead of you have an inconsistent UR It has a replay viewer that is basically a minivideo player with everything rendered properly, you can slow it down, frame step, jump straight to a miss and even load ghost replays on top to compare. Theres actual AI-powered coaching (openrouter free grok api :D), its tuned to tell you if youre hitting as genuine skill wall, losing focus or any other major problem and helps you get better. Theres farm reccomendation that scales and ranks maps based on your playstyle and actual played maps (while also telling you what maps you could go back to and fix a choke). It has alot of stats and trivia if you want to compare stats bw two players or get data on a country (top 50 tho) It also has local history so you can drop alot of replays in and it could give you a consolidated overivew.", "repo": "https://github.com/UltimaCodes/retraceosu", "demo": "https://retrace-osu.vercel.app/"}]...
|
[{"post_id": 23746, "ts": "202 [{"post_id": 23746, "ts": "2026-07-06T21:19:37Z", "hours": 8.5756, "text": "Second and final devlog (i think) So this started as “what if a website could tell you why you missed” and got wildly out of hand. Everything below runs at retrace-osu.vercel.app now. Recap of the whole thing: The replay engine: The core of the site. You drop a .osr and it gets decoded entirely in your browser, the beatmap is auto-fetched by its hash, and then a reconstruction engine re-judges the whole play from the raw cursor and key data: every circle, slider follow-circle and spinner spin. It handles note stacking, stable’s notelock behavior, and mod clock rates properly, and the reconstructed judgements come out within a hit or two of the real scoreboard numbers. From that you get UR, timing bias, early/late split, per-section breakdown, and pattern splits (jumps, streams, bursts, spaced control) that know the difference between a 180bpm stream and that same stream with DT on. The autopsy tools: A replay viewer with the actual slider paths, approach circles, miss markers and cursor trail, that now works like a proper video editor: quarter speed, frame stepping, keyboard shortcuts, and clickable miss timestamps that jump you to two seconds before each choke. You can even load a second replay of the same map as a green ghost cursor and watch where your lines diverge. There’s a playfield miss map, a hands panel that tells you your k1/k2 split, whether you single-tap or alternate and at what bpm you give in and switch, and whether you snap or flow aim, all measured from the frames. The coach: Every analysis ends with strengths, leaks and practice drills derived from the measurements, plus an AI review that gets fed only measured facts (mod-adjusted stars, real clock rate, strain curve) so it can’t hallucinate numbers. My favorite part is the difficulty overlay: it draws the map’s strain curve behind your per-section UR, so it can tell you whether you fall apart at the hard parts (skill wall) or the easy parts (focus problem). Those need completely different fixes and no other tool makes the distinction. Farm maps: Sign in and it profiles your top 100: your real mod combos with each one’s median accuracy, your comfort star band, and your aim/speed lean measured with rosu-pp. Then it prices candidate maps under your actual mods at your actual accuracy and, this is the important bit, ranks them by the real gain to your weighted total, not the raw pp fantasy. A “400pp play” that nets you 0.6pp gets buried. There’s also a chokes tab that finds plays in your bests worth fixing, and a ceiling number showing your total if you cleaned all of them. Informatics: Type any username: mod-combination picker over their top 100 (exact combos, HD means HD only), pp milestones, 90-day rank graph, and trivia like their oldest surviving play, their most farmed mapper, their grade split and how much of their profile one play carries. Countries get a top-50 deep scan: hidden prodigies by pp per hour, the “national anthem” (the map half the country has in their bests), the oldest relic score still standing, the closest rivalry (Pakistan has two players literally 0pp apart), scene depth, farm diversity. Plus a side-by-side player compare page. History: Every analyzed replay saves to your browser, nothing uploaded. Bulk-drop your whole Replays folder and it aggregates: which weaknesses recur across your plays, your UR trend, and per-map progress when you’ve analyzed the same map more than once. Everything else: osu!-style UI with the triangles, 30-day sessions with token refresh, PNG share cards, link embeds, installable as an app, and a disk cache so the osu! API doesn’t hate me.The whole thing is client-first: your replays never leave your machine, the server only does pp math and API relaying. Go break it and tell me what’s wrong."}, {"post_id": 17889, "ts": "2026-06-28T20:30:56Z", "hours": 2.33, "text": "Made the base UI (heavy inspiration from the main osu website) and started working on parsing every replay. Made the site automatically fetch maps from the replays via the API (and get user profile data in the same way). Now I need to make it actually analyze replays and give criticism/improvement tips based on those replays, maybe an in-browser replay viewer so the coach thingy could give you specific timestamps of where you messed up"}]...
|
Title: ReTrace by @notryaan | Stardance
Devlogs:
Title: ReTrace by @notryaan | Stardance
Devlogs:
Made the base UI (heavy inspiration from the main osu website) and started working on parsing every replay. Made the site automatically fetch maps from the replays via the API (and get user profile data in the same way). Now I need to make it actually analyze replays and give criticism/improvement tips based on those replays, maybe an in-browser replay viewer so the coach thingy could give you specific timestamps of where you messed up
Second and final devlog (i think) So this started as “what if a website could tell you why you missed” and got wildly out of hand. Everything below runs at retrace-osu.vercel.app now. Recap of the whole thing: The replay engine: The core of the site. You drop a .osr and it gets decoded entirely in your browser, the beatmap is auto-fetched by its hash, and then a reconstruction engine re-judges the whole play from the raw cursor and key data: every circle, slider follow-circle and spinner spin. It handles note stacking, stable’s notelock behavior, and mod clock rates properly, and the reconstructed judgements come out within a hit or two of the real scoreboard numbers. From that you get UR, timing bias, early/late split, per-section breakdown, and pattern splits (jumps, streams, bursts, spaced control) that know the difference between a 180bpm stream and that same stream with DT on. The autopsy tools: A replay viewer with the actual slider paths, approach circles, miss markers and cursor trail, that now works like a proper video editor: quarter speed, frame stepping, keyboard shortcuts, and clickable miss timestamps that jump you to two seconds before each choke. You can even load a second replay of the same map as a green ghost cursor and watch where your lines diverge. There’s a playfield miss map, a hands panel that tells you your k1/k2 split, whether you single-tap or alternate and at what bpm you give in and switch, and whether you snap or flow aim, all measured from the frames. The coach: Every analysis ends with strengths, leaks and practice drills derived from the measurements, plus an AI review that gets fed only measured facts (mod-adjusted stars, real clock rate, strain curve) so it can’t hallucinate numbers. My favorite part is the difficulty overlay: it draws the map’s strain curve behind your per-section UR, so it can tell you whether you fall apart at the hard parts (skill wall) or the easy parts (focus problem). Those need completely different fixes and no other tool makes the distinction. Farm maps: Sign in and it profiles your top 100: your real mod combos with each one’s median accuracy, your comfort star band, and your aim/speed lean measured with rosu-pp. Then it prices candidate maps under your actual mods at your actual accuracy and, this is the important bit, ranks them by the real gain to your weighted total, not the raw pp fantasy. A “400pp play” that nets you 0.6pp gets buried. There’s also a chokes tab that finds plays in your bests worth fixing, and a ceiling number showing your total if you cleaned all of them. Informatics: Type any username: mod-combination picker over their top 100 (exact combos, HD means HD only), pp milestones, 90-day rank graph, and trivia like their oldest surviving play, their most farmed mapper, their grade split and how much of their profile one play carries. Countries get a top-50 deep scan: hidden prodigies by pp per hour, the “national anthem” (the map half the country has in their bests), the oldest relic score still standing, the closest rivalry (Pakistan has two players literally 0pp apart), scene depth, farm diversity. Plus a side-by-side player compare page. History: Every analyzed replay saves to your browser, nothing uploaded. Bulk-drop your whole Replays folder and it aggregates: which weaknesses recur across your plays, your UR trend, and per-map progress when you’ve analyzed the same map more than once. Everything else: osu!-style UI with the triangles, 30-day sessions with token refresh, PNG share cards, link embeds, installable as an app, and a disk cache so the osu! API doesn’t hate me.The whole thing is client-first: your replays never leave your machine, the server only does pp math and API relaying. Go break it and tell me what’s wrong.
Ships:
I made retrace, a replay autopsy too for osu! standard. You basically drop your replay file in and it analyzes it after reconstructing your whole play. It then tells you what when wrong and why. Now the core eingine takes your replay frames and re-judges every circle, slider and spinner against the real hit windows while taking into account sstacking, notelock and mods. IT gives you your UR, timing bias and section by section breakdowns while splitting stuff into patterns so it can tell you stuff like you’re bad at streams instead of you have an inconsistent UR It has a replay viewer that is basically a minivideo player with everything rendered properly, you can slow it down, frame step, jump straight to a miss and even load ghost replays on top to compare. Theres actual AI-powered coaching (openrouter free grok api :D), its tuned to tell you if youre hitting as genuine skill wall, losing focus or any other major problem and helps you get better. Theres farm reccomendation that scales and ranks maps based on your playstyle and actual played maps (while also telling you what maps you could go back to and fix a choke). It has alot of stats and trivia if you want to compare stats bw two players or get data on a country (top 50 tho) It also has local history so you can drop alot of replays in and it could give you a consolidated overivew....
|
1793130681.9923186
|
1793217081.9923186
|
|
15645
|
My very own WebOS by @MrBond | Stardance
|
MrBond
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @MrBond | Stardance
|
1792612282.3254454
|
1793217082.3254454
|
|
9956
|
My first slack bot! by @amanYadav1950 | Stardance
|
amanYadav1950
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @amanYadav1950 | Sta Title: My first slack bot! by @amanYadav1950 | Stardance...
|
1792612283.1764243
|
1793217083.1764243
|
|
24524
|
Stardust OS by @Singhularity | Stardance
|
Singhularity
|
0
|
5.49
|
0
|
[]
|
[{"post_id": 16867, "ts": "202 [{"post_id": 16867, "ts": "2026-06-27T11:46:12Z", "hours": 1.7525, "text": "Devlog #4 **Okay.. This is Getting Out Of Hand! https://forms.gle/z4STN2WMLspiTk4B7 Before anything… yeah the contest is still on (Check my previous post to see guidelines, i have attached the forms link here too!). I’m actually hyped to see what people submit. If this goes well, StardustOS might lowkey have a whole community vibe, which is kinda insane to think about. Anyway…So today wasn’t one of those “add 20 features” days. It was more like: “make everything feel real.” And somehow… that took more effort than building half the UI. lol First thing I focused on was interaction. Not just clicking stuff and seeing “coming soon”… but making it feel like something wants to respond. Windows now actually exist. Like… proper floating windows. You click something, it opens, it animates, it feels alive. And the best part? You can drag them around. I literally spent way too long just dragging a window across the screen like “yeah… this is it.” Yeah so… I added a video as the desktop background. An actual looping video. Of course the browser tried to block autoplay (ofc it did) So I had to manually trigger play in JS. Now it works and honestly…this should not feel this cool. Also added the classic three buttons: close, minimize, maximize. And yes, maximize actually works. Not fake maximize. REAL maximize. IG this is the moment where it stopped being “just UI” and started becoming… something else. Then I went a bit deeper. Z-index system. Which sounds boring, but trust me it’s not when your windows start fighting for attention. Now when you click a window, it comes to the front properly. No weird layering bugs. No “why is this behind that” moments. Everything just behaves. And honestly?That alone made it feel 10x more polished. Then…I built my first real app. A calculator. Nothing crazy, but also… not basic either. It actually works like a real one: operations, decimals, percentages, sign toggle…And yeah, I tested dividing by zero. It didn’t explode, so we’re good. Seeing an actual working app inside something I built from scratch? That was a moment! Like… this isn’t just a concept anymore. It’s doing things. Small things, sure. But real things. Also tweaked animations a bit more. Open, minimize, transitions…Everything feels smoother now. Not perfect. But definitely not “school project energy” anymore. More like…“okay wait… this might actually turn into something serious.”"}, {"post_id": 15681, "ts": "2026-06-25T14:25:25Z", "hours": 0.6681, "text": "Devlog #3- Wait.. I Built a Desktop!? Before We start I am hosting a Contest!! Get your art featured in StardustOS. This includes promoting your Social Media (inside the OS) + Become a part of history as taking part in my new OS. Fill this Form to take part- https://forms.gle/EtzNC2EechfDmX3c7 Anyway, Lets Continue with the devlog. Bruh Moment So I was coding for like 2+ hours. Then I checked the Hackatime tracker. It said: 33 minutes. ??? I just stared at it. Ig it’s because of my internet being bad or something. Hopefully it fixes itself because that was unexpected! I made the Desktop today! 1.Full desktop UI inside the root 2.Clean structure with layers (topbar, icons, dock, etc.) 3.A proper “space OS” vibe. 4.Added basic icons: Files, Notes, Settings but they’re just placeholders for now. Clicking them shows: “coming soon” No real apps yet…but later ofc 5.Built a bottom dock: Finder, Browser, Notes, Terminal, Settings. Click = toast popup and honestly? Even THAT feels satisfying. What I will do next Now things get serious. Real apps (not placeholders anymore) Live wallpaper (animated desktop) Maybe a desktop pet (like Clippy… but not cursed like BonziBuddy lol). And according to the guide I will build an advanced app. At this rate…I might accidentally build an OS.And I’m not even joking anymore."}, {"post_id": 15034, "ts": "2026-06-24T12:44:03Z", "hours": 1.6175, "text": "Devlog #2 — Okay… Now It Actually Feels Real The Boot Screen Got a MAJOR Upgrade Yesterday it was just a loading bar. Today? I accidentally built something that looks like it belongs in my finest art’s collection Like… I went from “loading…” to “Initializing Stardust kernel 6.9.0…” Also, I took inspiration from @subhansh ’s mewoOS Boot screen. Trying to replicate his boot screen was a learning experience in its own. Today I added fade-outs: Boot fades away Login fades away Now it feels smooth instead of like: “boom. new screen. deal with it.” Login Screen: Small Glow-Up Didn’t change the logic much, but visually: 1.Replaced emoji with a proper SVG avatar 2.Made it feel more like a lock screen 3.Better blur, better lighting AND THEN… THE BIG ONE It doesn’t stop at login anymore. It opens a desktop. Like… an actual desktop. Desktop (v1) Nothing crazy yet, but enough to feel real: Spacey animated background Top bar like macOS And the top bar has: WiFi icon Volume icon Battery % ( as per the user’s device) Date Time And yes… the time updates. I am so proud of myself :) Yeah, I used: navigator.getBattery() for battery setInterval() for time So now it’s not just UI. It’s actually reacting to the system. Which is kinda wild for something running in a browser. Today I basically attacked the CSS: More blur Better gradients Starfield effect Depth everywhere It finally stopped looking like a school project. lol"}, {"post_id": 14371, "ts": "2026-06-23T14:10:09Z", "hours": 1.4481, "text": "Devlog #1 Make the system boot . Not instantly appear. Actually boot. (P.S. it took me 1 hour and 14 minutes to write this 💀) I used VS Code because it just makes life easier—autocomplete, structure, everything. Created a folder called: StardustOS Inside it: index.html style.css script.js assets/icons/pixel-star.svg Everything runs inside one element: <div id=\"root\"></div> Instead of switching pages, I just replace the content inside root using JavaScript. So technically… The entire OS is just one div having identity crisis. Connected Google Fonts (VT323) just in case I want retro vibes later Linked CSS and JS normally Nothing fancy—just a clean entry point I wanted a MacBook-like UI Sleek Minimal Soft Not loud Key Design Choices: Black base (#000) → clean boot feel White + grey tones → UI structure Blur + transparency → glass effect Accent colors: Blue ( #4ea1ff ) → highlights / identity Orange ( #ff9f43 ) → alias accent Fonts: System fonts ( -apple-system , Segoe UI, etc.) for that native feel Boot Screen First thing you see: Black screen A space emoji 🌌 as the “logo” A thin loading bar What’s actually happening: Progress increases every ~80ms Width of bar updates At 100% → small delay → login screen Fake loading? Yes. Feels real? Also yes. Login System First time: Create password Confirm password Stored using localStorage Returning user: Shows login screen (with my name for now) Checks password Correct then continue Wrong then error message Background & UI Feel Login screen uses a space wallpaper Overlay blur + dark tint → makes everything soft Avatar uses a blue-purple gradient Inputs are translucent with blur Basically: trying to make it look expensive without actually being expensive Intro Screen After login: Dark grey background ( #1c1c1e ) Floating pixel star (from assets) Glow effect + animation Smooth fade-in Text introduces: Me (Yuvraj) My alias (Singhularity) Then a button: Continue And when you click it? Continue clicked! (Desktop not built yet and ps this is just a placeholder i am gonna remove this intro screen when my desktop is built) That’s it. No fake desktop yet. What I Learned Toda How to simulate screens using one root container How to manage flow: boot, login, intro How localStorage can act like memory How small UI details change the whole feel The Funny Bug (aka “I Broke My Own OS”) At one point… nothing worked.Boot screen? Gone. Login? Gone. Just a blank screen staring back at me like I offended it. Turns out… I wrote: const root = document . getElementByID ( \" root \" ); Notice it? getElementByID Capital D Yeah… that one letter. So JavaScript basically said: “I have no idea what you’re talking about.” And since root became null , the next line: root . innerHTML = ... Boom. Entire OS refused to exist. For a solid 5 minutes I thought I broke everything. Then I fixed the “D”… and suddenly my OS decided to come back to life like nothing happened."}]...
|
Title: Stardust OS by @Singhularity | Stardance
D Title: Stardust OS by @Singhularity | Stardance
Devlogs:
Devlog #1 Make the system boot . Not instantly appear. Actually boot. (P.S. it took me 1 hour and 14 minutes to write this 💀) I used VS Code because it just makes life easier—autocomplete, structure, everything. Created a folder called: StardustOS Inside it: index.html style.css script.js assets/icons/pixel-star.svg Everything runs inside one element: <div id="root"></div> Instead of switching pages, I just replace the content inside root using JavaScript. So technically… The entire OS is just one div having identity crisis. Connected Google Fonts (VT323) just in case I want retro vibes later Linked CSS and JS normally Nothing fancy—just a clean entry point I wanted a MacBook-like UI Sleek Minimal Soft Not loud Key Design Choices: Black base (#000) → clean boot feel White + grey tones → UI structure Blur + transparency → glass effect Accent colors: Blue ( #4ea1ff ) → highlights / identity Orange ( #ff9f43 ) → alias accent Fonts: System fonts ( -apple-system , Segoe UI, etc.) for that native feel Boot Screen First thing you see: Black screen A space emoji 🌌 as the “logo” A thin loading bar What’s actually happening: Progress increases every ~80ms Width of bar updates At 100% → small delay → login screen Fake loading? Yes. Feels real? Also yes. Login System First time: Create password Confirm password Stored using localStorage Returning user: Shows login screen (with my name for now) Checks password Correct then continue Wrong then error message Background & UI Feel Login screen uses a space wallpaper Overlay blur + dark tint → makes everything soft Avatar uses a blue-purple gradient Inputs are translucent with blur Basically: trying to make it look expensive without actually being expensive Intro Screen After login: Dark grey background ( #1c1c1e ) Floating pixel star (from assets) Glow effect + animation Smooth fade-in Text introduces: Me (Yuvraj) My alias (Singhularity) Then a button: Continue And when you click it? Continue clicked! (Desktop not built yet and ps this is just a placeholder i am gonna remove this intro screen when my desktop is built) That’s it. No fake desktop yet. What I Learned Toda How to simulate screens using one root container How to manage flow: boot, login, intro How localStorage can act like memory How small UI details change the whole feel The Funny Bug (aka “I Broke My Own OS”) At one point… nothing worked.Boot screen? Gone. Login? Gone. Just a blank screen staring back at me like I offended it. Turns out… I wrote: const root = document . getElementByID ( " root " ); Notice it? getElementByID Capital D Yeah… that one letter. So JavaScript basically said: “I have no idea what you’re talking about.” And since root became null , the next line: root . innerHTML = ... Boom. Entire OS refused to exist. For a solid 5 minutes I thought I broke everything. Then I fixed the “D”… and suddenly my OS decided to come back to life like nothing happened.
Devlog #2 — Okay… Now It Actually Feels Real The Boot Screen Got a MAJOR Upgrade Yesterday it was just a loading bar. Today? I accidentally built something that looks like it belongs in my finest art’s collection Like… I went from “loading…” to “Initializing Stardust kernel 6.9.0…” Also, I took inspiration from @subhansh ’s mewoOS Boot screen. Trying to replicate his boot screen was a learning experience in its own. Today I added fade-outs: Boot fades away Login fades away Now it feels smooth instead of like: “boom. new screen. deal with it.” Login Screen: Small Glow-Up Didn’t change the logic much, but visually: 1.Replaced emoji with a proper SVG avatar 2.Made it feel more like a lock screen 3.Better blur, better lighting AND THEN… THE BIG ONE It doesn’t stop at login anymore. It opens a desktop. Like… an actual desktop. Desktop (v1) Nothing crazy yet, but enough to feel real: Spacey animated background Top bar like macOS And the top bar has: WiFi icon Volume icon Battery % ( as per the user’s device) Date Time And yes… the time updates. I am so proud of myself :) Yeah, I used: navigator.getBattery() for battery setInterval() for time So now it’s not just UI. It’s actually reacting to the system. Which is kinda wild for something running in a browser. Today I basically attacked the CSS: More blur Better gradients Starfield effect Depth everywhere It finally stopped looking like a school project. lol
Devlog #3- Wait.. I Built a Desktop!? Before We start I am hosting a Contest!! Get your art featured in StardustOS. This includes promoting your Social Media (inside the OS) + Become a part of history as taking part in my new OS. Fill this Form to take part- https://forms.gle/EtzNC2EechfDmX3c7 Anyway, Lets Continue with the devlog. Bruh Moment So I was coding for like 2+ hours. Then I checked the Hackatime tracker. It said: 33 minutes. ??? I just stared at it. Ig it’s because of my internet being bad or something. Hopefully it fixes itself because that was unexpected! I made the Desktop today! 1.Full desktop UI inside the root 2.Clean structure with layers (topbar, icons, dock, etc.) 3.A proper “space OS” vibe. 4.Added basic icons: Files, Notes, Settings but they’re just placeholders for now. Clicking them shows: “coming soon” No real apps yet…but later ofc 5.Built a bottom dock: Finder, Browser, Notes, Terminal, Settings. Click = toast popup and honestly? Even THAT feels satisfying. What I will do next Now things get serious. Real apps (not placeholders anymore) Live wallpaper (animated desktop) Maybe a desktop pet (like Clippy… but not cursed like BonziBuddy lol). And according to the guide I will build an advanced app. At this rate…I might accidentally build an OS.And I’m not even joking anymore.
Devlog #4 **Okay.. This is Getting Out Of Hand! https://forms.gle/z4STN2WMLspiTk4B7 Before anything… yeah the contest is still on (Check my previous post to see guidelines, i have attached the forms link here too!). I’m actually hyped to see what people submit. If this goes well, StardustOS might lowkey have a whole community vibe, which is kinda insane to think about. Anyway…So today wasn’t one of those “add 20 features” days. It was more like: “make everything feel real.” And somehow… that took more effort than building half the UI. lol First thing I focused on was interaction. Not just clicking stuff and seeing “coming soon”… but making it feel like something wants to respond. Windows now actually exist. Like… proper floating windows. You click something, it opens, it animates, it feels alive. And the best part? You can drag them around. I literally spent way too long just dragging a window across the screen like “yeah… this is it.” Yeah so… I added a video as the desktop background. An actual looping video. Of course the browser tried to block autoplay (ofc it did) So I had to manually trigger play in JS. Now it works and honestly…this should not feel this cool. Also added the classic three buttons: close, minimize, maximize. And yes, maximize actually works. Not fake maximize. REAL maximize. IG this is the moment where it stopped being “just UI” and started becoming… something else. Then I went a bit deeper. Z-index system. Which sounds boring, but trust me it’s not when your windows start fighting for attention. Now when you click a window, it comes to the front properly. No weird layering bugs. No “why is this behind that” moments. Everything just behaves. And honestly?That alone made it feel 10x more polished. Then…I built my first real app. A calculator. Nothing crazy, but also… not basic either. It actually works like a real one: operations, decimals, percentages, sign toggle…And yeah, I tested dividing by zero. It didn’t explode, so we’re good. Seeing an actual working app inside something I built from scratch? That was a moment! Like… this isn’t just a concept anymore. It’s doing things. Small things, sure. But real things. Also tweaked animations a bit more. Open, minimize, transitions…Everything feels smoother now. Not perfect. But definitely not “school project energy” anymore. More like…“okay wait… this might actually turn into something serious.”...
|
1792612284.0293038
|
1793217084.0293038
|
|
33178
|
Portfolio website by @anushkadingare | Stardance
|
anushkadingare
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-10T23:15:23Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This was my first coding project- my own personal website! I really enjoyed making this, especially using CSS to style it. I think the biggest thing I improved on was learning how to connect HTML and CSS, at the beginning I had a lot of bugs but now I can do it pretty easily. I think the next steps are to add javascript for some cool animations! I am super excited to keep working on this and I hope I can make it a lot cooler in the future.", "repo": "https://github.com/anushkaiscool/Stardance-Website", "demo": "https://anushkaiscool.github.io/Stardance-Website/"}]...
|
[{"post_id": 26262, "ts": "202 [{"post_id": 26262, "ts": "2026-07-10T23:10:16Z", "hours": 2.7822, "text": "I redid the whole CSS of the website, including adding a background and a profile drawn by yours truly! I also added some other sections to the website, but they still need to be updated. I’m learning a lot about and classes and ids and how to style it in css. I think the next steps are to change the fonts, add a cursor, learn javascript and add some cool animations, and obviously updating some of the sections."}, {"post_id": 25774, "ts": "2026-07-10T07:16:18Z", "hours": 0.5292, "text": "I just made the html and css, and figured out how to use git and connect everything. Kinda embarrassing how long that took but i’m ready to work on it more and develop my skills! I think I’m gonna draw the art for it myself so looking forward to that ig"}]...
|
Title: Portfolio website by @anushkadingare | Star Title: Portfolio website by @anushkadingare | Stardance
Devlogs:
I just made the html and css, and figured out how to use git and connect everything. Kinda embarrassing how long that took but i’m ready to work on it more and develop my skills! I think I’m gonna draw the art for it myself so looking forward to that ig
I redid the whole CSS of the website, including adding a background and a profile drawn by yours truly! I also added some other sections to the website, but they still need to be updated. I’m learning a lot about and classes and ids and how to style it in css. I think the next steps are to change the fonts, add a cursor, learn javascript and add some cool animations, and obviously updating some of the sections.
Ships:
This was my first coding project- my own personal website! I really enjoyed making this, especially using CSS to style it. I think the biggest thing I improved on was learning how to connect HTML and CSS, at the beginning I had a lot of bugs but now I can do it pretty easily. I think the next steps are to add javascript for some cool animations! I am super excited to keep working on this and I hope I can make it a lot cooler in the future....
|
1793130684.9069002
|
1793217084.9069002
|
|
39469
|
portfolio by @dev_yusufkondkari | Stardance
|
dev_yusufkondkari
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: portfolio by @dev_yusufkondkari | Stardance
|
1792612285.4601102
|
1793217085.4601102
|
|
55568
|
dad-bot by @M4RC086 | Stardance
|
M4RC086
|
1
|
2.38
|
9
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-29T15:15:59Z", "hours": 2.0, "multiplier": 3.63, "payout": 9, "blessing": "neutral", "text": "I finished my dad bot. He’s a bot that tells jokes, gives advices and similar funny stuff. It was kinda hard because I had no clue of programming in javascript or using npm but I managed to create the bot and do API requests. This bot is just for fun, but it’s really entertaining and can give you ideas on what to do with the /dad-i-am-bored command", "repo": "https://github.com/M4RC086/slack-bot-dad", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354"}]...
|
[{"post_id": 58164, "ts": "202 [{"post_id": 58164, "ts": "2026-08-30T14:59:19Z", "hours": 0.3806, "text": "."}, {"post_id": 57392, "ts": "2026-08-29T15:09:15Z", "hours": 1.11, "text": "I finished the bot. The profile image of the bot is Thors from Vinland Saga, I think it’s a good dad. I think I take more time doing things in the API dashboard and similar stuff than doing the bot itself :v"}, {"post_id": 57201, "ts": "2026-08-29T09:46:47Z", "hours": 1.3419, "text": "I’m doing the Slack bot in javascript. I never used js but I begin to understand it. My bot is “dad”. The idea is to he to be like your dad telling jokes and funny things. For the moment I want to add some commands"}]...
|
Title: dad-bot by @M4RC086 | Stardance
Devlogs:
I Title: dad-bot by @M4RC086 | Stardance
Devlogs:
I’m doing the Slack bot in javascript. I never used js but I begin to understand it. My bot is “dad”. The idea is to he to be like your dad telling jokes and funny things. For the moment I want to add some commands
I finished the bot. The profile image of the bot is Thors from Vinland Saga, I think it’s a good dad. I think I take more time doing things in the API dashboard and similar stuff than doing the bot itself :v
.
Ships:
I finished my dad bot. He’s a bot that tells jokes, gives advices and similar funny stuff. It was kinda hard because I had no clue of programming in javascript or using npm but I managed to create the bot and do API requests. This bot is just for fun, but it’s really entertaining and can give you ideas on what to do with the /dad-i-am-bored command...
|
1793130685.791003
|
1793217085.791003
|