|
34995
|
My very own WebOS by @petruci | Stardance
|
petruci
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-14T15:25:45Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finished the app fully, deployed at https://webos-eight-eta.vercel.app/", "repo": "https://github.com/Petruci420/webos", "demo": "https://webos-eight-eta.vercel.app/"}]...
|
[{"post_id": 28343, "ts": "202 [{"post_id": 28343, "ts": "2026-07-14T15:17:36Z", "hours": 0.3478, "text": "finished! everything is done and the project is up on vercel!"}, {"post_id": 28318, "ts": "2026-07-14T14:26:34Z", "hours": 0.5022, "text": "draggable windows, can open and close now, and also change the background, working on adding games and folders"}, {"post_id": 28301, "ts": "2026-07-14T13:55:16Z", "hours": 0.255, "text": "“took a step backwards”, im rewriting a bit of code to be more maintainable in the future, in the proccess of adding draggable windows, opening apps etc"}, {"post_id": 28290, "ts": "2026-07-14T13:34:28Z", "hours": 0.2969, "text": "Made the sites base looks, will add much more stuff, some settings, some easy games, and will probably change projects to folder, and will make the windows draggable and make the site interactive"}]...
|
Title: My very own WebOS by @petruci | Stardance
Title: My very own WebOS by @petruci | Stardance
Devlogs:
Made the sites base looks, will add much more stuff, some settings, some easy games, and will probably change projects to folder, and will make the windows draggable and make the site interactive
“took a step backwards”, im rewriting a bit of code to be more maintainable in the future, in the proccess of adding draggable windows, opening apps etc
draggable windows, can open and close now, and also change the background, working on adding games and folders
finished! everything is done and the project is up on vercel!
Ships:
Finished the app fully, deployed at https://webos-eight-eta.vercel.app/...
|
1793623856.7191474
|
1793710256.7191474
|
|
39412
|
Cultivation Incremental by @RanDK | Stardance
|
RanDK
|
2
|
93.0
|
1329
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-08T14:06:11Z", "hours": 20.0, "multiplier": 17.26, "payout": 338, "blessing": "neutral", "text": "VERSION 0.1 Only 16+ can play the Game currently as any other new roblox game. I am glad to add more of the essentials mechanic of the Game! Now here is the List of Features i have added to the game since the last release: Added Onboarding/Tutorial! I see a lot of player gets confused when they first joined the game, so now i added a tutorial on the basic of the game. That is: Cultivate, Shop, and Quest. Added New Enemy : Goblin. Added More quests . Added Cultivating Animation! Added Gamepass! Now you can buy a gamepass to get a benefit and support me! + Gamepass badge on the bottom left of the screen when bought. And more! you can read all the devlogs to see the small changes. I still have some features not yet implemented, that is fighting enemy animation, weapons, and PVP . But i don’t really have the courage since the Stardance deadline is within 3 weeks (and its already extended), but i do have plan to continue the project later in December for my own personal project (close sourced, even though right now its already semi close source since the models, maps i used is not in the code but in the roblox studio file.). Thanks for everyone who have followed the game journey, albeit short i thank you guys for supporting me!! (Especially those who bought my gamepass!!) . I CANT BELIEVE I GOT MY FIRST ROBUX FROM MAKING A GAME HERE IN STARDANCE :DD THANK YOU SO MUCH!!! This Game is Made with the best of my Game Dev abilities .", "repo": "https://github.com/RKPYI/cultivation", "demo": "https://www.roblox.com/games/128506264671282/Cultivation-Incremental"}, {"ship_num": 2, "ts": "2026-08-17T03:44:11Z", "hours": 73.0, "multiplier": 13.89, "payout": 991, "blessing": "neutral", "text": "VERSION 0.0.1 Only 16+ can play the Game currently as any other new roblox game. I am glad to finish the essentials mechanic of the Game! Now here is the List of Features the game have: Cultivate, just stand on the existing zone (and make sure you have the required Realm) and you’ll gain Qi automatically Breakthrough, the moment the top bar is full, you can breakthrough to higher realm which increases your qi gain and boost movement speed and jump a little bit. Quest, you can talk to an NPC with a (!) to get the quest. After finishing a quest, you can talk to the NPC again to claim the quest rewards. Battle, you can walk to enemy and you’ll automatically deal damage to them! Shop, you can buy items in shopkeeper NPC with Spiritual Stones which you can get from defeating an enemy or finishing a quest. The feature is implemented, but its very simple and “unprofessional”. Lame excuse but its really because this is my first time making game and im still learning the basics. I’ll be adding more stuff and refine the core features in the future updates!! This game is made for the love of the game and genre :)", "repo": "https://github.com/RKPYI/cultivation", "demo": "https://www.roblox.com/games/128506264671282/Cultivation-Incremental"}]...
|
[{"post_id": 74457, "ts": "202 [{"post_id": 74457, "ts": "2026-09-27T12:35:39Z", "hours": 6.9819, "text": "[Devlog #29] The Last Devlog The Game New Contents Gamepass! Now you can buy a gamepass to get a benefit and support me! + Gamepass badge on the bottom left of the screen when bought. Add beam/arrow to the quest npc when you’re done with their given quest. Add equip best button in the inventory menu. Add dmg mult information in the inventory meny (item detail menu). Updates Fix some bugs, for example player able to move while cultivating. Optimize and remove unused leaderboards. ready to publish it! Thank you for the opportunity Hackclub for me to grow as a beginner roblox developer I appreciate the support from everyone although my game is far from “professional”, atleast its a fully working game! and Im happy with it."}, {"post_id": 68131, "ts": "2026-09-14T15:48:31Z", "hours": 1.1519, "text": "[Devlog #28] New Content Added “Aura” like particle effect when cultivating, its more like you “suck” the surrounding qi into the body. Update Update the collision system to be more robust, before theres a problem with the collision when i try adding the Aura Part inside the Player. Now it will independently calculate the spatial rather than touching. Nothing crazy, just some cool small detail."}, {"post_id": 66709, "ts": "2026-09-12T16:27:10Z", "hours": 2.3578, "text": "[Devlog #27] New Contents New Mobile Button to Cultivate New Shortcut UI to press “C” to Cultivate when entering a Zone they can cultivate in. New Tutorial Section to tell the player to press “C” to start cultivating and gathering qi. Update Player now can’t walk/jump when cultivating May need to revise the button for mobile since its very basic right now"}, {"post_id": 66071, "ts": "2026-09-11T17:16:34Z", "hours": 1.8178, "text": "[Devlog #26] New Content Added Cultivating Animation! Update Now you have to press “C” to cultivate rather than just automatically gain Qi just by entering the Qi Zone. Next one is to add button for mobile user, and also add UX feedback for when they’re able to press C to cultivate and when they can’t (outside zone & higher realm zone). Oh! also adding particle/aura when player is cultivating for more satisfying feel."}, {"post_id": 61661, "ts": "2026-09-04T18:08:47Z", "hours": 0.5442, "text": "[Devlog #25] Updates Added more quests Optimize NPCServiceUtils.Data JSON for NPC that gives Chained Quests. Mostly just optimizing the json by creating a helper so that making a quest is easier and less error prone."}, {"post_id": 60953, "ts": "2026-09-03T17:11:44Z", "hours": 3.1036, "text": "[Devlog #24] New Content Added Onboarding/Tutorial ! I see a lot of player gets confused when they first joined the game, so now i added a tutorial on the basic of the game. That is: Cultivate, Shop, and Quest . Im really happy with the result, i didn’t expect making the trail line to be so easy (using beam instance from roblox themself). And maybe i’ll add onboarding for fighting enemy and equipping items, but its not really neccessary (i think)."}, {"post_id": 60245, "ts": "2026-09-02T14:23:32Z", "hours": 2.5775, "text": "[Devlog #23] New Content Added refresh countdown on leaderboard UI. Updates Moved enemy overhead gui from server to client (not yet tested for the behaviour in multiplayer) for more personalization (point 2 is possible because of this change). Dynamic enemy name color, higher realm will be colored red and cannot be attacked no matter how high your dmg is until you reach their cultivation rank. Polishing the game :))"}, {"post_id": 59659, "ts": "2026-09-01T16:01:39Z", "hours": 1.0572, "text": "[Devlog #22] New Contents Added 1 more enemy, goblin. Update Remove the realm requirement in NPC Shop for buying an item (Cannot buy the item until realm req is fulfilled). The requirement now only active when trying to equip the item. Fixed quest id being duplicated. im back!! hopefully i can make some more stuff although i may not have as much free time as before. I’ll try to make some progress everyday though! Try it Now Game may not be up to date from the devlog Cultivation Incremental (16+)"}, {"post_id": 46405, "ts": "2026-08-13T16:13:06Z", "hours": 0.8792, "text": "[Devlog #21] Updates Added a proper README. Fixed some minor bugs. The next devlog will be for a published Game . Its not a professional Roblox game, but its my learning process from 0 to this. So i appreciate any type of critics and feedback for me to develop this game furthur, because i really love these type of games. So im literally making my dream game here! But its still lacking to my vision because of my lack of time and skills."}, {"post_id": 45814, "ts": "2026-08-12T15:17:53Z", "hours": 0.6147, "text": "[Devlog #20] Update Added 1 more quest New Assets Added Game Icon and Thumbnail Spent most of my time on figma designing the Icon and Thumbnail of the game, but the time is not getting tracked because i use the app instead from web . Not yet released, but i’ll be testing it first with a few friends first and maybe add some feature because ngl it feels bland right now, but maybe its just my opinion. So to get some feedback, ill be testing it with my friends tommorow and maybe catch some multiplayer bugs that i couldn’t find when playing alone. I really don’t want to publish a boring game, but the time is ticking and im getting more and more busy this month."}, {"post_id": 45161, "ts": "2026-08-11T14:03:07Z", "hours": 0.3044, "text": "[Devlog #19] Update New UI for Leaderboard! I’ll be polishing the game (for real) and release the first version tommorow (hopefully)… Im getting really busy"}, {"post_id": 44685, "ts": "2026-08-10T16:42:21Z", "hours": 3.5644, "text": "[Devlog #18] New Content Added Qi Mult Counter when entered a Zone. The fire has animation Added Leaderboard . (UI is In Progress) . Spent most of my time making UI Animation using sprite sheet and integrate DataStoreService for leaderboard"}, {"post_id": 44139, "ts": "2026-08-09T18:19:01Z", "hours": 0.3978, "text": "[Devlog #17] Update Make the Breakthrough bar slimmer and more compact. Im kinda busy today and havent done anything yet, so im just improving the ui a little bit. Also i wanna add a Current Qi Multiplier Counter at the Top Right Corner of the screen using the fire gif."}, {"post_id": 43367, "ts": "2026-08-08T15:57:22Z", "hours": 4.3803, "text": "[Devlog #16] New Content Added 5 new Items you can buy. Updates Implemented the Functionality of the NPC Shop. You can now buy items here. Updated the Shop UI, now it looks better compared to previous version. Spent most of my times debugging the UI since i reuse the modal component that the main menu uses. So yea, i integrate the npc shop inside it and that creates a lot of bugs and conflict . Well i fixed all the bug i found so thats good. Now that the main features is done the next step is to polish the map and adding the game content (More NPC, Quest & Items)"}, {"post_id": 42792, "ts": "2026-08-07T18:02:10Z", "hours": 1.4983, "text": "[Devlog #15] Update Added UI for NPC Shop Spent all of my time designing the UI… i still dont like the yellow box, but it’ll do for now. Next i’ll be making it dynamic and functionable."}, {"post_id": 41964, "ts": "2026-08-06T14:25:20Z", "hours": 2.245, "text": "[Devlog #14] New Content Added Shop NPC (no functionality yet) Updates Enemy now drops Spiritual Stones Bugfixes & Refactor Fix Quest bug, it needs some nil value check protection. Fix Zone bug when player quit/disconnect, have to stop a task gracefully when the player disconnect. Refactor Inventory UI Component to use useMemo and make the Item Display Panel its own component. Zone Detection now only detect the user HumanoidRootPart for reliability and no jittery detection. No major progress today, just bugfixing and refactoring. I think im getting close to finishing the main loop of the gameplay. Cultivate -> Breakthrough -> Fight stronger enemy -> Buy better item in shop -> Cultivate -> Repeat."}, {"post_id": 41418, "ts": "2026-08-05T16:45:14Z", "hours": 4.5714, "text": "[Devlog #13] New Contents Added Marks for NPC with Quest Combat and Enemy! (Its partially done) The combat is still barebone, you get close to the enemy, the enemy got damaged by 1, when its hp is 0, it’ll add to the player totalEnemyKilled +1. Thats the current implementation. I will polish the combat feature and integrate it with the quest feature so that it tracks the amount of “enemy” killed."}, {"post_id": 40786, "ts": "2026-08-04T15:21:08Z", "hours": 2.5389, "text": "[Devlog #12] New Content Added Spiritual Stone . a new currency with no functionality yet. I’ll be adding shop that uses Spiritual Stone as the currency. Updates Now, completing a quest gives reward . Currently, you can get spiritual stones or items from quests. Added Notification Badge in the inventory button UI for when player get a new item. Remodeled the Old Man to Mysterious Being . Next i’ll polish the npc interaction more by adding a “❓” for npc with quest, and “❗” for a finished quest. And maybe start building the next feature, that is herb collection/fighting enemy."}, {"post_id": 40130, "ts": "2026-08-03T15:06:52Z", "hours": 5.1494, "text": "[Devlog #11] New Contents Added Quest List UI on the right side of the screen. 2 New Sfx for Taking a quest and Completing a quest. Updates Improves NPC Dialog UI , look at Devlog #10 for comparison. Options in the dialog now have a keyboard shortcut with the corresponding number. For example: clicking 1 in keyboard will click the first option. Refactors Create a Close Button component for ease of use. Refactor Dialogue View UI by creating DialogueOptions component. I am very satisfied with the Quest List UI, its looking really clean and good. I also make another design for the dialogue rectangle, its subtle but there’s a pattern and gradient on the dialogue UI. Next work is adding more npc, quest, and actually adding the Quest Rewards . Im planning on adding Spiritual stones and shops for item that improves qi gain. And maybe adding weapon and enemy in the future."}, {"post_id": 39516, "ts": "2026-08-02T14:54:08Z", "hours": 3.6114, "text": "[Devlog #10] New Contents Added NPC Dialogs Added Quests Features Broo, this two thing is messing my brain especially with all the thing to consider… Atleast the ui is presentable and its functionality is basically done. Its quest progress is actually saved to the Player Data, but there is no progress update yet, and also i can repeatedly take this quest again and again… Ok the serverside makes the player to not be able to take same quest twice, so its safe. But the UI, there is not yet state/system to detect that the user already take the quest… My next work is probably: Updating UI so that it knows the player already took the Mission. Adding taken quest UI Update the quest progress, etc. OK everything i said sounds very confusing even to me . In conclusion, my next work is just finishing the quests features and polishing the UI."}, {"post_id": 38931, "ts": "2026-08-01T15:15:53Z", "hours": 5.4314, "text": "[Devlog #9] New Contents BIGGER MAP (Added more houses, trees, mountains, clouds, and floating island). Added 4 more Zones . Added Realm List Board beside Spawn, it has the Full list of All Realms level. Updates Qi Particle inside zone now have different color as qi multiplier gets higher. Color hierarchy: White –> Blue –> Purple –> Gold Increasing qi requirement for Realm 100+ (Immortals) [Kinda irrelevant right now, since its statistically impossible to get there]. Added better placeholder image for Item. Changed Item Background according to Whether player can equip it or not (Realm requirement met). Red for can’t equip, Blue for can equip, Green for equipped item. Refactors (Technical) Move Qi Breakthrough sfx from RealmService to the SoundService. Move Zone Detection to Serverside for security reason. I still haven’t refactored the Inventory UI yet and all the models is not made by me. The only model i made was the Realm Board List. But every UI is made by me! (except for the fire icon)."}, {"post_id": 38278, "ts": "2026-07-31T16:19:33Z", "hours": 4.4764, "text": "[Devlog #8] New Content Item !! You can get more Qi Multiplier from item. And theres also Realm Requirement for each item. Inventory UI is now working (except for Delete Button). Info For the UI, the Layout Order is prioritizing equipped item. If Player realm lower than requirement, the requirement text will be red. Implementing Inventory system was very complicated, especially the ui. So many state, maybe its because i put basically everything in one file. I’ll refactor that first before im adding new content, otherwise i’ll lose my mind editing that spaggeti code later down the line… Anyway, as you can see in the screenshot. I don’t have the asset for items yet. Maybe i’ll work on that later, though not the highest priority. My priority right now is to refactor the ui and implement the delete button and adding Equip Best button."}, {"post_id": 37660, "ts": "2026-07-30T15:33:17Z", "hours": 4.3217, "text": "[Devlog #7] New Content Added Background Music ! Added Music and Sfx toggle in Settings Added Walkspeed & Jump Boost from Realm level Added Sprint ! Press Left Shift to Sprint. Bug Fixes Fix Overhead Gui , Everyone now have the Overhead Gui, and the Realm Level is synced to the actual player Realm. P.S. Shop and Inventory is still empty… Its hard designing and actually implementing the UI… Also i have too much idea and at the end only think about it and dont know how to implement it"}, {"post_id": 37040, "ts": "2026-07-29T14:43:03Z", "hours": 3.4936, "text": "[Devlog #6] Update Force player to use R6 Model for simplicity. New Content Added a Forest around the map. Added Menu Button (Settings, Shop, Inventory) Added Modal UI Component (still empty) Added SFX for Button when clicked and hovered. P.S. Most of my time is spent on making the design for the Settings, Shop, and Inventory Icon. And also on the functionality of the button (open/closing modal). Next, i’ll probably work on adding more sfx and backsound for the game. And also make the gui of the shop and settings."}, {"post_id": 36378, "ts": "2026-07-28T13:36:41Z", "hours": 4.3125, "text": "[Devlog #5] Update Implemented zone Realm Requirement and Qi Multiplier . Updated the Map, Not Final! just want to make it look like a grass. New Content Added more Realm , i use the webnovel Top Tier Providence for reference of realm names. Added 3 New Zone ’s. Added Qi Popups where it shows how much qi you just gained with accumulation. Optimization Refactoring how the system detect player entering a zone . From Looping a function every frame to saving it to a State where if player enters a zone, it update the state to True and start giving qi every second. VERY EFFICIENT!! P.S. All the models (Houses & Waterfall) is NOT made by me, i got it from roblox creator store free assets"}, {"post_id": 35806, "ts": "2026-07-27T14:04:34Z", "hours": 0.8486, "text": "[Devlog #4] Update Balancing Qi realm requirement and Qi bonus from realm . New Content Added UI for Cultivating Area . The UI Contain the Realm Requirement to Cultivate there (If requirement is not met, you don’t get any qi), and Qi Multiplier for that Area (Multiply with the Qi bonus from realm ) P.S. The Cultivating Area UI is not yet dynamic, and the functionality of realm requirement and qi multiplier from area is not yet implemented. My next goal is to implement the Area functionality and add atleast 3 more area to cultivate."}, {"post_id": 35190, "ts": "2026-07-26T13:39:43Z", "hours": 5.6908, "text": "[Devlog #3] Update Implemented the functionality of the previous static UI. Now the progress bar UI and the overhead UI is dynamic following User Data. You now can Breakthrough to go to Higher Realm. Added SFX for breaking through. Info Realm increases player qi gains. The higher the realm, the higher the qi gains. P.S. The Overhead UI currently added above the current user (local), other player won’t have the Overhead UI for now. I’ll work for new feature first before fixing that."}, {"post_id": 34693, "ts": "2026-07-25T16:50:59Z", "hours": 2.9936, "text": "[Devlog #2] New Content Added New Progression Layer: Realm Added Progress Bar UI for Realm (Not yet dynamic) Added Overhead UI for Player Current Realm and Username (Not yet dynamic) Bugfixes Fix user detection enter an area (the big transparent box); The Box is an Area that gives qi per second when entered."}, {"post_id": 34378, "ts": "2026-07-25T01:26:07Z", "hours": 12.1419, "text": "[Devlog #1] I learned the basics of Roblox Studio, Plugins, making UI in Figma in this first 12 recorded hour. Theres not much yet because im just trying to set up the project and familiarize myself with the language. I use wally for depedency manager and github for versioning. I just wanna learn new stuff here, so don’t expect a fully polished game at the end. I Can only hope that i have the work ethics to finish this project (Having a proper game loop)."}]...
|
Title: Cultivation Incremental by @RanDK | Stardan Title: Cultivation Incremental by @RanDK | Stardance
Devlogs:
[Devlog #1] I learned the basics of Roblox Studio, Plugins, making UI in Figma in this first 12 recorded hour. Theres not much yet because im just trying to set up the project and familiarize myself with the language. I use wally for depedency manager and github for versioning. I just wanna learn new stuff here, so don’t expect a fully polished game at the end. I Can only hope that i have the work ethics to finish this project (Having a proper game loop).
[Devlog #2] New Content Added New Progression Layer: Realm Added Progress Bar UI for Realm (Not yet dynamic) Added Overhead UI for Player Current Realm and Username (Not yet dynamic) Bugfixes Fix user detection enter an area (the big transparent box); The Box is an Area that gives qi per second when entered.
[Devlog #3] Update Implemented the functionality of the previous static UI. Now the progress bar UI and the overhead UI is dynamic following User Data. You now can Breakthrough to go to Higher Realm. Added SFX for breaking through. Info Realm increases player qi gains. The higher the realm, the higher the qi gains. P.S. The Overhead UI currently added above the current user (local), other player won’t have the Overhead UI for now. I’ll work for new feature first before fixing that.
[Devlog #4] Update Balancing Qi realm requirement and Qi bonus from realm . New Content Added UI for Cultivating Area . The UI Contain the Realm Requirement to Cultivate there (If requirement is not met, you don’t get any qi), and Qi Multiplier for that Area (Multiply with the Qi bonus from realm ) P.S. The Cultivating Area UI is not yet dynamic, and the functionality of realm requirement and qi multiplier from area is not yet implemented. My next goal is to implement the Area functionality and add atleast 3 more area to cultivate.
[Devlog #5] Update Implemented zone Realm Requirement and Qi Multiplier . Updated the Map, Not Final! just want to make it look like a grass. New Content Added more Realm , i use the webnovel Top Tier Providence for reference of realm names. Added 3 New Zone ’s. Added Qi Popups where it shows how much qi you just gained with accumulation. Optimization Refactoring how the system detect player entering a zone . From Looping a function every frame to saving it to a State where if player enters a zone, it update the state to True and start giving qi every second. VERY EFFICIENT!! P.S. All the models (Houses & Waterfall) is NOT made by me, i got it from roblox creator store free assets
[Devlog #6] Update Force player to use R6 Model for simplicity. New Content Added a Forest around the map. Added Menu Button (Settings, Shop, Inventory) Added Modal UI Component (still empty) Added SFX for Button when clicked and hovered. P.S. Most of my time is spent on making the design for the Settings, Shop, and Inventory Icon. And also on the functionality of the button (open/closing modal). Next, i’ll probably work on adding more sfx and backsound for the game. And also make the gui of the shop and settings.
[Devlog #7] New Content Added Background Music ! Added Music and Sfx toggle in Settings Added Walkspeed & Jump Boost from Realm level Added Sprint ! Press Left Shift to Sprint. Bug Fixes Fix Overhead Gui , Everyone now have the Overhead Gui, and the Realm Level is synced to the actual player Realm. P.S. Shop and Inventory is still empty… Its hard designing and actually implementing the UI… Also i have too much idea and at the end only think about it and dont know how to implement it
[Devlog #8] New Content Item !! You can get more Qi Multiplier from item. And theres also Realm Requirement for each item. Inventory UI is now working (except for Delete Button). Info For the UI, the Layout Order is prioritizing equipped item. If Player realm lower than requirement, the requirement text will be red. Implementing Inventory system was very complicated, especially the ui. So many state, maybe its because i put basically everything in one file. I’ll refactor that first before im adding new content, otherwise i’ll lose my mind editing that spaggeti code later down the line… Anyway, as you can see in the screenshot. I don’t have the asset for items yet. Maybe i’ll work on that later, though not the highest priority. My priority right now is to refactor the ui and implement the delete button and adding Equip Best button.
[Devlog #9] New Contents BIGGER MAP (Added more houses, trees, mountains, clouds, and floating island). Added 4 more Zones . Added Realm List Board beside Spawn, it has the Full list of All Realms level. Updates Qi Particle inside zone now have different color as qi multiplier gets higher. Color hierarchy: White –> Blue –> Purple –> Gold Increasing qi requirement for Realm 100+ (Immortals) [Kinda irrelevant right now, since its statistically impossible to get there]. Added better placeholder image for Item. Changed Item Background according to Whether player can equip it or not (Realm requirement met). Red for can’t equip, Blue for can equip, Green for equipped item. Refactors (Technical) Move Qi Breakthrough sfx from RealmService to the SoundService. Move Zone Detection to Serverside for security reason. I still haven’t refactored the Inventory UI yet and all the models is not made by me. The only model i made was the Realm Board List. But every UI is made by me! (except for the fire icon).
[Devlog #10] New Contents Added NPC Dialogs Added Quests Features Broo, this two thing is messing my brain especially with all the thing to consider… Atleast the ui is presentable and its functionality is basically done. Its quest progress is actually saved to the Player Data, but there is no progress update yet, and also i can repeatedly take this quest again and again… Ok the serverside makes the player to not be able to take same quest twice, so its safe. But the UI, there is not yet state/system to detect that the user already take the quest… My next work is probably: Updating UI so that it knows the player already took the Mission. Adding taken quest UI Update the quest progress, etc. OK everything i said sounds very confusing even to me . In conclusion, my next work is just finishing the quests features and polishing the UI.
[Devlog #11] New Contents Added Quest List UI on the right side of the screen. 2 New Sfx for Taking a quest and Completing a quest. Updates Improves NPC Dialog UI , look at Devlog #10 for comparison. Options in the dialog now have a keyboard shortcut with the corresponding number. For example: clicking 1 in keyboard will click the first option. Refactors Create a Close Button component for ease of use. Refactor Dialogue View UI by creating DialogueOptions component. I am very satisfied with the Quest List UI, its looking really clean and good. I also make another design for the dialogue rectangle, its subtle but there’s a pattern and gradient on the dialogue UI. Next work is adding more npc, quest, and actually adding the Quest Rewards . Im planning on adding Spiritual stones and shops for item that improves qi gain. And maybe adding weapon and enemy in the future.
[Devlog #12] New Content Added Spiritual Stone . a new currency with no functionality yet. I’ll be adding shop that uses Spiritual Stone as the currency. Updates Now, completing a quest gives reward . Currently, you can get spiritual stones or items from quests. Added Notification Badge in the inventory button UI for when player get a new item. Remodeled the Old Man to Mysterious Being . Next i’ll polish the npc interaction more by adding a “❓” for npc with quest, and “❗” for a finished quest. And maybe start building the next feature, that is herb collection/fighting enemy.
[Devlog #13] New Contents Added Marks for NPC with Quest Combat and Enemy! (Its partially done) The combat is still barebone, you get close to the enemy, the enemy got damaged by 1, when its hp is 0, it’ll add to the player totalEnemyKilled +1. Thats the current implementation. I will polish the combat feature and integrate it with the quest feature so that it tracks the amount of “enemy” killed.
[Devlog #14] New Content Added Shop NPC (no functionality yet) Updates Enemy now drops Spiritual Stones Bugfixes & Refactor Fix Quest bug, it needs some nil value check protection. Fix Zone bug when player quit/disconnect, have to stop a task gracefully when the player disconnect. Refactor Inventory UI Component to use useMemo and make the Item Display Panel its own component. Zone Detection now only detect the user HumanoidRootPart for reliability and no jittery detection. No major progress today, just bugfixing and refactoring. I think im getting close to finishing the main loop of the gameplay. Cultivate -> Breakthrough -> Fight stronger enemy -> Buy better item in shop -> Cultivate -> Repeat.
[Devlog #15] Update Added UI for NPC Shop Spent all of my time designing the UI… i still dont like the yellow box, but it’ll do for now. Next i’ll be making it dynamic and functionable.
[Devlog #16] New Content Added 5 new Items you can buy. Updates Implemented the Functionality of the NPC Shop. You can now buy items here. Updated the Shop UI, now it looks better compared to previous version. Spent most of my times debugging the UI since i reuse the modal component that the main menu uses. So yea, i integrate the npc shop inside it and that creates a lot of bugs and conflict . Well i fixed all the bug i found so thats good. Now that the main features is done the next step is to polish the map and adding the game content (More NPC, Quest & Items)
[Devlog #17] Update Make the Breakthrough bar slimmer and more compact. Im kinda busy today and havent done anything yet, so im just improving the ui a little bit. Also i wanna add a Current Qi Multiplier Counter at the Top Right Corner of the screen using the fire gif.
[Devlog #18] New Content Added Qi Mult Counter when entered a Zone. The fire has animation Added Leaderboard . (UI is In Progress) . Spent most of my time making UI Animation using sprite sheet and integrate DataStoreService for leaderboard
[Devlog #19] Update New UI for Leaderboard! I’ll be polishing the game (for real) and release the first version tommorow (hopefully)… Im getting really busy
[Devlog #20] Update Added 1 more quest New Assets Added Game Icon and Thumbnail Spent most of my time on figma designing the Icon and Thumbnail of the game, but the time is not getting tracked because i use the app instead from web . Not yet released, but i’ll be testing it first with a few friends first and maybe add some feature because ngl it feels bland right now, but maybe its just my opinion. So to get some feedback, ill be testing it with my friends tommorow and maybe catch some multiplayer bugs that i couldn’t find when playing alone. I really don’t want to publish a boring game, but the time is ticking and im getting more and more busy this month.
[Devlog #21] Updates Added a proper README. Fixed some minor bugs. The next devlog will be for a published Game . Its not a professional Roblox game, but its my learning process from 0 to this. So i appreciate any type of critics and feedback for me to develop this game furthur, because i really love these type of games. So im literally making my dream game here! But its still lacking to my vision because of my lack of time and skills.
[Devlog #22] New Contents Added 1 more enemy, goblin. Update Remove the realm requirement in NPC Shop for buying an item (Cannot buy the item until realm req is fulfilled). The requirement now only active when trying to equip the item. Fixed quest id being duplicated. im back!! hopefully i can make some more stuff although i may not have as much free time as before. I’ll try to make some progress everyday though! Try it Now Game may not be up to date from the devlog Cultivation Incremental (16+)
[Devlog #23] New Content Added refresh countdown on leaderboard UI. Updates Moved enemy overhead gui from server to client (not yet tested for the behaviour in multiplayer) for more personalization (point 2 is possible because of this change). Dynamic enemy name color, higher realm will be colored red and cannot be attacked no matter how high your dmg is until you reach their cultivation rank. Polishing the game :))
[Devlog #24] New Content Added Onboarding/Tutorial ! I see a lot of player gets confused when they first joined the game, so now i added a tutorial on the basic of the game. That is: Cultivate, Shop, and Quest . Im really happy with the result, i didn’t expect making the trail line to be so easy (using beam instance from roblox themself). And maybe i’ll add onboarding for fighting enemy and equipping items, but its not really neccessary (i think).
[Devlog #25] Updates Added more quests Optimize NPCServiceUtils.Data JSON for NPC that gives Chained Quests. Mostly just optimizing the json by creating a helper so that making a quest is easier and less error prone.
[Devlog #26] New Content Added Cultivating Animation! Update Now you have to press “C” to cultivate rather than just automatically gain Qi just by entering the Qi Zone. Next one is to add button for mobile user, and also add UX feedback for when they’re able to press C to cultivate and when they can’t (outside zone & higher realm zone). Oh! also adding particle/aura when player is cultivating for more satisfying feel.
[Devlog #27] New Contents New Mobile Button to Cultivate New Shortcut UI to press “C” to Cultivate when entering a Zone they can cultivate in. New Tutorial Section to tell the player to press “C” to start cultivating and gathering qi. Update Player now can’t walk/jump when cultivating May need to revise the button for mobile since its very basic right now
[Devlog #28] New Content Added “Aura” like particle effect when cultivating, its more like you “suck” the surrounding qi into the body. Update Update the collision system to be more robust, before theres a problem with the collision when i try adding the Aura Part inside the Player. Now it will independently calculate the spatial rather than touching. Nothing crazy, just some cool small detail.
[Devlog #29] The Last Devlog The Game New Contents Gamepass! Now you can buy a gamepass to get a benefit and support me! + Gamepass badge on the bottom left of the screen when bought. Add beam/arrow to the quest npc when you’re done with their given quest. Add equip best button in the inventory menu. Add dmg mult information in the inventory meny (item detail menu). Updates Fix some bugs, for example player able to move while cultivating. Optimize and remove unused leaderboards. ready to publish it! Thank you for the opportunity Hackclub for me to grow as a beginner roblox developer I appreciate the support from everyone although my game is far from “professional”, atleast its a fully working game! and Im happy with it.
Ships:
VERSION 0.0.1 Only 16+ can play the Game currently as any other new roblox game. I am glad to finish the essentials mechanic of the Game! Now here is the List of Features the game have: Cultivate, just stand on the existing zone (and make sure you have the required Realm) and you’ll gain Qi automatically Breakthrough, the moment the top bar is full, you can breakthrough to higher realm which increases your qi gain and boost movement speed and jump a little bit. Quest, you can talk to an NPC with a (!) to get the quest. After finishing a quest, you can talk to the NPC again to claim the quest rewards. Battle, you can walk to enemy and you’ll automatically deal damage to them! Shop, you can buy items in shopkeeper NPC with Spiritual Stones which you can get from defeating an enemy or finishing a quest. The feature is implemented, but its very simple and “unprofessional”. Lame excuse but its really because this is my first time making game and im still learning the basics. I’ll be adding more stuff and refine the core features in the future updates!! This game is made for the love of the game and genre :)
VERSION 0.1 Only 16+ can play the Game currently as any other new roblox game. I am glad to add more of the essentials mechanic of the Game! Now here is the List of Features i have added to the game since the last release: Added Onboarding/Tutorial! I see a lot of player gets confused when they first joined the game, so now i added a tutorial on the basic of the game. That is: Cultivate, Shop, and Quest. Added New Enemy : Goblin. Added More quests . Added Cultivating Animation! Added Gamepass! Now you can buy a gamepass to get a benefit and support me! + Gamepass badge on the bottom left of the screen when bought. And more! you can read all the devlogs to see the small changes. I still have some features not yet implemented, that is fighting enemy animation, weapons, and PVP . But i don’t really have the courage since the Stardance deadline is within 3 weeks (and its already extended), but i do have plan to continue the project later in December for my own personal project (close sourced, even though right now its already semi close source since the models, maps i used is not in the code but in the roblox studio file.). Thanks for everyone who have followed the game journey, albeit short i thank you guys for supporting me!! (Especially those who bought my gamepass!!) . I CANT BELIEVE I GOT MY FIRST ROBUX FROM MAKING A GAME HERE IN STARDANCE :DD THANK YOU SO MUCH!!! This Game is Made with the best of my Game Dev abilities ....
|
1793623861.4465406
|
1793710261.4465406
|
|
13061
|
GoDotWebs by @rickyred | Stardance
|
rickyred
|
1
|
41.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T11:52:05Z", "hours": 41.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "GoDotWebs auto-fills online applications and web forms using a saved profile, and provides outcome predictions and simulated reviewer feedback on the page you are applying to.", "repo": "https://github.com/RedTotally/godotwebs-closed-source", "demo": "https://godotwebs.com/"}]...
|
[{"post_id": 10494, "ts": "202 [{"post_id": 10494, "ts": "2026-06-17T07:31:23Z", "hours": 9.1172, "text": "Now, it’s just me waiting for Google to approve the latest version of GoDotWebs’ extension. https://youtu.be/mglfqEzU0cg?si=78BLqf_MO6WqXgow"}, {"post_id": 8029, "ts": "2026-06-13T12:03:26Z", "hours": 4.3044, "text": "Submitted the extension; hope for the best."}, {"post_id": 7508, "ts": "2026-06-12T15:15:01Z", "hours": 5.8794, "text": "Cooking up the home page."}, {"post_id": 7344, "ts": "2026-06-12T07:41:14Z", "hours": 3.1031, "text": "Added onboarding; now there should only be skeleton loading and responsiveness left for me to work on. Then I can finally move to designing the home page & other pages."}, {"post_id": 6833, "ts": "2026-06-11T13:46:08Z", "hours": 3.8719, "text": "Did some UI updates."}, {"post_id": 6724, "ts": "2026-06-11T08:16:43Z", "hours": 0.6756, "text": "Also added web browsing to the simulation models generation."}, {"post_id": 6705, "ts": "2026-06-11T07:27:37Z", "hours": 2.4819, "text": "Just finished the new file page, where you tell GoDotWebs who you are, and it will generate a full profile according to that. Then, you may use the extension to fill out your applications, and it will be based on the profile."}, {"post_id": 6639, "ts": "2026-06-11T03:59:20Z", "hours": 3.2383, "text": "Kind of designed the dashboard, still a long way to go. Hopefully, I can ship it very soon."}, {"post_id": 6095, "ts": "2026-06-10T07:42:54Z", "hours": 1.6053, "text": "Apart from filling out your forms, it also predicts the outcome of your application. You may also create models. They could be simulations of people who will comment on your application based on their trials. (UI’s still bad, I know, I will work on that later)"}, {"post_id": 6042, "ts": "2026-06-10T04:45:20Z", "hours": 6.5967, "text": "So, this is my first devlog. I am building an application filler. So when you are coding, your code editor will provide you with code completion. I took inspiration from it and thought I could make something like that, except for applications. Could be university, job, or event applications. UI is still scrappy, but I mainly focus on the UX first because to compete with similar products in the market, it is super essential."}]...
|
Title: GoDotWebs by @rickyred | Stardance
Devlogs Title: GoDotWebs by @rickyred | Stardance
Devlogs:
So, this is my first devlog. I am building an application filler. So when you are coding, your code editor will provide you with code completion. I took inspiration from it and thought I could make something like that, except for applications. Could be university, job, or event applications. UI is still scrappy, but I mainly focus on the UX first because to compete with similar products in the market, it is super essential.
Apart from filling out your forms, it also predicts the outcome of your application. You may also create models. They could be simulations of people who will comment on your application based on their trials. (UI’s still bad, I know, I will work on that later)
Kind of designed the dashboard, still a long way to go. Hopefully, I can ship it very soon.
Just finished the new file page, where you tell GoDotWebs who you are, and it will generate a full profile according to that. Then, you may use the extension to fill out your applications, and it will be based on the profile.
Also added web browsing to the simulation models generation.
Did some UI updates.
Added onboarding; now there should only be skeleton loading and responsiveness left for me to work on. Then I can finally move to designing the home page & other pages.
Cooking up the home page.
Submitted the extension; hope for the best.
Now, it’s just me waiting for Google to approve the latest version of GoDotWebs’ extension. https://youtu.be/mglfqEzU0cg?si=78BLqf_MO6WqXgow
Ships:
GoDotWebs auto-fills online applications and web forms using a saved profile, and provides outcome predictions and simulated reviewer feedback on the page you are applying to....
|
1793623863.7751315
|
1793710263.7751315
|
|
34424
|
NASA Daily by @Gooderswills | Stardance
|
Gooderswills
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-31T15:12:03Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I was able to make a custom website that updates everyday with NASA’s APOD using their API, it has some other features such as the date, copyright info and viewing the image in HD, hope you enjoy it!", "repo": "https://github.com/Gooderswills/NASA_Daily", "demo": "https://gooderswills.github.io/NASA_Daily/"}]...
|
[{"post_id": 38235, "ts": "202 [{"post_id": 38235, "ts": "2026-07-31T15:08:27Z", "hours": 2.0458, "text": "I followed the tutorial fully, when it was over and I had added all the features I decided to add some tweaks to the website to make it mine. For this I got rid of the side bars that were in the tutorial as I did not like them, I opted for a black background for a cleaner look, I added a header to make it look like a newspaper style, I rescaled the image so it had full quality and I added the date and copyright information from the api, Overall this was a very fun project."}]...
|
Title: NASA Daily by @Gooderswills | Stardance
De Title: NASA Daily by @Gooderswills | Stardance
Devlogs:
I followed the tutorial fully, when it was over and I had added all the features I decided to add some tweaks to the website to make it mine. For this I got rid of the side bars that were in the tutorial as I did not like them, I opted for a black background for a cleaner look, I added a header to make it look like a newspaper style, I rescaled the image so it had full quality and I added the date and copyright information from the api, Overall this was a very fun project.
Ships:
I was able to make a custom website that updates everyday with NASA’s APOD using their API, it has some other features such as the date, copyright info and viewing the image in HD, hope you enjoy it!...
|
1793623864.9793067
|
1793710264.9793067
|
|
26702
|
Simhub - A gaming macropad by @raghavsharma1214 | Simhub - A gaming macropad by @raghavsharma1214 | Stardance...
|
raghavsharma1214
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T19:56:15Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A custom macropad, where I design a small keyboard to address all of my sim-racing needs. This is mainly a design project for now. I won’t be able to recieve the parts I got funding for (so I didn’t use the funding) before September 30th, so I’m submitting this design. This macropad stands out from other ones because clicking down on the rotary encoder toggles it from custom macro shortcuts to a classic numpad. This is my first time using freecad and KiCAD, so appreciate your feedback. This macropad consists of 12 switches and one rotary encoder with a switch feature. It is designed with a 3d-printable body, so feel free to use whatever colors you want! Same with the rotary encoder knob. Thanks a lot guys, this mission really taught me well about CAD and PCB design. It paved the way to my current project, which you can check in my profile.", "repo": "https://github.com/dogman1214/Simhub/", "demo": ""}]...
|
[{"post_id": 43081, "ts": "202 [{"post_id": 43081, "ts": "2026-08-08T04:53:31Z", "hours": 1.0603, "text": "Just wrapping up the github information"}, {"post_id": 27037, "ts": "2026-07-12T06:25:17Z", "hours": 1.5942, "text": "Everthing is practically done! The github is set up, the demo is linked. I just have to recieve the files. Although I did encounter a big bummer… Apparently I don’t get stardust from this."}, {"post_id": 25759, "ts": "2026-07-10T06:29:01Z", "hours": 8.3925, "text": "blendering and whatnot Trying to see how to improve the example image. But I’m also building the github, along with drafting the silkscreen I’m trying to follow the guide, but improve on eveyrthing, like a better and more extensive readme and whatnot. As per the blender render, I’m taking feedback from my family to see what is too much and what to improve."}, {"post_id": 25178, "ts": "2026-07-09T07:12:30Z", "hours": 2.71, "text": "Blendering and Rendering I imported my model into blender for rendering a nice photo so that people have a good idea what I’m making. Probably will re-render with some adjustments, along with turning on denoise and then adding some artificial ISO noise. But hopefully the first ship is coming by soon!"}, {"post_id": 25033, "ts": "2026-07-08T23:37:59Z", "hours": 0.8453, "text": "just working on refining things not much up"}, {"post_id": 24488, "ts": "2026-07-08T01:54:31Z", "hours": 1.2003, "text": "FreeCAD Slop Adjusting to FreeCAD is difficult after fusion doesn’t work anymore. After long coercion I am able to create a rough sketch that I can develop further. fingers crossed, I can hopefully finish this project nice and tidy!"}, {"post_id": 20501, "ts": "2026-07-02T03:18:12Z", "hours": 2.5833, "text": "Fusion Failed… Fusion CAD software is genuinely terrible. Doesn’t work on my RTX 4080 even after multiple reinstalls. So I switched to FreeCAD. It is pretty different, but I am getting the hang of it. I have completed a lot of the CAD work for this project, so we are getting there, to the point where we are done I guess…"}, {"post_id": 18084, "ts": "2026-06-29T02:29:27Z", "hours": 2.1094, "text": "Trying to fix FUSION. I have ZERO IDEA why fusion isn’t working, just a blank screen. Tried all fixes on the web, but to no avail. Anyone here please help"}, {"post_id": 17310, "ts": "2026-06-28T01:10:19Z", "hours": 0.3333, "text": "Completed all the routing of the PCB I realized that routing is a very sketchy task, especially for someone as inexperienced in this field as me. Fortunately, I found a plugin that does the routing for you! It is called “Autorouting” Please check it out, its really a life-saver. Now onto the CAD portion of this project."}, {"post_id": 17294, "ts": "2026-06-28T00:46:10Z", "hours": 0.7681, "text": "Finished wiring the schematics. I want to use 12 keys so that in the sim-racing game, I can set views, change traction control, brake balance, and all of the intricates. I am also including one rotary encoder for things like volume control, so I can turn down the volume when my parents come by :)"}, {"post_id": 17260, "ts": "2026-06-27T23:47:46Z", "hours": 0.2506, "text": "Setting things up initially. I don’t really know how kicad works, but that’s fine. I’ll learn. The struggle right now, is importing everything. I belive I imported the libraries required, but I can’t find the symbols, which is wierd. Cheers!"}]...
|
Title: Simhub - A gaming macropad by @raghavsharma Title: Simhub - A gaming macropad by @raghavsharma1214 | Stardance
Devlogs:
Setting things up initially. I don’t really know how kicad works, but that’s fine. I’ll learn. The struggle right now, is importing everything. I belive I imported the libraries required, but I can’t find the symbols, which is wierd. Cheers!
Finished wiring the schematics. I want to use 12 keys so that in the sim-racing game, I can set views, change traction control, brake balance, and all of the intricates. I am also including one rotary encoder for things like volume control, so I can turn down the volume when my parents come by :)
Completed all the routing of the PCB I realized that routing is a very sketchy task, especially for someone as inexperienced in this field as me. Fortunately, I found a plugin that does the routing for you! It is called “Autorouting” Please check it out, its really a life-saver. Now onto the CAD portion of this project.
Trying to fix FUSION. I have ZERO IDEA why fusion isn’t working, just a blank screen. Tried all fixes on the web, but to no avail. Anyone here please help
Fusion Failed… Fusion CAD software is genuinely terrible. Doesn’t work on my RTX 4080 even after multiple reinstalls. So I switched to FreeCAD. It is pretty different, but I am getting the hang of it. I have completed a lot of the CAD work for this project, so we are getting there, to the point where we are done I guess…
FreeCAD Slop Adjusting to FreeCAD is difficult after fusion doesn’t work anymore. After long coercion I am able to create a rough sketch that I can develop further. fingers crossed, I can hopefully finish this project nice and tidy!
just working on refining things not much up
Blendering and Rendering I imported my model into blender for rendering a nice photo so that people have a good idea what I’m making. Probably will re-render with some adjustments, along with turning on denoise and then adding some artificial ISO noise. But hopefully the first ship is coming by soon!
blendering and whatnot Trying to see how to improve the example image. But I’m also building the github, along with drafting the silkscreen I’m trying to follow the guide, but improve on eveyrthing, like a better and more extensive readme and whatnot. As per the blender render, I’m taking feedback from my family to see what is too much and what to improve.
Everthing is practically done! The github is set up, the demo is linked. I just have to recieve the files. Although I did encounter a big bummer… Apparently I don’t get stardust from this.
Just wrapping up the github information
Ships:
A custom macropad, where I design a small keyboard to address all of my sim-racing needs. This is mainly a design project for now. I won’t be able to recieve the parts I got funding for (so I didn’t use the funding) before September 30th, so I’m submitting this design. This macropad stands out from other ones because clicking down on the rotary encoder toggles it from custom macro shortcuts to a classic numpad. This is my first time using freecad and KiCAD, so appreciate your feedback. This macropad consists of 12 switches and one rotary encoder with a switch feature. It is designed with a 3d-printable body, so feel free to use whatever colors you want! Same with the rotary encoder knob. Thanks a lot guys, this mission really taught me well about CAD and PCB design. It paved the way to my current project, which you can check in my profile....
|
1793623869.340516
|
1793710269.340516
|
|
37540
|
ShotOS by @OneShot | Stardance
|
OneShot
|
2
|
57.0
|
176
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T00:50:51Z", "hours": 33.0, "multiplier": 6.0, "payout": 176, "blessing": "neutral", "text": "I made a Web Os based after the game - OneShot", "repo": "https://github.com/Zlati839/ShotOs", "demo": "https://zlati839.github.io/ShotOs/"}, {"ship_num": 2, "ts": "2026-07-22T17:10:18Z", "hours": 24.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finished the WebOs1 Project :D !!!", "repo": "https://github.com/Zlati839/ShotOs", "demo": "https://zlati839.github.io/ShotOs/"}]...
|
[{"post_id": 45485, "ts": "202 [{"post_id": 45485, "ts": "2026-08-12T00:33:37Z", "hours": 12.0894, "text": "So . Added a loading screen a bar for the apps to stay in , it can also be hidden , Terminal and a draggable calendar widget"}, {"post_id": 39143, "ts": "2026-08-01T21:12:51Z", "hours": 9.3092, "text": "Made some changes 1. Finished the settings and now the wallpapers is changeable with four in total - two static and two live , and any customization is saved after the user leaves 2. Added a Drawing app that also saves after the user leaves 3. Added a Browser that’s just the OneShot wikipedia page 4. And a simple calculator page"}, {"post_id": 36072, "ts": "2026-07-27T22:32:20Z", "hours": 11.3989, "text": "Added a Task bar , changed the clock app to settings , added a minimize button to the apps and made an app catalog !!!! :D"}, {"post_id": 33060, "ts": "2026-07-22T17:07:13Z", "hours": 0.47, "text": "Made settings for the Clock for now you can change color and hide it"}, {"post_id": 32979, "ts": "2026-07-22T14:27:01Z", "hours": 9.5464, "text": "Made a Music Player too !!!!! For now there are only 6 songs in it"}, {"post_id": 31668, "ts": "2026-07-20T08:33:48Z", "hours": 13.6178, "text": "made the File manager it has README and 2 foulders"}]...
|
Title: ShotOS by @OneShot | Stardance
Devlogs:
ma Title: ShotOS by @OneShot | Stardance
Devlogs:
made the File manager it has README and 2 foulders
Made a Music Player too !!!!! For now there are only 6 songs in it
Made settings for the Clock for now you can change color and hide it
Added a Task bar , changed the clock app to settings , added a minimize button to the apps and made an app catalog !!!! :D
Made some changes 1. Finished the settings and now the wallpapers is changeable with four in total - two static and two live , and any customization is saved after the user leaves 2. Added a Drawing app that also saves after the user leaves 3. Added a Browser that’s just the OneShot wikipedia page 4. And a simple calculator page
So . Added a loading screen a bar for the apps to stay in , it can also be hidden , Terminal and a draggable calendar widget
Ships:
Finished the WebOs1 Project :D !!!
I made a Web Os based after the game - OneShot...
|
1793623871.6725888
|
1793710271.6725888
|
|
35939
|
NASA website(not really) by @Harman | Stardance
|
Harman
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-18T10:40:25Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website that displays NASA’s astronomical picture of the day, its title and description. It also shows countdown to next picture of the day.", "repo": "https://github.com/Harmancpu/nasadatastolen", "demo": "https://harmancpu.github.io/nasadatastolen/"}]...
|
[{"post_id": 30618, "ts": "202 [{"post_id": 30618, "ts": "2026-07-18T10:37:30Z", "hours": 0.3581, "text": "Hey, there was a problem that sometimes nasa gives a youtube link as APOD. If that wouldve happened, my script wouldnt have handled that earlier. the tag won’t work for youtube links. you need an instead. now it is all done :) ."}, {"post_id": 30600, "ts": "2026-07-18T09:40:11Z", "hours": 2.7011, "text": "Hello, today i am writing about how i got hold of the secret NASA data that everyone has access to for free. Dont say the UI looks bad because i went with the same color combination as in the guide aand the container holding the precious NASA data has the almost same shape. I used https://bennettfeely.com/clippy/ to make the css for this shape as instructed in guide. I spent most of the time writing scripts………….. and debugging it. No matter how hard i tried the APOD wont load. I kept getting “Cannot set properties of null.” I had react mounting to #root, but i’d also written vanilla JS that was doing innerHTML on stuff — so basically two systems fighting over the same dom and it kept throwing “cannot set properties of null.” I was dumb enough to not figure it out before opening ChatGPT. It just said screw it and I ripped react out completely. Also, i got a live countdown to next APOD!!!! Now i js wanna goto sleep, i will write readme and ship it. byeeee"}]...
|
Title: NASA website(not really) by @Harman | Stard Title: NASA website(not really) by @Harman | Stardance
Devlogs:
Hello, today i am writing about how i got hold of the secret NASA data that everyone has access to for free. Dont say the UI looks bad because i went with the same color combination as in the guide aand the container holding the precious NASA data has the almost same shape. I used https://bennettfeely.com/clippy/ to make the css for this shape as instructed in guide. I spent most of the time writing scripts………….. and debugging it. No matter how hard i tried the APOD wont load. I kept getting “Cannot set properties of null.” I had react mounting to #root, but i’d also written vanilla JS that was doing innerHTML on stuff — so basically two systems fighting over the same dom and it kept throwing “cannot set properties of null.” I was dumb enough to not figure it out before opening ChatGPT. It just said screw it and I ripped react out completely. Also, i got a live countdown to next APOD!!!! Now i js wanna goto sleep, i will write readme and ship it. byeeee
Hey, there was a problem that sometimes nasa gives a youtube link as APOD. If that wouldve happened, my script wouldnt have handled that earlier. the tag won’t work for youtube links. you need an instead. now it is all done :) .
Ships:
I made a website that displays NASA’s astronomical picture of the day, its title and description. It also shows countdown to next picture of the day....
|
1793623872.8635533
|
1793710272.8635533
|
|
29443
|
Highlightly by @hasan | Stardance
|
hasan
|
1
|
69.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-06T22:48:52Z", "hours": 69.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Highlightly; https://highlightly.xyz/ ; A clip edititng tool for Valorant. Input clips from clipping softwares like medal.tv or record your own in game highlights, and then edit them into a youtube/tiktok format with auto generated captions, kill detection using AI, and special customizable effects.", "repo": "https://github.com/HasanRazaRawjani/Highlightly", "demo": "https://highlightly.xyz"}]...
|
[{"post_id": 23789, "ts": "202 [{"post_id": 23789, "ts": "2026-07-06T22:42:49Z", "hours": 8.4386, "text": "I made/compiled the .exe, I completely redid the website UI too."}, {"post_id": 23483, "ts": "2026-07-06T14:15:01Z", "hours": 23.2231, "text": "I trained my own ai using yolo v8 and a public database of valorant banners on roboflow for kill detection and optimized it to run in 5-10 seconds max on every 60 second clip."}, {"post_id": 22195, "ts": "2026-07-04T15:27:42Z", "hours": 16.9403, "text": "I worked on UI and style for my app."}, {"post_id": 21767, "ts": "2026-07-03T21:23:24Z", "hours": 15.7669, "text": "I have been working on the app"}, {"post_id": 21187, "ts": "2026-07-03T00:15:22Z", "hours": 2.9544, "text": "I finished the website: highlightly.xyz"}, {"post_id": 20866, "ts": "2026-07-02T16:14:09Z", "hours": 1.9142, "text": "Prototype 1, I can input files, and the program outputs them with auto-generated captions, music, and cropped out video format perfect for Youtube and TikTok."}]...
|
Title: Highlightly by @hasan | Stardance
Devlogs: Title: Highlightly by @hasan | Stardance
Devlogs:
Prototype 1, I can input files, and the program outputs them with auto-generated captions, music, and cropped out video format perfect for Youtube and TikTok.
I finished the website: highlightly.xyz
I have been working on the app
I worked on UI and style for my app.
I trained my own ai using yolo v8 and a public database of valorant banners on roboflow for kill detection and optimized it to run in 5-10 seconds max on every 60 second clip.
I made/compiled the .exe, I completely redid the website UI too.
Ships:
I made Highlightly; https://highlightly.xyz/ ; A clip edititng tool for Valorant. Input clips from clipping softwares like medal.tv or record your own in game highlights, and then edit them into a youtube/tiktok format with auto generated captions, kill detection using AI, and special customizable effects....
|
1793623881.5118392
|
1793710281.5118392
|
|
35126
|
My own site! by @Max_ | Stardance
|
Max_
|
1
|
1.69
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-19T14:35:50Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made this site cartoonish a bit. The hardest was to use Adobe Illustrator, because I don’t use it frequently(I usually draw in Paint :) ). But I’m happy with my site itself. I haven’t had any more idea yet, but I will develop it!!!", "repo": "https://github.com/OgArkad/MyPersonalSite", "demo": "https://ogarkad.github.io/MyPersonalSite/"}]...
|
[{"post_id": 32430, "ts": "202 [{"post_id": 32430, "ts": "2026-07-21T16:39:37Z", "hours": 0.3622, "text": "Made a little update :>"}, {"post_id": 31834, "ts": "2026-07-20T15:06:21Z", "hours": 0.3278, "text": "I updated a bit my site’s functionality :>"}, {"post_id": 30695, "ts": "2026-07-18T14:11:47Z", "hours": 0.62, "text": "Made the basic look of my own website"}]...
|
Title: My own site! by @Max_ | Stardance
Devlogs: Title: My own site! by @Max_ | Stardance
Devlogs:
Made the basic look of my own website
I updated a bit my site’s functionality :>
Made a little update :>
Ships:
I made this site cartoonish a bit. The hardest was to use Adobe Illustrator, because I don’t use it frequently(I usually draw in Paint :) ). But I’m happy with my site itself. I haven’t had any more idea yet, but I will develop it!!!...
|
1793623886.4654524
|
1794487886.4654524
|
|
8435
|
The Stupid Games by @therealpedcrec456 | Stardance
|
therealpedcrec456
|
1
|
2.0
|
4
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-05T18:46:25Z", "hours": 2.0, "multiplier": 1.64, "payout": 4, "blessing": "neutral", "text": "Made a collection of three simple python games to test my abilities. Had a lot of fun making it, hope you like testing it! Any feedback is welcome!", "repo": "https://github.com/R4141-BR/Play-Stupid-games-Win-Stupid-Prizes", "demo": "https://github.com/R4141-BR/Play-Stupid-games-Win-Stupid-Prizes/releases/download/Stupidggames/STUPIDGAMESSTUPIDPRIZES.exe"}]...
|
[{"post_id": 2840, "ts": "2026 [{"post_id": 2840, "ts": "2026-06-05T18:00:17Z", "hours": 2.2847, "text": "Made by first work for Hack club, felling excited about it! Stupid games is just a collection of three “games” I made it with what I currently know. I hope you guys enjoy it!"}]...
|
Title: The Stupid Games by @therealpedcrec456 | St Title: The Stupid Games by @therealpedcrec456 | Stardance
Devlogs:
Made by first work for Hack club, felling excited about it! Stupid games is just a collection of three “games” I made it with what I currently know. I hope you guys enjoy it!
Ships:
Made a collection of three simple python games to test my abilities. Had a lot of fun making it, hope you like testing it! Any feedback is welcome!...
|
1793623890.0584493
|
1793710290.0584493
|
|
19658
|
To-Do List by @smjp | Stardance
|
smjp
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-06T03:49:08Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Just wrapped up and deployed my To-Do List project. Key Features: Dynamic Workspaces: Users can create and switch between custom goal categories. Full CRUD Capabilities: Seamless task addition, input validation, and secure deletion routing. Interactive UI States: Real-time DOM manipulation that handles active, pending, and completed task states. The architecture focuses on clean state management and reliable event listeners.", "repo": "https://github.com/Spirit62/To-do-list", "demo": "https://spirit62.github.io/To-do-list/"}]...
|
[{"post_id": 23269, "ts": "202 [{"post_id": 23269, "ts": "2026-07-06T03:46:55Z", "hours": 0.8856, "text": "Added a green tick button which you can click after finishing a task and the text turns cut off after clicking on the green button it took some time but it looks neat and worth it"}, {"post_id": 16146, "ts": "2026-06-26T07:35:34Z", "hours": 0.6289, "text": "Hello, a very basic devlog: I added a ‘Do you want to delete’ Confirmation message alongside changed the entire preview and UI of the website so it looks neat and awesome"}, {"post_id": 13706, "ts": "2026-06-22T14:05:11Z", "hours": 1.5414, "text": "I upgraded my functional To-Do List web application to feature a dynamic, multi-list architecture that allows users to create custom categories and manage isolated task sets simultaneously. As a beginner learning JavaScript, the most challenging part of development was mastering nested state management (listTitles[activeListIndex].todolist), handling event bubbling using event.stopPropagation() so deleting a list didn’t accidentally activate it, and troubleshooting asynchronous rendering bugs where event listeners were trying to bind before the HTML was injected. However, now the application seamlessly syncs separate lists to local storage, handles input-specific Enter key listeners for both tasks and lists gracefully, and maintains clean visual state transitions, so I hope you all give it a try at least once and maybe suggest some improvements!"}, {"post_id": 13007, "ts": "2026-06-21T08:42:06Z", "hours": 1.13, "text": "Changed UI completely, added a create button, input element to enter name and save button for confirmation. Key features: Input box and save disappear and only appear when create is clicked and disappear after saving (does not recognize null value) For now it saves it in an array which I have stored in local storage, in the future will add a remove button to remove the contents of the array and ill add the array names to the list sequentially."}, {"post_id": 9744, "ts": "2026-06-16T05:13:56Z", "hours": 0.4278, "text": "I created a functional To-Do List web application featuring a clean, grid-aligned layout to manage daily tasks, track deadlines, and handle dynamic input. As a beginner learning JavaScript, the most challenging part of development was mastering array modifications, understanding how data passes by reference versus by value, and ensuring data state accumulated correctly outside of loops without wiping previous iterations. However, now the layout automatically re-sequences serial numbers perfectly when tasks are added or deleted, handles missing dates gracefully, and looks really sharp with its dark green styling, so I hope you all give it a try at least once and maybe suggest some improvements!"}]...
|
Title: To-Do List by @smjp | Stardance
Devlogs:
I Title: To-Do List by @smjp | Stardance
Devlogs:
I created a functional To-Do List web application featuring a clean, grid-aligned layout to manage daily tasks, track deadlines, and handle dynamic input. As a beginner learning JavaScript, the most challenging part of development was mastering array modifications, understanding how data passes by reference versus by value, and ensuring data state accumulated correctly outside of loops without wiping previous iterations. However, now the layout automatically re-sequences serial numbers perfectly when tasks are added or deleted, handles missing dates gracefully, and looks really sharp with its dark green styling, so I hope you all give it a try at least once and maybe suggest some improvements!
Changed UI completely, added a create button, input element to enter name and save button for confirmation. Key features: Input box and save disappear and only appear when create is clicked and disappear after saving (does not recognize null value) For now it saves it in an array which I have stored in local storage, in the future will add a remove button to remove the contents of the array and ill add the array names to the list sequentially.
I upgraded my functional To-Do List web application to feature a dynamic, multi-list architecture that allows users to create custom categories and manage isolated task sets simultaneously. As a beginner learning JavaScript, the most challenging part of development was mastering nested state management (listTitles[activeListIndex].todolist), handling event bubbling using event.stopPropagation() so deleting a list didn’t accidentally activate it, and troubleshooting asynchronous rendering bugs where event listeners were trying to bind before the HTML was injected. However, now the application seamlessly syncs separate lists to local storage, handles input-specific Enter key listeners for both tasks and lists gracefully, and maintains clean visual state transitions, so I hope you all give it a try at least once and maybe suggest some improvements!
Hello, a very basic devlog: I added a ‘Do you want to delete’ Confirmation message alongside changed the entire preview and UI of the website so it looks neat and awesome
Added a green tick button which you can click after finishing a task and the text turns cut off after clicking on the green button it took some time but it looks neat and worth it
Ships:
Just wrapped up and deployed my To-Do List project. Key Features: Dynamic Workspaces: Users can create and switch between custom goal categories. Full CRUD Capabilities: Seamless task addition, input validation, and secure deletion routing. Interactive UI States: Real-time DOM manipulation that handles active, pending, and completed task states. The architecture focuses on clean state management and reliable event listeners....
|
1793623891.5561073
|
1793710291.5561073
|
|
34089
|
Carnival Chaos by @Nico | Stardance
|
Nico
|
2
|
56.0
|
482
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-08T16:26:51Z", "hours": 30.0, "multiplier": 16.44, "payout": 482, "blessing": "neutral", "text": "Carnival Chaos Carnival Chaos is a short, WarioWare-like game with 7 fun minigames you need to complete to win Hay bale climb - Platform up the hay bales to collect the coins Whack-a-mole - Click on all the moles before time runs out Dunk Tank - rapidly click the target as fast as you can to dunk the person Water Gun - Spray the target with your water gun to fill up the meter and win High Striker - Hit the button with the hammer to ring the bell Tug of War - Hit quick-time events to pull on the rope. pull far enough to win Face Painting - Paint the face to match the template. If you are close enough to the guide, you win the game! Once you win, you’ll see how long you took. Click play again and see how fast you can go!. My fastest time is 90.30 seconds. Try to beat that! Have fun!!!", "repo": "https://github.com/DinoMito1/Carnival-Chaos", "demo": "https://dino-mito.itch.io/carnival-chaos"}, {"ship_num": 2, "ts": "2026-08-18T18:43:59Z", "hours": 26.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Carnival Chaos This is a WarioWare-like game There are 4 quick minigames you must complete to win A platformer - climb on hay bales and collect the coins Whack-a-mole - click all of the moles in time Dunk Tank - rapidly hit the target many times Water Gun - spray water at a target to fill up the bar and win When you win, you’ll see how long you took to win. Try again and see how fast you can go my fastest time is 31.10 seconds. Try beating that! Hope you have fun!", "repo": "https://github.com/DinoMito1/Carnival-Chaos", "demo": "https://dino-mito.itch.io/carnival-chaos"}]...
|
[{"post_id": 77720, "ts": "202 [{"post_id": 77720, "ts": "2026-10-08T02:44:08Z", "hours": 2.5572, "text": "One Last Devlog! This devlog will be a shorter one. There wasn’t to much work left to do, so this last section didn’t take too long. I added another option into settings, being a manual toggle for mobile controls, incase they dont turn on automatically for mobile users or you just want to try the controls on PC. I also made a pause button . During any level of the game you can press the button to pause the game and decide whether to continue or quit back to the start of the game. I can’t believe this game is finally finished! I’ll be shipping it very soon, but in the meantime, you can try the game here! Let me know what you think!"}, {"post_id": 73724, "ts": "2026-09-25T19:49:24Z", "hours": 10.935, "text": "THE FINAL MINIGAME!!! Took a while, but I finally finished minigame 7! You have to paint the face to match the reference image before time runs out. This minigame was super difficult to get working because i needed to edit the face texture during run time, and I had no idea how to do that. Once I got the drawing to work I ran into another problem – how do you beat the game? I ended up having it check every pixel of your drawing against the reference image and keeping track of how many are the same color and letting you win as long as you are at least 70% accurate. I thought I was finished, so I exported the game and gave it one last test. It didn’t work. For some reason, when I exported to web, none of the drawing parts would work and I had to recode parts of the minigame several times. Eventually I got everything working. I know I just complained a lot, but I am really proud of this. It’s easily the most difficult thing I’ve made yet. Go test the game, tell me what you think! You can try it here!"}, {"post_id": 68378, "ts": "2026-09-15T01:05:16Z", "hours": 8.6708, "text": "Minigame Six!!! It’s Tug of War! You have to hit the QTEs to pull the rope in your direction and win the minigame. I originally started making an entire different minigame, but after working on it for several hours I realized it wasn’t very fun at all and scrapped it. I spent forever tweaking with the different numbers for this game, trying to get it to feel nice to play, and I think its pretty fun now. I also tried showing off the game to my brothers on mobile and they really struggled to use the mobile arrow key things, so they helped me fix it so that the 1st and 4th minigame are easier to play on phone. I’m trying really hard to balance the difficulty for this while keeping this fun for everyone, but for those looking for a challenge, I am planning on adding a hard mode soon If you want to try the game, you can play it here !"}, {"post_id": 64563, "ts": "2026-09-09T02:17:49Z", "hours": 8.0703, "text": "I’m back with minigame five! This one is based on those hammer tower games I can never remember the name of You have to press spacebar when the hammer is above the button to swing down and ring the bell! I also added… MOBILE SUPPORT Every single minigame now works on mobile. I made custom arrow key buttons for the platforming and water gun game on mobile. I also slightly polished some older things, mainly the first two minigames, making it slightly more obvious when you win and playing a sad sound when you lose If you want to try the game, you can play it here Sorry its been a while since my last devlog. I’ve been on vacation for the last several days and now school has started again. I’ll try to make 2 more minigames for a total of 7, and then I will be happy to call this complete!"}, {"post_id": 47856, "ts": "2026-08-16T02:43:27Z", "hours": 6.0897, "text": "Fourth Minigame!!! You have to shoot the target with the water gun to fill up the bar in time to win the minigame. The target is constantly moving along a track so it is more difficult to stay on the target. I was struggling for a while to get this minigame feeling fun. Whenever I tested it, it always felt like something was missing so I tried a bunch of different stuff, like adding little sound effects or making the target react to being sprayed with water. I tried lots of different things, not all of them got used, but I think I’m happy with how this plays right now With the fourth minigame finished, I’d say the game is finished too. I just have to write the README and put it on Itch.io, then this will be fully done. You can expect to see this get shipped soon!"}, {"post_id": 45250, "ts": "2026-08-11T16:26:19Z", "hours": 5.9428, "text": "Minigame Number 3!!! Its a Dunk Tank! You have to hit the target a bunch of times before time runs out to dunk the person and win the minigame. My little brother wanted to help out with this one so I let him make the splash sound for the dunk tank. speaking of my brother, I let him play test everything once I finished this minigame and he seemed to really enjoy it. He was playing for 20+ minutes trying to get a fast time, so I’m feeling pretty good about the game right now. I also added a volume slider in settings, this is where most of my time was spent. I originally was going to make the slider change the decibel level of every sound in the game individually, but since decibels are logarithmic, I didn’t know how to mute the audio this way. After a while I figured out how to scale volume linearly, but the way I was doing would require me to redo all of the audio ingame. I spent multiple hours messing around with audio stuff trying to make the slider work how I wanted, until I thought that there has to be an easier way. Then I found out about Audio Buses. I did exactly what I was already doing to all of the sounds to only the Audio Bus instead and this fixed my several hour long problem almost immediately. Just one more minigame to go and I think this game will be finished!"}, {"post_id": 42864, "ts": "2026-08-07T20:25:01Z", "hours": 3.9539, "text": "You can win now! Yippee!!! I made a win screen that shows if you beat all the minigames and a loss screen that shows if you somehow run out of lives. Both of the screens have a big retry button that takes you back to the menu, so you wont have to reopen the game to play again anymore. The win screen also has a cool sign that shows off your time and your best time. Your best time is saved if you retry so you can try to win all minigames as fast as you can To keep track of your time I just start a timer as soon as you press the start button and then check how long its been once you win I also added sound!!! It felt way too quiet playing through the game so I added some simple sound effects for stuff like clicking buttons, whacking moles, jumping, and some others. The sound effects were super fun to make because they are all just my voice lol. I’m not sure why this took me so long to do, it didnt feel like that much stuff. Regardless, I think I’ll make two more minigames after this, and then this will be ready to ship!"}, {"post_id": 40541, "ts": "2026-08-04T05:13:34Z", "hours": 3.4028, "text": "Second minigame finished!!! This one is just like classic Whack-a-mole games. You have to hit all the moles in time to win! This minigame was actually the quickest and easiest thing to code so far. (Though i did spend an embarrassingly long time on the art) Instead most of my time in Godot was spent polishing some things I didn’t like too much yet. The coins in the first minigame float up and down now. I forgot to do this when I first made them. Instead of just disappearing, your lives, which are tickets, rip in two then fade away when you lose a minigame. Lastly, I put an indicator before each minigame to show what it’s controls are. Such as arrow keys or mouse. Then when the minigame starts it shows in big text on the screen what your goal is. For example on the platforming minigame it says COLLECT Sorry for the longer devlog, I had a lot of little things I did I thought were worth sharing. Im really starting to like how this is coming along, so you can expect to see more devlogs from me soon."}, {"post_id": 38491, "ts": "2026-07-31T22:02:27Z", "hours": 4.3592, "text": "Finished the platforming minigame! It is based on those big stacks of hay you can climb at carnivals sometimes. You have to try and collect three coins before time is up to win. I wanted to give the little character a walking animation but i was struggling to figure it out so they just have a slightly different sprite while walking. I messed around with the movement speed and minigame time for a while to try and get good so overall im pretty happy with this."}, {"post_id": 35593, "ts": "2026-07-27T03:57:05Z", "hours": 2.0839, "text": "Made the menu for Carnival Chaos. This is going to be a WarioWare-like game where you complete several different carnival themed minigames to win! I got distracted making the art for a while and decided to make the building animated, but it took me forever to figure out how to use timers. I know there’s not too much right now but please let me know if you have any thoughts or criticism!"}]...
|
Title: Carnival Chaos by @Nico | Stardance
Devlog Title: Carnival Chaos by @Nico | Stardance
Devlogs:
Made the menu for Carnival Chaos. This is going to be a WarioWare-like game where you complete several different carnival themed minigames to win! I got distracted making the art for a while and decided to make the building animated, but it took me forever to figure out how to use timers. I know there’s not too much right now but please let me know if you have any thoughts or criticism!
Finished the platforming minigame! It is based on those big stacks of hay you can climb at carnivals sometimes. You have to try and collect three coins before time is up to win. I wanted to give the little character a walking animation but i was struggling to figure it out so they just have a slightly different sprite while walking. I messed around with the movement speed and minigame time for a while to try and get good so overall im pretty happy with this.
Second minigame finished!!! This one is just like classic Whack-a-mole games. You have to hit all the moles in time to win! This minigame was actually the quickest and easiest thing to code so far. (Though i did spend an embarrassingly long time on the art) Instead most of my time in Godot was spent polishing some things I didn’t like too much yet. The coins in the first minigame float up and down now. I forgot to do this when I first made them. Instead of just disappearing, your lives, which are tickets, rip in two then fade away when you lose a minigame. Lastly, I put an indicator before each minigame to show what it’s controls are. Such as arrow keys or mouse. Then when the minigame starts it shows in big text on the screen what your goal is. For example on the platforming minigame it says COLLECT Sorry for the longer devlog, I had a lot of little things I did I thought were worth sharing. Im really starting to like how this is coming along, so you can expect to see more devlogs from me soon.
You can win now! Yippee!!! I made a win screen that shows if you beat all the minigames and a loss screen that shows if you somehow run out of lives. Both of the screens have a big retry button that takes you back to the menu, so you wont have to reopen the game to play again anymore. The win screen also has a cool sign that shows off your time and your best time. Your best time is saved if you retry so you can try to win all minigames as fast as you can To keep track of your time I just start a timer as soon as you press the start button and then check how long its been once you win I also added sound!!! It felt way too quiet playing through the game so I added some simple sound effects for stuff like clicking buttons, whacking moles, jumping, and some others. The sound effects were super fun to make because they are all just my voice lol. I’m not sure why this took me so long to do, it didnt feel like that much stuff. Regardless, I think I’ll make two more minigames after this, and then this will be ready to ship!
Minigame Number 3!!! Its a Dunk Tank! You have to hit the target a bunch of times before time runs out to dunk the person and win the minigame. My little brother wanted to help out with this one so I let him make the splash sound for the dunk tank. speaking of my brother, I let him play test everything once I finished this minigame and he seemed to really enjoy it. He was playing for 20+ minutes trying to get a fast time, so I’m feeling pretty good about the game right now. I also added a volume slider in settings, this is where most of my time was spent. I originally was going to make the slider change the decibel level of every sound in the game individually, but since decibels are logarithmic, I didn’t know how to mute the audio this way. After a while I figured out how to scale volume linearly, but the way I was doing would require me to redo all of the audio ingame. I spent multiple hours messing around with audio stuff trying to make the slider work how I wanted, until I thought that there has to be an easier way. Then I found out about Audio Buses. I did exactly what I was already doing to all of the sounds to only the Audio Bus instead and this fixed my several hour long problem almost immediately. Just one more minigame to go and I think this game will be finished!
Fourth Minigame!!! You have to shoot the target with the water gun to fill up the bar in time to win the minigame. The target is constantly moving along a track so it is more difficult to stay on the target. I was struggling for a while to get this minigame feeling fun. Whenever I tested it, it always felt like something was missing so I tried a bunch of different stuff, like adding little sound effects or making the target react to being sprayed with water. I tried lots of different things, not all of them got used, but I think I’m happy with how this plays right now With the fourth minigame finished, I’d say the game is finished too. I just have to write the README and put it on Itch.io, then this will be fully done. You can expect to see this get shipped soon!
I’m back with minigame five! This one is based on those hammer tower games I can never remember the name of You have to press spacebar when the hammer is above the button to swing down and ring the bell! I also added… MOBILE SUPPORT Every single minigame now works on mobile. I made custom arrow key buttons for the platforming and water gun game on mobile. I also slightly polished some older things, mainly the first two minigames, making it slightly more obvious when you win and playing a sad sound when you lose If you want to try the game, you can play it here Sorry its been a while since my last devlog. I’ve been on vacation for the last several days and now school has started again. I’ll try to make 2 more minigames for a total of 7, and then I will be happy to call this complete!
Minigame Six!!! It’s Tug of War! You have to hit the QTEs to pull the rope in your direction and win the minigame. I originally started making an entire different minigame, but after working on it for several hours I realized it wasn’t very fun at all and scrapped it. I spent forever tweaking with the different numbers for this game, trying to get it to feel nice to play, and I think its pretty fun now. I also tried showing off the game to my brothers on mobile and they really struggled to use the mobile arrow key things, so they helped me fix it so that the 1st and 4th minigame are easier to play on phone. I’m trying really hard to balance the difficulty for this while keeping this fun for everyone, but for those looking for a challenge, I am planning on adding a hard mode soon If you want to try the game, you can play it here !
THE FINAL MINIGAME!!! Took a while, but I finally finished minigame 7! You have to paint the face to match the reference image before time runs out. This minigame was super difficult to get working because i needed to edit the face texture during run time, and I had no idea how to do that. Once I got the drawing to work I ran into another problem – how do you beat the game? I ended up having it check every pixel of your drawing against the reference image and keeping track of how many are the same color and letting you win as long as you are at least 70% accurate. I thought I was finished, so I exported the game and gave it one last test. It didn’t work. For some reason, when I exported to web, none of the drawing parts would work and I had to recode parts of the minigame several times. Eventually I got everything working. I know I just complained a lot, but I am really proud of this. It’s easily the most difficult thing I’ve made yet. Go test the game, tell me what you think! You can try it here!
One Last Devlog! This devlog will be a shorter one. There wasn’t to much work left to do, so this last section didn’t take too long. I added another option into settings, being a manual toggle for mobile controls, incase they dont turn on automatically for mobile users or you just want to try the controls on PC. I also made a pause button . During any level of the game you can press the button to pause the game and decide whether to continue or quit back to the start of the game. I can’t believe this game is finally finished! I’ll be shipping it very soon, but in the meantime, you can try the game here! Let me know what you think!
Ships:
Carnival Chaos This is a WarioWare-like game There are 4 quick minigames you must complete to win A platformer - climb on hay bales and collect the coins Whack-a-mole - click all of the moles in time Dunk Tank - rapidly hit the target many times Water Gun - spray water at a target to fill up the bar and win When you win, you’ll see how long you took to win. Try again and see how fast you can go my fastest time is 31.10 seconds. Try beating that! Hope you have fun!
Carnival Chaos Carnival Chaos is a short, WarioWare-like game with 7 fun minigames you need to complete to win Hay bale climb - Platform up the hay bales to collect the coins Whack-a-mole - Click on all the moles before time runs out Dunk Tank - rapidly click the target as fast as you can to dunk the person Water Gun - Spray the target with your water gun to fill up the meter and win High Striker - Hit the button with the hammer to ring the bell Tug of War - Hit quick-time events to pull on the rope. pull far enough to win Face Painting - Paint the face to match the template. If you are close enough to the guide, you win the game! Once you win, you’ll see how long you took. Click play again and see how fast you can go!. My fastest time is 90.30 seconds. Try to beat that! Have fun!!!...
|
1793623894.2462018
|
1793710294.2462018
|
|
45646
|
TinyLilFella by @purpletue | Stardance
|
purpletue
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-22T19:08:11Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "After a few weeks of development, I am excited to introduce: TinyLilFella, the smallest STM32 devboard at least i can find. Featuring an STM32C071 and an absurdly small form factor, TinyLilFella is the devboard to go with if you need a smart dongle. no it doesn’t have wireless, susan. its this small. It’s got 10 GPIO, 6 of those being actual I/O and 4 being power! It also has an RGB LED to do whatever your heart desires!", "repo": "https://github.com/purpletue/TinyLilFella", "demo": ""}]...
|
[{"post_id": 48734, "ts": "202 [{"post_id": 48734, "ts": "2026-08-17T08:18:45Z", "hours": 0.5833, "text": "Finished the PCB COMPLETELY. THATS IT. DONE. NOTHING ELSE. i added a programmable button and a BOOT button, along with a power indicator."}, {"post_id": 45319, "ts": "2026-08-11T18:13:43Z", "hours": 1.2256, "text": "Made a bloody case in tinkercad. lets hope and pray my funding request gets approved."}, {"post_id": 43912, "ts": "2026-08-09T11:13:12Z", "hours": 0.6833, "text": "i finished the PCB!!! YAY!!!!!!!!!!!!!!!!!! THANK GOD FOR FREEROUTING YET AGAIN. uh can anybody help me out here how do i get a demo URL of a couple files in my computer…?"}, {"post_id": 43884, "ts": "2026-08-09T10:17:25Z", "hours": 1.2167, "text": "finished the schematic for my new project! wow this is gonna take a while for the PCB huh"}]...
|
Title: TinyLilFella by @purpletue | Stardance
Dev Title: TinyLilFella by @purpletue | Stardance
Devlogs:
finished the schematic for my new project! wow this is gonna take a while for the PCB huh
i finished the PCB!!! YAY!!!!!!!!!!!!!!!!!! THANK GOD FOR FREEROUTING YET AGAIN. uh can anybody help me out here how do i get a demo URL of a couple files in my computer…?
Made a bloody case in tinkercad. lets hope and pray my funding request gets approved.
Finished the PCB COMPLETELY. THATS IT. DONE. NOTHING ELSE. i added a programmable button and a BOOT button, along with a power indicator.
Ships:
After a few weeks of development, I am excited to introduce: TinyLilFella, the smallest STM32 devboard at least i can find. Featuring an STM32C071 and an absurdly small form factor, TinyLilFella is the devboard to go with if you need a smart dongle. no it doesn’t have wireless, susan. its this small. It’s got 10 GPIO, 6 of those being actual I/O and 4 being power! It also has an RGB LED to do whatever your heart desires!...
|
1793623898.2434218
|
1793710298.2434218
|
|
24955
|
Fun Learning Game by @lilfox | Stardance
|
lilfox
|
1
|
85.0
|
1895
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-11T21:09:47Z", "hours": 85.0, "multiplier": 18.47, "payout": 1895, "blessing": "neutral", "text": "This is especially made for the Chinese students I tutor! I made a boss fight game that uses shooter and (possibly) rpg elements to help the player practice kindergarten level English spelling. Just formulating the idea and incorporating it was challenging, though. From changing the genre of my game from a platformer to a boss-fight, to painstakingly drawing and animating the pixel art of the game, to learning Godot as a beginner…it’s been a wild ride! I’m proud that I was able to create a coherent and (hopefully) fun game, while learning new things about Godot and Aseprite. Nodes, signals, layers, frames, all bunched up together. While this is my first time making a game, I hope that my time and effort makes this an enjoyable experience for you! The link to my project is over at https://english-spelling-lesson.netlify.app (unfortunately this game requires a keyboard). G’ day. :)", "repo": "https://github.com/Foxlil/Educational-Game", "demo": "https://english-spelling-lesson.netlify.app"}]...
|
[{"post_id": 45410, "ts": "202 [{"post_id": 45410, "ts": "2026-08-11T20:46:52Z", "hours": 2.2011, "text": "I finished the game! :D Added sound effects for: Clicking buttons Player attacks Phoenix attacks Phoenix caw (to signal to the player that a barrage of projectiles is coming if they are too busy with the attack button) Background music! The quiz I finally added real questions! I wanted to focus on spelling for this one, so I used emojis and asked the user how the words representing them were spelled. Text stuff Added text instruction at the beginning Changed fonts of the text nodes featuring emojis (more on that later) Web shenanigans I wanted to make sure that the game would be available on devices that did not support downloading .exe (like chromebooks, for example). But uh…that was harder than I was expecting! I used netlify to create a url after exporting the game for html5. The first issue in business was that the camera was zoomed out when the website was launched, showing the gray blank space of the Godot dimension. This took a bit to figure out, but apparently I had to adjust the stretch mode and aspect in project settings. The second issue was that the emojis were showing up as white-boxed hex codes in the web version (for some reason!! >:( ). Turns out that I needed a different dedicated font for the emojis so that they could be compatable on all devices. Oh well, haha. At least it’s more accessible! :D (PS. I’m sincerely sorry for the terrible audio quality in the video, I can’t screen record and the speakers on this computer are outrageous :’) )"}, {"post_id": 45100, "ts": "2026-08-11T11:27:01Z", "hours": 9.2092, "text": "I’m so close to finishing the game! First of all, I finished the attack system. Basically, you answer a certain number of questions under the “attack” button, filling up the bar next to it. When it fills up, you unlock a new weapon. After it cools down, you can use it; but on the first time of cycling through every weapon, only once! As you complete more cycles, though, that increases to twice, then three times, etc. I also added pixel art to the buttons. I took away the “attack” label of the attack button because the students I tutor don’t know that word yet. Instead, I used an animation in hopes of incentivising them to click it. The other buttons include: The arrow Two arrows Copper sword Diamond sword Which brings me to my next development––when you click those buttons, there’s an actual attack! An arrow animation, a two-arrow animation, a copper sword animation, etc were added to the mix. I hope to add music, SFX, and maybe simple instructions for the future. Finally, I implemented a losing and winning screen using the same node in the system, detecting player and enemy health."}, {"post_id": 44537, "ts": "2026-08-10T11:24:26Z", "hours": 7.1533, "text": "I added functionality to the attack system! Now it can: Show the question and input text box when the attack button is clicked Detect correct answers and wrong answers I also added: An attack bar that stores how many answers you got correct. Once you’ve answered a certain number of questions correctly, I plan for a button on the left to unlock You may already notice the buttons in the bottom left! When I filled the bar once, one of the buttons unlocked, a timer ran out (signified by the white bar), and I could click the button. For the future: The buttons you have to unlock are actually buttons that allow you attack! So I’ll add different attack functionalities to different buttons. The buttons look kinda bland. I’m planning to add some sprites in place of the buttons. I’m thinking of putting some transparent gray space behind the text to make it more readable. I really hope I can finish this game next devlog! Seeya there! :)"}, {"post_id": 43967, "ts": "2026-08-09T13:15:35Z", "hours": 7.4439, "text": "I’ve put some of the pixel art into the game, and it’s looking good! The thing about the prototype is that it didn’t consider scale or size, so I had to change: The placement and zoom of the camera The size and tween animations of the quiz questions The player and enemy sprite + hitbox size However, I also finished: Health bars for the player and boss Tweens that would smoothly adjust the health (which was why the red health and the bar were drawn separately) Areas where the projectiles would be slow or fast. Initially this was controlled by timers, but I found that this was too buggy for my mom’s computer, so I just used area detection instead to make everything more consistent. For the future, I added: An attack button A text input box (line edit node) An area for the text questions (label node) For now, there is no function yet, but this will be used for an attack system. How it will work is that, when you press attack, you are given a question requiring a typed answer. Answering it correctly would send a powerful attack to the enemy, while answering it wrong would decrease your health by a little bit. Looking forward to implementing this system! (Also don’t worry, I’ll def add pixel art for the player and the arrows trust :D )"}, {"post_id": 43265, "ts": "2026-08-08T12:57:16Z", "hours": 4.2119, "text": "Wowee, I finished the background! I mostly worked on the tiles and shadows, which I hope makes the environment more immersive and detailed. I also added in some of the complete assets into Godot! While I still have some pixel art to work on, such as: The player Arrows The projectiles exploding animation I think now is a good time to take a break from Aseprite and work in Godot. Since the pixel art is already way smaller than the original prototype, here’s what I need to work on: Adjusting the game code to the new screen size Slowing down projectiles and adjusting the time when they slow down Changing the question tweens so that the text doesn’t fly off the screen Changing player position Adding in the health bar sprites with functionality Implementing animation phases for the boss (play this animation when attacking, play this animation when idling, etc) VFX and SFX"}, {"post_id": 42775, "ts": "2026-08-07T17:34:46Z", "hours": 6.3053, "text": "Worked on the background environment. Added: Pillars Doorway Brick texture Shading The most difficult thing for me is to make every element fit together. I hope I can finish the background today and probably work on the player and arrows. I also just realized that I should probably work on the projectile dissipating animation, too. Off to work!"}, {"post_id": 41906, "ts": "2026-08-06T12:38:02Z", "hours": 8.2169, "text": "After completing the phoenix (finally), here’s what I finished: The projectiles emitted from the boss. I wondered what it should be—a rock? A magic orb? Before realizing that it was a phoenix we were talking about, and that flames were basically their signature! I also added frame-by-frame animation to add more life to it. The boss health bar! It’s noticeably larger than the player’s, with a similar flame animation as the projectiles. It doesn’t have that gold sheen, but I hope it has its own unique style that gives off phoenix vibes! What I’m working on: The background! I’ve only created two pillars, but I’m planning on an entrance to a temple. To make the colors blend more together, I actually used the jumble tool! (The enemy is there as a reference to the size proportions) What I plan to do after finishing the background: Besides more pixel art (player, arrows), I want to implement the art into the game! The game’s framework is basically done, though I’ll definitely add more features so that it isn’t so repetitive. I also need to work on the health bars, which is exciting! :)"}, {"post_id": 41293, "ts": "2026-08-05T12:54:54Z", "hours": 7.2842, "text": "I’ve finally finished the phoenix! After finishing shading, I separated the key elements—head, body, wings—into different layers so that I could animate easier. Then I used the select tool to move and rotate the parts before fixing up the pixels. Unfortunately the wing feathers look wonky, but I’m not too sure how to approach that. After implementing ease in and out, here’s what I’ve completed : An idle animation (first four frames, and then reverse) An attack animation A transition to glowing eyes! A sudden burst of flame What I’ll be working on : The background pixel art The projectiles The boss health bar (The video has a clideo.com watermark because I needed to compress the video :( )"}, {"post_id": 40778, "ts": "2026-08-04T15:05:43Z", "hours": 9.1675, "text": "Today, I worked more on the phoenix’s wings and legs. I haven’t finished yet, but hopefully I’m close! Here’s what I’ve done: Fleshed out the shading and made the wings bigger two times Shaded the foot Added tufts to the phoenix head This has all been to make the bird look more like a phoenix! I’ve gotten criticism that it looks like a chicken, so I tried to make the proportions more accurate, sharpened the feathers, and tried to make the features fancier. I am told that it still looks like a chicken! Unfortunately, I’ve decided not to add flames, or make the bird thinner, or make the wings bigger (again), because this has already taken far too long! I haven’t even started animating yet! XD That’s not to say that these aren’t valid criticisms. These are very good suggestions, but I’d like to move on to other game art, not just the boss. I plan on finishing the art and at least starting animation, so that I can work on projectiles, the player, the boss health bar, etc! :)"}, {"post_id": 39411, "ts": "2026-08-02T11:12:32Z", "hours": 8.7511, "text": "Worked on the beginning boss of the game! I aimed to draw a feng huang — or phoenix — in Aseprite, but whoa, that took a lot more energy from me than expected! I focused on the head and body. Issues: Being a beginner in using Aseprite (I usually use pixilart.com) I didn’t remember to save :( I worked for about an hour on the face, but after my break and returning, I found that my work hadn’t saved!! Lesson learned: save every few seconds :P Design: After pasting the player health bar inside for a size comparison, I first blocked out the shape of the phoenix using a large 3x3 or 4x4 brush, with the main color. I started using a darker color to block out the features of the bird—feathers, eyes, etc… Then I attacked the birdie with bands of shading and lighting for each section of feather or eye to give more depth I decided to split the workflow into two different parts: the head and the body. You can notice how the feathers on the body look very different (and probably more wonky) from the feathers on the head and neck. Later this will help me separate out sections for animation :D What I should work on: Making the wings bigger (I am told that the phoenix looks like a chicken. ) Finishing the details of the feet and wings ANIMATION! Including: Idle Attack Damage I wonder how long that will take…haha…"}, {"post_id": 38607, "ts": "2026-08-01T02:44:58Z", "hours": 2.0886, "text": "I finished the player health bar in Aseprite! Design choices : The main mascot? Character? Of this educational game is a tiger. I wanted to reflect that while also taking inspiration from Chinese traditional lions (like those door knockers!) so here is a weird mashup! Lion? Tiger? Liger? No one shall know >:) I made it gold because yellow would definitely pop on the screen, which I hope would make it easy for players to locate on the screen. Also, gold gives a more heroic vibe :D Animation I wanted the animation to be simple, so it wouldn’t distract from the main game, but easy for the viewer to locate when needed. So I created a shiny light that travels across the bar using easing in, easing out, and smear frames! The plan is for this animation to occur from time to time, reminding the player of their health while also not being too distracting. Where is the actual red health? The red health is in another file, separate from the health bar The plan is to be able to crop out the red health as the health decreases, while ignoring the background bar. This allows for stylized health bars but fluid health decreasing/increasing animations!"}, {"post_id": 37769, "ts": "2026-07-30T18:02:46Z", "hours": 2.835, "text": "Now I have implemented a sort of “quiz” system. Added features: Arrays containing questions, choices, and corresponding correct answers Randomly chosen questions featured one at a time Detecting whether the player has shot the projectile featuring the correct answer, in which all the projectiles will destroy themselves Playing these features in a perpetual loop Features needed to be added I definitely need to add health to add some risk into the game! Art will play a big part in making this game fun :) EFFECTS - Such as screen shake or particles!"}, {"post_id": 37632, "ts": "2026-07-30T14:40:45Z", "hours": 7.2144, "text": "After getting the gist of Godot from Brackey’s tutorial, I decided to switch gears to a boss-fight type of game! What I added: The player rotates to face the mouse, allowing for aiming Left-clicking, or just simply tapping on the mouse pad, for shooting An area node for the boss A question appears on screen before triggering projectiles Projectiles from the boss, the number of which can be adjusted, are designed to be distanced by the same angle (ex 180/n, n being declared) A system using timer nodes that slows the game for a certain amount of time—allowing for the player to carefully aim and shoot—before returning to normal Why these features? Here’s the plan: The boss idles for a random amount of allotted time The boss then attacks! A randomly selected question—asking about adjectives, nouns, spelling, etc—appears on the screen. After being given enough time to read the question, projectiles with the answer choices are shot towards the player. If the player shoots the correct answer, the explosion harms the boss! But if the player shoots the wrong answer, the projectiles hurt them. I hope this makes learning English fun, but slightly fast-paced. Clearly I still have a lot to add! :)"}, {"post_id": 17821, "ts": "2026-06-28T19:12:16Z", "hours": 3.4136, "text": "Learned how to use Godot from the classic Brackeys tutorial: adding player movement, idle animation, tile set (testing), one way platforms, and moving platforms. Also created little tiger character as player! Need to add death, walking animation, better physics, and collectibles. Was hard for me to understand scenes and nodes but very rewarding in the end! :) Also planning to add the educational elements soon…"}]...
|
Title: Fun Learning Game by @lilfox | Stardance
D Title: Fun Learning Game by @lilfox | Stardance
Devlogs:
Learned how to use Godot from the classic Brackeys tutorial: adding player movement, idle animation, tile set (testing), one way platforms, and moving platforms. Also created little tiger character as player! Need to add death, walking animation, better physics, and collectibles. Was hard for me to understand scenes and nodes but very rewarding in the end! :) Also planning to add the educational elements soon…
After getting the gist of Godot from Brackey’s tutorial, I decided to switch gears to a boss-fight type of game! What I added: The player rotates to face the mouse, allowing for aiming Left-clicking, or just simply tapping on the mouse pad, for shooting An area node for the boss A question appears on screen before triggering projectiles Projectiles from the boss, the number of which can be adjusted, are designed to be distanced by the same angle (ex 180/n, n being declared) A system using timer nodes that slows the game for a certain amount of time—allowing for the player to carefully aim and shoot—before returning to normal Why these features? Here’s the plan: The boss idles for a random amount of allotted time The boss then attacks! A randomly selected question—asking about adjectives, nouns, spelling, etc—appears on the screen. After being given enough time to read the question, projectiles with the answer choices are shot towards the player. If the player shoots the correct answer, the explosion harms the boss! But if the player shoots the wrong answer, the projectiles hurt them. I hope this makes learning English fun, but slightly fast-paced. Clearly I still have a lot to add! :)
Now I have implemented a sort of “quiz” system. Added features: Arrays containing questions, choices, and corresponding correct answers Randomly chosen questions featured one at a time Detecting whether the player has shot the projectile featuring the correct answer, in which all the projectiles will destroy themselves Playing these features in a perpetual loop Features needed to be added I definitely need to add health to add some risk into the game! Art will play a big part in making this game fun :) EFFECTS - Such as screen shake or particles!
I finished the player health bar in Aseprite! Design choices : The main mascot? Character? Of this educational game is a tiger. I wanted to reflect that while also taking inspiration from Chinese traditional lions (like those door knockers!) so here is a weird mashup! Lion? Tiger? Liger? No one shall know >:) I made it gold because yellow would definitely pop on the screen, which I hope would make it easy for players to locate on the screen. Also, gold gives a more heroic vibe :D Animation I wanted the animation to be simple, so it wouldn’t distract from the main game, but easy for the viewer to locate when needed. So I created a shiny light that travels across the bar using easing in, easing out, and smear frames! The plan is for this animation to occur from time to time, reminding the player of their health while also not being too distracting. Where is the actual red health? The red health is in another file, separate from the health bar The plan is to be able to crop out the red health as the health decreases, while ignoring the background bar. This allows for stylized health bars but fluid health decreasing/increasing animations!
Worked on the beginning boss of the game! I aimed to draw a feng huang — or phoenix — in Aseprite, but whoa, that took a lot more energy from me than expected! I focused on the head and body. Issues: Being a beginner in using Aseprite (I usually use pixilart.com) I didn’t remember to save :( I worked for about an hour on the face, but after my break and returning, I found that my work hadn’t saved!! Lesson learned: save every few seconds :P Design: After pasting the player health bar inside for a size comparison, I first blocked out the shape of the phoenix using a large 3x3 or 4x4 brush, with the main color. I started using a darker color to block out the features of the bird—feathers, eyes, etc… Then I attacked the birdie with bands of shading and lighting for each section of feather or eye to give more depth I decided to split the workflow into two different parts: the head and the body. You can notice how the feathers on the body look very different (and probably more wonky) from the feathers on the head and neck. Later this will help me separate out sections for animation :D What I should work on: Making the wings bigger (I am told that the phoenix looks like a chicken. ) Finishing the details of the feet and wings ANIMATION! Including: Idle Attack Damage I wonder how long that will take…haha…
Today, I worked more on the phoenix’s wings and legs. I haven’t finished yet, but hopefully I’m close! Here’s what I’ve done: Fleshed out the shading and made the wings bigger two times Shaded the foot Added tufts to the phoenix head This has all been to make the bird look more like a phoenix! I’ve gotten criticism that it looks like a chicken, so I tried to make the proportions more accurate, sharpened the feathers, and tried to make the features fancier. I am told that it still looks like a chicken! Unfortunately, I’ve decided not to add flames, or make the bird thinner, or make the wings bigger (again), because this has already taken far too long! I haven’t even started animating yet! XD That’s not to say that these aren’t valid criticisms. These are very good suggestions, but I’d like to move on to other game art, not just the boss. I plan on finishing the art and at least starting animation, so that I can work on projectiles, the player, the boss health bar, etc! :)
I’ve finally finished the phoenix! After finishing shading, I separated the key elements—head, body, wings—into different layers so that I could animate easier. Then I used the select tool to move and rotate the parts before fixing up the pixels. Unfortunately the wing feathers look wonky, but I’m not too sure how to approach that. After implementing ease in and out, here’s what I’ve completed : An idle animation (first four frames, and then reverse) An attack animation A transition to glowing eyes! A sudden burst of flame What I’ll be working on : The background pixel art The projectiles The boss health bar (The video has a clideo.com watermark because I needed to compress the video :( )
After completing the phoenix (finally), here’s what I finished: The projectiles emitted from the boss. I wondered what it should be—a rock? A magic orb? Before realizing that it was a phoenix we were talking about, and that flames were basically their signature! I also added frame-by-frame animation to add more life to it. The boss health bar! It’s noticeably larger than the player’s, with a similar flame animation as the projectiles. It doesn’t have that gold sheen, but I hope it has its own unique style that gives off phoenix vibes! What I’m working on: The background! I’ve only created two pillars, but I’m planning on an entrance to a temple. To make the colors blend more together, I actually used the jumble tool! (The enemy is there as a reference to the size proportions) What I plan to do after finishing the background: Besides more pixel art (player, arrows), I want to implement the art into the game! The game’s framework is basically done, though I’ll definitely add more features so that it isn’t so repetitive. I also need to work on the health bars, which is exciting! :)
Worked on the background environment. Added: Pillars Doorway Brick texture Shading The most difficult thing for me is to make every element fit together. I hope I can finish the background today and probably work on the player and arrows. I also just realized that I should probably work on the projectile dissipating animation, too. Off to work!
Wowee, I finished the background! I mostly worked on the tiles and shadows, which I hope makes the environment more immersive and detailed. I also added in some of the complete assets into Godot! While I still have some pixel art to work on, such as: The player Arrows The projectiles exploding animation I think now is a good time to take a break from Aseprite and work in Godot. Since the pixel art is already way smaller than the original prototype, here’s what I need to work on: Adjusting the game code to the new screen size Slowing down projectiles and adjusting the time when they slow down Changing the question tweens so that the text doesn’t fly off the screen Changing player position Adding in the health bar sprites with functionality Implementing animation phases for the boss (play this animation when attacking, play this animation when idling, etc) VFX and SFX
I’ve put some of the pixel art into the game, and it’s looking good! The thing about the prototype is that it didn’t consider scale or size, so I had to change: The placement and zoom of the camera The size and tween animations of the quiz questions The player and enemy sprite + hitbox size However, I also finished: Health bars for the player and boss Tweens that would smoothly adjust the health (which was why the red health and the bar were drawn separately) Areas where the projectiles would be slow or fast. Initially this was controlled by timers, but I found that this was too buggy for my mom’s computer, so I just used area detection instead to make everything more consistent. For the future, I added: An attack button A text input box (line edit node) An area for the text questions (label node) For now, there is no function yet, but this will be used for an attack system. How it will work is that, when you press attack, you are given a question requiring a typed answer. Answering it correctly would send a powerful attack to the enemy, while answering it wrong would decrease your health by a little bit. Looking forward to implementing this system! (Also don’t worry, I’ll def add pixel art for the player and the arrows trust :D )
I added functionality to the attack system! Now it can: Show the question and input text box when the attack button is clicked Detect correct answers and wrong answers I also added: An attack bar that stores how many answers you got correct. Once you’ve answered a certain number of questions correctly, I plan for a button on the left to unlock You may already notice the buttons in the bottom left! When I filled the bar once, one of the buttons unlocked, a timer ran out (signified by the white bar), and I could click the button. For the future: The buttons you have to unlock are actually buttons that allow you attack! So I’ll add different attack functionalities to different buttons. The buttons look kinda bland. I’m planning to add some sprites in place of the buttons. I’m thinking of putting some transparent gray space behind the text to make it more readable. I really hope I can finish this game next devlog! Seeya there! :)
I’m so close to finishing the game! First of all, I finished the attack system. Basically, you answer a certain number of questions under the “attack” button, filling up the bar next to it. When it fills up, you unlock a new weapon. After it cools down, you can use it; but on the first time of cycling through every weapon, only once! As you complete more cycles, though, that increases to twice, then three times, etc. I also added pixel art to the buttons. I took away the “attack” label of the attack button because the students I tutor don’t know that word yet. Instead, I used an animation in hopes of incentivising them to click it. The other buttons include: The arrow Two arrows Copper sword Diamond sword Which brings me to my next development––when you click those buttons, there’s an actual attack! An arrow animation, a two-arrow animation, a copper sword animation, etc were added to the mix. I hope to add music, SFX, and maybe simple instructions for the future. Finally, I implemented a losing and winning screen using the same node in the system, detecting player and enemy health.
I finished the game! :D Added sound effects for: Clicking buttons Player attacks Phoenix attacks Phoenix caw (to signal to the player that a barrage of projectiles is coming if they are too busy with the attack button) Background music! The quiz I finally added real questions! I wanted to focus on spelling for this one, so I used emojis and asked the user how the words representing them were spelled. Text stuff Added text instruction at the beginning Changed fonts of the text nodes featuring emojis (more on that later) Web shenanigans I wanted to make sure that the game would be available on devices that did not support downloading .exe (like chromebooks, for example). But uh…that was harder than I was expecting! I used netlify to create a url after exporting the game for html5. The first issue in business was that the camera was zoomed out when the website was launched, showing the gray blank space of the Godot dimension. This took a bit to figure out, but apparently I had to adjust the stretch mode and aspect in project settings. The second issue was that the emojis were showing up as white-boxed hex codes in the web version (for some reason!! >:( ). Turns out that I needed a different dedicated font for the emojis so that they could be compatable on all devices. Oh well, haha. At least it’s more accessible! :D (PS. I’m sincerely sorry for the terrible audio quality in the video, I can’t screen record and the speakers on this computer are outrageous :’) )
Ships:
This is especially made for the Chinese students I tutor! I made a boss fight game that uses shooter and (possibly) rpg elements to help the player practice kindergarten level English spelling. Just formulating the idea and incorporating it was challenging, though. From changing the genre of my game from a platformer to a boss-fight, to painstakingly drawing and animating the pixel art of the game, to learning Godot as a beginner…it’s been a wild ride! I’m proud that I was able to create a coherent and (hopefully) fun game, while learning new things about Godot and Aseprite. Nodes, signals, layers, frames, all bunched up together. While this is my first time making a game, I hope that my time and effort makes this an enjoyable experience for you! The link to my project is over at https://english-spelling-lesson.netlify.app (unfortunately this game requires a keyboard). G’ day. :)...
|
1793623902.329813
|
1793710302.329813
|
|
41630
|
My own site! by @chahatesh | Stardance
|
chahatesh
|
1
|
7.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-04T15:34:38Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a cool portfolio page which is useful and fun and it really describes what my personality is. I put in a lot of hard work into this and I have never really made anything this complex or anything this good looking. So I hope you like it", "repo": "https://github.com/chahatesh/Chahatesh", "demo": "https://chahatesh.github.io/Chahatesh/"}]...
|
[{"post_id": 40783, "ts": "202 [{"post_id": 40783, "ts": "2026-08-04T15:14:53Z", "hours": 3.0847, "text": "Dev Log 2 - done Okay I spent about 30 minutes developing a simple system where I can just display all of my work and stuff. That’s kind of it. There are project cards which are really simple to use. There’s a class and a box and then that’s kind of it. I just copy and pasted them for all of my achievements and stuff and then just rearranged them and stuff. I added different texts in all of them. On top of that I also made a dedicated page which just shows all my projects. There are images which I put in Hack Club CBN and I got them that way."}, {"post_id": 40233, "ts": "2026-08-03T17:10:17Z", "hours": 3.4164, "text": "Dev Log 1 - Home I focused hard for about three hours today and built a really cool start to my project. My idea was to have a clean page that says ‘Hello, I am chahatesh ,’ with a smooth scrolling bar at the bottom. The bar will cycle through things I do, like ‘Hi, I am coding’ or ‘Hi, I am working.’ I got the typing animation to work perfectly on my own! The only tricky part was the background design. I got a little stuck, so I asked Claude to help me make a cool visual effect. I didn’t just copy it, though I made sure to study the code so I actually understood how it worked. I’m really happy with how the design looks!"}]...
|
Title: My own site! by @chahatesh | Stardance
Dev Title: My own site! by @chahatesh | Stardance
Devlogs:
Dev Log 1 - Home I focused hard for about three hours today and built a really cool start to my project. My idea was to have a clean page that says ‘Hello, I am chahatesh ,’ with a smooth scrolling bar at the bottom. The bar will cycle through things I do, like ‘Hi, I am coding’ or ‘Hi, I am working.’ I got the typing animation to work perfectly on my own! The only tricky part was the background design. I got a little stuck, so I asked Claude to help me make a cool visual effect. I didn’t just copy it, though I made sure to study the code so I actually understood how it worked. I’m really happy with how the design looks!
Dev Log 2 - done Okay I spent about 30 minutes developing a simple system where I can just display all of my work and stuff. That’s kind of it. There are project cards which are really simple to use. There’s a class and a box and then that’s kind of it. I just copy and pasted them for all of my achievements and stuff and then just rearranged them and stuff. I added different texts in all of them. On top of that I also made a dedicated page which just shows all my projects. There are images which I put in Hack Club CBN and I got them that way.
Ships:
I made a cool portfolio page which is useful and fun and it really describes what my personality is. I put in a lot of hard work into this and I have never really made anything this complex or anything this good looking. So I hope you like it...
|
1793623904.1407015
|
1793710304.1407015
|
|
20534
|
Sideline by @IshanS | Stardance
|
IshanS
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-12T19:39:04Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Sideline is an AI-powered coaching assistant that helps sports coaches capture voice observations during games without taking their eyes off the action. Coaches can quickly voice-record notes, which are transcribed and organized into actionable insights for film review and time-outs. The biggest challenge was designing a workflow that coaches could actually use in the middle of a match while integrating speech recognition and AI summarization. I’m most proud that our app has already been tested by our school’s varsity volleyball team during live playoff matches, and their feedback has already changed how we’re improving the product. If you’d like to test it, create a game session, record a few coaching observations, and explore the AI-generated summaries. We’d love to hear your feedback!", "repo": "https://github.com/IshanTheCoder/sideline", "demo": "https://sideline-ai.pages.dev/"}]...
|
[{"post_id": 26900, "ts": "202 [{"post_id": 26900, "ts": "2026-07-11T23:01:47Z", "hours": 1.4336, "text": "Over the past few months, my friend Sid and I have been building Sideline, an AI-powered coaching assistant for sports teams. The idea came from a simple question: How do coaches remember everything they notice during a game? During every volleyball rally, there are dozens of tiny observations (ie blocking timing, serve receive, positioning, communication) but once the match ends, many of those details disappear. We wondered if there was a faster way than clipboards or typing notes. So we built Sideline. During a match, coaches can quickly record voice observations. After the game, those recordings are automatically transcribed (using Whisper) and organized into summaries (using Groq) they can review or share with their team. The coolest part is that we’ve already had our school’s volleyball coaching staff test it during real playoff matches. One surprising thing we learned is that they used it less for player feedback and more for tracking opponent weaknesses, which we didn’t expect. We’re joining Hack Club Stardance to keep improving the app and continue learning modern web development. Looking forward to sharing our progress over the next few weeks. Note: we just made our landing page! Find it at: https://sideline-ai.pages.dev/ ."}]...
|
Title: Sideline by @IshanS | Stardance
Devlogs:
O Title: Sideline by @IshanS | Stardance
Devlogs:
Over the past few months, my friend Sid and I have been building Sideline, an AI-powered coaching assistant for sports teams. The idea came from a simple question: How do coaches remember everything they notice during a game? During every volleyball rally, there are dozens of tiny observations (ie blocking timing, serve receive, positioning, communication) but once the match ends, many of those details disappear. We wondered if there was a faster way than clipboards or typing notes. So we built Sideline. During a match, coaches can quickly record voice observations. After the game, those recordings are automatically transcribed (using Whisper) and organized into summaries (using Groq) they can review or share with their team. The coolest part is that we’ve already had our school’s volleyball coaching staff test it during real playoff matches. One surprising thing we learned is that they used it less for player feedback and more for tracking opponent weaknesses, which we didn’t expect. We’re joining Hack Club Stardance to keep improving the app and continue learning modern web development. Looking forward to sharing our progress over the next few weeks. Note: we just made our landing page! Find it at: https://sideline-ai.pages.dev/ .
Ships:
Sideline is an AI-powered coaching assistant that helps sports coaches capture voice observations during games without taking their eyes off the action. Coaches can quickly voice-record notes, which are transcribed and organized into actionable insights for film review and time-outs. The biggest challenge was designing a workflow that coaches could actually use in the middle of a match while integrating speech recognition and AI summarization. I’m most proud that our app has already been tested by our school’s varsity volleyball team during live playoff matches, and their feedback has already changed how we’re improving the product. If you’d like to test it, create a game session, record a few coaching observations, and explore the AI-generated summaries. We’d love to hear your feedback!...
|
1793623905.3247209
|
1793710305.3247209
|
|
36867
|
My own site! by @Jairus | Stardance
|
Jairus
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-19T04:16:53Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a website about me. it eas challenging so i had to use ai", "repo": "https://github.com/FrostyDevLOL/my-website", "demo": "https://frostydevlol.github.io/my-website/"}]...
|
[{"post_id": 30719, "ts": "202 [{"post_id": 30719, "ts": "2026-07-18T15:13:00Z", "hours": 0.2694, "text": "hello this is my first ever devlog i will straightforward coding is very hard and i had to use ai :( check my website out"}]...
|
Title: My own site! by @Jairus | Stardance
Devlog Title: My own site! by @Jairus | Stardance
Devlogs:
hello this is my first ever devlog i will straightforward coding is very hard and i had to use ai :( check my website out
Ships:
i made a website about me. it eas challenging so i had to use ai...
|
1793623907.943878
|
1793710307.943878
|
|
6146
|
Diana by @RedBlue | Stardance
|
RedBlue
|
1
|
43.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-21T07:23:42Z", "hours": 43.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Built Diana — a memory-aware AI assistant that actually remembers you across conversations. Diana extracts structured facts from every chat (your projects, skills, goals, preferences) and injects them into every future response. No more explaining yourself from scratch every session. Stack: React + TypeScript frontend, Express backend, FastAPI AI service, PostgreSQL on Neon, deployed on Google Cloud Run + Vercel. To test: go to https://diana-six-theta.vercel.app , create an account, tell Diana something about yourself or what you’re building, then start a new chat and ask “what do you know about me?” — she’ll already know. What was challenging: deploying three separate services to production for the first time, both Groq models getting decommissioned mid-deployment, and debugging a CORS issue caused by an Express 5 breaking change. What I’m proud of: the memory pipeline works end to end — extract, store, retrieve, inject — and it genuinely makes the AI feel different.", "repo": "https://github.com/HJeandedieu/Diana", "demo": "https://diana-six-theta.vercel.app/"}]...
|
[{"post_id": 51489, "ts": "202 [{"post_id": 51489, "ts": "2026-08-21T07:18:57Z", "hours": 6.4872, "text": "Diana — Final Update: Shipped. The last piece was getting Diana off localhost and into the world. The backend and AI service landed on Google Cloud Run, the database on Neon, the frontend on Vercel — three services, one product, all talking to each other in production. It wasn’t without a fight. Both Groq models we’d been using were decommissioned the same week we deployed. Docker refused to generate the Prisma client without a database URL at build time. Cloud Run silently dropped env vars. The auth token expired mid-deploy. Each one got fixed, and by the end Diana was running live — memory extraction, context injection, session persistence, the full pipeline — on real infrastructure. Diana is live at https://diana-six-theta.vercel.app Progress: Backend → AI Service → Memory System → Context Injection → Authentication → Component Library → Application Screens → UI Integration → Live Data → Shipped."}, {"post_id": 46629, "ts": "2026-08-14T00:57:19Z", "hours": 4.08, "text": "The frontend foundation met the backend this week and everything clicked into place. Real data replaced the mocks — sessions create automatically on load, conversations persist across visits, and the chat pipeline is fully live end to end. The Memories screen went from a shell to a working dashboard, with filters, inline editing, and deletion all connected to the database. On the first real test, Diana loaded two memories — “User built Diana” and “User knows Express” — exactly what she was supposed to remember. It wasn’t without a fight. CORS blocked the first login attempt because Express 5 was intercepting preflight requests before the middleware could run — downgraded to Express 4 and it resolved immediately. Sessions weren’t being created on the frontend so every chat request returned a 404. Messages rendered as empty bubbles until the controller response shape was corrected to return a full message object. Each one got fixed, and by the end of the week Diana was having real, memory-aware conversations through a UI that feels like something worth using. Progress: Backend → AI Service → Memory System → Context Injection → Authentication → Component Library → Application Screens → UI Integration → Live Data"}, {"post_id": 44691, "ts": "2026-08-10T16:59:45Z", "hours": 6.5836, "text": "Diana — Screens Implementation: Frontend Structure Complete All major screens are now created and connected with the component library. The UI layer is complete — Login, Register, Chat Interface, Memory Dashboard, Profile, Settings, and supporting layouts are built using the reusable TypeScript components. The Sidebar, Chat Experience, Authentication Flow, and Dashboard structure are now in place, giving Diana a complete application shell instead of isolated components. Frontend progress: Backend → AI Service → Memory System → Context Injection → Authentication → Component Library → Application Screens → UI Integration The frontend foundation is complete. Next steps are connecting real data, API integration, state management, and refining the user experience."}, {"post_id": 42021, "ts": "2026-08-06T15:49:12Z", "hours": 2.1331, "text": "Diana — UI Update: Components Complete All 12 components are done — UI and layout. Button, Input, PasswordInput, Label, Spinner, Toast, Badge, MarkdownRenderer, CodeBlock, Sidebar, ChatInput, and ChatMessage. The full component library is built, typed in TypeScript, and ready to compose into screens. Login is already live. Chat, Register, and Memory Dashboard are next. The frontend is taking shape. Progress: Backend → AI Service → Memory System → Context Injection → Login Page → Component Library → Screens"}, {"post_id": 41623, "ts": "2026-08-05T22:50:01Z", "hours": 5.0111, "text": "Diana — UI Update: Component Library All core UI components are built and ready — Button, Input, PasswordInput, Label, Spinner, Toast, Badge, MarkdownRenderer, and CodeBlock. The component library is the foundation every screen builds on. Nothing gets repeated, nothing gets inconsistent. Next up: layout components and the first full screens. Progress: Backend → AI Service → Memory System → Context Injection → Login Page → Component Library → Layout & Screens"}, {"post_id": 21840, "ts": "2026-07-03T23:42:22Z", "hours": 5.3878, "text": "First Week working on Diana Frontend. So far I’ve managed to create the login page other pages are coming soon. #frontend"}, {"post_id": 15617, "ts": "2026-06-25T12:21:44Z", "hours": 0.3967, "text": "Diana — Week 6 Update This week Diana became self-aware. Context injection is now fully operational. Before every response, Diana fetches the user’s most important memories from the database and injects them into her system prompt. She now knows who she is, what the user is building, and what they care about — before a single word is typed. The proof: ask her “What am I currently building?” with no context in the message. She responds: “You’re currently building me, Diana, a memory-aware AI assistant designed specifically for software developers.” The core pipeline is complete. Progress: Backend ✅ → Sessions & Messages ✅ → FastAPI Service ✅ → LLM Integration ✅ → Memory Extraction ✅ → Context Injection ✅ → React Frontend (next)"}, {"post_id": 15212, "ts": "2026-06-24T18:36:26Z", "hours": 1.8997, "text": "Diana — Week 5 Update This week Diana got her memory. Built out the full memory extraction pipeline — after every conversation, Diana automatically analyzes what was said and extracts structured long-term facts about the user, storing them as typed memory objects with importance scores in the database. Four memory types are now being captured in production: projects, skills, goals, and facts — exactly as designed. Progress: Backend ✅ → Sessions & Messages ✅ → FastAPI Service ✅ → LLM Integration ✅ → Memory Extraction ✅ → Context Injection (next)"}, {"post_id": 14650, "ts": "2026-06-23T20:41:48Z", "hours": 0.9828, "text": "Diana — Week 4 Update This week Diana got her voice. Replaced the hardcoded FastAPI stub with a real Groq LLM call using LLaMA 3.3-70b. Added a system prompt defining Diana’s identity and wired in conversation history so the model has context within a session. The full pipe is now live — a message sent from Express travels to FastAPI, hits Groq, and returns a real AI response. Progress: Backend ✅ → Sessions & Messages ✅ → FastAPI Service ✅ → OpenAI Integration ✅ → Memory Extraction (next)"}, {"post_id": 13851, "ts": "2026-06-22T18:11:39Z", "hours": 3.0103, "text": "Week 3 Progress – Diana Set up the initial FastAPI backend for the Diana project. Organized the project into a clean and scalable folder structure.Defined the core application entry point and server configuration. Established a foundation for future API route expansion. Created the /generate-response endpoint as a functional stub. Added request and response placeholders for response generation. Created the /extract-memory endpoint as a functional stub. Added placeholder logic for future memory extraction workflows. Verified route registration and successful application startup. Prepared the backend architecture for Week 4 feature implementation."}, {"post_id": 12137, "ts": "2026-06-19T20:40:56Z", "hours": 3.5233, "text": "Diana: Week 2 Update This week focused on the session and messaging layer of Diana’s backend. Built out full session management — creating chat sessions, listing them, and retrieving conversation history — along with the core chat endpoint that stores both user and assistant messages. Every endpoint is now scoped to the authenticated user, ensuring one user’s data can never be accessed by another. With this in place, the foundation is ready for Week 3: standing up the FastAPI AI service and connecting it to the backend. Progress: Backend Foundation ✅ → Session & Message System ✅ → AI Service Setup (next)"}, {"post_id": 6963, "ts": "2026-06-11T17:55:40Z", "hours": 2.3017, "text": "Project Diana — Weekly Dev Log This week focused on building the backend foundation: POST /api/auth/register implemented POST /api/auth/login returns JWT tokens JWT middleware added to protect private routes Prisma schema migrated successfully to the database All API routes created and returning 200 OK stubs Next: Replace stubs with real business logic and begin integrating Diana’s AI-agent workflows."}, {"post_id": 3864, "ts": "2026-06-06T22:50:32Z", "hours": 1.0072, "text": "Initiated Project Diana which is a memory-aware AI assistant for developers that stores important information from previous conversations and uses it to provide contextual responses across sessions. I currently have been setting up my code-space like configuring Prisma so far."}]...
|
Title: Diana by @RedBlue | Stardance
Devlogs:
Ini Title: Diana by @RedBlue | Stardance
Devlogs:
Initiated Project Diana which is a memory-aware AI assistant for developers that stores important information from previous conversations and uses it to provide contextual responses across sessions. I currently have been setting up my code-space like configuring Prisma so far.
Project Diana — Weekly Dev Log This week focused on building the backend foundation: POST /api/auth/register implemented POST /api/auth/login returns JWT tokens JWT middleware added to protect private routes Prisma schema migrated successfully to the database All API routes created and returning 200 OK stubs Next: Replace stubs with real business logic and begin integrating Diana’s AI-agent workflows.
Diana: Week 2 Update This week focused on the session and messaging layer of Diana’s backend. Built out full session management — creating chat sessions, listing them, and retrieving conversation history — along with the core chat endpoint that stores both user and assistant messages. Every endpoint is now scoped to the authenticated user, ensuring one user’s data can never be accessed by another. With this in place, the foundation is ready for Week 3: standing up the FastAPI AI service and connecting it to the backend. Progress: Backend Foundation ✅ → Session & Message System ✅ → AI Service Setup (next)
Week 3 Progress – Diana Set up the initial FastAPI backend for the Diana project. Organized the project into a clean and scalable folder structure.Defined the core application entry point and server configuration. Established a foundation for future API route expansion. Created the /generate-response endpoint as a functional stub. Added request and response placeholders for response generation. Created the /extract-memory endpoint as a functional stub. Added placeholder logic for future memory extraction workflows. Verified route registration and successful application startup. Prepared the backend architecture for Week 4 feature implementation.
Diana — Week 4 Update This week Diana got her voice. Replaced the hardcoded FastAPI stub with a real Groq LLM call using LLaMA 3.3-70b. Added a system prompt defining Diana’s identity and wired in conversation history so the model has context within a session. The full pipe is now live — a message sent from Express travels to FastAPI, hits Groq, and returns a real AI response. Progress: Backend ✅ → Sessions & Messages ✅ → FastAPI Service ✅ → OpenAI Integration ✅ → Memory Extraction (next)
Diana — Week 5 Update This week Diana got her memory. Built out the full memory extraction pipeline — after every conversation, Diana automatically analyzes what was said and extracts structured long-term facts about the user, storing them as typed memory objects with importance scores in the database. Four memory types are now being captured in production: projects, skills, goals, and facts — exactly as designed. Progress: Backend ✅ → Sessions & Messages ✅ → FastAPI Service ✅ → LLM Integration ✅ → Memory Extraction ✅ → Context Injection (next)
Diana — Week 6 Update This week Diana became self-aware. Context injection is now fully operational. Before every response, Diana fetches the user’s most important memories from the database and injects them into her system prompt. She now knows who she is, what the user is building, and what they care about — before a single word is typed. The proof: ask her “What am I currently building?” with no context in the message. She responds: “You’re currently building me, Diana, a memory-aware AI assistant designed specifically for software developers.” The core pipeline is complete. Progress: Backend ✅ → Sessions & Messages ✅ → FastAPI Service ✅ → LLM Integration ✅ → Memory Extraction ✅ → Context Injection ✅ → React Frontend (next)
First Week working on Diana Frontend. So far I’ve managed to create the login page other pages are coming soon. #frontend
Diana — UI Update: Component Library All core UI components are built and ready — Button, Input, PasswordInput, Label, Spinner, Toast, Badge, MarkdownRenderer, and CodeBlock. The component library is the foundation every screen builds on. Nothing gets repeated, nothing gets inconsistent. Next up: layout components and the first full screens. Progress: Backend → AI Service → Memory System → Context Injection → Login Page → Component Library → Layout & Screens
Diana — UI Update: Components Complete All 12 components are done — UI and layout. Button, Input, PasswordInput, Label, Spinner, Toast, Badge, MarkdownRenderer, CodeBlock, Sidebar, ChatInput, and ChatMessage. The full component library is built, typed in TypeScript, and ready to compose into screens. Login is already live. Chat, Register, and Memory Dashboard are next. The frontend is taking shape. Progress: Backend → AI Service → Memory System → Context Injection → Login Page → Component Library → Screens
Diana — Screens Implementation: Frontend Structure Complete All major screens are now created and connected with the component library. The UI layer is complete — Login, Register, Chat Interface, Memory Dashboard, Profile, Settings, and supporting layouts are built using the reusable TypeScript components. The Sidebar, Chat Experience, Authentication Flow, and Dashboard structure are now in place, giving Diana a complete application shell instead of isolated components. Frontend progress: Backend → AI Service → Memory System → Context Injection → Authentication → Component Library → Application Screens → UI Integration The frontend foundation is complete. Next steps are connecting real data, API integration, state management, and refining the user experience.
The frontend foundation met the backend this week and everything clicked into place. Real data replaced the mocks — sessions create automatically on load, conversations persist across visits, and the chat pipeline is fully live end to end. The Memories screen went from a shell to a working dashboard, with filters, inline editing, and deletion all connected to the database. On the first real test, Diana loaded two memories — “User built Diana” and “User knows Express” — exactly what she was supposed to remember. It wasn’t without a fight. CORS blocked the first login attempt because Express 5 was intercepting preflight requests before the middleware could run — downgraded to Express 4 and it resolved immediately. Sessions weren’t being created on the frontend so every chat request returned a 404. Messages rendered as empty bubbles until the controller response shape was corrected to return a full message object. Each one got fixed, and by the end of the week Diana was having real, memory-aware conversations through a UI that feels like something worth using. Progress: Backend → AI Service → Memory System → Context Injection → Authentication → Component Library → Application Screens → UI Integration → Live Data
Diana — Final Update: Shipped. The last piece was getting Diana off localhost and into the world. The backend and AI service landed on Google Cloud Run, the database on Neon, the frontend on Vercel — three services, one product, all talking to each other in production. It wasn’t without a fight. Both Groq models we’d been using were decommissioned the same week we deployed. Docker refused to generate the Prisma client without a database URL at build time. Cloud Run silently dropped env vars. The auth token expired mid-deploy. Each one got fixed, and by the end Diana was running live — memory extraction, context injection, session persistence, the full pipeline — on real infrastructure. Diana is live at https://diana-six-theta.vercel.app Progress: Backend → AI Service → Memory System → Context Injection → Authentication → Component Library → Application Screens → UI Integration → Live Data → Shipped.
Ships:
Built Diana — a memory-aware AI assistant that actually remembers you across conversations. Diana extracts structured facts from every chat (your projects, skills, goals, preferences) and injects them into every future response. No more explaining yourself from scratch every session. Stack: React + TypeScript frontend, Express backend, FastAPI AI service, PostgreSQL on Neon, deployed on Google Cloud Run + Vercel. To test: go to https://diana-six-theta.vercel.app , create an account, tell Diana something about yourself or what you’re building, then start a new chat and ask “what do you know about me?” — she’ll already know. What was challenging: deploying three separate services to production for the first time, both Groq models getting decommissioned mid-deployment, and debugging a CORS issue caused by an Express 5 breaking change. What I’m proud of: the memory pipeline works end to end — extract, store, retrieve, inject — and it genuinely makes the AI feel different....
|
1793623911.0713995
|
1793710311.0713995
|
|
40172
|
My gman bot by @notgaster | Stardance
|
notgaster
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-03T07:43:00Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a gman bot that answers commands about cat and half life franchise trivia , its not much but im pretty proud of it do /gman-help to see commands", "repo": "https://github.com/y0ug0tthedud/gman-bot-slack", "demo": "https://hackclub.enterprise.slack.com/archives/C0P5NE354"}]...
|
[{"post_id": 37722, "ts": "202 [{"post_id": 37722, "ts": "2026-07-30T17:06:46Z", "hours": 0.6464, "text": "One more command, now he also acts more in character … MUCH more"}, {"post_id": 37195, "ts": "2026-07-29T18:48:48Z", "hours": 0.3725, "text": "worked on this bot longer than it shows,"}]...
|
Title: My gman bot by @notgaster | Stardance
Devl Title: My gman bot by @notgaster | Stardance
Devlogs:
worked on this bot longer than it shows,
One more command, now he also acts more in character … MUCH more
Ships:
i made a gman bot that answers commands about cat and half life franchise trivia , its not much but im pretty proud of it do /gman-help to see commands...
|
1793623914.9262886
|
1793710314.9262886
|
|
70837
|
Kinetica-Pursuit by @forkosssa | Stardance
|
forkosssa
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-21T18:30:36Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a physics “pursuit problem” simulation! my professor was explaining relativity, vectors and distance and as an example of everything in action he suggested imagining how 3 drones, moving towards the closest drone clockwise, will behave in a simulation. At that moment i realized it would be a great project so i made it in C++ initially but then for maximum compatibility! (zoom out if the UI looks different from the screenshots)", "repo": "https://github.com/Fork0n/kinetica-pursuit", "demo": "https://pursuit.xen-industries.xyz/"}]...
|
[{"post_id": 81569, "ts": "202 [{"post_id": 81569, "ts": "2026-10-21T18:23:27Z", "hours": 5.1358, "text": "initial and last devlog, unfortunately (or maybe fortunately) i made this project in about 2 days without considering stardance, but since the hours logged i decided to share it here and earn some spare stardust. it’s a physics simulation of n drones going one after another in a n-sided polygon, it supports polygons up to a Dihectapentacontahexagon and supports a circle for tangent examples. IF IT DOESN’T LOOK LIKE THE SCREENSHOT, TRY ZOOMING OUT (ctrl + “-” or Ctrl + scroll), for some reason the aspect changes depending on ppi, screen size and resolution"}]...
|
Title: Kinetica-Pursuit by @forkosssa | Stardance
Title: Kinetica-Pursuit by @forkosssa | Stardance
Devlogs:
initial and last devlog, unfortunately (or maybe fortunately) i made this project in about 2 days without considering stardance, but since the hours logged i decided to share it here and earn some spare stardust. it’s a physics simulation of n drones going one after another in a n-sided polygon, it supports polygons up to a Dihectapentacontahexagon and supports a circle for tangent examples. IF IT DOESN’T LOOK LIKE THE SCREENSHOT, TRY ZOOMING OUT (ctrl + “-” or Ctrl + scroll), for some reason the aspect changes depending on ppi, screen size and resolution
Ships:
I made a physics “pursuit problem” simulation! my professor was explaining relativity, vectors and distance and as an example of everything in action he suggested imagining how 3 drones, moving towards the closest drone clockwise, will behave in a simulation. At that moment i realized it would be a great project so i made it in C++ initially but then for maximum compatibility! (zoom out if the UI looks different from the screenshots)...
|
1793623916.0931997
|
1793710316.0931997
|
|
18050
|
Game Website by @wrogers1616 | Stardance
|
wrogers1616
|
1
|
65.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-15T02:15:13Z", "hours": 65.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website that contains the games I made over the summer. This version isn’t fully functional without using external sites as I had trouble with conflicting variables.", "repo": "https://github.com/wrogers1616-byte/button-games", "demo": "https://onecompiler.com/html/44pfq4e8p"}]...
|
[{"post_id": 47254, "ts": "202 [{"post_id": 47254, "ts": "2026-08-15T01:51:39Z", "hours": 64.9825, "text": "I created a website with multiple games on it"}]...
|
Title: Game Website by @wrogers1616 | Stardance
D Title: Game Website by @wrogers1616 | Stardance
Devlogs:
I created a website with multiple games on it
Ships:
I made a website that contains the games I made over the summer. This version isn’t fully functional without using external sites as I had trouble with conflicting variables....
|
1793623917.2497747
|
1793710317.2497747
|
|
12097
|
Minesweeper by @averagestardancefan | Stardance
|
averagestardancefan
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-24T05:25:06Z", "hours": 4.0, "multiplier": 2.5, "payout": 0, "blessing": "neutral", "text": "Here it is, my Minesweeper game! Function: This game plays straight in your Java terminal. You are given instructions, choose the size of your game board, then use coordinates to place flags, weed out mines, and use logic to clear the whole board. There are three main ways to play this game: Download the .zip file from the github release, unzip it, and double click on the application file within it. Download the .java file from the github project files or release files and open it using VS Code. Use the demo links through CodeHS to play, though it can be a bit glitchy and slow. The links are also in github, in the README and in the release description. I recommend the VS Code route, it’s just the easiest. Summary of logic: When you give the program the coordinate you wish to play, it uses a basic recursive flood fill to fill all adjacent tiles with no mines nearby. After you choose and it fills, it can either stop the program because you hit a mine, or it will continue until the number of mines on the board matches the number of unchecked tiles, meaning that you found all the mines. Challenges: Still the hardest thing of either of these was figuring out how to turn the .java file into a .zip that can run without downloading all of Java. The hardest challenge with this game specifically was probably making all of the checks that make sure your input is valid because there were a lot of cases to consider and even so I probably missed one which will be caught somewhere along the way.", "repo": "https://github.com/garetelis/Minesweeper", "demo": "https://github.com/garetelis/Minesweeper/releases/tag/1.0.0"}]...
|
[{"post_id": 14882, "ts": "202 [{"post_id": 14882, "ts": "2026-06-24T04:59:18Z", "hours": 1.9133, "text": "After I ironed out a few bugs with the fill system, I worked on the actual game part where the user inputs the spaces on the board they would like to play and I think it is working how it should now. As an improvement from the last game, the maze game, that I made, I added instructions at the beginning and I used the built in Java colors to make the whole thing look a bit better. I am much happier with this game than the last and I think it is even more fun to play. The mechanism was a bit easier to code."}, {"post_id": 5415, "ts": "2026-06-09T05:18:45Z", "hours": 1.6411, "text": "Oh yeah, it’s all coming together now"}, {"post_id": 4668, "ts": "2026-06-08T02:09:56Z", "hours": 0.4675, "text": "I got it to randomly place the mines and put a number on each tile for how many mines are around it."}]...
|
Title: Minesweeper by @averagestardancefan | Stard Title: Minesweeper by @averagestardancefan | Stardance
Devlogs:
I got it to randomly place the mines and put a number on each tile for how many mines are around it.
Oh yeah, it’s all coming together now
After I ironed out a few bugs with the fill system, I worked on the actual game part where the user inputs the spaces on the board they would like to play and I think it is working how it should now. As an improvement from the last game, the maze game, that I made, I added instructions at the beginning and I used the built in Java colors to make the whole thing look a bit better. I am much happier with this game than the last and I think it is even more fun to play. The mechanism was a bit easier to code.
Ships:
Here it is, my Minesweeper game! Function: This game plays straight in your Java terminal. You are given instructions, choose the size of your game board, then use coordinates to place flags, weed out mines, and use logic to clear the whole board. There are three main ways to play this game: Download the .zip file from the github release, unzip it, and double click on the application file within it. Download the .java file from the github project files or release files and open it using VS Code. Use the demo links through CodeHS to play, though it can be a bit glitchy and slow. The links are also in github, in the README and in the release description. I recommend the VS Code route, it’s just the easiest. Summary of logic: When you give the program the coordinate you wish to play, it uses a basic recursive flood fill to fill all adjacent tiles with no mines nearby. After you choose and it fills, it can either stop the program because you hit a mine, or it will continue until the number of mines on the board matches the number of unchecked tiles, meaning that you found all the mines. Challenges: Still the hardest thing of either of these was figuring out how to turn the .java file into a .zip that can run without downloading all of Java. The hardest challenge with this game specifically was probably making all of the checks that make sure your input is valid because there were a lot of cases to consider and even so I probably missed one which will be caught somewhere along the way....
|
1793623918.3800292
|
1793710318.3800292
|
|
12968
|
HackClub Happiness Meter by @javim-dev | Stardance
|
javim-dev
|
1
|
12.0
|
102
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-25T13:11:50Z", "hours": 12.0, "multiplier": 8.21, "payout": 102, "blessing": "neutral", "text": "HackClub Happiness Meter TRY IT HERE: https://happinessmeter-frontend.javim.dev/ Earlier this month, I created “HackClub Happiness Meter API” for the YSWS RaspAPI. The problem is that nobody used it. Probably because it’s an API, and most people don’t have an API client at arms reach. So I decided to create a frontend for it! Check my latest devlog for more info. Also check: Github: https://github.com/javiermm8/HackClub-Happiness-Meter-Frontend Want to learn more about this API? Here! API Github: https://github.com/javiermm8/HackClubHappinessMeterAPI API Docs: https://happinessmeter.javim.dev/docs", "repo": "https://github.com/javiermm8/HackClub-Happiness-Meter-Frontend", "demo": "https://happinessmeter-frontend.javim.dev/"}]...
|
[{"post_id": 15627, "ts": "202 [{"post_id": 15627, "ts": "2026-06-25T12:46:19Z", "hours": 1.2842, "text": "I’M SHIPPING IT First of all, I know that I haven’t been putting much effort into my devlogs recently. I prefer to work in silence and talk about my work once it’s finished. Some context Earlier this month, I created “HackClub Happiness Meter API” for the YSWS RaspAPI. The problem is that nobody used it. Probably because it’s an API, and most people don’t have an API client at arms reach. So I decided to create a frontend for it. Why react? Why not? I already knew a bit about React, and this was the perfect opportunity to learn a more. However, having now made the API (backend) in Go, I realized that I hate React(and for that matter web development in general) with all my heart. Backend development is much better. If I ever need to make a front end again, I’m absolutely vibecoding it. Storytelling There isn’t much to say here. The main difficulties I encountered while developing this app were:: The design(thanks Tormentika, you saved the aesthetics of this project). Not getting my IP blacklisted address by Cloudflare. For the sake of the story, I’m going to say a little more about the second one, adding a touch of ‘storytelling magic’ (just note that this happened at 11 pm Spanish time and I hadn’t slept enough): At the time, I was trying to implement the Status feature. What I didn’t realize is that if the function that fetches the state is inside of a React component, it will be called every time the component is re-rendered. If the status feature then changes something in that component (which it absolutely did), it creates a loop that constantly requests the status from my API. On top of that, when my API rate limits my IP (I’m very proud of that rate limiter I put there for the extra points in Raspapi), it sends back a 429 (as it should), and for reasons unknown, the Status feature fetches faster. I’m talking about dozens of requests per second. Thankfully, I was able to stop it and fix it before Cloudflare had to step in and block me. Extra help I’m terrible at design. You can see how bad the design was in the previous devlogs. So, thank Tormentika for telling me which colours to use where! Another day survived without having to learn colour theory! Enough talk. GO TRY IT NOW https://happinessmeter-frontend.javim.dev/"}, {"post_id": 15331, "ts": "2026-06-24T22:09:12Z", "hours": 0.9056, "text": "Better new entry + small changes."}, {"post_id": 15013, "ts": "2026-06-24T12:07:39Z", "hours": 1.8783, "text": "UPDATE: New Stats page, Happiness Friend now works, the layout adapts for mobile, status on the header(status and stats update every 30s). I still have to clean up everything and add error messages. But it looks great. While making writing the status feature I accidentally made a loop. At least I know that my rate limiter works :) If anybody has any suggestions please tell me, especially about the design(I’m bad with colors)."}, {"post_id": 14439, "ts": "2026-06-23T15:53:28Z", "hours": 1.6528, "text": "Great progress! Rewrote fetch related functions to be asyncronous. Implemented error message when the user inputs wrong auth credentials. Now there are three auth states: unauthed(not logged in), bad-authed(wrong credentials) and authed(all good) and profile, auth and entry display messages according to that state. Entry displays a message when an entry is submitted(and 200 is sent back from the user). Added more info in Intro. Reordered grid(I still have to fix that a bit). Getting closer to release!"}, {"post_id": 11421, "ts": "2026-06-18T18:02:11Z", "hours": 1.9583, "text": "Lots of progress!! I added images and links to the info components. Also, profile works better and newEntry works too!"}, {"post_id": 7097, "ts": "2026-06-11T21:29:31Z", "hours": 4.7294, "text": "Built the basic skeleton of the web page plus some basic fetch to the API using user provided credentials. The Auth logic works but still needs error messages, same for the profile area. Everything is still in a very early stage."}]...
|
Title: HackClub Happiness Meter by @javim-dev | St Title: HackClub Happiness Meter by @javim-dev | Stardance
Devlogs:
Built the basic skeleton of the web page plus some basic fetch to the API using user provided credentials. The Auth logic works but still needs error messages, same for the profile area. Everything is still in a very early stage.
Lots of progress!! I added images and links to the info components. Also, profile works better and newEntry works too!
Great progress! Rewrote fetch related functions to be asyncronous. Implemented error message when the user inputs wrong auth credentials. Now there are three auth states: unauthed(not logged in), bad-authed(wrong credentials) and authed(all good) and profile, auth and entry display messages according to that state. Entry displays a message when an entry is submitted(and 200 is sent back from the user). Added more info in Intro. Reordered grid(I still have to fix that a bit). Getting closer to release!
UPDATE: New Stats page, Happiness Friend now works, the layout adapts for mobile, status on the header(status and stats update every 30s). I still have to clean up everything and add error messages. But it looks great. While making writing the status feature I accidentally made a loop. At least I know that my rate limiter works :) If anybody has any suggestions please tell me, especially about the design(I’m bad with colors).
Better new entry + small changes.
I’M SHIPPING IT First of all, I know that I haven’t been putting much effort into my devlogs recently. I prefer to work in silence and talk about my work once it’s finished. Some context Earlier this month, I created “HackClub Happiness Meter API” for the YSWS RaspAPI. The problem is that nobody used it. Probably because it’s an API, and most people don’t have an API client at arms reach. So I decided to create a frontend for it. Why react? Why not? I already knew a bit about React, and this was the perfect opportunity to learn a more. However, having now made the API (backend) in Go, I realized that I hate React(and for that matter web development in general) with all my heart. Backend development is much better. If I ever need to make a front end again, I’m absolutely vibecoding it. Storytelling There isn’t much to say here. The main difficulties I encountered while developing this app were:: The design(thanks Tormentika, you saved the aesthetics of this project). Not getting my IP blacklisted address by Cloudflare. For the sake of the story, I’m going to say a little more about the second one, adding a touch of ‘storytelling magic’ (just note that this happened at 11 pm Spanish time and I hadn’t slept enough): At the time, I was trying to implement the Status feature. What I didn’t realize is that if the function that fetches the state is inside of a React component, it will be called every time the component is re-rendered. If the status feature then changes something in that component (which it absolutely did), it creates a loop that constantly requests the status from my API. On top of that, when my API rate limits my IP (I’m very proud of that rate limiter I put there for the extra points in Raspapi), it sends back a 429 (as it should), and for reasons unknown, the Status feature fetches faster. I’m talking about dozens of requests per second. Thankfully, I was able to stop it and fix it before Cloudflare had to step in and block me. Extra help I’m terrible at design. You can see how bad the design was in the previous devlogs. So, thank Tormentika for telling me which colours to use where! Another day survived without having to learn colour theory! Enough talk. GO TRY IT NOW https://happinessmeter-frontend.javim.dev/
Ships:
HackClub Happiness Meter TRY IT HERE: https://happinessmeter-frontend.javim.dev/ Earlier this month, I created “HackClub Happiness Meter API” for the YSWS RaspAPI. The problem is that nobody used it. Probably because it’s an API, and most people don’t have an API client at arms reach. So I decided to create a frontend for it! Check my latest devlog for more info. Also check: Github: https://github.com/javiermm8/HackClub-Happiness-Meter-Frontend Want to learn more about this API? Here! API Github: https://github.com/javiermm8/HackClubHappinessMeterAPI API Docs: https://happinessmeter.javim.dev/docs...
|
1793623919.5491068
|
1793710319.5491068
|
|
2320
|
Slack Assistant by @nightfall | Stardance
|
nightfall
|
1
|
4.6
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-05T23:42:01Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Slack bot that allows a person to talk with their Home Assistant instance ( https://home-assistant.io ), using Slack’s Assistant API. Note to shipwright: if you don’t have a Home Assistant instance Set one up, it’s fun to mess around with Otherwise, DM me and I’ll set your database details to use mine temporarily", "repo": "https://github.com/DaInfLoop/slack-assistant", "demo": "https://hackclub.slack.com/app_redirect?app=A0B7XPW75L4"}]...
|
[{"post_id": 9896, "ts": "2026 [{"post_id": 9896, "ts": "2026-06-16T11:52:21Z", "hours": 1.6047, "text": "While I’m waiting for my initial ship to be certified, I wanted to share what I’ve been doing with Slack Assistant since then! Slack Assistant is now publicly distributed on Slack, meaning any workspace (not just Hack Club) can install it and use it! The bot isn’t in a good enough state that I believe I can push for it to be on the Slack Marketplace yet, but it’s good enough for now and I’m proud of it :)"}, {"post_id": 3061, "ts": "2026-06-05T23:08:01Z", "hours": 1.1981, "text": "You can now talk to Home Assistant, and it’ll do stuff! You can also ask it to toggle stuff on and off just like the actual Assist helper can, although as per the second screenshot I don’t think it’s a wise time for me to test that out… Last thing to add is the slash command and it should hopefully be ready for public usage :D"}, {"post_id": 1657, "ts": "2026-06-03T19:48:18Z", "hours": 1.9097, "text": "You can interact with the bot on the Slack sidebar! It automatically checks in the database whether you have it setup. Currently you can’t access the App Home to actually set it up to talk to your Home Assistant, but it shall be there soon(tm)"}]...
|
Title: Slack Assistant by @nightfall | Stardance
Title: Slack Assistant by @nightfall | Stardance
Devlogs:
You can interact with the bot on the Slack sidebar! It automatically checks in the database whether you have it setup. Currently you can’t access the App Home to actually set it up to talk to your Home Assistant, but it shall be there soon(tm)
You can now talk to Home Assistant, and it’ll do stuff! You can also ask it to toggle stuff on and off just like the actual Assist helper can, although as per the second screenshot I don’t think it’s a wise time for me to test that out… Last thing to add is the slash command and it should hopefully be ready for public usage :D
While I’m waiting for my initial ship to be certified, I wanted to share what I’ve been doing with Slack Assistant since then! Slack Assistant is now publicly distributed on Slack, meaning any workspace (not just Hack Club) can install it and use it! The bot isn’t in a good enough state that I believe I can push for it to be on the Slack Marketplace yet, but it’s good enough for now and I’m proud of it :)
Ships:
I made a Slack bot that allows a person to talk with their Home Assistant instance ( https://home-assistant.io ), using Slack’s Assistant API. Note to shipwright: if you don’t have a Home Assistant instance Set one up, it’s fun to mess around with Otherwise, DM me and I’ll set your database details to use mine temporarily...
|
1793623920.7557995
|
1793710320.7557995
|
|
32700
|
NetLink by @Leon36 | Stardance
|
Leon36
|
2
|
75.0
|
1132
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-09T14:54:33Z", "hours": 64.0, "multiplier": 16.47, "payout": 982, "blessing": "neutral", "text": "NetLink connect to your network from everywhere without a VPN I made a Web based “OS” to connect to your network without a VPN and accses your resources with protocols like sftp or ssh. I also build a desktop client to emulate a VPN on your pc, so you can accses your network with your own programms Technologys I used WebSockets to transfer data between the client and the Server. For the frontend I choose React, for the backend I used TypeScript.", "repo": "https://github.com/leonst036/NetLink", "demo": "https://netlink.legaming.tech/"}, {"ship_num": 2, "ts": "2026-07-14T19:45:47Z", "hours": 11.0, "multiplier": 14.76, "payout": 150, "blessing": "neutral", "text": "I built a project called NetLink! It lets you connect to your home network from anywhere. Right now, it supports access via VNC, SSH, and SFTP. It uses WebSockets and web based apps to establish the connection. Everything is routed through a relay node, so you don’t need to open any ports on your router. In the demo version, you can set up your own PC as a local server to try it out (active for 24 hours). If you want to use it long-term, you can easily self-host the project on your own hardware (GitHub Readme). I’m planning to add support for more protocols soon. If you have any feedback or ideas on how to improve the project, feel free to leave a comment or send me a DM! Heads up: If you’re using the demo, it might take a few moments to load all your devices.", "repo": "https://github.com/leonst036/NetLink", "demo": "https://netlink.legaming.tech/"}]...
|
[{"post_id": 78081, "ts": "202 [{"post_id": 78081, "ts": "2026-10-09T14:48:26Z", "hours": 6.1889, "text": "Summary: Polished NetLink for a ship Fixed some bugs Remade some screens Made a demo version Made some security fixes"}, {"post_id": 58474, "ts": "2026-08-30T21:50:58Z", "hours": 2.4225, "text": "Summary: Made some bugfixes That’s pretty much all. I found some small thing I didn’t like and fixed them."}, {"post_id": 53323, "ts": "2026-08-23T19:58:03Z", "hours": 6.5603, "text": "Summary: Made NetConnect a programm for Linux to bring you Network to you everywhere (without VPN) I made this using Go and a virtual network device wich act like a spit tunnel vpn, to extract all request from you subnet e.g. 192.168.1.0/24 sends it over a WebSocket to the NetLink relay server and to its target server. I’m not fully done with this, but right now it’s working. Maybe I’ll do a version for windows soon. How you can install it is defined in the NetConnect Repo ONLY FOR LINUX"}, {"post_id": 52016, "ts": "2026-08-22T01:39:34Z", "hours": 6.1189, "text": "Summaray: Refactored netgraph and settings app Yeah, I refactored it. That’s it. I gues I put these applications as picture :-|"}, {"post_id": 49947, "ts": "2026-08-18T22:48:47Z", "hours": 13.9178, "text": "Summary: Refactored NetStore, gave the NetStore it’s own Repo and started making a Minecraft Server Manager. I just refactored the I gues 1200 line longe NetStore app, and I have so much to refactor left. I started the Minecraft Server Manager before the refactoring but it wasn’t in my usual hackatime project, it was in a new one, and my stupid ass thought it was just a technical mistake that the time wasn’t tracked."}, {"post_id": 46375, "ts": "2026-08-13T15:30:43Z", "hours": 3.2525, "text": "Summary: Moved all build-in apps into the NetStore That’s pretty much all…"}, {"post_id": 46019, "ts": "2026-08-12T22:06:19Z", "hours": 1.8247, "text": "Summary: Made a traffic monitor for the NetStore This Devlog isn’t gona be that long, I just made a smal traffic monitor. And some small improvements."}, {"post_id": 45387, "ts": "2026-08-11T20:17:00Z", "hours": 2.0261, "text": "Summary: Secured NetStore and published it. I secured the NetStore so far that I can release it on the main branch. Right now it isn’t in the demo, so you can test it only when you install it by yourself (wich is very easy with the new install script)"}, {"post_id": 44059, "ts": "2026-08-09T16:06:18Z", "hours": 6.2664, "text": "Summary: Added a Docker Manager and done some fixes with the NetStore In my last devlog I made the NetStore, and this is the first application by myself. It’s used to manage your dockers from everywhere (What a wonder, the docker manager can manage docker). It isn’t perfect right now, so it’s not an alternative to something like Portainer or Coolify, but for simple tasks, it’s good enough. Primarily I made this application to add features to the NetStore (I added a lot, only for this application) and of course I found some bugs. The NetStore itself isn’t secured yet (Right now I only added Deno), but I’m working on it!"}, {"post_id": 43289, "ts": "2026-08-08T13:55:07Z", "hours": 3.1814, "text": "Summary: Added NetStore to create custom applications I added an application that allows you to create your own custom applications. I will use this Store to build additional apps myself for niche use cases (e.g., Docker management or local server containers) that will be fetched directly from GitHub. Key features: Custom Routes: Register your own custom backend routes. Frontend: Build and design your own user interface. Local Code: Execute custom code on the local server. IMPORTANT: DO NOT USE NETSTORE IN PRODUCTION OR DEPLOYMENT ENVIRONMENTS. IT IS CURRENTLY NOT SECURE. If you choose to use it anyway, you do so at your own risk. It’s on the dev Branch. I’d recommend to use it only in your local Network"}, {"post_id": 40183, "ts": "2026-08-03T16:15:22Z", "hours": 5.7364, "text": "I fixed some Bugs in the frontend and made some improvements in the backend."}, {"post_id": 33121, "ts": "2026-07-22T18:59:08Z", "hours": 1.8814, "text": "I just refactored the Project I optimized the structure of the local server and the relay. In the frontend, apps will load just when opening them wich is very good for the performance"}, {"post_id": 31896, "ts": "2026-07-20T17:40:45Z", "hours": 4.185, "text": "I completely remade the frontend! It’s now a hybrid of Material 3 and modern Glassmorphism. The overhaul took well over 4 hours though a good chunk was done at school (untracked since I wasn’t logged into Hackatime). Overall, I’m really happy with how the new look turned out! There are probably a few subtle UI bugs hiding in the new design, but I’ll squash those as I find them."}, {"post_id": 28489, "ts": "2026-07-14T19:25:14Z", "hours": 2.3664, "text": "I just finished a few bugs and created an demo enviroment. If you wanna try it, I’ll explain everything in the ship description."}, {"post_id": 27126, "ts": "2026-07-12T12:17:35Z", "hours": 3.7031, "text": "NetLink features a web-based operating system designed to enhance the user experience with VNC and SFTP. I plan to add support for additional protocols, such as RDP, in the future"}, {"post_id": 25976, "ts": "2026-07-10T14:54:42Z", "hours": 1.5586, "text": "Added dynamic SSH server selection. The network scan was a bit difficult. It’s not the prettiest solution to ping every device, but it works!"}, {"post_id": 25492, "ts": "2026-07-09T20:04:51Z", "hours": 2.8922, "text": "Streaming a SSH Session over the relay server"}]...
|
Title: NetLink by @Leon36 | Stardance
Devlogs:
St Title: NetLink by @Leon36 | Stardance
Devlogs:
Streaming a SSH Session over the relay server
Added dynamic SSH server selection. The network scan was a bit difficult. It’s not the prettiest solution to ping every device, but it works!
NetLink features a web-based operating system designed to enhance the user experience with VNC and SFTP. I plan to add support for additional protocols, such as RDP, in the future
I just finished a few bugs and created an demo enviroment. If you wanna try it, I’ll explain everything in the ship description.
I completely remade the frontend! It’s now a hybrid of Material 3 and modern Glassmorphism. The overhaul took well over 4 hours though a good chunk was done at school (untracked since I wasn’t logged into Hackatime). Overall, I’m really happy with how the new look turned out! There are probably a few subtle UI bugs hiding in the new design, but I’ll squash those as I find them.
I just refactored the Project I optimized the structure of the local server and the relay. In the frontend, apps will load just when opening them wich is very good for the performance
I fixed some Bugs in the frontend and made some improvements in the backend.
Summary: Added NetStore to create custom applications I added an application that allows you to create your own custom applications. I will use this Store to build additional apps myself for niche use cases (e.g., Docker management or local server containers) that will be fetched directly from GitHub. Key features: Custom Routes: Register your own custom backend routes. Frontend: Build and design your own user interface. Local Code: Execute custom code on the local server. IMPORTANT: DO NOT USE NETSTORE IN PRODUCTION OR DEPLOYMENT ENVIRONMENTS. IT IS CURRENTLY NOT SECURE. If you choose to use it anyway, you do so at your own risk. It’s on the dev Branch. I’d recommend to use it only in your local Network
Summary: Added a Docker Manager and done some fixes with the NetStore In my last devlog I made the NetStore, and this is the first application by myself. It’s used to manage your dockers from everywhere (What a wonder, the docker manager can manage docker). It isn’t perfect right now, so it’s not an alternative to something like Portainer or Coolify, but for simple tasks, it’s good enough. Primarily I made this application to add features to the NetStore (I added a lot, only for this application) and of course I found some bugs. The NetStore itself isn’t secured yet (Right now I only added Deno), but I’m working on it!
Summary: Secured NetStore and published it. I secured the NetStore so far that I can release it on the main branch. Right now it isn’t in the demo, so you can test it only when you install it by yourself (wich is very easy with the new install script)
Summary: Made a traffic monitor for the NetStore This Devlog isn’t gona be that long, I just made a smal traffic monitor. And some small improvements.
Summary: Moved all build-in apps into the NetStore That’s pretty much all…
Summary: Refactored NetStore, gave the NetStore it’s own Repo and started making a Minecraft Server Manager. I just refactored the I gues 1200 line longe NetStore app, and I have so much to refactor left. I started the Minecraft Server Manager before the refactoring but it wasn’t in my usual hackatime project, it was in a new one, and my stupid ass thought it was just a technical mistake that the time wasn’t tracked.
Summaray: Refactored netgraph and settings app Yeah, I refactored it. That’s it. I gues I put these applications as picture :-|
Summary: Made NetConnect a programm for Linux to bring you Network to you everywhere (without VPN) I made this using Go and a virtual network device wich act like a spit tunnel vpn, to extract all request from you subnet e.g. 192.168.1.0/24 sends it over a WebSocket to the NetLink relay server and to its target server. I’m not fully done with this, but right now it’s working. Maybe I’ll do a version for windows soon. How you can install it is defined in the NetConnect Repo ONLY FOR LINUX
Summary: Made some bugfixes That’s pretty much all. I found some small thing I didn’t like and fixed them.
Summary: Polished NetLink for a ship Fixed some bugs Remade some screens Made a demo version Made some security fixes
Ships:
I built a project called NetLink! It lets you connect to your home network from anywhere. Right now, it supports access via VNC, SSH, and SFTP. It uses WebSockets and web based apps to establish the connection. Everything is routed through a relay node, so you don’t need to open any ports on your router. In the demo version, you can set up your own PC as a local server to try it out (active for 24 hours). If you want to use it long-term, you can easily self-host the project on your own hardware (GitHub Readme). I’m planning to add support for more protocols soon. If you have any feedback or ideas on how to improve the project, feel free to leave a comment or send me a DM! Heads up: If you’re using the demo, it might take a few moments to load all your devices.
NetLink connect to your network from everywhere without a VPN I made a Web based “OS” to connect to your network without a VPN and accses your resources with protocols like sftp or ssh. I also build a desktop client to emulate a VPN on your pc, so you can accses your network with your own programms Technologys I used WebSockets to transfer data between the client and the Server. For the frontend I choose React, for the backend I used TypeScript....
|
1793623921.9346642
|
1793710321.9346642
|
|
30911
|
My own site! by @Mrdark | Stardance
|
Mrdark
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-23T15:24:48Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I am making first time a website . I dont even know how to code or smtg . It was a great learning path and I got to know how a website works , what is a domain , dns , SaaS , API , etc . Thanks to the stardance team", "repo": "https://github.com/anbu2203/persona/", "demo": "https://v0-anbumathi-chezhian-2203.vercel.app/"}]...
|
[{"post_id": 53109, "ts": "202 [{"post_id": 53109, "ts": "2026-08-23T15:21:52Z", "hours": 0.7344, "text": "My vibecoded website"}]...
|
Title: My own site! by @Mrdark | Stardance
Devlog Title: My own site! by @Mrdark | Stardance
Devlogs:
My vibecoded website
Ships:
I am making first time a website . I dont even know how to code or smtg . It was a great learning path and I got to know how a website works , what is a domain , dns , SaaS , API , etc . Thanks to the stardance team...
|
1793623923.197067
|
1793710323.197067
|
|
2318
|
My first slack bot! by @zahran | Stardance
|
zahran
|
1
|
1.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-23T21:08:56Z", "hours": 1.0, "multiplier": 1.39, "payout": 1, "blessing": "neutral", "text": "now that I’m finally done with school, I decided to start coding stuff for Stardance with this Slack Bot guide! I built ‘hughmanns-bot’, a Slack bot in a Nest container that responds to messages 24/7. while making the bot, I felt that the whole setup and installation of different libraries and such was pretty tedious; however, I feel proud of having made my first project for Stardance that people can actually use! to test it, go to any channel in the Slack and type in /hughmanns-bot (commands will automatically appear later) and have fun!", "repo": "https://github.com/HughMann635/Slack-bot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0BFNCT6FUY"}]...
|
[{"post_id": 14530, "ts": "202 [{"post_id": 14530, "ts": "2026-06-23T17:52:52Z", "hours": 0.5661, "text": "hey guys welcome to my slack bot I managed to go through pretty much all the guide, but I’m still waiting for my nest container request to be approved :( so far, the bot runs a couple of commands such as ping (tells you latency), joke (tells you a joke), and catfact (tells you a cat fact). it does work, however it’s not yet live on slack. I’ll make sure to get it live by the end of tomorrow, probably today. anyway, until next time"}]...
|
Title: My first slack bot! by @zahran | Stardance
Title: My first slack bot! by @zahran | Stardance
Devlogs:
hey guys welcome to my slack bot I managed to go through pretty much all the guide, but I’m still waiting for my nest container request to be approved :( so far, the bot runs a couple of commands such as ping (tells you latency), joke (tells you a joke), and catfact (tells you a cat fact). it does work, however it’s not yet live on slack. I’ll make sure to get it live by the end of tomorrow, probably today. anyway, until next time
Ships:
now that I’m finally done with school, I decided to start coding stuff for Stardance with this Slack Bot guide! I built ‘hughmanns-bot’, a Slack bot in a Nest container that responds to messages 24/7. while making the bot, I felt that the whole setup and installation of different libraries and such was pretty tedious; however, I feel proud of having made my first project for Stardance that people can actually use! to test it, go to any channel in the Slack and type in /hughmanns-bot (commands will automatically appear later) and have fun!...
|
1793623924.3618183
|
1793710324.3618183
|
|
30985
|
lightweight NAS by @Nasser | Stardance
|
Nasser
|
1
|
34.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-04T01:43:39Z", "hours": 34.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "About this project a NAS ( Network Attached Storage ) Which is basically a storage system that gets attached to your network, so you can manage your memory card (a real NAS usually uses hard drives) files, upload, download, delete, and so on, without any need for a physical connection. All of it is done over the network, so you won’t need to open and reopen your SIM slot to get or insert the memory card, and use the USB card adapter every time you need to transfer some files from your phone to your laptop when Bluetooth fails, or the file is too large. Now, there’s no need for all this chaos, because this device is now accessible from almost any device you have, as long as it’s on the same network. For more about getting started with this, please check my GitHub repository. Well, you might say, “He ended up spending 34 hours solving a 10-minute problem.” Well, maybe yes, but the difference becomes much more evident when you’re in a rush and Bluetooth just refuses to pair, or the connection fails for some unknown reason. Then you’ve got to sit there and spend a few nice hours trying to figure out where the problem is. Time is gold, buddy. Well, again, this project was challenging, from creating each of the backend modules, managing storage and the FileService , to the HTTP server, which was one of the hardest parts to debug after the JavaScript issues. But the hardest part revolved around making all the modules work together, the frontend and the backend, to display the right values. I’m proud of myself because I fixed a lot of issues and learned a lot of new things about project and code management. That’s it for this version. If you want to know how to use it, please check my README. Thank you, and always remember: “The devotion of the greatest is to encounter danger, and play dice for death.”", "repo": "https://github.com/karimsm16/a-lightweight-NAS", "demo": "https://youtu.be/0M4kWjUGIP0"}]...
|
[{"post_id": 40467, "ts": "202 [{"post_id": 40467, "ts": "2026-08-04T00:44:51Z", "hours": 1.1742, "text": "I created the ReadME , and completed the project info implementation"}, {"post_id": 40180, "ts": "2026-08-03T16:12:08Z", "hours": 5.2442, "text": "Devlog Since the last devlog, I completed the remaining work needed to finish the first milestone of the ESP32 NAS project (Mayby the first and the last ) . On the backend, I added the missing HTTP API endpoints for storage information, file listing, downloading, uploading, deleting, renaming, and creating folders, along with their corresponding request handlers. The FileService was also extended to support multiple missions (it will be long so I will not cover them here). On the frontend, I finished the JavaScript logic by implementing storage usage monitoring with a live progress bar, storage statistics in both the dashboard and footer, file upload, download, delete, rename, and folder creation, client-side search (still working o it), automatic refresh of file and storage information, and proper initialization when the page loads. With these additions and fixes, this milestone is now complete. I tried it , and it’s fully functional , The ESP32 NAS now provides a smooth web interface with complete file management capabilities and live storage monitoring. well, it was a fasciniting project , and I really learned a lot, I ’m proud of it .(yeah,after I get a headache during debugging ) ."}, {"post_id": 39527, "ts": "2026-08-02T15:18:20Z", "hours": 4.2222, "text": "since the last time , I tried to turn the interface to a multi-page interface that contains the 3 main sections files , Network , Settings and I tried to integrate java script navigation , between pages and itms , and during this I got some javascript issues ,because the javascript file refused loadeding , but I fixed it later , after completing the navigation process I created an /api/network endpoint that returns live Wi-Fi information from the ESP32, and connected the Network page,I also implemented the /api/files API in the HTTP server, which converts the FileService output into JSON, then I started laying the foundation for folder navigation , which will allow the browser to navigate directories just like a desktop file explorer.**important note :**the data in the screenshot is fake because I run UI files in the live server , not yet to the esp32"}, {"post_id": 38881, "ts": "2026-08-01T13:26:44Z", "hours": 11.205, "text": "DEVLOG (3)This week I focused on improving both the backend architecture and the web interface of the ESP32 NAS.I finished refactoring the FileService and HttpServer classes . I also implemented the first HTTP API endpoints that will allow the frontend to communicate with the ESP32, I really struggled to make the HTTP server work .On the frontend, I redesigned the HTML layout, cleaned up the structure, fixed some dumb problems , and introduced dedicated pages for Files , Network , and Settings . for the actual moment the backend is ready , and the same thing for the frontend (I will improve it later) , now I have to connect them all through JavaScript and the REST API.well I come along a hard way to this , but it deserves it"}, {"post_id": 36096, "ts": "2026-07-27T23:37:26Z", "hours": 4.6772, "text": "DEVLOG (3) BEHOLD!!!!! Today’s session was all about strengthening the software architecture of the ESP32 NAS. Completed Finished the SDManager module. Successfully initialized and tested the SD card. Built the WiFiManager module and established a successful Wi-Fi connection. Started developing the FileService module. Implemented the following file operations: exists() createFolder() deleteFile() deleteFolder() rename() fileSize() copyFile() moveFile() Resolved multiple compilation and IntelliSense issues while improving the project structure. ’The next ’milestone is integrating these modules with the web server and building the NAS interface. Stay tuned."}, {"post_id": 35350, "ts": "2026-07-26T17:56:07Z", "hours": 4.3428, "text": "DEVLOG (1) BEHOLD!!!!! Today I finished one of the core modules of the ESP32 NAS project: SDManager . The pupose of this module is simple: make the SD card completely independent from the rest of the project. From now on, no other class will communicate directly with SD.h ; everything goes through SDManager . Implemented features SD card initialization Card mounting status Total storage capacity Used storage Free storage Card type detection (SDSC / SDHC / SDXC) File existence check Open files Create folders Rename files and folders Delete files Debug information through the Serial Monitor I also spent a good amount of time debugging the module. Most of the issues were caused by mismatched function declarations, missing braces, incorrect return types, and a few IntelliSense false positives. After fixing them one by one, the project finally compiled successfully. Finally, I connected the SD card to the ESP32 and verified that everything works correctly. The board successfully detects the SD card and prints its information, including storage capacity and available space. With the storage layer now complete, the foundation of the project is becoming much stronger. Next step: build the WiFiManager module and add mDNS support so the NAS can be accessed using a hostname"}, {"post_id": 33993, "ts": "2026-07-24T11:56:35Z", "hours": 3.5872, "text": "The Story Behind This Project One day, I wanted to transfer some files from the SD card in my phone to my desktop. I thought it would be easy—just send them over Bluetooth. Well… that’s not what happened. I tried transferring the files using Bluetooth, but every single time the connection failed. Then I had to pair the two devices again, only for the transfer to fail once more. I kept thinking, “Come on, it shouldn’t be this hard.” After wasting almost an hour of my precious time (and remember, 1 hour of my precious time = $100 ), I looked at my second option. Remove the SIM tray. Take out the SD card. Put it into a USB card reader. Plug it into the computer. Transfer the files. Remove the card again. Open the SIM tray again. Put the SD card back. Nope. I really dislike opening and reopening the SIM tray every time I need to transfer a few files. So there I was, stuck between two terrible options: Bluetooth ( damn BLE ). USB card reader ( damn that too ). Then I remembered something… or maybe I just invented it. “When you have two bad options, don’t choose either of them. Make a third one.” I don’t even know if SpongeBob ever said that. Probably not. But it sounded meaningful enough to me. So I rolled up my sleeves and decided to build something that would solve the problem once and for all. Something fast. Something reliable. Something that uses Wi-Fi instead of Bluetooth . After a lot of thinking… and thinking… and more thinking (okay, and not that much research >-<), I finally decided to build a lightweight NAS powered by an ESP32. So I started sketching the web interface and began coding it. Right now, it’s a little rough around the edges (okay… maybe more than a little >_<), but that’s completely fine. My goal isn’t to make it perfect on day one—it’s to build a solid foundation first and improve the design as the project evolves. Moral of the story: Always listen to SpongeBob. Thanks, Bob."}]...
|
Title: lightweight NAS by @Nasser | Stardance
Dev Title: lightweight NAS by @Nasser | Stardance
Devlogs:
The Story Behind This Project One day, I wanted to transfer some files from the SD card in my phone to my desktop. I thought it would be easy—just send them over Bluetooth. Well… that’s not what happened. I tried transferring the files using Bluetooth, but every single time the connection failed. Then I had to pair the two devices again, only for the transfer to fail once more. I kept thinking, “Come on, it shouldn’t be this hard.” After wasting almost an hour of my precious time (and remember, 1 hour of my precious time = $100 ), I looked at my second option. Remove the SIM tray. Take out the SD card. Put it into a USB card reader. Plug it into the computer. Transfer the files. Remove the card again. Open the SIM tray again. Put the SD card back. Nope. I really dislike opening and reopening the SIM tray every time I need to transfer a few files. So there I was, stuck between two terrible options: Bluetooth ( damn BLE ). USB card reader ( damn that too ). Then I remembered something… or maybe I just invented it. “When you have two bad options, don’t choose either of them. Make a third one.” I don’t even know if SpongeBob ever said that. Probably not. But it sounded meaningful enough to me. So I rolled up my sleeves and decided to build something that would solve the problem once and for all. Something fast. Something reliable. Something that uses Wi-Fi instead of Bluetooth . After a lot of thinking… and thinking… and more thinking (okay, and not that much research >-<), I finally decided to build a lightweight NAS powered by an ESP32. So I started sketching the web interface and began coding it. Right now, it’s a little rough around the edges (okay… maybe more than a little >_<), but that’s completely fine. My goal isn’t to make it perfect on day one—it’s to build a solid foundation first and improve the design as the project evolves. Moral of the story: Always listen to SpongeBob. Thanks, Bob.
DEVLOG (1) BEHOLD!!!!! Today I finished one of the core modules of the ESP32 NAS project: SDManager . The pupose of this module is simple: make the SD card completely independent from the rest of the project. From now on, no other class will communicate directly with SD.h ; everything goes through SDManager . Implemented features SD card initialization Card mounting status Total storage capacity Used storage Free storage Card type detection (SDSC / SDHC / SDXC) File existence check Open files Create folders Rename files and folders Delete files Debug information through the Serial Monitor I also spent a good amount of time debugging the module. Most of the issues were caused by mismatched function declarations, missing braces, incorrect return types, and a few IntelliSense false positives. After fixing them one by one, the project finally compiled successfully. Finally, I connected the SD card to the ESP32 and verified that everything works correctly. The board successfully detects the SD card and prints its information, including storage capacity and available space. With the storage layer now complete, the foundation of the project is becoming much stronger. Next step: build the WiFiManager module and add mDNS support so the NAS can be accessed using a hostname
DEVLOG (3) BEHOLD!!!!! Today’s session was all about strengthening the software architecture of the ESP32 NAS. Completed Finished the SDManager module. Successfully initialized and tested the SD card. Built the WiFiManager module and established a successful Wi-Fi connection. Started developing the FileService module. Implemented the following file operations: exists() createFolder() deleteFile() deleteFolder() rename() fileSize() copyFile() moveFile() Resolved multiple compilation and IntelliSense issues while improving the project structure. ’The next ’milestone is integrating these modules with the web server and building the NAS interface. Stay tuned.
DEVLOG (3)This week I focused on improving both the backend architecture and the web interface of the ESP32 NAS.I finished refactoring the FileService and HttpServer classes . I also implemented the first HTTP API endpoints that will allow the frontend to communicate with the ESP32, I really struggled to make the HTTP server work .On the frontend, I redesigned the HTML layout, cleaned up the structure, fixed some dumb problems , and introduced dedicated pages for Files , Network , and Settings . for the actual moment the backend is ready , and the same thing for the frontend (I will improve it later) , now I have to connect them all through JavaScript and the REST API.well I come along a hard way to this , but it deserves it
since the last time , I tried to turn the interface to a multi-page interface that contains the 3 main sections files , Network , Settings and I tried to integrate java script navigation , between pages and itms , and during this I got some javascript issues ,because the javascript file refused loadeding , but I fixed it later , after completing the navigation process I created an /api/network endpoint that returns live Wi-Fi information from the ESP32, and connected the Network page,I also implemented the /api/files API in the HTTP server, which converts the FileService output into JSON, then I started laying the foundation for folder navigation , which will allow the browser to navigate directories just like a desktop file explorer.**important note :**the data in the screenshot is fake because I run UI files in the live server , not yet to the esp32
Devlog Since the last devlog, I completed the remaining work needed to finish the first milestone of the ESP32 NAS project (Mayby the first and the last ) . On the backend, I added the missing HTTP API endpoints for storage information, file listing, downloading, uploading, deleting, renaming, and creating folders, along with their corresponding request handlers. The FileService was also extended to support multiple missions (it will be long so I will not cover them here). On the frontend, I finished the JavaScript logic by implementing storage usage monitoring with a live progress bar, storage statistics in both the dashboard and footer, file upload, download, delete, rename, and folder creation, client-side search (still working o it), automatic refresh of file and storage information, and proper initialization when the page loads. With these additions and fixes, this milestone is now complete. I tried it , and it’s fully functional , The ESP32 NAS now provides a smooth web interface with complete file management capabilities and live storage monitoring. well, it was a fasciniting project , and I really learned a lot, I ’m proud of it .(yeah,after I get a headache during debugging ) .
I created the ReadME , and completed the project info implementation
Ships:
About this project a NAS ( Network Attached Storage ) Which is basically a storage system that gets attached to your network, so you can manage your memory card (a real NAS usually uses hard drives) files, upload, download, delete, and so on, without any need for a physical connection. All of it is done over the network, so you won’t need to open and reopen your SIM slot to get or insert the memory card, and use the USB card adapter every time you need to transfer some files from your phone to your laptop when Bluetooth fails, or the file is too large. Now, there’s no need for all this chaos, because this device is now accessible from almost any device you have, as long as it’s on the same network. For more about getting started with this, please check my GitHub repository. Well, you might say, “He ended up spending 34 hours solving a 10-minute problem.” Well, maybe yes, but the difference becomes much more evident when you’re in a rush and Bluetooth just refuses to pair, or the connection fails for some unknown reason. Then you’ve got to sit there and spend a few nice hours trying to figure out where the problem is. Time is gold, buddy. Well, again, this project was challenging, from creating each of the backend modules, managing storage and the FileService , to the HTTP server, which was one of the hardest parts to debug after the JavaScript issues. But the hardest part revolved around making all the modules work together, the frontend and the backend, to display the right values. I’m proud of myself because I fixed a lot of issues and learned a lot of new things about project and code management. That’s it for this version. If you want to know how to use it, please check my README. Thank you, and always remember: “The devotion of the greatest is to encounter danger, and play dice for death.”...
|
1793623925.513008
|
1793710325.513008
|
|
33133
|
WebDance by @Mk1A | Stardance
|
Mk1A
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-11T14:24:26Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is my first ship to StarDance. I have used my HTML, CSS and basic JS knowledge to create this website. I have used Grids, Transitions, Hovers, and other CSS properties to create an presentable look. I also hand-drew the Web-Dance logo in MS-Paint lol ;). Hope to keep learning and improving.", "repo": "https://github.com/Mk1A-Falcon/Web-Dance", "demo": "https://mk1a-falcon.github.io/Web-Dance/"}]...
|
[{"post_id": 26558, "ts": "202 [{"post_id": 26558, "ts": "2026-07-11T13:32:56Z", "hours": 2.1092, "text": "A lot of work done in this one. For starters, styled multiple classes with Fonts, added grids and styled the navbar. Additionally created a button with basic JS application. Added basic transitions and a box-shadow on my text-div . I also went ahead and fixed any grammatical and indentation issues. Primarily, REVAMPED the WebDance logo . Also added an inline photo too"}, {"post_id": 26380, "ts": "2026-07-11T04:20:27Z", "hours": 1.3381, "text": "Hiya, my first devlog ever huh. Well anyways, I started the project with some art I made, completed the basic structure of the website. Honestly right not it isn’t as presentable but I am working on the fonts and color-grading. Completed the background CSS and made a basic navbar and also completed the text part of the website. UP next, I plan to add basic animations and complete the website for it’s first ship with better CSS."}]...
|
Title: WebDance by @Mk1A | Stardance
Devlogs:
Hiy Title: WebDance by @Mk1A | Stardance
Devlogs:
Hiya, my first devlog ever huh. Well anyways, I started the project with some art I made, completed the basic structure of the website. Honestly right not it isn’t as presentable but I am working on the fonts and color-grading. Completed the background CSS and made a basic navbar and also completed the text part of the website. UP next, I plan to add basic animations and complete the website for it’s first ship with better CSS.
A lot of work done in this one. For starters, styled multiple classes with Fonts, added grids and styled the navbar. Additionally created a button with basic JS application. Added basic transitions and a box-shadow on my text-div . I also went ahead and fixed any grammatical and indentation issues. Primarily, REVAMPED the WebDance logo . Also added an inline photo too
Ships:
This is my first ship to StarDance. I have used my HTML, CSS and basic JS knowledge to create this website. I have used Grids, Transitions, Hovers, and other CSS properties to create an presentable look. I also hand-drew the Web-Dance logo in MS-Paint lol ;). Hope to keep learning and improving....
|
1793623926.6904542
|
1793710326.6904542
|
|
27129
|
TETRIS by @AB_TRANFORMER | Stardance
|
AB_TRANFORMER
|
1
|
3.0
|
4
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-03T20:32:16Z", "hours": 3.0, "multiplier": 1.23, "payout": 4, "blessing": "neutral", "text": "I made a simple Tetris game, where you have to use your right and left arrows to move the falling blocks .To rotate the block press the up arrow and to make it go faster press the down arrow.Thanks to Chill Coding with Robert for this game.", "repo": "https://github.com/abhilikescheese-pixel/TETRIS-ULTIMATE", "demo": "https://abhi-cool.itch.io/tetris-ultimate"}]...
|
[{"post_id": 21488, "ts": "202 [{"post_id": 21488, "ts": "2026-07-03T13:53:36Z", "hours": 2.5675, "text": "ive just finnished making a simple Tetris game"}, {"post_id": 17030, "ts": "2026-06-27T17:16:47Z", "hours": 0.36, "text": "I’ve just started a tetris style game"}]...
|
Title: TETRIS by @AB_TRANFORMER | Stardance
Devlo Title: TETRIS by @AB_TRANFORMER | Stardance
Devlogs:
I’ve just started a tetris style game
ive just finnished making a simple Tetris game
Ships:
I made a simple Tetris game, where you have to use your right and left arrows to move the falling blocks .To rotate the block press the up arrow and to make it go faster press the down arrow.Thanks to Chill Coding with Robert for this game....
|
1793623927.8731902
|
1793710327.8731902
|
|
46657
|
Moot by @Capy | Stardance
|
Capy
|
1
|
6.0
|
100
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-14T16:04:28Z", "hours": 6.0, "multiplier": 15.99, "payout": 100, "blessing": "neutral", "text": "I made Moot! It’s a neural network trained on 80,000 examples to do something a neural network was never made to do; maths! :D I was very surprised by how capable it was. Up to 4 or 5 figures, it can guess the answers to equations with surprising accuracy. What to try: I’d recommend managing your expectations. Try some small equations, e.g, 50 + 5. Why? Fun! Computers are so annoyingly fast these days that we take such impressive speeds as trillions of calculations a second for granted. This puts into perspective how optimised things have become, by making something intentionally unique. Also, neural networks think kind of similarly to how humans do, so I guess you can make something poetic out of that! XD I hope you enjoy testing Moot! I had a lot of fun making it. Here’s some more info if you care! How it works: When you press a button on the keypad, it adds that key to a string. That string is then parsed, separating the numbers and removing the plus sign. That’s then divided and sent over to the server, which takes the inputs and squishes them down to values that the activation function (leaky-relu) can understand. The server then multiplies the inputs through the weights of the neural network, before sending the estimation back to the client. It’s then put through another multiplication to scale it back. This is a simplification of the steps, but it’s the basic concept. The stack: SvelteKit all around! But it also uses brain.js for the neural network. That’s all I have to say! I hope you enjoy it.", "repo": "https://github.com/CapyGamesXD/Moot", "demo": "https://moot-three.vercel.app"}]...
|
[{"post_id": 46959, "ts": "202 [{"post_id": 46959, "ts": "2026-08-14T15:15:10Z", "hours": 0.4625, "text": "Final devlog. The first time I wrote this the SD website glitched and failed to submit it, so I’ll make sure to copy it this time in case that happens again XD Anyway! Here’s what I did. I fixed some bugs on the +page.svelte (home page) regarding the displayText. I polished the other pages’ UI (the generateDataset and trainFrontend). I also then added a feature to block the trainFrontend based on an .env variable. :) That means nobody can spam it and crash the host server during voting. Lastly, I committed the training data, because why not? :) It also helped the Vercel deployment, since I didn’t have to manually add it."}, {"post_id": 46801, "ts": "2026-08-14T09:42:21Z", "hours": 2.3378, "text": "Big updates! More productive devlog today! I added a bunch of fallbacks. Some for if the user only enters one number, some for if the user enters too many, etc. I changed the UI, making it uncomfortably brightly coloured to enhance the experience :) Yay, gradients :D I also added a bunch of different loading messages, which you can see in the image. I also made it so that the model can calculate equations outside of its range! It’s trained on arithmetic addition from 0-100. Beyond that point, it would just guess! Now, I’ve got a function that takes the inputs, checks if the highest one is over 100, and multiplies it down! (Actually, it’s between 0 and one, but the valid ranges are 1-100, because that’s how it’s sent through.) Now it can calculate numbers in the hundreds, even thousands with accuracy! Although it does taper off going further than 5 figures :) I also added a nice starting page to kinda explain the project (it’ll all be explained in the ship notes too, just thought I might as well.) I fixed several edge cases (who knew a calculator would have that many???), also adding a bool to track whether the screen’s state is “volatile”. AKA, if the calculation’s completed and it’s displaying the answer, then - when an input occurs, it’ll clear everything and start a new equation (there’s an easter egg hidden in that logic! Feel free to check it out in the repo lol). To-do still: Improve the UI of the other pages or just remove them from the build. By the “other pages”, I mean the page I used for training, and the page I used for dataset generation. I’d love your feedback on this, actually! I wouldn’t want unauthorised people to overload my hosting server with “train” instructions. I made the calculator input panel a SvelteKit {#each} block. This was kinda a strange choice on my part, but it keeps the code looking organised and less repetitive. It also means if I want to change one element (e.g, the CSS class name or the function name) I just have to change the one box. Thanks for reading! Happy coding! :D"}, {"post_id": 45141, "ts": "2026-08-11T13:19:25Z", "hours": 3.4267, "text": "Moot! I got the neural network working! :) I trained it on various amounts of data, and it works okay sometimes. I’m trying to improve it! I’ve spent a lot of time changing things like the amount of data, normalisation algorithm, etc. I also got async processing working so it works across cores instead of just one, making it SO much faster! I decided on leaky-relu because: Sigmoid isn’t accurate for the magnitude of values I’m using, and ReLU isn’t changing at all! I’m still playing around with learning rates and stuff. Next, I plan to: Fix the calculator for values above 1000, because I don’t feel like training it for that much data. And improve the UI and UX! Sorry for the boring devlog, it’s difficult to show when it’s all code instead of a nice website :) I designed the UI first too! I’m also gonna add the annoying messages and delays that are in the image below! They’re gonna show up individually, not all together lol That’s the Figma design. The other image is the current website look! I also need to get the “+” and “=” signs looking the same. One last thing! I added this cool system (code image below) which seems to work pretty well! Sorry for the weird layout, I’m kinda distracted right now lel. Thanks for reading! :D"}]...
|
Title: Moot by @Capy | Stardance
Devlogs:
Moot! I Title: Moot by @Capy | Stardance
Devlogs:
Moot! I got the neural network working! :) I trained it on various amounts of data, and it works okay sometimes. I’m trying to improve it! I’ve spent a lot of time changing things like the amount of data, normalisation algorithm, etc. I also got async processing working so it works across cores instead of just one, making it SO much faster! I decided on leaky-relu because: Sigmoid isn’t accurate for the magnitude of values I’m using, and ReLU isn’t changing at all! I’m still playing around with learning rates and stuff. Next, I plan to: Fix the calculator for values above 1000, because I don’t feel like training it for that much data. And improve the UI and UX! Sorry for the boring devlog, it’s difficult to show when it’s all code instead of a nice website :) I designed the UI first too! I’m also gonna add the annoying messages and delays that are in the image below! They’re gonna show up individually, not all together lol That’s the Figma design. The other image is the current website look! I also need to get the “+” and “=” signs looking the same. One last thing! I added this cool system (code image below) which seems to work pretty well! Sorry for the weird layout, I’m kinda distracted right now lel. Thanks for reading! :D
Big updates! More productive devlog today! I added a bunch of fallbacks. Some for if the user only enters one number, some for if the user enters too many, etc. I changed the UI, making it uncomfortably brightly coloured to enhance the experience :) Yay, gradients :D I also added a bunch of different loading messages, which you can see in the image. I also made it so that the model can calculate equations outside of its range! It’s trained on arithmetic addition from 0-100. Beyond that point, it would just guess! Now, I’ve got a function that takes the inputs, checks if the highest one is over 100, and multiplies it down! (Actually, it’s between 0 and one, but the valid ranges are 1-100, because that’s how it’s sent through.) Now it can calculate numbers in the hundreds, even thousands with accuracy! Although it does taper off going further than 5 figures :) I also added a nice starting page to kinda explain the project (it’ll all be explained in the ship notes too, just thought I might as well.) I fixed several edge cases (who knew a calculator would have that many???), also adding a bool to track whether the screen’s state is “volatile”. AKA, if the calculation’s completed and it’s displaying the answer, then - when an input occurs, it’ll clear everything and start a new equation (there’s an easter egg hidden in that logic! Feel free to check it out in the repo lol). To-do still: Improve the UI of the other pages or just remove them from the build. By the “other pages”, I mean the page I used for training, and the page I used for dataset generation. I’d love your feedback on this, actually! I wouldn’t want unauthorised people to overload my hosting server with “train” instructions. I made the calculator input panel a SvelteKit {#each} block. This was kinda a strange choice on my part, but it keeps the code looking organised and less repetitive. It also means if I want to change one element (e.g, the CSS class name or the function name) I just have to change the one box. Thanks for reading! Happy coding! :D
Final devlog. The first time I wrote this the SD website glitched and failed to submit it, so I’ll make sure to copy it this time in case that happens again XD Anyway! Here’s what I did. I fixed some bugs on the +page.svelte (home page) regarding the displayText. I polished the other pages’ UI (the generateDataset and trainFrontend). I also then added a feature to block the trainFrontend based on an .env variable. :) That means nobody can spam it and crash the host server during voting. Lastly, I committed the training data, because why not? :) It also helped the Vercel deployment, since I didn’t have to manually add it.
Ships:
I made Moot! It’s a neural network trained on 80,000 examples to do something a neural network was never made to do; maths! :D I was very surprised by how capable it was. Up to 4 or 5 figures, it can guess the answers to equations with surprising accuracy. What to try: I’d recommend managing your expectations. Try some small equations, e.g, 50 + 5. Why? Fun! Computers are so annoyingly fast these days that we take such impressive speeds as trillions of calculations a second for granted. This puts into perspective how optimised things have become, by making something intentionally unique. Also, neural networks think kind of similarly to how humans do, so I guess you can make something poetic out of that! XD I hope you enjoy testing Moot! I had a lot of fun making it. Here’s some more info if you care! How it works: When you press a button on the keypad, it adds that key to a string. That string is then parsed, separating the numbers and removing the plus sign. That’s then divided and sent over to the server, which takes the inputs and squishes them down to values that the activation function (leaky-relu) can understand. The server then multiplies the inputs through the weights of the neural network, before sending the estimation back to the client. It’s then put through another multiplication to scale it back. This is a simplification of the steps, but it’s the basic concept. The stack: SvelteKit all around! But it also uses brain.js for the neural network. That’s all I have to say! I hope you enjoy it....
|
1793623929.0770588
|
1793710329.0770588
|
|
39004
|
Siri All-Mighty by @BTG9161 | Stardance
|
BTG9161
|
1
|
29.75
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-25T14:02:40Z", "hours": 24.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an ai agent, the tool calling was challenging.", "repo": "https://github.com/BTG9161/SIri-All-Mighty", "demo": "https://github.com/BTG9161/SIri-All-Mighty/releases"}]...
|
[{"post_id": 40244, "ts": "202 [{"post_id": 40244, "ts": "2026-08-03T17:21:47Z", "hours": 5.7483, "text": "This devlog is for minor changes added to Siri for proper universal use on Macbooks by editing the siri directory to make it work everywhere, because in the last version it only worked on my mac due to the hardcoded dirs"}, {"post_id": 33927, "ts": "2026-07-24T07:27:42Z", "hours": 23.9503, "text": "I have worked 22h 42m on Siri and this devlog is for that My Siri All-Mighty is an aiagent that has access to the whole system- through the terminal. It can also be interacted through telegram, with the help of a bot. Also, it uses mcp to make tool definitions."}]...
|
Title: Siri All-Mighty by @BTG9161 | Stardance
De Title: Siri All-Mighty by @BTG9161 | Stardance
Devlogs:
I have worked 22h 42m on Siri and this devlog is for that My Siri All-Mighty is an aiagent that has access to the whole system- through the terminal. It can also be interacted through telegram, with the help of a bot. Also, it uses mcp to make tool definitions.
This devlog is for minor changes added to Siri for proper universal use on Macbooks by editing the siri directory to make it work everywhere, because in the last version it only worked on my mac due to the hardcoded dirs
Ships:
I made an ai agent, the tool calling was challenging....
|
1793623930.2434516
|
1793710330.2434516
|
|
32461
|
Local Plant Medic by @cognitayohan | Stardance
|
cognitayohan
|
2
|
5.0
|
75
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-20T22:52:42Z", "hours": 1.0, "multiplier": 15.58, "payout": 16, "blessing": "neutral", "text": "Ship #2: Flora Diagnostics, a Local Plant Medic, is an application that can run completely offline, using ONNX and Next.js to analyze images locally for plant health diagnostics. Read README.md for more information about UN goals and the purpose of the app! Over the course from Ship #1 –> Ship #2, I have added Android build files and started to test offline access. More to come!", "repo": "https://github.com/robot3-track/edge-plant-analyzer", "demo": "https://floradiagnostics.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-10T16:46:29Z", "hours": 4.0, "multiplier": 14.47, "payout": 59, "blessing": "neutral", "text": "Ship #1: Flora Diagnostics, a Local Plant Medic, is an application that can run completely offline, using ONNX and Next.js to analyze images locally for plant health diagnostics. This app covers: UN Sustainable Development Goal 2: Zero Hunger. By helping farmers and home gardeners quickly identify crop diseases, this easy-to-access offline app can prevent massive food loss, promote sustainable agriculture, and improve overall food security. Furthermore, the importance of this app being able to run offline is crucial especially in rural farms and communities. To be able to quickly provide crop analysis for these locations can be a crucial component in a community’s ability to thrive.", "repo": "https://github.com/robot3-track/edge-plant-analyzer", "demo": "https://floradiagnostics.vercel.app/"}]...
|
[{"post_id": 27776, "ts": "202 [{"post_id": 27776, "ts": "2026-07-13T17:05:32Z", "hours": 0.4336, "text": "Devlog 6: Added Android building files to build APK artifact onto Github."}, {"post_id": 27370, "ts": "2026-07-12T21:32:05Z", "hours": 0.3044, "text": "Devlog 5: Fixed code logic to understand wheat inputs better and predict diseases more accurately. The issue was the elimination of lower-probability cases, causing empty inputs for all crops except for rice basically."}, {"post_id": 26072, "ts": "2026-07-10T17:33:46Z", "hours": 0.2942, "text": "Devlog 4: Add Readme to describe the process of the build and the purpose of the project"}, {"post_id": 26031, "ts": "2026-07-10T16:44:06Z", "hours": 0.3264, "text": "Devlog 4: Cleared Cache for rebuild and added new analysis features successfully Finally, after a few more tweaking and editing in the code as well as clearing the cache while testing on the vercel deployment, the app is ready to go! It features diagnostic summaries with condition analysis and symptom checkers. Furthermore, you are allowed to filter the plant for more accurate results. Below is a segment of the code featuring report diagnostics: <div key={idx} className=\"p-4 border border-stone-200 rounded-xl bg-stone-50 space-y-2\"> <div className=\"flex justify-between items-center\"> <span className=\"text-lg font-bold text-stone-900 capitalize\">{cleanLabel}</span> <span className=\"text-xs font-bold text-emerald-800 bg-emerald-100 px-3 py-1 rounded-full\"> {typeof p.score === 'number' ? `${(p.score * 100).toFixed(1)}%` : 'N/A'} </span> </div> <p className=\"text-sm text-stone-600 italic\">{info.desc}</p> <p className=\"text-sm font-semibold text-stone-800\"> Recommended Treatment: <span className=\"font-normal text-stone-600\">{info.treat}</span> </p> </div> );```"}, {"post_id": 26012, "ts": "2026-07-10T16:07:05Z", "hours": 0.3436, "text": "Devlog 3: Refined the new ONNX and setup for new analysis features After rollbacking a few broken commits, I made sure the code was ready to be setup for new analysis features such as giving advice for treating certain types of conditions. In addition, a future setup will be to allow users to narrow down the scope of analysis by stating the exact type of plant first."}, {"post_id": 25700, "ts": "2026-07-10T03:50:37Z", "hours": 2.5464, "text": "Devlog 2: Fixing build errors and correct ONNX I fixed the build errors by cleaning up the next.config.ts file and removing the curl commands that were causing the server to crash. I also updated the code in page.tsx so the image data would be sent as a Uint8Array instead of just an object. Finally, I fixed the worker.js file to wrap that data in a RawImage object, which let the AI model finally understand the images I was sending it. With these fixes, I have finally made the first version of the application that detects properly! However, much more work needs to be done when it comes to expanding analysis and the range of plants in context of agriculture."}, {"post_id": 24518, "ts": "2026-07-08T03:48:36Z", "hours": 1.2028, "text": "Devlog 1: Initial setup Built the first demo UI and connected the ONNX setup along with camera system. Much work to be done still as plant analysis needs to be properly trained locally!! As you can see values and analysis are a bit off since the local model isn’t trained very well yet."}]...
|
Title: Local Plant Medic by @cognitayohan | Starda Title: Local Plant Medic by @cognitayohan | Stardance
Devlogs:
Devlog 1: Initial setup Built the first demo UI and connected the ONNX setup along with camera system. Much work to be done still as plant analysis needs to be properly trained locally!! As you can see values and analysis are a bit off since the local model isn’t trained very well yet.
Devlog 2: Fixing build errors and correct ONNX I fixed the build errors by cleaning up the next.config.ts file and removing the curl commands that were causing the server to crash. I also updated the code in page.tsx so the image data would be sent as a Uint8Array instead of just an object. Finally, I fixed the worker.js file to wrap that data in a RawImage object, which let the AI model finally understand the images I was sending it. With these fixes, I have finally made the first version of the application that detects properly! However, much more work needs to be done when it comes to expanding analysis and the range of plants in context of agriculture.
Devlog 3: Refined the new ONNX and setup for new analysis features After rollbacking a few broken commits, I made sure the code was ready to be setup for new analysis features such as giving advice for treating certain types of conditions. In addition, a future setup will be to allow users to narrow down the scope of analysis by stating the exact type of plant first.
Devlog 4: Cleared Cache for rebuild and added new analysis features successfully Finally, after a few more tweaking and editing in the code as well as clearing the cache while testing on the vercel deployment, the app is ready to go! It features diagnostic summaries with condition analysis and symptom checkers. Furthermore, you are allowed to filter the plant for more accurate results. Below is a segment of the code featuring report diagnostics: <div key={idx} className="p-4 border border-stone-200 rounded-xl bg-stone-50 space-y-2"> <div className="flex justify-between items-center"> <span className="text-lg font-bold text-stone-900 capitalize">{cleanLabel}</span> <span className="text-xs font-bold text-emerald-800 bg-emerald-100 px-3 py-1 rounded-full"> {typeof p.score === 'number' ? `${(p.score * 100).toFixed(1)}%` : 'N/A'} </span> </div> <p className="text-sm text-stone-600 italic">{info.desc}</p> <p className="text-sm font-semibold text-stone-800"> Recommended Treatment: <span className="font-normal text-stone-600">{info.treat}</span> </p> </div> );```
Devlog 4: Add Readme to describe the process of the build and the purpose of the project
Devlog 5: Fixed code logic to understand wheat inputs better and predict diseases more accurately. The issue was the elimination of lower-probability cases, causing empty inputs for all crops except for rice basically.
Devlog 6: Added Android building files to build APK artifact onto Github.
Ships:
Ship #1: Flora Diagnostics, a Local Plant Medic, is an application that can run completely offline, using ONNX and Next.js to analyze images locally for plant health diagnostics. This app covers: UN Sustainable Development Goal 2: Zero Hunger. By helping farmers and home gardeners quickly identify crop diseases, this easy-to-access offline app can prevent massive food loss, promote sustainable agriculture, and improve overall food security. Furthermore, the importance of this app being able to run offline is crucial especially in rural farms and communities. To be able to quickly provide crop analysis for these locations can be a crucial component in a community’s ability to thrive.
Ship #2: Flora Diagnostics, a Local Plant Medic, is an application that can run completely offline, using ONNX and Next.js to analyze images locally for plant health diagnostics. Read README.md for more information about UN goals and the purpose of the app! Over the course from Ship #1 –> Ship #2, I have added Android build files and started to test offline access. More to come!...
|
1793623931.4442825
|
1793710331.4442825
|
|
36092
|
Personal Website :) by @fish-in-a-puddle | Stardan Personal Website :) by @fish-in-a-puddle | Stardance...
|
fish-in-a-puddle
|
1
|
9.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-04T13:17:07Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have made a website to display my projects, to write reviews of books that I’ve read, and to share stuff I think is cool or might be helpful to other Hack Clubbers. This website is my first shipped software project, as I usually stick to hardware, but using the guide I was able to make something that I’m proud of. Right now there is no JS in the project, but I may ship it again later with more features. There are the three main sections (My projects, Book reviews and Cool stuff), a short “About Me”, an embedded Spotify playlist with some of my favorite music, some GIFs to add some movement to the page and a “Contact Me” section at the very bottom of the page.", "repo": "https://github.com/fish-in-a-puddle/Personal-Website", "demo": "https://fish-in-a-puddle.github.io/Personal-Website/"}]...
|
[{"post_id": 61128, "ts": "202 [{"post_id": 61128, "ts": "2026-09-03T21:33:39Z", "hours": 2.7664, "text": "Personal Website is done!! I finished adding some GIFs, a “cool stuff” section and fixed a few final issues with the formatting. I’m very happy with how this project has turned out, and I hope that others find it interesting or at least okay to scroll through. I learned a lot about how a website is built and how insanely difficult it is to get anything to go where you want it to, but it got a lot easier over time. Once I finish writing the README (not much to say, just open the link) it’ll be ready to ship."}, {"post_id": 59080, "ts": "2026-08-31T18:07:36Z", "hours": 1.71, "text": "After taking a break from this project to focus on finishing my hackpad, I embedded a Spotify playlist next to the “About Me” section. I also decided to add a “Book reviews” section instead of recommendations or inspiration. For some unknown reason, the book reviews refuse to be formatted like my projects, so I changed it so each individual review takes up the width of the page. The website is getting close to done. I just need to decide what to do with the header, expand the “About Me” section and finish reformatting the book reviews."}, {"post_id": 49844, "ts": "2026-08-18T19:54:48Z", "hours": 4.3703, "text": "I played around with some different ideas, themes and layouts. It took me a while to decide on one, but eventually the look of the site started to come together. I decided to cut out the media recommendations for now, since I want to website to be focused on projects. I’m thinking about replacing that section with an “Inspiration”section with links to projects I think are cool. I also removed the non-electronic projects. There wasn’t really anything I could show for them. So far I have four projects: three have pictures, two have links and they are all formatted the way I wanted. I also have a small “About me” section written. It doesn’t have a picture of the logo I’m working on yet, though. I am also thinking of embedding a Spotify playlist on the site. The next step for this project is to improve the header (not exactly sure how yet - pictures? One big image as the header?) and to change the color of the hyperlinks so they don’t get lost with the background color."}, {"post_id": 29671, "ts": "2026-07-16T18:56:34Z", "hours": 0.5794, "text": "Started working on a personal website! So far I have a vague idea of how it should look and am slowly making it happen. There’s a header with a welcome message, an “about me” section and a section at the bottom with links to my Stardance and github. I’m playing around with flex to get everything in the right place, but it’s pretty ugly right now. I’ll make everything look more put together once everything’s actually there."}]...
|
Title: Personal Website :) by @fish-in-a-puddle | Title: Personal Website :) by @fish-in-a-puddle | Stardance
Devlogs:
Started working on a personal website! So far I have a vague idea of how it should look and am slowly making it happen. There’s a header with a welcome message, an “about me” section and a section at the bottom with links to my Stardance and github. I’m playing around with flex to get everything in the right place, but it’s pretty ugly right now. I’ll make everything look more put together once everything’s actually there.
I played around with some different ideas, themes and layouts. It took me a while to decide on one, but eventually the look of the site started to come together. I decided to cut out the media recommendations for now, since I want to website to be focused on projects. I’m thinking about replacing that section with an “Inspiration”section with links to projects I think are cool. I also removed the non-electronic projects. There wasn’t really anything I could show for them. So far I have four projects: three have pictures, two have links and they are all formatted the way I wanted. I also have a small “About me” section written. It doesn’t have a picture of the logo I’m working on yet, though. I am also thinking of embedding a Spotify playlist on the site. The next step for this project is to improve the header (not exactly sure how yet - pictures? One big image as the header?) and to change the color of the hyperlinks so they don’t get lost with the background color.
After taking a break from this project to focus on finishing my hackpad, I embedded a Spotify playlist next to the “About Me” section. I also decided to add a “Book reviews” section instead of recommendations or inspiration. For some unknown reason, the book reviews refuse to be formatted like my projects, so I changed it so each individual review takes up the width of the page. The website is getting close to done. I just need to decide what to do with the header, expand the “About Me” section and finish reformatting the book reviews.
Personal Website is done!! I finished adding some GIFs, a “cool stuff” section and fixed a few final issues with the formatting. I’m very happy with how this project has turned out, and I hope that others find it interesting or at least okay to scroll through. I learned a lot about how a website is built and how insanely difficult it is to get anything to go where you want it to, but it got a lot easier over time. Once I finish writing the README (not much to say, just open the link) it’ll be ready to ship.
Ships:
I have made a website to display my projects, to write reviews of books that I’ve read, and to share stuff I think is cool or might be helpful to other Hack Clubbers. This website is my first shipped software project, as I usually stick to hardware, but using the guide I was able to make something that I’m proud of. Right now there is no JS in the project, but I may ship it again later with more features. There are the three main sections (My projects, Book reviews and Cool stuff), a short “About Me”, an embedded Spotify playlist with some of my favorite music, some GIFs to add some movement to the page and a “Contact Me” section at the very bottom of the page....
|
1793623932.6638968
|
1793710332.6638968
|
|
17138
|
CALCULATOR by @althaf | Stardance
|
althaf
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-25T07:20:18Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "you can do multiplication and division on it", "repo": "https://github.com/muhammedalthaf20250-ui/calculator", "demo": "https://muhammedalthaf20250-ui.github.io/calculator/intex.html"}]...
|
[{"post_id": 15529, "ts": "202 [{"post_id": 15529, "ts": "2026-06-25T07:07:40Z", "hours": 3.7875, "text": "it is a calculator"}]...
|
Title: CALCULATOR by @althaf | Stardance
Devlogs: Title: CALCULATOR by @althaf | Stardance
Devlogs:
it is a calculator
Ships:
you can do multiplication and division on it...
|
1793623934.5214748
|
1793710334.5214748
|
|
32859
|
CornOS by @corn | Stardance
|
corn
|
1
|
31.0
|
231
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-28T12:53:33Z", "hours": 31.0, "multiplier": 7.35, "payout": 231, "blessing": "neutral", "text": "A 32-bit x86 OS from complete scratch with GRUB as its bootloader, for educational purpose only.", "repo": "https://github.com/dcorn-stone/CornOS", "demo": "https://github.com/dcorn-stone/CornOS/releases"}]...
|
[{"post_id": 56602, "ts": "202 [{"post_id": 56602, "ts": "2026-08-28T12:50:21Z", "hours": 4.935, "text": "Finished tidying up and completing the ps/2 driver. Preparing to ship now, and try to implement paging in the future!"}, {"post_id": 52766, "ts": "2026-08-23T03:29:28Z", "hours": 7.145, "text": "Just trying to organize things in my codebase, completing the ps/2 scan code decoding function for set 2, and preparing to move on to implementing paging"}, {"post_id": 30524, "ts": "2026-07-18T05:26:27Z", "hours": 3.0786, "text": "Just made my OS capable of loading either exactly one Multiboot module or none. The module can be verified inside a debugger (gdb) which the EAX register should be set to 0xDEADBEEF."}, {"post_id": 27115, "ts": "2026-07-12T11:53:46Z", "hours": 4.3775, "text": "Made output logic better"}, {"post_id": 26357, "ts": "2026-07-11T03:11:05Z", "hours": 1.9347, "text": "Got the keyboard working!!!"}, {"post_id": 26307, "ts": "2026-07-11T01:02:22Z", "hours": 9.9053, "text": "Currently working on a ps/2 keyboard driver, only completing this for basic input. I have just done the state machine and scan code conversion, now trying to handle key events."}]...
|
Title: CornOS by @corn | Stardance
Devlogs:
Curre Title: CornOS by @corn | Stardance
Devlogs:
Currently working on a ps/2 keyboard driver, only completing this for basic input. I have just done the state machine and scan code conversion, now trying to handle key events.
Got the keyboard working!!!
Made output logic better
Just made my OS capable of loading either exactly one Multiboot module or none. The module can be verified inside a debugger (gdb) which the EAX register should be set to 0xDEADBEEF.
Just trying to organize things in my codebase, completing the ps/2 scan code decoding function for set 2, and preparing to move on to implementing paging
Finished tidying up and completing the ps/2 driver. Preparing to ship now, and try to implement paging in the future!
Ships:
A 32-bit x86 OS from complete scratch with GRUB as its bootloader, for educational purpose only....
|
1793623935.437698
|
1793710335.437698
|
|
27797
|
Galaxy Shooter by @1NSANE | Stardance
|
1NSANE
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-29T18:29:59Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a 2D space shooter game in Python using the Arcade library called Galaxy Shooter! The biggest challenge was figuring out Python version compatibility (Arcade needs 3.11) and learning Arcade’s 3.x API from scratch. I’m proud that the game feels complete — it has enemy waves, a boss fight, powerups (shield, health, rapid fire), particle explosions, scrolling background, background music, sound effects, and real sprite graphics. To test it: use WASD to move, mouse to aim, left click to shoot, collect powerups to survive longer, and press R to restart. You’ll need Python 3.11 and the Arcade library installed!", "repo": "https://github.com/1nsaned/Galaxy-Shooter", "demo": "https://1nsaneee.itch.io/galaxy-shooter"}]...
|
[{"post_id": 17790, "ts": "202 [{"post_id": 17790, "ts": "2026-06-28T18:37:37Z", "hours": 5.8469, "text": "Galaxy Shooter - Built a 2D space shooting game using Python and the Arcade library. Features include a start menu, pause functionality, and player shooting mechanics. Used Claude AI to help implement some features and fix bugs. Still working on polishing the gamepla"}]...
|
Title: Galaxy Shooter by @1NSANE | Stardance
Devl Title: Galaxy Shooter by @1NSANE | Stardance
Devlogs:
Galaxy Shooter - Built a 2D space shooting game using Python and the Arcade library. Features include a start menu, pause functionality, and player shooting mechanics. Used Claude AI to help implement some features and fix bugs. Still working on polishing the gamepla
Ships:
I made a 2D space shooter game in Python using the Arcade library called Galaxy Shooter! The biggest challenge was figuring out Python version compatibility (Arcade needs 3.11) and learning Arcade’s 3.x API from scratch. I’m proud that the game feels complete — it has enemy waves, a boss fight, powerups (shield, health, rapid fire), particle explosions, scrolling background, background music, sound effects, and real sprite graphics. To test it: use WASD to move, mouse to aim, left click to shoot, collect powerups to survive longer, and press R to restart. You’ll need Python 3.11 and the Arcade library installed!...
|
1793623936.6256628
|
1793710336.6256628
|
|
24390
|
Forensics Copilot by @weibolin322 | Stardance
|
weibolin322
|
1
|
10.85
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-27T22:24:56Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a command-line assistant for CTF forensics challenges. This ship is for v0.1.0. It’s a very simple version so it can only do some easy job like checking for trailing data or plain text flag scaning. I will add more feature to it in the furture. Sorry this release will only work on MacOS with Apple Silicon because it requires magic-lib and I put the version I have into the package. I will make a new release for Linux and Windows soon! Thank you for trying my project!", "repo": "https://github.com/Weibo0123/Forensics-Copilot", "demo": "https://github.com/Weibo0123/Forensics-Copilot/releases/tag/v0.1.0"}]...
|
[{"post_id": 24360, "ts": "202 [{"post_id": 24360, "ts": "2026-07-07T21:29:04Z", "hours": 0.85, "text": "Uploaded my code to pypi. Now users can use it on every OS."}, {"post_id": 17207, "ts": "2026-06-27T22:20:09Z", "hours": 3.4153, "text": "Devlog 5 Added the readme and finish the package for v0.1.0. This is a very early release so it might not work very well :("}, {"post_id": 15721, "ts": "2026-06-25T16:10:16Z", "hours": 1.0981, "text": "Devlog 4 Added regex-based scanning for common flag formats. It also support custom flag format."}, {"post_id": 15326, "ts": "2026-06-24T21:57:54Z", "hours": 1.0764, "text": "Devlog 3 I made a PNG file that has some hidden data appended to the end. This is the report my project generated after analyzing the file. It marked the file as suspicious and gave some suggestions for human to dive in. It could also analize other files, I will make video of all the files later."}, {"post_id": 15123, "ts": "2026-06-24T16:05:02Z", "hours": 2.2317, "text": "Devlog 2 I have already done all the code. Now I’m gonna write some test scripts to test."}, {"post_id": 14138, "ts": "2026-06-23T03:44:01Z", "hours": 1.7892, "text": "Hello! I just started my new project, the Forensics Copilot. Forensics is a main type of challenges in CTF Competitions. But it’s always boring and there are not many people want to do it. So I started this project. This project will help CTF competitors automate the tedious initial screening process for forensic challenges, like identifying real file types (not depends on extensions), catching common steganography/data-hiding tricks, recursively unpacking nested archives, and surfacing a prioritized list of next steps. For people that don’t know the CTF. “Capture The Flag” (CTF) competitions are not related to running outdoors or playing first-person shooters. Instead, they consist of a set of computer security puzzles (or challenges) involving reverse-engineering, forensics, cryptography, web technologies, and more. When players solve them they get a “flag”, a secret string which can be exchanged for points. The more points a team earns, the higher up it moves in rank."}]...
|
Title: Forensics Copilot by @weibolin322 | Stardan Title: Forensics Copilot by @weibolin322 | Stardance
Devlogs:
Hello! I just started my new project, the Forensics Copilot. Forensics is a main type of challenges in CTF Competitions. But it’s always boring and there are not many people want to do it. So I started this project. This project will help CTF competitors automate the tedious initial screening process for forensic challenges, like identifying real file types (not depends on extensions), catching common steganography/data-hiding tricks, recursively unpacking nested archives, and surfacing a prioritized list of next steps. For people that don’t know the CTF. “Capture The Flag” (CTF) competitions are not related to running outdoors or playing first-person shooters. Instead, they consist of a set of computer security puzzles (or challenges) involving reverse-engineering, forensics, cryptography, web technologies, and more. When players solve them they get a “flag”, a secret string which can be exchanged for points. The more points a team earns, the higher up it moves in rank.
Devlog 2 I have already done all the code. Now I’m gonna write some test scripts to test.
Devlog 3 I made a PNG file that has some hidden data appended to the end. This is the report my project generated after analyzing the file. It marked the file as suspicious and gave some suggestions for human to dive in. It could also analize other files, I will make video of all the files later.
Devlog 4 Added regex-based scanning for common flag formats. It also support custom flag format.
Devlog 5 Added the readme and finish the package for v0.1.0. This is a very early release so it might not work very well :(
Uploaded my code to pypi. Now users can use it on every OS.
Ships:
I made a command-line assistant for CTF forensics challenges. This ship is for v0.1.0. It’s a very simple version so it can only do some easy job like checking for trailing data or plain text flag scaning. I will add more feature to it in the furture. Sorry this release will only work on MacOS with Apple Silicon because it requires magic-lib and I put the version I have into the package. I will make a new release for Linux and Windows soon! Thank you for trying my project!...
|
1793623937.7737687
|
1793710337.7737687
|
|
29965
|
Travel Destination Higher or Lower by @Ombama | St Travel Destination Higher or Lower by @Ombama | Stardance...
|
Ombama
|
1
|
3.0
|
16
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-02T18:12:04Z", "hours": 3.0, "multiplier": 5.63, "payout": 16, "blessing": "neutral", "text": "I made a travel-themed Higher or Lower game using HTML, CSS, and JavaScript. The player compares two famous travel destinations and guesses whether the second destination has higher or lower annual visitors than the first one. The game includes a split-screen design, destination background images, score tracking, high score storage, a shuffled destination system, and a game over screen. The most challenging part was making the game feel smooth and not repetitive. At first, random destinations could repeat too often, so I added a shuffled deck system that goes through the destination list before repeating places. Another challenge was finding visitor numbers because annual tourism data can change depending on the year and source, so I used approximate values for gameplay. I am proud of the visual design because it looks like a real Higher or Lower style game. I am also proud that the JavaScript does more than just compare two numbers. It manages the score, high score, game state, random destination order, answer reveal, and restart logic. To test the project, people should click Higher or Lower and check whether the answer is revealed correctly. They should make sure the score increases after a correct answer and that the game over screen appears after a wrong answer. They should also refresh the page to confirm that the high score is saved. Since the visitor counts are approximate, the game should be tested as an educational guessing game, not as an official tourism statistics source.", "repo": "https://github.com/Om-Bhagat-prog/Travel-Destination-Higher-or-Lower", "demo": "https://travel-destination-higher-or-lower.vercel.app/"}]...
|
[{"post_id": 20959, "ts": "202 [{"post_id": 20959, "ts": "2026-07-02T18:10:03Z", "hours": 2.7756, "text": "Design Goal The goal was to create a game that looked bold, clean, and exciting. The design uses: A full-screen split layout Two large destination panels Background travel images Dark overlays for readable text Large destination names A highlighted annual visitor number A central VS circle Large Higher and Lower buttons Score and high score display The visual style was inspired by modern quiz games and travel websites."}]...
|
Title: Travel Destination Higher or Lower by @Omba Title: Travel Destination Higher or Lower by @Ombama | Stardance
Devlogs:
Design Goal The goal was to create a game that looked bold, clean, and exciting. The design uses: A full-screen split layout Two large destination panels Background travel images Dark overlays for readable text Large destination names A highlighted annual visitor number A central VS circle Large Higher and Lower buttons Score and high score display The visual style was inspired by modern quiz games and travel websites.
Ships:
I made a travel-themed Higher or Lower game using HTML, CSS, and JavaScript. The player compares two famous travel destinations and guesses whether the second destination has higher or lower annual visitors than the first one. The game includes a split-screen design, destination background images, score tracking, high score storage, a shuffled destination system, and a game over screen. The most challenging part was making the game feel smooth and not repetitive. At first, random destinations could repeat too often, so I added a shuffled deck system that goes through the destination list before repeating places. Another challenge was finding visitor numbers because annual tourism data can change depending on the year and source, so I used approximate values for gameplay. I am proud of the visual design because it looks like a real Higher or Lower style game. I am also proud that the JavaScript does more than just compare two numbers. It manages the score, high score, game state, random destination order, answer reveal, and restart logic. To test the project, people should click Higher or Lower and check whether the answer is revealed correctly. They should make sure the score increases after a correct answer and that the game over screen appears after a wrong answer. They should also refresh the page to confirm that the high score is saved. Since the visitor counts are approximate, the game should be tested as an educational guessing game, not as an official tourism statistics source....
|
1793623938.989888
|
1793710338.989888
|
|
18113
|
Yu-Gi-Oh! Banlist API by @Karim_xyz | Stardance
|
Karim_xyz
|
1
|
7.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T22:50:10Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a pretty basic flask api that returns older yugioh banlists in JSON format (since I needed such thing but didn’t find so I made this), the banlists data was scraped from yugipedia then stored in MongoDB The most challenging part is that I made this in my phone (the only hardware I have), that prevented me from making a UI and improving the project in general I think there wouldn’t be so much yugioh players here, if you are I hope you like it and find it useful, otherwise you can give me feedback about the technical parts and stuff…", "repo": "https://github.com/karim-xyz/yugioh-banlists-api", "demo": "https://yugioh-banlists-api.onrender.com/api/v1/2005-04"}]...
|
[{"post_id": 11621, "ts": "202 [{"post_id": 11621, "ts": "2026-06-18T22:35:50Z", "hours": 2.6878, "text": "I am tired I tried to make a webpage guide for it but I can’t do frontend sice the only hardware I have is my phone"}, {"post_id": 9025, "ts": "2026-06-15T01:46:46Z", "hours": 4.2628, "text": "Finally implemented the api on render"}]...
|
Title: Yu-Gi-Oh! Banlist API by @Karim_xyz | Stard Title: Yu-Gi-Oh! Banlist API by @Karim_xyz | Stardance
Devlogs:
Finally implemented the api on render
I am tired I tried to make a webpage guide for it but I can’t do frontend sice the only hardware I have is my phone
Ships:
This is a pretty basic flask api that returns older yugioh banlists in JSON format (since I needed such thing but didn’t find so I made this), the banlists data was scraped from yugipedia then stored in MongoDB The most challenging part is that I made this in my phone (the only hardware I have), that prevented me from making a UI and improving the project in general I think there wouldn’t be so much yugioh players here, if you are I hope you like it and find it useful, otherwise you can give me feedback about the technical parts and stuff…...
|
1793623940.1499987
|
1793710340.1499987
|
|
68486
|
space-escape (OMEGA-7) by @torren | Stardance
|
torren
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-21T21:20:01Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "omega-7 is an escape room that runs entirely inside a figma prototype, you wake up on a dying space station with the oxygen draining and work through five puzzles to reach the escape pod, from a keycard to a cipher to the airlock pin to a reactor restart to rewiring the pod. the hard part is that figma has no code, no variables, no logic, and no sound, so faking “state” means building a separate frame for every single thing the player could be looking at (the keypad alone is five frames to fake a two digit pin), and i ended up generating all 48 frames and ~160 hotspots. i’m proud that it actually feels like a game and not a slideshow - smart-animate makes the keycard fly into your inventory and the reactor levers flip and glow as you solve it. to test it, play in present mode and click anything interactive: the pin is crew x deck from the whiteboard and roster, and the reactor order is hidden in the captain’s log in nato phonetic, so don’t rush past the clues.", "repo": "https://github.com/nadellasripad11/space-escape", "demo": "https://www.figma.com/proto/KacEHBOZqWUMXmCe6sAqhL/OMEGA-7-%E2%80%94-Figma-Escape-Room?page-id=79%3A2&node-id=79-3&starting-point-node-id=79%3A3&scaling=min-zoom"}]...
|
[{"post_id": 81643, "ts": "202 [{"post_id": 81643, "ts": "2026-10-21T21:15:39Z", "hours": 0.375, "text": "figma can’t play sound, so i leaned all the way into motion instead. added a shared smart-animate transition across every puzzle so the states actually morph into each other: clicking the keycard now flies it off the shelf and shrinks it right into your inventory slot, the pin dots fill in as you type, the reactor levers physically flip and the lights go green as you nail the sequence, and the wires snap into their ports on each correct connection. then i jumped over to the 3d web version and fixed the keycard being annoying to click - the mesh is tiny and the camera sway makes it drift, so i wrapped it in an invisible hit box about 2.5x the size that catches your click anywhere near it without changing how anything looks."}, {"post_id": 80273, "ts": "2026-10-17T02:18:13Z", "hours": 4.2958, "text": "playtested omega-7 and realized you could beat it in like a minute, so i doubled the puzzles from 3 to 5. added a captain’s log cipher that spells out a reactor code in nato phonetic (bravo, alpha, charlie) that you have to decode, and a reactor switch panel where you flip three switches in that exact order, and one wrong flip resets the whole thing. figma has no variables or logic so the switch puzzle is really just 5 separate frames wired together, one per state, same hacky trick i used for the keypad. also squashed a bug in the three.js web version where the crate and fuse box puzzles were wired into the game logic but the 3d scenes never actually had the objects, so clicking them did nothing. added the missing meshes and checked every interactive object is clickable now. full flow is live now: quarters, cipher, airlock pin, reactor, pod wiring, launch. shipping it."}, {"post_id": 77679, "ts": "2026-10-07T20:23:31Z", "hours": 3.4492, "text": "I built OMEGA-7, a space escape room that turns Figma into a playable game. Players explore a dying station and solve puzzles before their oxygen runs out. The escape sequence involves finding a keycard, decoding an airlock PIN, and rewiring a pod. I added 3D-rendered rooms, clickable objects, camera push-ins, and hint screens. I tested the puzzle paths from start to finish to check the full escape sequence. I also launched a browser version with real-time 3D, swinging doors, and sound effects. It adds a seven-minute oxygen timer and a wire-dragging puzzle, linking back to the Figma prototype."}]...
|
Title: space-escape (OMEGA-7) by @torren | Stardan Title: space-escape (OMEGA-7) by @torren | Stardance
Devlogs:
I built OMEGA-7, a space escape room that turns Figma into a playable game. Players explore a dying station and solve puzzles before their oxygen runs out. The escape sequence involves finding a keycard, decoding an airlock PIN, and rewiring a pod. I added 3D-rendered rooms, clickable objects, camera push-ins, and hint screens. I tested the puzzle paths from start to finish to check the full escape sequence. I also launched a browser version with real-time 3D, swinging doors, and sound effects. It adds a seven-minute oxygen timer and a wire-dragging puzzle, linking back to the Figma prototype.
playtested omega-7 and realized you could beat it in like a minute, so i doubled the puzzles from 3 to 5. added a captain’s log cipher that spells out a reactor code in nato phonetic (bravo, alpha, charlie) that you have to decode, and a reactor switch panel where you flip three switches in that exact order, and one wrong flip resets the whole thing. figma has no variables or logic so the switch puzzle is really just 5 separate frames wired together, one per state, same hacky trick i used for the keypad. also squashed a bug in the three.js web version where the crate and fuse box puzzles were wired into the game logic but the 3d scenes never actually had the objects, so clicking them did nothing. added the missing meshes and checked every interactive object is clickable now. full flow is live now: quarters, cipher, airlock pin, reactor, pod wiring, launch. shipping it.
figma can’t play sound, so i leaned all the way into motion instead. added a shared smart-animate transition across every puzzle so the states actually morph into each other: clicking the keycard now flies it off the shelf and shrinks it right into your inventory slot, the pin dots fill in as you type, the reactor levers physically flip and the lights go green as you nail the sequence, and the wires snap into their ports on each correct connection. then i jumped over to the 3d web version and fixed the keycard being annoying to click - the mesh is tiny and the camera sway makes it drift, so i wrapped it in an invisible hit box about 2.5x the size that catches your click anywhere near it without changing how anything looks.
Ships:
omega-7 is an escape room that runs entirely inside a figma prototype, you wake up on a dying space station with the oxygen draining and work through five puzzles to reach the escape pod, from a keycard to a cipher to the airlock pin to a reactor restart to rewiring the pod. the hard part is that figma has no code, no variables, no logic, and no sound, so faking “state” means building a separate frame for every single thing the player could be looking at (the keypad alone is five frames to fake a two digit pin), and i ended up generating all 48 frames and ~160 hotspots. i’m proud that it actually feels like a game and not a slideshow - smart-animate makes the keycard fly into your inventory and the reactor levers flip and glow as you solve it. to test it, play in present mode and click anything interactive: the pin is crew x deck from the whiteboard and roster, and the reactor order is hidden in the captain’s log in nato phonetic, so don’t rush past the clues....
|
1793623943.571053
|
1793710343.571053
|
|
29275
|
Persona Forge by @miles | Stardance
|
miles
|
1
|
10.0
|
23
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-11T01:35:58Z", "hours": 10.0, "multiplier": 2.21, "payout": 23, "blessing": "neutral", "text": "Persona Forge: AI Character Generation for my sister! My sister spent a lot of time on her book making AI character pictures for my book. This is the beta release of the overall goal, as she isn’t allowed to have ChatGPT or AI apps on her computer!", "repo": "https://github.com/MilesWK/CharacterCreator", "demo": "https://character-creator-two.vercel.app/"}]...
|
[{"post_id": 26316, "ts": "202 [{"post_id": 26316, "ts": "2026-07-11T01:33:36Z", "hours": 0.4697, "text": "going to ship it! Has some slight bugs, but I want to ship it and then sort out more bugs."}, {"post_id": 23686, "ts": "2026-07-06T19:54:06Z", "hours": 0.9442, "text": "Pain down the road I mentioned last devlog that moving my backend to vercel could cause some pain down the road. I was right. Now I have moved it back to being hosted on my end, so the preview doesn’t work any more. Sorry about that. Attached is all the commits I made today."}, {"post_id": 23154, "ts": "2026-07-05T22:57:03Z", "hours": 0.9594, "text": "Vercel Deployment Now available in the public in beta!!! https://character-creator-two.vercel.app/ Please give feedback via comments! Good to go on Vercel. Realized though this might cause me pain down the road during development having the issue of committing to get the API to change. We will see though."}, {"post_id": 22312, "ts": "2026-07-04T18:29:01Z", "hours": 1.2325, "text": "This is a smaller devlog for today but I want to go ahead and post it! Added a system that limits users to 10 images a day, and automatically resets. IDK why I like it so much but I do! Of course, there are many loopholes around it, but this whole project is mainly for my sister and she won’t know them whatsoever. I can count on that. Now I just hope tomorrow it resets my request limit! 🤞🤞"}, {"post_id": 22212, "ts": "2026-07-04T15:58:21Z", "hours": 1.4161, "text": "Download Buttons & More AI Well, so far this project makes 4 calls per image generated. That can’t get expensive, right? Right now it Checks if the prompt is a character Generates a list of traits from the prompt Generates a name for the file based on the prompt Generates an image Recently I added a download button that downloads the generated image to your computer. The file name is auto-generated by AI which I think will be useful. Next up is to figure out the share button. I hope this project doesn’t blow up too much, because then I am going to burn through HCAI’s $3 limit so quickly. I want to change the project name! Any suggestions?"}, {"post_id": 21464, "ts": "2026-07-03T12:54:27Z", "hours": 1.9481, "text": "What a productive 2 hours this was! Here is what has changed: The things that work: Images are now being generated! The AI checker to check if the prompt is a character works, and will display a notification denying the request. You can generate a character all in the frontend, so technically this project is functional. Things I need to fix: Images will take up the entire screen when displayed in the HTML Frontend. This isn’t supposed to happen UI is just garbage. This project still has a long ways to go. (There is a roadmap on GitHub showing the completion progress.) Enjoy the picture of Superman holding up a car with the people in the car singing."}, {"post_id": 19937, "ts": "2026-07-01T11:49:16Z", "hours": 3.3242, "text": "Have a foundation done so far. This includes the main frontend screen (just the opening screen), cool styling, and node.js AI stuff. Here is the funny part: It really hasn’t generated a single image yet in over three hours of work."}]...
|
Title: Persona Forge by @miles | Stardance
Devlog Title: Persona Forge by @miles | Stardance
Devlogs:
Have a foundation done so far. This includes the main frontend screen (just the opening screen), cool styling, and node.js AI stuff. Here is the funny part: It really hasn’t generated a single image yet in over three hours of work.
What a productive 2 hours this was! Here is what has changed: The things that work: Images are now being generated! The AI checker to check if the prompt is a character works, and will display a notification denying the request. You can generate a character all in the frontend, so technically this project is functional. Things I need to fix: Images will take up the entire screen when displayed in the HTML Frontend. This isn’t supposed to happen UI is just garbage. This project still has a long ways to go. (There is a roadmap on GitHub showing the completion progress.) Enjoy the picture of Superman holding up a car with the people in the car singing.
Download Buttons & More AI Well, so far this project makes 4 calls per image generated. That can’t get expensive, right? Right now it Checks if the prompt is a character Generates a list of traits from the prompt Generates a name for the file based on the prompt Generates an image Recently I added a download button that downloads the generated image to your computer. The file name is auto-generated by AI which I think will be useful. Next up is to figure out the share button. I hope this project doesn’t blow up too much, because then I am going to burn through HCAI’s $3 limit so quickly. I want to change the project name! Any suggestions?
This is a smaller devlog for today but I want to go ahead and post it! Added a system that limits users to 10 images a day, and automatically resets. IDK why I like it so much but I do! Of course, there are many loopholes around it, but this whole project is mainly for my sister and she won’t know them whatsoever. I can count on that. Now I just hope tomorrow it resets my request limit! 🤞🤞
Vercel Deployment Now available in the public in beta!!! https://character-creator-two.vercel.app/ Please give feedback via comments! Good to go on Vercel. Realized though this might cause me pain down the road during development having the issue of committing to get the API to change. We will see though.
Pain down the road I mentioned last devlog that moving my backend to vercel could cause some pain down the road. I was right. Now I have moved it back to being hosted on my end, so the preview doesn’t work any more. Sorry about that. Attached is all the commits I made today.
going to ship it! Has some slight bugs, but I want to ship it and then sort out more bugs.
Ships:
Persona Forge: AI Character Generation for my sister! My sister spent a lot of time on her book making AI character pictures for my book. This is the beta release of the overall goal, as she isn’t allowed to have ChatGPT or AI apps on her computer!...
|
1793623946.4509714
|
1793710346.4509714
|
|
25174
|
Piggy by @Nauticos | Stardance
|
Nauticos
|
1
|
3.0
|
7
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-24T19:21:04Z", "hours": 3.0, "multiplier": 2.87, "payout": 7, "blessing": "neutral", "text": "A Slack bot all about pigs. It was a fun challenge learning how to make a bot and also learning Javascript (I only knew a very tiny bit from Sprig tutorials). I added a few original commands to try challenge myself (I did a lot of research for the Pig Latin translation) and I am very happy with the result! May not be the most practical, but still very fun nonetheless!", "repo": "https://github.com/Nauticos/Piggy", "demo": "https://hackclub.enterprise.slack.com/archives/C0BCWUGRZHQ"}]...
|
[{"post_id": 15239, "ts": "202 [{"post_id": 15239, "ts": "2026-06-24T19:00:57Z", "hours": 0.4747, "text": "Having trouble syncing the old 24/7 version with the new version with new commands…"}, {"post_id": 15129, "ts": "2026-06-24T16:13:45Z", "hours": 0.8767, "text": "Added all my commands and made it 24/7. Started working on the README, should be the last thing I need"}, {"post_id": 15062, "ts": "2026-06-24T14:01:10Z", "hours": 1.1889, "text": "Set up some basic commands, will brainstorm later to think of some more"}]...
|
Title: Piggy by @Nauticos | Stardance
Devlogs:
Se Title: Piggy by @Nauticos | Stardance
Devlogs:
Set up some basic commands, will brainstorm later to think of some more
Added all my commands and made it 24/7. Started working on the README, should be the last thing I need
Having trouble syncing the old 24/7 version with the new version with new commands…
Ships:
A Slack bot all about pigs. It was a fun challenge learning how to make a bot and also learning Javascript (I only knew a very tiny bit from Sprig tutorials). I added a few original commands to try challenge myself (I did a lot of research for the Pig Latin translation) and I am very happy with the result! May not be the most practical, but still very fun nonetheless!...
|
1793623950.6673157
|
1793710350.6673157
|
|
951
|
Website by @Kanata | Stardance
|
Kanata
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-01T11:45:45Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created a simple website to learn HTML. It includes headings, links, lists, tables, and a form.The most challenging part was publishing the website with GitHub Pages. I had to learn how GitHub Pages works and how to configure the project correctly.I am proud that I built and published my first website by myself.This project is a beginner HTML practice project. It focuses on learning the basics rather than creating a professional website.", "repo": "https://github.com/k4n474/Website", "demo": "https://k4n474.github.io/Website/"}]...
|
[{"post_id": 230, "ts": "2026- [{"post_id": 230, "ts": "2026-06-01T10:58:25Z", "hours": 0.8114, "text": "I wrote code using a wider variety of tags."}, {"post_id": 204, "ts": "2026-06-01T08:05:04Z", "hours": 0.3136, "text": "I’m creating a simple webpage to learn HTML"}]...
|
Title: Website by @Kanata | Stardance
Devlogs:
I’ Title: Website by @Kanata | Stardance
Devlogs:
I’m creating a simple webpage to learn HTML
I wrote code using a wider variety of tags.
Ships:
I created a simple website to learn HTML. It includes headings, links, lists, tables, and a form.The most challenging part was publishing the website with GitHub Pages. I had to learn how GitHub Pages works and how to configure the project correctly.I am proud that I built and published my first website by myself.This project is a beginner HTML practice project. It focuses on learning the basics rather than creating a professional website....
|
1793623952.3638957
|
1793710352.3638957
|
|
20490
|
Phoenix - Web Game Framework by @openchanter | Sta Phoenix - Web Game Framework by @openchanter | Stardance...
|
openchanter
|
1
|
29.37
|
325
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-13T06:20:18Z", "hours": 25.0, "multiplier": 12.89, "payout": 325, "blessing": "neutral", "text": "I made Phoenix, a web-based game framework using TypeScript! It is designed to be easy to use and quick to make projects with. I used THREE.js for rendering and Planck.js for the physics engine. The features available in the engine vary from simple rendering components to rigidbodies, UI systems and particle systems! The engine also supports a proper scene hierarchy with objects being able to have children that inherit their translation and rotation. The most challenging part of this was just trying to iron out all of the small bugs that kept popping up in different areas of the engine while I was trying to add a new feature somewhere. Just a note about the demo though, it is meant to just show off the features of the engine, and the demo is not the product of this project but rather the actual engine and it’s API that can be used to make games! I also plan to make an actual game using this engine as my next project for Stardance!", "repo": "https://github.com/OpEnchanter/phoenix", "demo": "https://openchanter.github.io/phoenix"}]...
|
[{"post_id": 31045, "ts": "202 [{"post_id": 31045, "ts": "2026-07-19T03:58:27Z", "hours": 3.1128, "text": "Another devlog as I continue to work on my other project that uses this engine as a dependency. Since I’ve been actually using this engine for making something real, I’ve noticed that it has quite a few flaws that I didn’t catch earlier on in the creation process. For example, when the window resized on the Y axis, the scale of the content within the window would also scale. This actually ended up causing a big issue with my new project as I had to convert screen-space mouse coordinates to positions in the world for placing objects in the editor. Fixing this was pretty simple and I just swapped out the old render resolution for a render scalar that gets multiplied by the window resolution to calculate the render resolution. Over the time of creating my new project there have also been some other small issues with things such as the button hitboxes and the engine not having the ability to resize objects in real time that I have since fixed. For the real time object resizing issue though, it was especially annoying because I had to resize the THREE.js Mesh object directly using the .scale.set() method on it which cannot be simply supplied with the size in pixels you want the object to be and is separate from the size of the geometry. To solve this I had to calculate how much I would have to multiply the scale of the geometry by to get the new scale. This ends up being the math equation, newScale / originalScale . Attached to this devlog are images, showing the window scaling fix in action as well as the scaling fix as it is used in my game. Now the scale of pixels stays exactly the same regardless of the scale of the window, and the 2nd block shown in the image with the Tiles picker is being scaled and rotated when the player hovers it. Overall, this project is becoming quite a bit larger than I originally intended as I work on it more while actually using it to make a real game. Thanks for reading this devlog!"}, {"post_id": 27962, "ts": "2026-07-13T22:18:53Z", "hours": 1.255, "text": "Another quick devlog as I’ve been adding features while trying to make an actual game with the engine! I realized that I hadn’t added offsets for colliders, trigger colliders or collision callbacks, so I added all of those and that works now, and I also realized I needed a special renderer that could draw using THREE.js’ InstancedMesh so I created the InstancedRenderer component that allows for that InstancedMesh to be used, this should afford a decent performance boost for any games that have the ground made up of tiles (if used correctly). The image attached is an image of the game I’ve started working on!"}, {"post_id": 27541, "ts": "2026-07-13T06:08:25Z", "hours": 1.1381, "text": "Another short devlog, again about UI! I got around to adding a proper button component to the engine that supports both a hover and click state! Currently I am using it in one of the demos for a button that slows down time to 1/10 speed when clicked. When I was trying to get this working, I realized I had a pretty major bug with how the scale of the window worked, which was causing issues with mouse inputs not lining up correctly with the engine’s visual output, but after fixing that it works great! The implementation for usage is also pretty simple with the Phoenix.Button() component just having two optional fields, one for onHoverCallback and one for onClickCallback. Here is an example of an onClickCallback being supplied to a button component: new Phoenix . Button (() => { app . args . timescale = ( app . args . timescale == 1 ) ? 0.1 : 1 }) Thanks for reading my boring UI yap again!!"}, {"post_id": 27482, "ts": "2026-07-13T02:51:20Z", "hours": 1.4086, "text": "Very small devlog this time! I’ve now added support for screen-space rendering of objects (rendering of objects relative to the screen rather than the world). This will be very important for adding proper UI components such as buttons, switches, sliders and text boxes to the engine later! With the addition of screen space rendering I also added a new component specifically for it, being the UIRenderer component. It behaves exactly like the standard Renderer component, but it renders to the THREE.js scene that the output of the main scene is rendered to for applying screen-space shaders. This also has the side effect of UI elements being able to ignore the current screen-space shader, so they don’t get distorted or become unreadable in any other way. Here’s a little code example for how the screen-space rendering works when creating an object: app . addObject ( app . createObject ( new Phoenix . Transform ( new Phoenix . Vector2 ( 64 , 96 ), 0 , new Phoenix . Vector2 ( 16 , 16 )), new Phoenix . Sprite ( \" assets/brick.png \" ), new Phoenix . UIRenderer ( 1 ) ) This little bit of code would create an object at coordinates (64, 96) but it would follow the camera rather than staying put in the world! In my next devlog I plan to actually add components for proper interactivity with UI components! Thanks for reading my yap!! Byeeee!"}, {"post_id": 26985, "ts": "2026-07-12T03:38:26Z", "hours": 1.4139, "text": "Hiya there! Another devlog on this project!! This time I added an actual particle system to the engine that can be used to spawn a bunch of little particles. It’s still missing a bit of customization such as turning off gravity for particles or the ability to change particle’s initial velocity, but so far it isn’t causing any lag and seems to work well! I had to figure out THREE.js’ InstancedMesh system to get this working without making the game run horribly, but I got it and it works now! The docs are also updated to reflect this new feature. And the ParticleSystem is used like any other component by just adding it to an object like the following: app . addObject ( app . createObject ( new Phoenix . Transform ( new Phoenix . Vector2 ( 0 , 0 ), 0 , new Phoenix . Vector2 ( 32 , 32 )), new Phoenix . ParticleSystem ( \" assets/brick.png \" , 10 , new Phoenix . Vector2 ( 24 , 24 )) ) ) The entire system for particles is self contained and doesn’t rely on any other components like the Renderer and Sprite because I felt it would be better to separate it due to the fact that the particles using an InstancedMesh, and the user might want to have particles have a different texture than their emitter. As shown in the images, the ParticleSystem can support a lot of particles and from some testing it is able to handle 10, 1000 and 10000 particles with no lag, but 100000 particles is stretching it a bit. I mean who would put over 10000 particles on screen at a time though, right?"}, {"post_id": 26131, "ts": "2026-07-10T19:01:01Z", "hours": 3.8183, "text": "Yay! Another devlog and even more hours poured into this project! This time I finally got around to reworking how the engine works to actually allow for objects to have children! In the past all objects were stored in a flat array which didn’t allow for any object parenting of any kind, but now the root of the scene is just another GameObject, so it can have children and those children can have children and so on forever. As you can see in the example photos, the brick object on the left has a smaller checkerboard-pattern object as a child of it that moves relative to it’s parent’s rotation and position. On the development side of things, adding objects to the scene as a whole remains exactly the same with the way the addition of objects simply being changed to having them be children of the scene root, but now all objects have a new method, GameObject.addChild(object: GameObject) . This allows any object have a child added to it, for example: player . addChild ( app . createObject ( new Phoenix . Transform ( new Phoenix . Vector2 ( 0 , 0 ), 0 , new Phoenix . Vector2 ( 16 , 16 )), new Phoenix . Sprite ( \" assets/null.png \" ), new Phoenix . Renderer ( 1 ) )); This would just add a new smaller object to the player object with the null.png sprite, and this is exactly what is happening in the screenshots attached to this."}, {"post_id": 25126, "ts": "2026-07-09T04:22:25Z", "hours": 2.8756, "text": "I decided to use the feature I added to the engine a while ago that allows for custom screen space shaders to create a lighting shader for the game based on some simple raymarching! I’m going to work on getting it more polished and then implement it as a variable exposed by the main engine as something that can be used in any project. The usage of the shader isn’t too complicated, it just requires data about the lights to be supplied to the shader via uniforms. let lightPositions = [ new THREE . Vector2 ( - 128 , 128 ), new THREE . Vector2 ( 64 , 128 ) ] let lightScales = [ new THREE . Vector2 ( 512 , 512 ), new THREE . Vector2 ( 512 , 512 ) ] let lightColors = [ new THREE . Vector3 ( 1 , 0.3 , 0 ), new THREE . Vector3 ( 0 , 1 , 0.3 ) ] This would be supplied to the App’s options to override the shader. shaderOverride : { vertexShader : Phoenix . DefaultVertexShader , fragmentShader : LitShader , uniforms : { uLightPositions : { value : lightPositions }, uLightScales : { value : lightScales }, uLightColors : { value : lightColors } } } And then positions should be updated every frame to keep them in world space. app . addFrameIntervalCallback (() => { let lps = [] for ( const lightPos of lightPositions ) { const p = new THREE . Vector3 ( lightPos . x , lightPos . y , 0 ); p . project ( app . camera ); const x = ( p . x + 1 ) / 2 const y = ( p . y + 1 ) / 2 lps . push ( new THREE . Vector2 ( x , y )) } app . screenSpaceShader . uniforms . uLightPositions ! . value = lps let scls = [] for ( const lightScale of lightScales ) { const x = lightScale . x ! / rScale.x const y = lightScale . y ! / rScale.y scls . push ( new THREE . Vector2 ( x , y )) } app . screenSpaceShader . uniforms . uLightScales ! . value = scls }) Edit: I completely forgot about this but at some point I added support for animated sprites using the AnimatedSprite class which can be supplied an array of strings representing the paths to the image for each frame as well as a animation rate (number of game frames each animation frame is shown for)"}, {"post_id": 24576, "ts": "2026-07-08T08:10:21Z", "hours": 2.9547, "text": "I did a bunch of backend stuff, adding features and making the engine overall better. My most recent addition to this is the use of a unified renderer component, where rather than having separate components handling the rendering of text, canvas sprites and normal sprites individually and with duplicate code, the main renderer component automatically finds any sprite type and renders it! For example, in the scenes below: the text in past versions would have been rendered with a TextRenderer component, whereas now there is a TextSprite component that feeds a texture to a Renderer component on the object. New Version const text = new Phoenix . TextSprite ( \" Hello world! \" , { fontSize : 32 , backgroundColor : \" #7fefcf \" , padding : 8 }); app . addObject ( app . createObject ( new Phoenix . Transform ( new Phoenix . Vector2 ( 0 , - 83 ), 0 , new Phoenix . Vector2 ( text . texture ! . width , text . texture ! . height )), text , new Phoenix . Renderer ( 1 ) )); Old Version app . addObject ( app . createObject ( new Phoenix . Transform ( new Phoenix . Vector2 ( 0 , - 83 ), 0 , new Phoenix . Vector2 ( 0 , 0 )), new Phoenix . TextRenderer ( \" Hello world! \" , { fontSize : 32 , backgroundColor : \" #7fefcf \" , padding : 8 }, 1 )"}, {"post_id": 15461, "ts": "2026-06-25T04:17:31Z", "hours": 2.4086, "text": "Big update! I finally actually got around to making the demo scenes built with this engine publish on GitHub pages ( here ). I also added a circle collider component and a text renderer which in turn relies on a HTML Canvas Renderer so there’s also now an easier way to create procedural assets for games."}, {"post_id": 14176, "ts": "2026-06-23T05:13:33Z", "hours": 1.6892, "text": "I finally added support for getting inputs within a component without using a web API to register an event listener and then having to deal with destroying that when the object get unloaded! I then updated the test scene to reflect that with a new component added to each object in a tower that adds an impulse when the W key is pressed. The scene can also be switched with the H key."}, {"post_id": 10659, "ts": "2026-06-17T14:54:58Z", "hours": 3.1258, "text": "I added screen-space shader support for now, the shader can’t be overridden but I’ll change that as well as allowing for the shaders attached to individual objects to be overridden."}, {"post_id": 10375, "ts": "2026-06-17T01:44:28Z", "hours": 4.535, "text": "So far I’ve added all the basics, scenes, objects, physics implementation and rendering. The rendering is currently using a basic HTML canvas method, but I am planning to update it to THREE.js for faster rendering and support for complex shader effects. This will probably be a relatively short project and I probably wont make many devlogs for this. It’s kind of hard to show off an engine with images, and without showing the code, so I don’t know how much visual progress I’ll be able to show, but I’ll definately be able to show a lot more for the game I’m planning on making that will use this engine!"}]...
|
Title: Phoenix - Web Game Framework by @openchante Title: Phoenix - Web Game Framework by @openchanter | Stardance
Devlogs:
So far I’ve added all the basics, scenes, objects, physics implementation and rendering. The rendering is currently using a basic HTML canvas method, but I am planning to update it to THREE.js for faster rendering and support for complex shader effects. This will probably be a relatively short project and I probably wont make many devlogs for this. It’s kind of hard to show off an engine with images, and without showing the code, so I don’t know how much visual progress I’ll be able to show, but I’ll definately be able to show a lot more for the game I’m planning on making that will use this engine!
I added screen-space shader support for now, the shader can’t be overridden but I’ll change that as well as allowing for the shaders attached to individual objects to be overridden.
I finally added support for getting inputs within a component without using a web API to register an event listener and then having to deal with destroying that when the object get unloaded! I then updated the test scene to reflect that with a new component added to each object in a tower that adds an impulse when the W key is pressed. The scene can also be switched with the H key.
Big update! I finally actually got around to making the demo scenes built with this engine publish on GitHub pages ( here ). I also added a circle collider component and a text renderer which in turn relies on a HTML Canvas Renderer so there’s also now an easier way to create procedural assets for games.
I did a bunch of backend stuff, adding features and making the engine overall better. My most recent addition to this is the use of a unified renderer component, where rather than having separate components handling the rendering of text, canvas sprites and normal sprites individually and with duplicate code, the main renderer component automatically finds any sprite type and renders it! For example, in the scenes below: the text in past versions would have been rendered with a TextRenderer component, whereas now there is a TextSprite component that feeds a texture to a Renderer component on the object. New Version const text = new Phoenix . TextSprite ( " Hello world! " , { fontSize : 32 , backgroundColor : " #7fefcf " , padding : 8 }); app . addObject ( app . createObject ( new Phoenix . Transform ( new Phoenix . Vector2 ( 0 , - 83 ), 0 , new Phoenix . Vector2 ( text . texture ! . width , text . texture ! . height )), text , new Phoenix . Renderer ( 1 ) )); Old Version app . addObject ( app . createObject ( new Phoenix . Transform ( new Phoenix . Vector2 ( 0 , - 83 ), 0 , new Phoenix . Vector2 ( 0 , 0 )), new Phoenix . TextRenderer ( " Hello world! " , { fontSize : 32 , backgroundColor : " #7fefcf " , padding : 8 }, 1 )
I decided to use the feature I added to the engine a while ago that allows for custom screen space shaders to create a lighting shader for the game based on some simple raymarching! I’m going to work on getting it more polished and then implement it as a variable exposed by the main engine as something that can be used in any project. The usage of the shader isn’t too complicated, it just requires data about the lights to be supplied to the shader via uniforms. let lightPositions = [ new THREE . Vector2 ( - 128 , 128 ), new THREE . Vector2 ( 64 , 128 ) ] let lightScales = [ new THREE . Vector2 ( 512 , 512 ), new THREE . Vector2 ( 512 , 512 ) ] let lightColors = [ new THREE . Vector3 ( 1 , 0.3 , 0 ), new THREE . Vector3 ( 0 , 1 , 0.3 ) ] This would be supplied to the App’s options to override the shader. shaderOverride : { vertexShader : Phoenix . DefaultVertexShader , fragmentShader : LitShader , uniforms : { uLightPositions : { value : lightPositions }, uLightScales : { value : lightScales }, uLightColors : { value : lightColors } } } And then positions should be updated every frame to keep them in world space. app . addFrameIntervalCallback (() => { let lps = [] for ( const lightPos of lightPositions ) { const p = new THREE . Vector3 ( lightPos . x , lightPos . y , 0 ); p . project ( app . camera ); const x = ( p . x + 1 ) / 2 const y = ( p . y + 1 ) / 2 lps . push ( new THREE . Vector2 ( x , y )) } app . screenSpaceShader . uniforms . uLightPositions ! . value = lps let scls = [] for ( const lightScale of lightScales ) { const x = lightScale . x ! / rScale.x const y = lightScale . y ! / rScale.y scls . push ( new THREE . Vector2 ( x , y )) } app . screenSpaceShader . uniforms . uLightScales ! . value = scls }) Edit: I completely forgot about this but at some point I added support for animated sprites using the AnimatedSprite class which can be supplied an array of strings representing the paths to the image for each frame as well as a animation rate (number of game frames each animation frame is shown for)
Yay! Another devlog and even more hours poured into this project! This time I finally got around to reworking how the engine works to actually allow for objects to have children! In the past all objects were stored in a flat array which didn’t allow for any object parenting of any kind, but now the root of the scene is just another GameObject, so it can have children and those children can have children and so on forever. As you can see in the example photos, the brick object on the left has a smaller checkerboard-pattern object as a child of it that moves relative to it’s parent’s rotation and position. On the development side of things, adding objects to the scene as a whole remains exactly the same with the way the addition of objects simply being changed to having them be children of the scene root, but now all objects have a new method, GameObject.addChild(object: GameObject) . This allows any object have a child added to it, for example: player . addChild ( app . createObject ( new Phoenix . Transform ( new Phoenix . Vector2 ( 0 , 0 ), 0 , new Phoenix . Vector2 ( 16 , 16 )), new Phoenix . Sprite ( " assets/null.png " ), new Phoenix . Renderer ( 1 ) )); This would just add a new smaller object to the player object with the null.png sprite, and this is exactly what is happening in the screenshots attached to this.
Hiya there! Another devlog on this project!! This time I added an actual particle system to the engine that can be used to spawn a bunch of little particles. It’s still missing a bit of customization such as turning off gravity for particles or the ability to change particle’s initial velocity, but so far it isn’t causing any lag and seems to work well! I had to figure out THREE.js’ InstancedMesh system to get this working without making the game run horribly, but I got it and it works now! The docs are also updated to reflect this new feature. And the ParticleSystem is used like any other component by just adding it to an object like the following: app . addObject ( app . createObject ( new Phoenix . Transform ( new Phoenix . Vector2 ( 0 , 0 ), 0 , new Phoenix . Vector2 ( 32 , 32 )), new Phoenix . ParticleSystem ( " assets/brick.png " , 10 , new Phoenix . Vector2 ( 24 , 24 )) ) ) The entire system for particles is self contained and doesn’t rely on any other components like the Renderer and Sprite because I felt it would be better to separate it due to the fact that the particles using an InstancedMesh, and the user might want to have particles have a different texture than their emitter. As shown in the images, the ParticleSystem can support a lot of particles and from some testing it is able to handle 10, 1000 and 10000 particles with no lag, but 100000 particles is stretching it a bit. I mean who would put over 10000 particles on screen at a time though, right?
Very small devlog this time! I’ve now added support for screen-space rendering of objects (rendering of objects relative to the screen rather than the world). This will be very important for adding proper UI components such as buttons, switches, sliders and text boxes to the engine later! With the addition of screen space rendering I also added a new component specifically for it, being the UIRenderer component. It behaves exactly like the standard Renderer component, but it renders to the THREE.js scene that the output of the main scene is rendered to for applying screen-space shaders. This also has the side effect of UI elements being able to ignore the current screen-space shader, so they don’t get distorted or become unreadable in any other way. Here’s a little code example for how the screen-space rendering works when creating an object: app . addObject ( app . createObject ( new Phoenix . Transform ( new Phoenix . Vector2 ( 64 , 96 ), 0 , new Phoenix . Vector2 ( 16 , 16 )), new Phoenix . Sprite ( " assets/brick.png " ), new Phoenix . UIRenderer ( 1 ) ) This little bit of code would create an object at coordinates (64, 96) but it would follow the camera rather than staying put in the world! In my next devlog I plan to actually add components for proper interactivity with UI components! Thanks for reading my yap!! Byeeee!
Another short devlog, again about UI! I got around to adding a proper button component to the engine that supports both a hover and click state! Currently I am using it in one of the demos for a button that slows down time to 1/10 speed when clicked. When I was trying to get this working, I realized I had a pretty major bug with how the scale of the window worked, which was causing issues with mouse inputs not lining up correctly with the engine’s visual output, but after fixing that it works great! The implementation for usage is also pretty simple with the Phoenix.Button() component just having two optional fields, one for onHoverCallback and one for onClickCallback. Here is an example of an onClickCallback being supplied to a button component: new Phoenix . Button (() => { app . args . timescale = ( app . args . timescale == 1 ) ? 0.1 : 1 }) Thanks for reading my boring UI yap again!!
Another quick devlog as I’ve been adding features while trying to make an actual game with the engine! I realized that I hadn’t added offsets for colliders, trigger colliders or collision callbacks, so I added all of those and that works now, and I also realized I needed a special renderer that could draw using THREE.js’ InstancedMesh so I created the InstancedRenderer component that allows for that InstancedMesh to be used, this should afford a decent performance boost for any games that have the ground made up of tiles (if used correctly). The image attached is an image of the game I’ve started working on!
Another devlog as I continue to work on my other project that uses this engine as a dependency. Since I’ve been actually using this engine for making something real, I’ve noticed that it has quite a few flaws that I didn’t catch earlier on in the creation process. For example, when the window resized on the Y axis, the scale of the content within the window would also scale. This actually ended up causing a big issue with my new project as I had to convert screen-space mouse coordinates to positions in the world for placing objects in the editor. Fixing this was pretty simple and I just swapped out the old render resolution for a render scalar that gets multiplied by the window resolution to calculate the render resolution. Over the time of creating my new project there have also been some other small issues with things such as the button hitboxes and the engine not having the ability to resize objects in real time that I have since fixed. For the real time object resizing issue though, it was especially annoying because I had to resize the THREE.js Mesh object directly using the .scale.set() method on it which cannot be simply supplied with the size in pixels you want the object to be and is separate from the size of the geometry. To solve this I had to calculate how much I would have to multiply the scale of the geometry by to get the new scale. This ends up being the math equation, newScale / originalScale . Attached to this devlog are images, showing the window scaling fix in action as well as the scaling fix as it is used in my game. Now the scale of pixels stays exactly the same regardless of the scale of the window, and the 2nd block shown in the image with the Tiles picker is being scaled and rotated when the player hovers it. Overall, this project is becoming quite a bit larger than I originally intended as I work on it more while actually using it to make a real game. Thanks for reading this devlog!
Ships:
I made Phoenix, a web-based game framework using TypeScript! It is designed to be easy to use and quick to make projects with. I used THREE.js for rendering and Planck.js for the physics engine. The features available in the engine vary from simple rendering components to rigidbodies, UI systems and particle systems! The engine also supports a proper scene hierarchy with objects being able to have children that inherit their translation and rotation. The most challenging part of this was just trying to iron out all of the small bugs that kept popping up in different areas of the engine while I was trying to add a new feature somewhere. Just a note about the demo though, it is meant to just show off the features of the engine, and the demo is not the product of this project but rather the actual engine and it’s API that can be used to make games! I also plan to make an actual game using this engine as my next project for Stardance!...
|
1793623953.5032544
|
1793710353.5032544
|
|
6578
|
Ytuwu by @heiligetomate | Stardance
|
heiligetomate
|
1
|
61.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-26T00:41:44Z", "hours": 61.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hey, I made a youtube downloader and thats basically it. You can download videos or audios from youtube or youtube music and do whatever you want with the downloaded stuff. I made this because I was using yt-dlp (a python youtube downloader) for my music library. But yt-dlp was not able to downlaod full channels so i built my own downloader in rust. This is my first big project and its still not done. There is a lot of stuff to do like better error handling or adding more features. If you want to try this out yourself, create a new rust project, add the following dependencies: [dependencies] ytuwu = \"0.2.1\" tokio = { version = \"1\", features = [\"full\"] } put this in your main file: use std ::{ fs :: create_dir_all , path :: Path }; use ytuwu :: Downloader ; #[tokio::main] async fn main () -> ytuwu :: Result < () > { let downloader = Downloader :: default (); let dwn = downloader .from_url ( \"https://music.youtube.com/watch?v=-206erZYyBo\" ) ? .as_media () ? .audio () .download () .await ? ; create_dir_all ( \"silly_path\" ) .unwrap (); dwn .save_media_stream ( Path :: new ( \"silly_path\" )) ? ; Ok (()) } and finally replace the url with any youtube url you want. This will download the sound of this video/song and will save it in a newly created directoy called “silly_path”. Hope you enjoy :3", "repo": "https://github.com/Heiligetomate/ytuwu", "demo": "https://crates.io/crates/ytuwu"}]...
|
[{"post_id": 82845, "ts": "202 [{"post_id": 82845, "ts": "2026-10-26T00:28:28Z", "hours": 1.5069, "text": "Final changes I fixed some stuff but now its ready i think. I also made a logo which took wayyyy too long (im horrible at using gimp)"}, {"post_id": 82746, "ts": "2026-10-25T18:38:31Z", "hours": 2.0072, "text": "Publish the lib on crates.io I added maaaaaany “.” because i forgot to add them which was ehm very very very annoying. But now its published, most stuff works I think and ill ship my project now :3"}, {"post_id": 82599, "ts": "2026-10-25T11:35:06Z", "hours": 3.6636, "text": "Fixing stuff I did not update or check on my project for a long time and youtube changed something that made the androidvr client I used previously not usable anymore because it stops sending data after ~1mb. I now changed the client to visionos which allows me to use my old structure without changing much. I will now try to ship my project because I dont really have any time left."}, {"post_id": 57353, "ts": "2026-08-29T13:59:29Z", "hours": 14.6839, "text": "Finally school again 😭 Somehow i forgot to devlog my work before vacation which means i have to do it now </3 My github commits tell me that i fixed many TODOs, improved my error enum and created a basic config which makes it easier to well configure what you want to download and how you want to download something."}, {"post_id": 13750, "ts": "2026-06-22T15:18:20Z", "hours": 9.8178, "text": "A lot of documentation documentation is really important for libraries and that’s why i spent the last ~8h with writing documentation I have 8118 lines of code in total and 931 of them are documentation i wrote the last hours which was a pain and not really fun to do. Also, while documenting I found many things I have to change and i basically farmed TODOs which is awesome because now i can fix many bugs :3"}, {"post_id": 12672, "ts": "2026-06-20T18:15:07Z", "hours": 10.2689, "text": "Changes Everything now uses the task pool and shared downloaded storage Modules are cleaner Improved AnyItags and AnyStreams Remove old, unused code Bundle support for Lists with the simple api New save function for channels Todos now Documentation Logs (More tests)"}, {"post_id": 5114, "ts": "2026-06-08T20:01:16Z", "hours": 5.285, "text": "I started restructuring the entire main Downloader struct. It now has a shared download-task-pool and a shared downloaded-pool. This allows downloading a fixed number of songs at the same time, which is useful when handling rate limits. Right now this is only implemented for single media streams, but the rest should not be too hard to implement - the basics are already there."}, {"post_id": 4232, "ts": "2026-06-07T13:59:50Z", "hours": 2.5894, "text": "fixed a bug for Itag::Highest changed the api (you can still use the old one) The video shows the usage of the new api:"}, {"post_id": 3684, "ts": "2026-06-06T18:50:37Z", "hours": 2.5417, "text": "new stuff all bundle download functions now take &[AnyItag] as a parameter instead of Vec. channels can now be downloaded as bundle add a usage warning in the readme found 2 new bugs 3: renamed some stuff streams have a fn to_any and i added better usage for streams in general some other stuff i forgot probably"}, {"post_id": 2408, "ts": "2026-06-04T21:26:43Z", "hours": 3.9672, "text": "I added a lot of tests to my library and changed some small things i cant remember."}, {"post_id": 2173, "ts": "2026-06-04T14:55:14Z", "hours": 4.2875, "text": "This is the first post on my project “ytuwu”. It’s a YouTube downloader written in rust. The current features can be viewed in my readme. I had this idea because ytdlp, the alternative written in python, does not allow the download of an entire channel, meaning you would have to extract all the singles, EPS and albums by yourself. I wanted something that could do that for me, so here is ytuwu (an ongoing project for ~2 months now). The last 4h were used to make the API more usable, so the user doesn’t have to specify the full path for the channel id/browse ID. I also implemented the default process so it can display media that is just queued and not being downlaoded right now. The attachment shows a full download of a playlist containing 13 songs at full audio quality. :3"}]...
|
Title: Ytuwu by @heiligetomate | Stardance
Devlog Title: Ytuwu by @heiligetomate | Stardance
Devlogs:
This is the first post on my project “ytuwu”. It’s a YouTube downloader written in rust. The current features can be viewed in my readme. I had this idea because ytdlp, the alternative written in python, does not allow the download of an entire channel, meaning you would have to extract all the singles, EPS and albums by yourself. I wanted something that could do that for me, so here is ytuwu (an ongoing project for ~2 months now). The last 4h were used to make the API more usable, so the user doesn’t have to specify the full path for the channel id/browse ID. I also implemented the default process so it can display media that is just queued and not being downlaoded right now. The attachment shows a full download of a playlist containing 13 songs at full audio quality. :3
I added a lot of tests to my library and changed some small things i cant remember.
new stuff all bundle download functions now take &[AnyItag] as a parameter instead of Vec. channels can now be downloaded as bundle add a usage warning in the readme found 2 new bugs 3: renamed some stuff streams have a fn to_any and i added better usage for streams in general some other stuff i forgot probably
fixed a bug for Itag::Highest changed the api (you can still use the old one) The video shows the usage of the new api:
I started restructuring the entire main Downloader struct. It now has a shared download-task-pool and a shared downloaded-pool. This allows downloading a fixed number of songs at the same time, which is useful when handling rate limits. Right now this is only implemented for single media streams, but the rest should not be too hard to implement - the basics are already there.
Changes Everything now uses the task pool and shared downloaded storage Modules are cleaner Improved AnyItags and AnyStreams Remove old, unused code Bundle support for Lists with the simple api New save function for channels Todos now Documentation Logs (More tests)
A lot of documentation documentation is really important for libraries and that’s why i spent the last ~8h with writing documentation I have 8118 lines of code in total and 931 of them are documentation i wrote the last hours which was a pain and not really fun to do. Also, while documenting I found many things I have to change and i basically farmed TODOs which is awesome because now i can fix many bugs :3
Finally school again 😭 Somehow i forgot to devlog my work before vacation which means i have to do it now </3 My github commits tell me that i fixed many TODOs, improved my error enum and created a basic config which makes it easier to well configure what you want to download and how you want to download something.
Fixing stuff I did not update or check on my project for a long time and youtube changed something that made the androidvr client I used previously not usable anymore because it stops sending data after ~1mb. I now changed the client to visionos which allows me to use my old structure without changing much. I will now try to ship my project because I dont really have any time left.
Publish the lib on crates.io I added maaaaaany “.” because i forgot to add them which was ehm very very very annoying. But now its published, most stuff works I think and ill ship my project now :3
Final changes I fixed some stuff but now its ready i think. I also made a logo which took wayyyy too long (im horrible at using gimp)
Ships:
Hey, I made a youtube downloader and thats basically it. You can download videos or audios from youtube or youtube music and do whatever you want with the downloaded stuff. I made this because I was using yt-dlp (a python youtube downloader) for my music library. But yt-dlp was not able to downlaod full channels so i built my own downloader in rust. This is my first big project and its still not done. There is a lot of stuff to do like better error handling or adding more features. If you want to try this out yourself, create a new rust project, add the following dependencies: [dependencies] ytuwu = "0.2.1" tokio = { version = "1", features = ["full"] } put this in your main file: use std ::{ fs :: create_dir_all , path :: Path }; use ytuwu :: Downloader ; #[tokio::main] async fn main () -> ytuwu :: Result < () > { let downloader = Downloader :: default (); let dwn = downloader .from_url ( "https://music.youtube.com/watch?v=-206erZYyBo" ) ? .as_media () ? .audio () .download () .await ? ; create_dir_all ( "silly_path" ) .unwrap (); dwn .save_media_stream ( Path :: new ( "silly_path" )) ? ; Ok (()) } and finally replace the url with any youtube url you want. This will download the sound of this video/song and will save it in a newly created directoy called “silly_path”. Hope you enjoy :3...
|
1793623954.711307
|
1793710354.711307
|
|
39356
|
My own site! by @Ulagat | Stardance
|
Ulagat
|
1
|
9.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-24T22:32:23Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my personal website, it was a little bit hard to make cool design of my site, but I think I made it really cool Hope you will like it!", "repo": "https://github.com/ulacoder/nurtas-ulagat-cv", "demo": "https://nurtas-ulagat-cv.vercel.app/"}]...
|
[{"post_id": 34317, "ts": "202 [{"post_id": 34317, "ts": "2026-07-24T22:17:06Z", "hours": 0.0, "text": "HELLO!I made my own CV website, that contains my Resume,also links to my GitHub, LinkedIn, also my Gmail You can visit it here: https://nurtas-ulagat-cv.vercel.app/ Hope you will like it! :)"}, {"post_id": 34289, "ts": "2026-07-24T21:25:02Z", "hours": 8.7286, "text": "HELLO! I made my own CV website, that contains my Resume, also links to my GitHub, LinkedIn, also my Gmail You can visit it here: https://nurtas-ulagat-cv.vercel.app/"}]...
|
Title: My own site! by @Ulagat | Stardance
Devlog Title: My own site! by @Ulagat | Stardance
Devlogs:
HELLO! I made my own CV website, that contains my Resume, also links to my GitHub, LinkedIn, also my Gmail You can visit it here: https://nurtas-ulagat-cv.vercel.app/
HELLO!I made my own CV website, that contains my Resume,also links to my GitHub, LinkedIn, also my Gmail You can visit it here: https://nurtas-ulagat-cv.vercel.app/ Hope you will like it! :)
Ships:
I made my personal website, it was a little bit hard to make cool design of my site, but I think I made it really cool Hope you will like it!...
|
1793623955.9175153
|
1793710355.9175153
|
|
16100
|
Text Fill by @StarCoder | Stardance
|
StarCoder
|
1
|
9.0
|
156
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-29T04:35:47Z", "hours": 9.0, "multiplier": 17.96, "payout": 156, "blessing": "neutral", "text": "I made a project called TextFill. TextFill is a tool created in Python where users can create shortcuts that will automatically fill in with replacement text. For example, if a user creates a shortcut /email , and sets the replacement text to [email protected] , then whenever they type /email, it will automatically fill in as long as the app is running and replacing. There are two versions of the app. One is the UI version, that supports both Windows and Mac. The second is a menu bar version that only supports Mac. The UI version contains the base functionality of adding, removing, and clearing shortcuts, while also including modifying shortcuts and a settings page. The menubar version contains only the base functionality, as well as a button to show all shortcuts. The menu bar version is basically a streamlined version, for users who are on Mac, and don’t care too much about the settings. The menubar version is recommended for ease of use, as it lives on the Mac menubar, and won’t interfere with any work. You can also easily toggle the replacer on and off. This tool is best for people who type certain things repeatedly. For example, if a person has to fill in a sheet with either Accepted or Declined, then that person can easily create shortcuts like /a and /d, so it makes their job much easier. The main QoL improvements are Making repetitive tasks shorter and more efficient A settings panel where users can easily modify their preferences depending on their usual tasks An automatic save/load system that makes sure users never lose their shortcuts There were many challenges I faced while creating this project. I was still pretty new to Python when I started this project, and only knew basic things, like conditions or statements. Luckily, I’ve been coding in Unity (C#) for a long time, so it set a base that allowed me to learn the simple things like functions pretty easily. Many challenges I faced were with the UI, as in Unity, it is fairly easy to create basic UI without any code, but in Python, I had to use Tkinter for everything. It became even more difficult with making the menubar version, though I was able to figure them all out. I’m personally proud of the menu bar version, because I think it’s perfect for people who just want the main functionality, and don’t want to be bothered by a seperate window. To test my project, you can go to my GitHub release page which contains downloads for both versions. My README contains detailed instructions on how to download and run the app. (Below is a screenshot of my menu bar version) Thank you.", "repo": "https://github.com/StarCoder369/TextFill", "demo": "https://github.com/StarCoder369/TextFill/releases"}]...
|
[{"post_id": 18113, "ts": "202 [{"post_id": 18113, "ts": "2026-06-29T03:39:43Z", "hours": 3.1442, "text": "Text Fill Devlog 3 (Made in Python) It’s been more than a week since my last devlog. This is mostly because of me working on other projects, and also that there really wasn’t much to show. It was mostly just figuring out the syntax and bug fixing, so I decided to wait until I finished. This should be my last devlog before my ship, and I have added something which I think is a great improvement. Project Recap For those who don’t know my project, it’s called Text Fill, and it is a tool that I am making in Python, where you can define shortcuts and phrases, so when you type in the shortcut, it automatically replaces it with the phrase. For example, if you have set a shortcut to /email , and the phrase to [email protected] , when you type in /email anywhere with the program running in the background, it will automatically replace it with the phrase This is useful if you have to type a specific phrase very often. My Big Change ( I use a mac ) I had shown my project to my brother, and he liked the idea, but just randomly mentioned that it would be cool if it would show up on the menu bar, where things like the time and wifi are. I thought it would be cool and did some research, and realized that it was possible. I chose to use a package called Rumps, which allowed me to do this, and I basically made a completely new version of my app. Luckily, the old functionality code could be kept, I just had to change the UI. I also made this version much more simpler and streamlined you could say, mainly because I wasn’t able to add half of the functionality using Rumps(It’s probably possible, I just wasn’t able to), and it just didn’t feel right having something piled with unnecessary features in the menu bar. Two Versions So now, I have two versions of the app. One supports Windows + Mac, and has it’s own separate window. The second version is on the menu bar, and it’s much more streamlined, but also only for Mac. So I made both available on my Github page as a Github Release which you can try out using the demo link. Permissions Unfortunately, my project requires a lot of permissions that have to be manually enabled by the user, which makes the Quick Start, not very ‘Quick’. I tried to make the process simple, but I couldn’t really do anything since devices don’t just trust random apps. So it takes a few more minutes then it would have without permissions, but I made sure to include a detailed README so no one gets stuck. I’m going to ship my project probably by the end of the day, and hopefully it’ll get accepted. Thanks for reading until here! Belows a screenshot of how it looks in the menu bar!"}, {"post_id": 12062, "ts": "2026-06-19T17:48:55Z", "hours": 2.9614, "text": "Text Fill Devlog 2 (Made in Python) So it’s been a week since my last devlog since I was focusing on my main project, but I have made some good progress. For those who don’t know my project, it’s called Text Fill, and it is a tool that I am making in Python, where you can define shortcuts and phrases, so when you type in the shortcut, it automatically replaces it with the phrase. For example, if you have set a shortcut to /num , and the phrase to 123456789 , when you type in /num anywhere with the program running in the background, it will automatically replace it with 123456789 . This is useful if you have to type a specific phrase all the time like your email, so you can set a shortcut to /e or /email or anything else you want, to make it fill in the phrase. What I’ve added So since the last devlog, this is what I have added: UI for everything using Tkinter. Settings menu Now though this isn’t much, it took me a long time as I had to learn Python in the process. The UI is still quite basic and uses default colors, and I might make it look better later. The settings menu contains the following options: Backspace Delay Type Delay Delete Speed Type Speed More will be added in the future I decided not to make a website, as I felt like an app felt better. A demo will probably be coming in a week or two, and I would appreciate any suggestions or feedback. Below, there is a short video showing me using my tool. (It works everywhere, not only in a code editor, I just did it in the vscode since it was open)"}, {"post_id": 7767, "ts": "2026-06-12T23:52:39Z", "hours": 2.5881, "text": "Text Fill Made using Python I am making a text shortcut fill tool where users can set shortcuts which will automatically fill in when typed. This is for the Frictionless mission. Ex: user sets shortcut ‘/email’ with the value ‘ [email protected] ’. With this set, while the code is running in the background, if they type ‘/email’, then it will automatically fill in to ‘ [email protected] ’. I am using this project as an opportunity to get better at Python, as I am still a beginner, and am wanting to learn more. I have also made a GitHub repository, where the latest code has been published. What I already have Menu Manager Add Shortcuts Remove Shortcuts Modify Shortcuts Clear Shortcuts Show Shortcuts Basic save/load system using JSON file stored locally The actual text fill functionality What I plan to add Settings (A place where users can define certain values like filling speed, fill delay, etc.) UI (I want this to have UI, and I might even try to make a website) If you have any feedback or suggestions please let me know so I can improve. Thanks for reading!"}]...
|
Title: Text Fill by @StarCoder | Stardance
Devlog Title: Text Fill by @StarCoder | Stardance
Devlogs:
Text Fill Made using Python I am making a text shortcut fill tool where users can set shortcuts which will automatically fill in when typed. This is for the Frictionless mission. Ex: user sets shortcut ‘/email’ with the value ‘ [email protected] ’. With this set, while the code is running in the background, if they type ‘/email’, then it will automatically fill in to ‘ [email protected] ’. I am using this project as an opportunity to get better at Python, as I am still a beginner, and am wanting to learn more. I have also made a GitHub repository, where the latest code has been published. What I already have Menu Manager Add Shortcuts Remove Shortcuts Modify Shortcuts Clear Shortcuts Show Shortcuts Basic save/load system using JSON file stored locally The actual text fill functionality What I plan to add Settings (A place where users can define certain values like filling speed, fill delay, etc.) UI (I want this to have UI, and I might even try to make a website) If you have any feedback or suggestions please let me know so I can improve. Thanks for reading!
Text Fill Devlog 2 (Made in Python) So it’s been a week since my last devlog since I was focusing on my main project, but I have made some good progress. For those who don’t know my project, it’s called Text Fill, and it is a tool that I am making in Python, where you can define shortcuts and phrases, so when you type in the shortcut, it automatically replaces it with the phrase. For example, if you have set a shortcut to /num , and the phrase to 123456789 , when you type in /num anywhere with the program running in the background, it will automatically replace it with 123456789 . This is useful if you have to type a specific phrase all the time like your email, so you can set a shortcut to /e or /email or anything else you want, to make it fill in the phrase. What I’ve added So since the last devlog, this is what I have added: UI for everything using Tkinter. Settings menu Now though this isn’t much, it took me a long time as I had to learn Python in the process. The UI is still quite basic and uses default colors, and I might make it look better later. The settings menu contains the following options: Backspace Delay Type Delay Delete Speed Type Speed More will be added in the future I decided not to make a website, as I felt like an app felt better. A demo will probably be coming in a week or two, and I would appreciate any suggestions or feedback. Below, there is a short video showing me using my tool. (It works everywhere, not only in a code editor, I just did it in the vscode since it was open)
Text Fill Devlog 3 (Made in Python) It’s been more than a week since my last devlog. This is mostly because of me working on other projects, and also that there really wasn’t much to show. It was mostly just figuring out the syntax and bug fixing, so I decided to wait until I finished. This should be my last devlog before my ship, and I have added something which I think is a great improvement. Project Recap For those who don’t know my project, it’s called Text Fill, and it is a tool that I am making in Python, where you can define shortcuts and phrases, so when you type in the shortcut, it automatically replaces it with the phrase. For example, if you have set a shortcut to /email , and the phrase to [email protected] , when you type in /email anywhere with the program running in the background, it will automatically replace it with the phrase This is useful if you have to type a specific phrase very often. My Big Change ( I use a mac ) I had shown my project to my brother, and he liked the idea, but just randomly mentioned that it would be cool if it would show up on the menu bar, where things like the time and wifi are. I thought it would be cool and did some research, and realized that it was possible. I chose to use a package called Rumps, which allowed me to do this, and I basically made a completely new version of my app. Luckily, the old functionality code could be kept, I just had to change the UI. I also made this version much more simpler and streamlined you could say, mainly because I wasn’t able to add half of the functionality using Rumps(It’s probably possible, I just wasn’t able to), and it just didn’t feel right having something piled with unnecessary features in the menu bar. Two Versions So now, I have two versions of the app. One supports Windows + Mac, and has it’s own separate window. The second version is on the menu bar, and it’s much more streamlined, but also only for Mac. So I made both available on my Github page as a Github Release which you can try out using the demo link. Permissions Unfortunately, my project requires a lot of permissions that have to be manually enabled by the user, which makes the Quick Start, not very ‘Quick’. I tried to make the process simple, but I couldn’t really do anything since devices don’t just trust random apps. So it takes a few more minutes then it would have without permissions, but I made sure to include a detailed README so no one gets stuck. I’m going to ship my project probably by the end of the day, and hopefully it’ll get accepted. Thanks for reading until here! Belows a screenshot of how it looks in the menu bar!
Ships:
I made a project called TextFill. TextFill is a tool created in Python where users can create shortcuts that will automatically fill in with replacement text. For example, if a user creates a shortcut /email , and sets the replacement text to [email protected] , then whenever they type /email, it will automatically fill in as long as the app is running and replacing. There are two versions of the app. One is the UI version, that supports both Windows and Mac. The second is a menu bar version that only supports Mac. The UI version contains the base functionality of adding, removing, and clearing shortcuts, while also including modifying shortcuts and a settings page. The menubar version contains only the base functionality, as well as a button to show all shortcuts. The menu bar version is basically a streamlined version, for users who are on Mac, and don’t care too much about the settings. The menubar version is recommended for ease of use, as it lives on the Mac menubar, and won’t interfere with any work. You can also easily toggle the replacer on and off. This tool is best for people who type certain things repeatedly. For example, if a person has to fill in a sheet with either Accepted or Declined, then that person can easily create shortcuts like /a and /d, so it makes their job much easier. The main QoL improvements are Making repetitive tasks shorter and more efficient A settings panel where users can easily modify their preferences depending on their usual tasks An automatic save/load system that makes sure users never lose their shortcuts There were many challenges I faced while creating this project. I was still pretty new to Python when I started this project, and only knew basic things, like conditions or statements. Luckily, I’ve been coding in Unity (C#) for a long time, so it set a base that allowed me to learn the simple things like functions pretty easily. Many challenges I faced were with the UI, as in Unity, it is fairly easy to create basic UI without any code, but in Python, I had to use Tkinter for everything. It became even more difficult with making the menubar version, though I was able to figure them all out. I’m personally proud of the menu bar version, because I think it’s perfect for people who just want the main functionality, and don’t want to be bothered by a seperate window. To test my project, you can go to my GitHub release page which contains downloads for both versions. My README contains detailed instructions on how to download and run the app. (Below is a screenshot of my menu bar version) Thank you....
|
1793623957.0963926
|
1793710357.0963926
|
|
39977
|
My own site! by @Prajwol_Gynawali | Stardance
|
Prajwol_Gynawali
|
1
|
0.42
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-27T01:17:19Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a personal website using html and css. currently i dont have a html and css skill but reading documentatikna dn tsking help from some friends and some ai i mzde a simple three section webste", "repo": "https://github.com/SnaggingCobra/stardanceweb", "demo": "https://snaggingcobra.github.io/stardanceweb/"}]...
|
[{"post_id": 44063, "ts": "202 [{"post_id": 44063, "ts": "2026-08-09T16:08:20Z", "hours": 0.4172, "text": "did some little work still need to add images and mre interactive design for this but can anyone here help me i want to add like a hover effect how can i add"}, {"post_id": 35535, "ts": "2026-07-27T01:12:29Z", "hours": 0.0, "text": "finished my work with help of some technical friend and ai"}, {"post_id": 35523, "ts": "2026-07-27T00:32:28Z", "hours": 0.2481, "text": "currently working on a personal website but getting hard to actually make this i want help to align other as header"}]...
|
Title: My own site! by @Prajwol_Gynawali | Stardan Title: My own site! by @Prajwol_Gynawali | Stardance
Devlogs:
currently working on a personal website but getting hard to actually make this i want help to align other as header
finished my work with help of some technical friend and ai
did some little work still need to add images and mre interactive design for this but can anyone here help me i want to add like a hover effect how can i add
Ships:
i made a personal website using html and css. currently i dont have a html and css skill but reading documentatikna dn tsking help from some friends and some ai i mzde a simple three section webste...
|
1793623958.2932465
|
1793710358.2932465
|
|
71025
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1793623959.4709337
|
1794487959.4709337
|