|
24530
|
Scientific Calculator by @naman0410 | Stardance
|
naman0410
|
2
|
3.0
|
5
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-04T17:14:58Z", "hours": 1.0, "multiplier": 1.69, "payout": 2, "blessing": "neutral", "text": "I built this Advanced Scientific Calculator to go beyond the basic calculator you find on most websites. Along with standard arithmetic operations, it includes a wide range of scientific functions, memory operations, calculation history, theme switching, and a live currency converter.", "repo": "https://github.com/modinaman099/Scientific-Calculator-", "demo": "https://thunderous-kheer-a7432c.netlify.app/"}, {"ship_num": 2, "ts": "2026-06-23T22:24:06Z", "hours": 2.0, "multiplier": 1.19, "payout": 3, "blessing": "neutral", "text": "I have designed a scientific calculator with all the necessary functions . It has an option to switch between scientific (advnaced) calculator and normal calculator . It can change themes . It also has a history page that can store calculations and you on your own can clear it to .", "repo": "https://github.com/modinaman099/Scientific-Calculator-", "demo": "https://thunderous-kheer-a7432c.netlify.app/"}]...
|
[{"post_id": 18191, "ts": "202 [{"post_id": 18191, "ts": "2026-06-29T08:02:26Z", "hours": 0.0, "text": "I have now added a currency converter to my calculator to give the calculator a bit of my touch . It also tells the current rate of each currency as compared to Indian rupees . I have reworked the css , java part of the code . I have also added a few colours to the calculator so that it doesnt looks dull and colourless ."}, {"post_id": 14659, "ts": "2026-06-23T21:01:16Z", "hours": 0.0, "text": "I have added all the scientific values and working on the UI Interface of the calculator that how will its functions appear"}, {"post_id": 14593, "ts": "2026-06-23T19:15:19Z", "hours": 1.0, "text": "i have added the scientific values that are to be added in the calculator"}, {"post_id": 14538, "ts": "2026-06-23T18:00:17Z", "hours": 0.0, "text": "im working on a scientific calculator with all the functions in a proper calculator"}]...
|
Title: Scientific Calculator by @naman0410 | Stard Title: Scientific Calculator by @naman0410 | Stardance
Devlogs:
im working on a scientific calculator with all the functions in a proper calculator
i have added the scientific values that are to be added in the calculator
I have added all the scientific values and working on the UI Interface of the calculator that how will its functions appear
I have now added a currency converter to my calculator to give the calculator a bit of my touch . It also tells the current rate of each currency as compared to Indian rupees . I have reworked the css , java part of the code . I have also added a few colours to the calculator so that it doesnt looks dull and colourless .
Ships:
I have designed a scientific calculator with all the necessary functions . It has an option to switch between scientific (advnaced) calculator and normal calculator . It can change themes . It also has a history page that can store calculations and you on your own can clear it to .
I built this Advanced Scientific Calculator to go beyond the basic calculator you find on most websites. Along with standard arithmetic operations, it includes a wide range of scientific functions, memory operations, calculation history, theme switching, and a live currency converter....
|
1792878800.3247478
|
1793742800.3247478
|
|
24622
|
My very own WebOS by @Antara | Stardance
|
Antara
|
2
|
2.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-24T06:17:47Z", "hours": 0.0, "multiplier": 3.46, "payout": 1, "blessing": "neutral", "text": "After receiving feedback, I focused on polishing the experience and improving usability. Added a complete README, fixed application icons so every app opens correctly, introduced the Crime Map application, improved window layouts with card-based designs, and added scrolling support for better navigation. Current applications include Case Files, Evidence Locker, Suspect Database, and Crime Map, all accessible through draggable desktop windows inside the detective-themed operating system. DetectiveOS is now more complete, better documented, and much closer to the vision of a full investigation platform. The Game Is Afoot.", "repo": "https://github.com/Rare21ism/coldcase-WebOS", "demo": "https://coldcase-web-os.vercel.app"}, {"ship_num": 2, "ts": "2026-06-23T17:10:28Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "DetectiveOS šµļø I built DetectiveOS , a detective-themed web operating system with multiple draggable windows and investigation tools. Features Welcome screen and detective login flow Live desktop clock Case Files app Evidence Locker app Crime Map app Draggable application windows Dark detective-themed interface Challenges The biggest challenge was making the windows draggable while keeping the interface organized and responsive. I also spent time designing a consistent detective-style UI across all applications. What Iām Proud Of Iām proud that the project evolved from a simple webpage into a functional WebOS with multiple applications and its own unique theme. How To Test Open the website. Enter the DetectiveOS desktop. Open the Case Files, Evidence Locker, and Crime Map apps. Drag windows around the desktop and explore the interface. The project includes several custom features beyond the guide and has no password requirement for testing.", "repo": "https://github.com/Rare21ism/coldcase-WebOS", "demo": "https://coldcase-web-os.vercel.app"}]...
|
[{"post_id": 14902, "ts": "202 [{"post_id": 14902, "ts": "2026-06-24T06:14:27Z", "hours": 0.29, "text": "Devlog 4 - DetectiveOS Received feedback on my previous submission and worked on improving the overall project experience. Changes Made Added a complete README documenting all features and applications Fixed desktop applications so every icon opens correctly Added the Crime Map application Improved consistency across all application windows Converted application content to card-based layouts Added scrolling support for windows Refined the dark detective-themed interface Improved navigation and usability Current Applications Case Files Evidence Locker Suspect Database Crime Map Progress Welcome Screen Detective Login Desktop Environment Live Clock Draggable Windows Case Files Evidence Locker Suspect Database Crime Map README Documentation DetectiveOS is now more polished, better documented, and all desktop applications are fully accessible from the main desktop environment. The Game Is Afoot."}, {"post_id": 14491, "ts": "2026-06-23T17:03:19Z", "hours": 0.7828, "text": "Devlog 3 - DetectiveOS šµļø Today I expanded DetectiveOS with new investigation tools and improved the overall user experience. Progress Added the Crime Map application Improved the UI across all application windows Added scrollable windows for better usability Redesigned app content using card-based layouts Refined the detective-themed dark interface Continued improving the desktop environment DetectiveOS is starting to feel like a complete investigation platform rather than just a collection of windows. The game is afoot. š"}, {"post_id": 14425, "ts": "2026-06-23T15:29:58Z", "hours": 0.6858, "text": "Devlog 2 - DetectiveOS šµļø I made DetectiveOS feel more like a real operating system. Progress Added a welcome screen and detective login flow Built the desktop environment with a live clock Created the Case Files and Evidence Locker apps Added draggable windows and app interactions DetectiveOS is slowly evolving from a simple webpage into a detective-themed WebOS. The game is afoot. š"}, {"post_id": 14360, "ts": "2026-06-23T13:51:49Z", "hours": 0.2875, "text": "Devlog 1 - DetectiveOS šµļø Started building DetectiveOS , a web-based operating system with a detective theme. What I completed Created the project structure Set up index.html , style.css , and script.js Built the welcome screen Added a live clock using JavaScript Planned the main applications Planned Apps Case Files Evidence Locker Suspect Database Crime Map Audio Analyzer Surveillance Center Next Steps Build the desktop interface Create application windows Add interactive features Every file is a clue. Every app helps solve the case. š"}]...
|
Title: My very own WebOS by @Antara | Stardance
D Title: My very own WebOS by @Antara | Stardance
Devlogs:
Devlog 1 - DetectiveOS šµļø Started building DetectiveOS , a web-based operating system with a detective theme. What I completed Created the project structure Set up index.html , style.css , and script.js Built the welcome screen Added a live clock using JavaScript Planned the main applications Planned Apps Case Files Evidence Locker Suspect Database Crime Map Audio Analyzer Surveillance Center Next Steps Build the desktop interface Create application windows Add interactive features Every file is a clue. Every app helps solve the case. š
Devlog 2 - DetectiveOS šµļø I made DetectiveOS feel more like a real operating system. Progress Added a welcome screen and detective login flow Built the desktop environment with a live clock Created the Case Files and Evidence Locker apps Added draggable windows and app interactions DetectiveOS is slowly evolving from a simple webpage into a detective-themed WebOS. The game is afoot. š
Devlog 3 - DetectiveOS šµļø Today I expanded DetectiveOS with new investigation tools and improved the overall user experience. Progress Added the Crime Map application Improved the UI across all application windows Added scrollable windows for better usability Redesigned app content using card-based layouts Refined the detective-themed dark interface Continued improving the desktop environment DetectiveOS is starting to feel like a complete investigation platform rather than just a collection of windows. The game is afoot. š
Devlog 4 - DetectiveOS Received feedback on my previous submission and worked on improving the overall project experience. Changes Made Added a complete README documenting all features and applications Fixed desktop applications so every icon opens correctly Added the Crime Map application Improved consistency across all application windows Converted application content to card-based layouts Added scrolling support for windows Refined the dark detective-themed interface Improved navigation and usability Current Applications Case Files Evidence Locker Suspect Database Crime Map Progress Welcome Screen Detective Login Desktop Environment Live Clock Draggable Windows Case Files Evidence Locker Suspect Database Crime Map README Documentation DetectiveOS is now more polished, better documented, and all desktop applications are fully accessible from the main desktop environment. The Game Is Afoot.
Ships:
DetectiveOS šµļø I built DetectiveOS , a detective-themed web operating system with multiple draggable windows and investigation tools. Features Welcome screen and detective login flow Live desktop clock Case Files app Evidence Locker app Crime Map app Draggable application windows Dark detective-themed interface Challenges The biggest challenge was making the windows draggable while keeping the interface organized and responsive. I also spent time designing a consistent detective-style UI across all applications. What Iām Proud Of Iām proud that the project evolved from a simple webpage into a functional WebOS with multiple applications and its own unique theme. How To Test Open the website. Enter the DetectiveOS desktop. Open the Case Files, Evidence Locker, and Crime Map apps. Drag windows around the desktop and explore the interface. The project includes several custom features beyond the guide and has no password requirement for testing.
After receiving feedback, I focused on polishing the experience and improving usability. Added a complete README, fixed application icons so every app opens correctly, introduced the Crime Map application, improved window layouts with card-based designs, and added scrolling support for better navigation. Current applications include Case Files, Evidence Locker, Suspect Database, and Crime Map, all accessible through draggable desktop windows inside the detective-themed operating system. DetectiveOS is now more complete, better documented, and much closer to the vision of a full investigation platform. The Game Is Afoot....
|
1792824780.288655
|
1792911180.288655
|
|
24681
|
My very own WebOS by @shrija | Stardance
|
shrija
|
2
|
11.45
|
8
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-29T20:18:49Z", "hours": 3.0, "multiplier": 3.33, "payout": 8, "blessing": "neutral", "text": "I built YAP OS, a browser-based operating system that delivers a modern desktop experience with a customizable interface, animated wallpapers, and a live clock and date. My goal was to create something that feels like a real OS while running entirely in the browser. The biggest challenge was combining functionality with a clean, responsive design and making the desktop feel smooth and interactive. Iām proud of building it from scratch and seeing the idea come to life. To test the project, simply explore the desktop, interact with the interface, and try the available features. This is an ongoing project, and many more apps and features are planned in future updates.", "repo": "https://github.com/shrijasehrawat/YapOs", "demo": "https://shrijasehrawat.github.io/YapOs/"}, {"ship_num": 2, "ts": "2026-06-29T12:53:31Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built YAP OS, a browser-based operating system that delivers a modern desktop experience with a customizable interface, animated wallpapers, and a live clock and date. My goal was to create something that feels like a real OS while running entirely in the browser. The biggest challenge was combining functionality with a clean, responsive design and making the desktop feel smooth and interactive. Iām proud of building it from scratch and seeing the idea come to life. To test the project, simply explore the desktop, interact with the interface, and try the available features. This is an ongoing project, and many more apps and features are planned in future updates.", "repo": "https://github.com/shrijasehrawat/YapOs", "demo": "https://shrijasehrawat.github.io/YapOs/"}]...
|
[{"post_id": 18679, "ts": "202 [{"post_id": 18679, "ts": "2026-06-29T21:21:58Z", "hours": 0.4472, "text": "update! just added a boot screen to make my OS look more attractive"}, {"post_id": 18616, "ts": "2026-06-29T20:17:47Z", "hours": 2.5081, "text": "DevLog #5 added some apps ;)"}, {"post_id": 18314, "ts": "2026-06-29T12:48:52Z", "hours": 4.2906, "text": "DevLog #4 working on my apps!"}, {"post_id": 16292, "ts": "2026-06-26T14:32:39Z", "hours": 1.5178, "text": "updateā¦! weāve made our card draggable now also added the close, minimizing and maximizing buttons. will update you guys soon with next part, till then stay tuned⦠;)"}, {"post_id": 15787, "ts": "2026-06-25T17:40:36Z", "hours": 0.5094, "text": "UPDATE! Devlog #2 after a surprisingly intense battle against the laws of time itself, Iāve finally figured out how to make the clock and date update automatically in my project. What seemed like a simple ājust show the timeā feature quickly turned into me questioning my life choices, JavaScript, and occasionally the concept of time itself. š
The good news: the clock now ticks in real time and the date updates correctly without requiring a system reboot, a sacrifice to the coding gods, or manual intervention. Itās a small feature, but it makes the OS feel much more alive and responsive. On to the next challenge! Progress: Dynamic Time & Date ā
Status: Winning the fight against time (for nowā¦)"}, {"post_id": 15671, "ts": "2026-06-25T14:09:16Z", "hours": 1.8181, "text": "Yap OS ā DevLog #1 I Started This Project Yap OS began as a personal challenge to deepen my understanding of operating system design, user interface development, and software architecture. I wanted to explore what it takes to build an operating system experience from the ground up. I have focused on establishing the foundation of the operating system. Completed Desktop environment, visual identity Wallpaper, theme concepts, layout Live clock and date . I have also improved my understanding of HTML, CSS, and JavaScript by applying them to a larger projects. The next development milestone includes: Finalizing the desktop interface Improving system performance Adding additional built-in applications Enhancing visual effects and animations Expanding customization options Closing Thoughts. Yap OS is still in active development, but the project has already become an excellent learning experience. Each feature brings new technical challenges and opportunities to improve both the system and my development skills. I look forward to sharing future updates ."}]...
|
Title: My very own WebOS by @shrija | Stardance
D Title: My very own WebOS by @shrija | Stardance
Devlogs:
Yap OS ā DevLog #1 I Started This Project Yap OS began as a personal challenge to deepen my understanding of operating system design, user interface development, and software architecture. I wanted to explore what it takes to build an operating system experience from the ground up. I have focused on establishing the foundation of the operating system. Completed Desktop environment, visual identity Wallpaper, theme concepts, layout Live clock and date . I have also improved my understanding of HTML, CSS, and JavaScript by applying them to a larger projects. The next development milestone includes: Finalizing the desktop interface Improving system performance Adding additional built-in applications Enhancing visual effects and animations Expanding customization options Closing Thoughts. Yap OS is still in active development, but the project has already become an excellent learning experience. Each feature brings new technical challenges and opportunities to improve both the system and my development skills. I look forward to sharing future updates .
UPDATE! Devlog #2 after a surprisingly intense battle against the laws of time itself, Iāve finally figured out how to make the clock and date update automatically in my project. What seemed like a simple ājust show the timeā feature quickly turned into me questioning my life choices, JavaScript, and occasionally the concept of time itself. š
The good news: the clock now ticks in real time and the date updates correctly without requiring a system reboot, a sacrifice to the coding gods, or manual intervention. Itās a small feature, but it makes the OS feel much more alive and responsive. On to the next challenge! Progress: Dynamic Time & Date ā
Status: Winning the fight against time (for nowā¦)
updateā¦! weāve made our card draggable now also added the close, minimizing and maximizing buttons. will update you guys soon with next part, till then stay tuned⦠;)
DevLog #4 working on my apps!
DevLog #5 added some apps ;)
update! just added a boot screen to make my OS look more attractive
Ships:
I built YAP OS, a browser-based operating system that delivers a modern desktop experience with a customizable interface, animated wallpapers, and a live clock and date. My goal was to create something that feels like a real OS while running entirely in the browser. The biggest challenge was combining functionality with a clean, responsive design and making the desktop feel smooth and interactive. Iām proud of building it from scratch and seeing the idea come to life. To test the project, simply explore the desktop, interact with the interface, and try the available features. This is an ongoing project, and many more apps and features are planned in future updates.
I built YAP OS, a browser-based operating system that delivers a modern desktop experience with a customizable interface, animated wallpapers, and a live clock and date. My goal was to create something that feels like a real OS while running entirely in the browser. The biggest challenge was combining functionality with a clean, responsive design and making the desktop feel smooth and interactive. Iām proud of building it from scratch and seeing the idea come to life. To test the project, simply explore the desktop, interact with the interface, and try the available features. This is an ongoing project, and many more apps and features are planned in future updates....
|
1792839315.0003207
|
1792925715.0003207
|
|
24706
|
ColemanOS by @rushurov | Stardance
|
rushurov
|
2
|
5.0
|
7
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T00:49:03Z", "hours": 1.0, "multiplier": 5.76, "payout": 7, "blessing": "neutral", "text": "ColemanOS WebOS 2 Update! Keon Coleman-themed WebOS This WebOS features a notes/news article app with 3 articles about Keon Coleman. The last article is from https://www.buffalorumblings.com/authors/anthony-marino . It also features a live Weather app for the weather in Buffalo, NY. It uses the API from Open-Meteo. Finally, it has a cool quote generator with most of his popular quotes! WebOS 2 Features: I added 3 apps: Settings app, change color of top bar and background Macyās Store app, browse through Macyās coat deals Cookie Clicker, because Keon loooooves cookies DISCLAIMER: AI WAS USED! I used Gemini to explain the guide when it got confusing, explain errors in my code, and explain how to use an API in JavaScript. This was made to publish as a project in Stardance for Hack Club, but it serves as a fun, goofy project.", "repo": "https://github.com/rushurov074/ColemanOS", "demo": "https://rushurov.me/ColemanOS/"}, {"ship_num": 2, "ts": "2026-06-24T05:09:31Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my first project in Hack Club!!! My version of WebOS is a Keon Coleman-themed one. Keon Coleman has been basically my favorite NFL player since he was drafted. Even through all the hate he gets, I still buy his jerseys. This WebOS has a little welcome page with a description of who he is, then an article app with a real news post, a weather app that I had to use AI to learn how to implement an API into Javascript that shows the live weather in Buffalo, NY, and finally a little quote generator that randomly shows you his most popular quotes. Honestly, the hardest part was following along with the guide because half the time it would say something and then it would feel like something just was created out of nowhere and it got confusing. I ended up using AI to analyze the guide and walk me through it because the directions were losing me lol. Ultimately, this was super fun and I canāt wait to keep making more projects here!", "repo": "https://github.com/rushurov074/ColemanOS", "demo": "https://rushurov.me/ColemanOS/"}]...
|
[{"post_id": 49991, "ts": "202 [{"post_id": 49991, "ts": "2026-08-19T00:48:17Z", "hours": 1.2686, "text": "This is my WebOS 2 Devlog! I added 3 new apps. Settings app, change color of top bar and background Macyās Store app, browse through Macyās coat deals Cookie Clicker, because Keon loooooves cookies! I also changed some of the app icons to make them a little more unique. Please be generous rating it š"}, {"post_id": 14883, "ts": "2026-06-24T05:04:43Z", "hours": 0.2539, "text": "I forgot to add the feature that isnāt in the guide, so I made an app called Keon Quotesman. Itās exactly what it sounds like, it just randomly generates most of his most popular quotes."}, {"post_id": 14874, "ts": "2026-06-24T04:37:43Z", "hours": 0.2997, "text": "Finished WebOS1, I added a Weather app, moved the icons, and used the Open-Meteo API for the weather app. I did have to ask AI how to use an API, and the new news report in the colemanotes app is a real post from https://www.buffalorumblings.com/authors/anthony-marino . Gotta give credit where its due"}, {"post_id": 14869, "ts": "2026-06-24T04:19:31Z", "hours": 0.8375, "text": "Finished Part 4 of WebOS1. I added a new app, Colemanotes, where news reports and articles about Keon Coleman are made. I used a very formal picture of Keon Coleman for the icon so people know that this is very serious."}, {"post_id": 14795, "ts": "2026-06-24T01:06:52Z", "hours": 0.9686, "text": "Finished Part 3 of WebOS1. After looking up a tutorial on YouTube on how to make things look Apple-themed in CSS, I changed the box to look kinda like the new liquid glass. Here is also where the window is draggable and closable."}, {"post_id": 14767, "ts": "2026-06-24T00:00:43Z", "hours": 1.2114, "text": "Finished Part 2 of WebOS1. Here I finally added some more Keon Coleman theme, and found out how to use the thick border from W3 Schools and their CSS tags page. I also created a top bar with a pill shaped gif in the center to match the Dynamic Island on the iPhone."}, {"post_id": 14493, "ts": "2026-06-23T17:06:05Z", "hours": 0.6592, "text": "Finished Part 1 of WebOS1. This is my first attempt at actually writing HTML in a very long time, so its super basic and matches Buffalo Bills colors!"}]...
|
Title: ColemanOS by @rushurov | Stardance
Devlogs Title: ColemanOS by @rushurov | Stardance
Devlogs:
Finished Part 1 of WebOS1. This is my first attempt at actually writing HTML in a very long time, so its super basic and matches Buffalo Bills colors!
Finished Part 2 of WebOS1. Here I finally added some more Keon Coleman theme, and found out how to use the thick border from W3 Schools and their CSS tags page. I also created a top bar with a pill shaped gif in the center to match the Dynamic Island on the iPhone.
Finished Part 3 of WebOS1. After looking up a tutorial on YouTube on how to make things look Apple-themed in CSS, I changed the box to look kinda like the new liquid glass. Here is also where the window is draggable and closable.
Finished Part 4 of WebOS1. I added a new app, Colemanotes, where news reports and articles about Keon Coleman are made. I used a very formal picture of Keon Coleman for the icon so people know that this is very serious.
Finished WebOS1, I added a Weather app, moved the icons, and used the Open-Meteo API for the weather app. I did have to ask AI how to use an API, and the new news report in the colemanotes app is a real post from https://www.buffalorumblings.com/authors/anthony-marino . Gotta give credit where its due
I forgot to add the feature that isnāt in the guide, so I made an app called Keon Quotesman. Itās exactly what it sounds like, it just randomly generates most of his most popular quotes.
This is my WebOS 2 Devlog! I added 3 new apps. Settings app, change color of top bar and background Macyās Store app, browse through Macyās coat deals Cookie Clicker, because Keon loooooves cookies! I also changed some of the app icons to make them a little more unique. Please be generous rating it š
Ships:
I made my first project in Hack Club!!! My version of WebOS is a Keon Coleman-themed one. Keon Coleman has been basically my favorite NFL player since he was drafted. Even through all the hate he gets, I still buy his jerseys. This WebOS has a little welcome page with a description of who he is, then an article app with a real news post, a weather app that I had to use AI to learn how to implement an API into Javascript that shows the live weather in Buffalo, NY, and finally a little quote generator that randomly shows you his most popular quotes. Honestly, the hardest part was following along with the guide because half the time it would say something and then it would feel like something just was created out of nowhere and it got confusing. I ended up using AI to analyze the guide and walk me through it because the directions were losing me lol. Ultimately, this was super fun and I canāt wait to keep making more projects here!
ColemanOS WebOS 2 Update! Keon Coleman-themed WebOS This WebOS features a notes/news article app with 3 articles about Keon Coleman. The last article is from https://www.buffalorumblings.com/authors/anthony-marino . It also features a live Weather app for the weather in Buffalo, NY. It uses the API from Open-Meteo. Finally, it has a cool quote generator with most of his popular quotes! WebOS 2 Features: I added 3 apps: Settings app, change color of top bar and background Macyās Store app, browse through Macyās coat deals Cookie Clicker, because Keon loooooves cookies DISCLAIMER: AI WAS USED! I used Gemini to explain the guide when it got confusing, explain errors in my code, and explain how to use an API in JavaScript. This was made to publish as a project in Stardance for Hack Club, but it serves as a fun, goofy project....
|
1792831739.6712444
|
1792918139.6712444
|
|
24723
|
Nidofy v2 by @NiDo | Stardance
|
NiDo
|
2
|
10.0
|
97
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-04T16:24:01Z", "hours": 0.0, "multiplier": 3.14, "payout": 1, "blessing": "neutral", "text": "I rewrote my portfolio in React, while also learning React! The website serves both as my portfolio as well as a place where I can upload poems I wrote. The website is self hosted and live. It also hides an easter egg I encourage people to hunt for ;) Hint for the easter egg- Check the routes in App.jsx", "repo": "https://github.com/ElectroBoy404NotFound/nidofy-vite", "demo": "https://nido.dino.icu:3031/"}, {"ship_num": 2, "ts": "2026-06-28T16:59:58Z", "hours": 10.0, "multiplier": 9.45, "payout": 96, "blessing": "neutral", "text": "I rewrote my portfolio in React, while also learning React! The website serves both as my portfolio as well as a place where I can upload poems I wrote. The website is self hosted and live. It also hides an easter egg I encourage people to hunt for ;)", "repo": "https://github.com/ElectroBoy404NotFound/nidofy-vite", "demo": "https://nido.dino.icu:3031/"}]...
|
[{"post_id": 22230, "ts": "202 [{"post_id": 22230, "ts": "2026-07-04T16:21:41Z", "hours": 0.4025, "text": "So as the suggestions said, I made the cards dark. While I was at it, I also added a footer."}, {"post_id": 17699, "ts": "2026-06-28T16:48:24Z", "hours": 0.6333, "text": "I added an easter egg! I wonāt reveal the link. Itās a challenge for yāall to find but ya. Iāll ship it now."}, {"post_id": 17606, "ts": "2026-06-28T14:04:34Z", "hours": 0.6261, "text": "So copy works! I was planning to have a copy all poems buttons but currently the backend doesnāt implement a proper get all poems with content endpoint, so the frontend would have to loop through how many ever poems are there (currently 48) requesting the content for each one⦠thatās definatly not a good idea unless the goal is to make the backend cry. Anyways, Iāll just deploy it to my self-hosted server and ship it!"}, {"post_id": 17490, "ts": "2026-06-28T09:17:36Z", "hours": 0.3719, "text": "Iāve finished implementing the poem skeleton! Iāll just add a copy button like the old version of the site had and with that I can ship this project!!"}, {"post_id": 17425, "ts": "2026-06-28T06:21:06Z", "hours": 2.2181, "text": "Iām almost done, Iāve finished the my poems page and the poem page. I think Iām going to skip the projects and admin page of my old site for now as Iām fine with the old admin dashboard and Iām not really adding stuff to the projects pages anyways. So for now, Iāll just add the skeleton UI for the poem page (the other pages already have their own skeleton UIs) and Iāll push it to my server. Self-hosted btw The current version of it is already live. Iām still thinking of what next should I add. But before all of that, I should probably push everything to a github repo."}, {"post_id": 14486, "ts": "2026-06-23T16:58:40Z", "hours": 6.3414, "text": "Okie so Iām currently working on the home page. Iām using React with MIUI, Framer Motion, SwiperJS, React Icons and also Tailwind CSS. Itās coming together pretty well not gonna lie"}]...
|
Title: Nidofy v2 by @NiDo | Stardance
Devlogs:
Ok Title: Nidofy v2 by @NiDo | Stardance
Devlogs:
Okie so Iām currently working on the home page. Iām using React with MIUI, Framer Motion, SwiperJS, React Icons and also Tailwind CSS. Itās coming together pretty well not gonna lie
Iām almost done, Iāve finished the my poems page and the poem page. I think Iām going to skip the projects and admin page of my old site for now as Iām fine with the old admin dashboard and Iām not really adding stuff to the projects pages anyways. So for now, Iāll just add the skeleton UI for the poem page (the other pages already have their own skeleton UIs) and Iāll push it to my server. Self-hosted btw The current version of it is already live. Iām still thinking of what next should I add. But before all of that, I should probably push everything to a github repo.
Iāve finished implementing the poem skeleton! Iāll just add a copy button like the old version of the site had and with that I can ship this project!!
So copy works! I was planning to have a copy all poems buttons but currently the backend doesnāt implement a proper get all poems with content endpoint, so the frontend would have to loop through how many ever poems are there (currently 48) requesting the content for each one⦠thatās definatly not a good idea unless the goal is to make the backend cry. Anyways, Iāll just deploy it to my self-hosted server and ship it!
I added an easter egg! I wonāt reveal the link. Itās a challenge for yāall to find but ya. Iāll ship it now.
So as the suggestions said, I made the cards dark. While I was at it, I also added a footer.
Ships:
I rewrote my portfolio in React, while also learning React! The website serves both as my portfolio as well as a place where I can upload poems I wrote. The website is self hosted and live. It also hides an easter egg I encourage people to hunt for ;)
I rewrote my portfolio in React, while also learning React! The website serves both as my portfolio as well as a place where I can upload poems I wrote. The website is self hosted and live. It also hides an easter egg I encourage people to hunt for ;) Hint for the easter egg- Check the routes in App.jsx...
|
1792850031.1679344
|
1792936431.1679344
|
|
24731
|
Ocelot by @Leftie | Stardance
|
Leftie
|
2
|
29.0
|
503
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-17T02:42:20Z", "hours": 10.0, "multiplier": 16.41, "payout": 159, "blessing": "neutral", "text": "I made a chess engine without any dependencies. The hardest part were the small bugs that could have been avoided by just being more careful in the moment. Iām proudest of its UCI implementationāit can communicate with most chess GUIs via the Universal Chess Interface protocol. To test the project, you need Cargo to download and install the crate. You need to use the CLI (pictured) to test it if you donāt want to download a 3rd-party interface.", "repo": "https://github.com/left-alert-chaos/ocelot", "demo": "https://crates.io/crates/ocelot-chess/"}, {"ship_num": 2, "ts": "2026-06-28T19:43:37Z", "hours": 19.0, "multiplier": 17.93, "payout": 344, "blessing": "neutral", "text": "I made a chess engine from scratch. The board representation was the hardest part. While it wasnāt too challenging, there were some simple bugs that took more time than Iād like to admit to fix. Iām proudest of the engineās speedāon my laptopās performance mode, most moves take around 3.5 seconds. The engine is written in Rust, and needs Cargo in order to download and run.", "repo": "https://github.com/left-alert-chaos/ocelot", "demo": "https://crates.io/crates/ocelot-chess/"}]...
|
[{"post_id": 29908, "ts": "202 [{"post_id": 29908, "ts": "2026-07-17T02:34:01Z", "hours": 0.8, "text": "Devlog 9: The unnecessary one Stardance doesnāt want me to ship again without logging my 48 minutes, so hereās a brief summary: I removed some old code, changed the pawns_in_center heuristic to be more drastic, and made the TUI display how much time the engine took to move."}, {"post_id": 29727, "ts": "2026-07-16T20:21:32Z", "hours": 3.6853, "text": "Devlog 8: the procrastination is the hard part Iām going to try not to sound like a cringey motivational speaker, so bear with me. Iāve been procrastinating for a while now on one final part of the UCI implementation: the go command. Itās really complicated and I just didnāt want to write a parser for it, so since it was created, the engine hasnāt been able to change its search time based on how much time it has left. This is a problem, because it couldnāt reliably play with non-infinite time controls. Anyway, after I waited for the willpower to write the parser I just sat down and did it , and it wasnāt actually that hard! The one issue is that it seems to be weaker than it was before the time controls. Thatās definitely not a huge problem Iāll have to fix later!"}, {"post_id": 21777, "ts": "2026-07-03T21:38:30Z", "hours": 2.9394, "text": "Devlog 7: Better luck this time? Iāve been doing some work on less crucial parts of the engine, but mostly trying to entertain myself while I waited for my ship to be reviewed. Today, I can proudly say that it was! However, it was send back because the player could make illegal moves in the TUI. This wasnāt too hard to fix, but there were a few things that I hadnāt known were wrong that work properly now. I didnāt realize it, but if the player tried to castle when they couldnāt, it would tell them it was illegal⦠after switching the color of the piece the king was going to replace. I did some sleuthing, and it turns out that itās because the castle wasnāt being parsed as a castle, but as a move. This move was then being performed and undone. When moves are performed, they record the type of piece they capture so that the pieces can be restored when the moves are undone. Here, though, it was recording that it was capturing a knight but replacing it with a black knight because white canāt legally capture its own pieces. Anyway, thatās fixed now, so Iāll request another review and keep you posted!"}, {"post_id": 18622, "ts": "2026-06-29T20:25:24Z", "hours": 2.2492, "text": "Devlog 6: A need for speed! After my first (still pending) ship, I needed something else to focus my energy on other than the fundamentals. I landed on time management: I can make the engine more efficient with its time. And Iāve kind of done that, in a way. Firstly, I made the search algorithm track its time, so if it was iterating on a node while it surpassed its allowed time, it would just return the value it already had. I played around with the time value, and it seemed to work! When I set it to 1, the engine played moves in around 1.1 seconds. When I set it to 15, it played moves in exactly 15 seconds! It doesnāt dynamically adjust depth yet, but this is a good start!"}, {"post_id": 17803, "ts": "2026-06-28T18:53:15Z", "hours": 1.2617, "text": "Devlog 5: Final touches Iād already done most of the workāI just needed a few more minor things done before I could ship. These were: Make the TUI exit gracefully instead of just disappearing Add multi-threading Publish to crates.io Iām proud to say that Iāve done all of those! Making the search tree dispatch threads was much easier than I thought it would be, especially considering Iām still pretty new to Rust. The TUI was simply adding a struct field of whether to exit. Publishing was a breeze, and Iāve now published 2 different versions. All I need to do before I ship now is finish my README, which is just add a section about installing the project."}, {"post_id": 17288, "ts": "2026-06-28T00:31:04Z", "hours": 3.73, "text": "Devlog 4: I added a TUI After finishing most of the engine, I play tested it for a bit. As discussed in my last post, I fixed 3 big bugs. I was getting closer than ever to shipping a finished product! However, there was one problem: the engine wasnāt really usable on its own. Sure, it played decently, but it still needed the GUI to display the board. This is unfeasible for shippingāI canāt make people download someone elseās GUI just so my engine is playable. Therefore, I needed some sort of inbuilt user interface. My highest-priority design goal was to have no dependencies, so making a GUI wasnāt really an option. That left TUIs. I couldnāt use a library, so that left me 2 options: I could do the easy thing and hard-code the interface, or I could (and I know this sounds absurd) build a miniature TUI framework from the ground up just to make a simple screen. I picked the latter, because why not? I already had a decent prototype written in Python for another project, so I could just port that to Rust and life would be easy. Right? Well, kind of. I spent some time on it, but before I added yet another mandatory argument to a trait method, I stopped and asked myself if this was really worth it. It wasnāt going to be easy or practical, so why do it in the first place? And after coming to that realization, I quickly threw together a decent interface using hard-coded methods. No, itās not extensible. But why would it need to be? It works, and thatās what matters. And itās pretty nice, too!"}, {"post_id": 16583, "ts": "2026-06-26T23:34:04Z", "hours": 0.2664, "text": "Devlog 3 A couple bug fixes. This oneās more minor, so Iāll keep it short. There were 3 bugs: A crash (caused by calling unwrap() ) Moving an opponentās piece (caused by not changing Board::turn ) Late en passant (caused by setting the en passant turn one too high) To solve them, I did 3 fixes: Add pattern matching Change the player to move when castling Change a turn number I also played the first legal game with this engine! I used CuteChess to make it play itself, and 35 rounds later the game ended by stalemate. No illegal moves were made and no crashes happened. Iāve attached a screenshot of the end of the game. Iām going to take this as a good sign and try to target Monday (6/29/2026) for my first ship."}, {"post_id": 16493, "ts": "2026-06-26T20:47:25Z", "hours": 1.3897, "text": "Devlog 2 I did UCI! The engine now is UCI-compatible, so it can play with GUIs like CuteChess. When I first connected it to CuteChess, it crashed on the first move. After enabling debugging, I realized it was because I hadnāt added the moves clause to the position command. I added it and⦠It still crashed. It crashed when it was time to make a move over and over and over again. After many ultimately useless println! statements, I finally realized why: I had been applying the userās move before resetting the entire board, thus overwriting the move. After fixing this, I turned it on again and played for exactly one move before it crashed again. Why now? Once again, I hadnāt properly implemented the position command. It only accepted one move, but needed to take as many as were supplied. This was pretty easy - just a for loop. After fixing that, I was able to play an almost-complete game with it before it crashed yet again. After some more testing, it seems to crash when it doesnāt have any legal king moves. My next step is to fix this and a few other minor bugs, and then we should be off to the races!"}, {"post_id": 16381, "ts": "2026-06-26T17:38:02Z", "hours": 8.3358, "text": "Devlog 1 Iāve written a FEN parser. FEN (Forsyth-Edwards Notation) is a way of representing a chess board in one line of ASCII characters. It was intimidating, and I procrastinated a lot before biting the bullet. However, after a couple hours of work, I can successfully generate a board from a string and cargo test is green again!"}, {"post_id": 15274, "ts": "2026-06-24T20:11:03Z", "hours": 4.1747, "text": "Devlog 0 - renaming and joining First, some background. Iāve been working on a chess engine for a couple months now - first in Python, then in Rust. The Python implementation had a few problems. It made illegal moves and was buggy in general. But it had one problem that couldnāt be solved by more loss of sleep: It was written in Python. This made it incredibly slow, and you canāt do much about the language youāre writing in. I tried for a couple days to port the code base over to Codon, a compiled implementation of Python, but I had used dynamic typing so much that it wouldnāt have been feasible. So I came to a crossroads. I could keep working on the Python project, with the limitations of either an incredibly slow environment or an unpopular one, or I could leave my comfort zone, learn something, rewrite it in Rust . Iām now about 2000 lines into the Rust version, and itās faster and more accurate than the old one could ever dream of being. Joining Stardance I joined Hack Club a couple days ago, and I didnāt know what to expect. Iāve had fun talking to other like-minded āhackersā. I was reading about Stardance, and it seemed like the thing to do. I was even told that I could bring an existing project! I renamed my engine (āSophisticateā) to Ocelot, and joined."}]...
|
Title: Ocelot by @Leftie | Stardance
Devlogs:
Dev Title: Ocelot by @Leftie | Stardance
Devlogs:
Devlog 0 - renaming and joining First, some background. Iāve been working on a chess engine for a couple months now - first in Python, then in Rust. The Python implementation had a few problems. It made illegal moves and was buggy in general. But it had one problem that couldnāt be solved by more loss of sleep: It was written in Python. This made it incredibly slow, and you canāt do much about the language youāre writing in. I tried for a couple days to port the code base over to Codon, a compiled implementation of Python, but I had used dynamic typing so much that it wouldnāt have been feasible. So I came to a crossroads. I could keep working on the Python project, with the limitations of either an incredibly slow environment or an unpopular one, or I could leave my comfort zone, learn something, rewrite it in Rust . Iām now about 2000 lines into the Rust version, and itās faster and more accurate than the old one could ever dream of being. Joining Stardance I joined Hack Club a couple days ago, and I didnāt know what to expect. Iāve had fun talking to other like-minded āhackersā. I was reading about Stardance, and it seemed like the thing to do. I was even told that I could bring an existing project! I renamed my engine (āSophisticateā) to Ocelot, and joined.
Devlog 1 Iāve written a FEN parser. FEN (Forsyth-Edwards Notation) is a way of representing a chess board in one line of ASCII characters. It was intimidating, and I procrastinated a lot before biting the bullet. However, after a couple hours of work, I can successfully generate a board from a string and cargo test is green again!
Devlog 2 I did UCI! The engine now is UCI-compatible, so it can play with GUIs like CuteChess. When I first connected it to CuteChess, it crashed on the first move. After enabling debugging, I realized it was because I hadnāt added the moves clause to the position command. I added it and⦠It still crashed. It crashed when it was time to make a move over and over and over again. After many ultimately useless println! statements, I finally realized why: I had been applying the userās move before resetting the entire board, thus overwriting the move. After fixing this, I turned it on again and played for exactly one move before it crashed again. Why now? Once again, I hadnāt properly implemented the position command. It only accepted one move, but needed to take as many as were supplied. This was pretty easy - just a for loop. After fixing that, I was able to play an almost-complete game with it before it crashed yet again. After some more testing, it seems to crash when it doesnāt have any legal king moves. My next step is to fix this and a few other minor bugs, and then we should be off to the races!
Devlog 3 A couple bug fixes. This oneās more minor, so Iāll keep it short. There were 3 bugs: A crash (caused by calling unwrap() ) Moving an opponentās piece (caused by not changing Board::turn ) Late en passant (caused by setting the en passant turn one too high) To solve them, I did 3 fixes: Add pattern matching Change the player to move when castling Change a turn number I also played the first legal game with this engine! I used CuteChess to make it play itself, and 35 rounds later the game ended by stalemate. No illegal moves were made and no crashes happened. Iāve attached a screenshot of the end of the game. Iām going to take this as a good sign and try to target Monday (6/29/2026) for my first ship.
Devlog 4: I added a TUI After finishing most of the engine, I play tested it for a bit. As discussed in my last post, I fixed 3 big bugs. I was getting closer than ever to shipping a finished product! However, there was one problem: the engine wasnāt really usable on its own. Sure, it played decently, but it still needed the GUI to display the board. This is unfeasible for shippingāI canāt make people download someone elseās GUI just so my engine is playable. Therefore, I needed some sort of inbuilt user interface. My highest-priority design goal was to have no dependencies, so making a GUI wasnāt really an option. That left TUIs. I couldnāt use a library, so that left me 2 options: I could do the easy thing and hard-code the interface, or I could (and I know this sounds absurd) build a miniature TUI framework from the ground up just to make a simple screen. I picked the latter, because why not? I already had a decent prototype written in Python for another project, so I could just port that to Rust and life would be easy. Right? Well, kind of. I spent some time on it, but before I added yet another mandatory argument to a trait method, I stopped and asked myself if this was really worth it. It wasnāt going to be easy or practical, so why do it in the first place? And after coming to that realization, I quickly threw together a decent interface using hard-coded methods. No, itās not extensible. But why would it need to be? It works, and thatās what matters. And itās pretty nice, too!
Devlog 5: Final touches Iād already done most of the workāI just needed a few more minor things done before I could ship. These were: Make the TUI exit gracefully instead of just disappearing Add multi-threading Publish to crates.io Iām proud to say that Iāve done all of those! Making the search tree dispatch threads was much easier than I thought it would be, especially considering Iām still pretty new to Rust. The TUI was simply adding a struct field of whether to exit. Publishing was a breeze, and Iāve now published 2 different versions. All I need to do before I ship now is finish my README, which is just add a section about installing the project.
Devlog 6: A need for speed! After my first (still pending) ship, I needed something else to focus my energy on other than the fundamentals. I landed on time management: I can make the engine more efficient with its time. And Iāve kind of done that, in a way. Firstly, I made the search algorithm track its time, so if it was iterating on a node while it surpassed its allowed time, it would just return the value it already had. I played around with the time value, and it seemed to work! When I set it to 1, the engine played moves in around 1.1 seconds. When I set it to 15, it played moves in exactly 15 seconds! It doesnāt dynamically adjust depth yet, but this is a good start!
Devlog 7: Better luck this time? Iāve been doing some work on less crucial parts of the engine, but mostly trying to entertain myself while I waited for my ship to be reviewed. Today, I can proudly say that it was! However, it was send back because the player could make illegal moves in the TUI. This wasnāt too hard to fix, but there were a few things that I hadnāt known were wrong that work properly now. I didnāt realize it, but if the player tried to castle when they couldnāt, it would tell them it was illegal⦠after switching the color of the piece the king was going to replace. I did some sleuthing, and it turns out that itās because the castle wasnāt being parsed as a castle, but as a move. This move was then being performed and undone. When moves are performed, they record the type of piece they capture so that the pieces can be restored when the moves are undone. Here, though, it was recording that it was capturing a knight but replacing it with a black knight because white canāt legally capture its own pieces. Anyway, thatās fixed now, so Iāll request another review and keep you posted!
Devlog 8: the procrastination is the hard part Iām going to try not to sound like a cringey motivational speaker, so bear with me. Iāve been procrastinating for a while now on one final part of the UCI implementation: the go command. Itās really complicated and I just didnāt want to write a parser for it, so since it was created, the engine hasnāt been able to change its search time based on how much time it has left. This is a problem, because it couldnāt reliably play with non-infinite time controls. Anyway, after I waited for the willpower to write the parser I just sat down and did it , and it wasnāt actually that hard! The one issue is that it seems to be weaker than it was before the time controls. Thatās definitely not a huge problem Iāll have to fix later!
Devlog 9: The unnecessary one Stardance doesnāt want me to ship again without logging my 48 minutes, so hereās a brief summary: I removed some old code, changed the pawns_in_center heuristic to be more drastic, and made the TUI display how much time the engine took to move.
Ships:
I made a chess engine from scratch. The board representation was the hardest part. While it wasnāt too challenging, there were some simple bugs that took more time than Iād like to admit to fix. Iām proudest of the engineās speedāon my laptopās performance mode, most moves take around 3.5 seconds. The engine is written in Rust, and needs Cargo in order to download and run.
I made a chess engine without any dependencies. The hardest part were the small bugs that could have been avoided by just being more careful in the moment. Iām proudest of its UCI implementationāit can communicate with most chess GUIs via the Universal Chess Interface protocol. To test the project, you need Cargo to download and install the crate. You need to use the CLI (pictured) to test it if you donāt want to download a 3rd-party interface....
|
1792846318.4985213
|
1792932718.4985213
|
|
24732
|
CapyOS by @viivi | Stardance
|
viivi
|
2
|
11.0
|
24
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-23T18:51:40Z", "hours": 4.0, "multiplier": 5.52, "payout": 24, "blessing": "neutral", "text": "CapyOS This is just a silly project made just for fun! CapyOS is a capybara-themed web operating system. I followed WebOS 1 mission to build core features and for WebOS 2 I added 2 new apps, fixed full screen mode and made app menu scrollable. I also did some polishing for the UI and added āclear windowsā -button. This was my first time building a website with pure html, javascript and css for a long time. I had a lot of fun designing while adding all those capybaras you will find when you test it! I accidentally used over 7hr with mission 1 because I had so much fun and I love to adjust small things little bit better. Also because this project was made just for fun, I didnāt have much pressure to make this āgoodā or āseriousā. Itās still 100% (hopefully) working. Have fun while testing! More details in readme.", "repo": "https://github.com/ViLP357/WebOS-Stardance", "demo": "https://vilp357.github.io/WebOS-Stardance/"}, {"ship_num": 2, "ts": "2026-07-05T15:43:20Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Here is my project for WebOS 1: CapyOS. A capybara themed WebOs using HTML, JavaScript and CSS. Capybaras are cute chill guys. So why not to make a capybara themed WebOS? This isnāt supposed to be a very serious project. I took the right to make it kinda silly. But at the same time itās an actual web app and you could go to play around with it right now (link: https://vilp357.github.io/WebOS-Stardance/ )! Itān not very complex yet, but Iāve planned to continue to WebOS 2 mission to finish what Iāve started (nothing is stopping me, hahaa). My own features: scrollable app menu (when it has more icons itās actually scrollable). I donāt like my desktop being covered in icons, so this way icons will stay on the left side forever. fullscreen button. This one works best when there is only one window. Otherwise it might work, letās say, in a different way. Before starting this project I was already familiar with HTML and CSS, but I wasnāt that familiar with plain JavaScript. I think that I learned most about coding webpages with JavaScript and I feel confident continuing to WebOS 2.", "repo": "https://github.com/ViLP357/WebOS-Stardance", "demo": "https://vilp357.github.io/WebOS-Stardance/"}]...
|
[{"post_id": 53271, "ts": "202 [{"post_id": 53271, "ts": "2026-08-23T18:38:17Z", "hours": 1.8197, "text": "#7 devlog Probably the last devlog for this project. CapyOS is now ready for shipping. Sorry for last devlog, I just wanāt to get these hours logged. The last feature I added was a timer. Its icon is, of course, caybara-themed."}, {"post_id": 43341, "ts": "2026-08-08T15:17:31Z", "hours": 2.4578, "text": "#6 devlog, webOS 2 Some updates A new app: a gallery for viewing cute capybara photos Full screen button works now, it aligns the window perfectly every time now. (It required actually only 2 new lines in to script!) A new scrollbar in the app menu with a green theme. I added extra icons so that the scrollbar can be tested"}, {"post_id": 22903, "ts": "2026-07-05T15:23:00Z", "hours": 0.4181, "text": "#5 devlog The final site (after webos 1). Iām going to ship it now!"}, {"post_id": 22275, "ts": "2026-07-04T17:36:45Z", "hours": 3.9961, "text": "#4 devlog I think Iāve completed part 5 now. I still have to finish readme and deploy this and the ship. This will actually be my first ship!! Iāve already planned things to do in WebOS 2 (and I actually started doing them). The new app I created in part 5 is link app because I often forget important websites and the app is a place to store links for those sites."}, {"post_id": 17881, "ts": "2026-06-28T20:22:06Z", "hours": 1.4325, "text": "#3 devlog Working on my WebOS. Today I completed part 3 which means that the welcome window is closeable and openable. I hope to finish WebOS 1 soon. Looking forward to make a new app next time :)"}, {"post_id": 16462, "ts": "2026-06-26T20:07:23Z", "hours": 1.0678, "text": "#2 devlog Part 2 done. I decided that my WebOS will be CapyOS so more of capybaras coming. Iām very happy with the navbar I made and Iāll update it later. I think it already looks really cool."}, {"post_id": 14528, "ts": "2026-06-23T17:50:38Z", "hours": 0.4672, "text": "#1 devlog Today I started making my own WebOS using the tutorial. There was nothing new to me but had fun with playing the elements. I donāt have any special plans for this project but hopefully I end making something (at least little bit) useful."}]...
|
Title: CapyOS by @viivi | Stardance
Devlogs:
#1 d Title: CapyOS by @viivi | Stardance
Devlogs:
#1 devlog Today I started making my own WebOS using the tutorial. There was nothing new to me but had fun with playing the elements. I donāt have any special plans for this project but hopefully I end making something (at least little bit) useful.
#2 devlog Part 2 done. I decided that my WebOS will be CapyOS so more of capybaras coming. Iām very happy with the navbar I made and Iāll update it later. I think it already looks really cool.
#3 devlog Working on my WebOS. Today I completed part 3 which means that the welcome window is closeable and openable. I hope to finish WebOS 1 soon. Looking forward to make a new app next time :)
#4 devlog I think Iāve completed part 5 now. I still have to finish readme and deploy this and the ship. This will actually be my first ship!! Iāve already planned things to do in WebOS 2 (and I actually started doing them). The new app I created in part 5 is link app because I often forget important websites and the app is a place to store links for those sites.
#5 devlog The final site (after webos 1). Iām going to ship it now!
#6 devlog, webOS 2 Some updates A new app: a gallery for viewing cute capybara photos Full screen button works now, it aligns the window perfectly every time now. (It required actually only 2 new lines in to script!) A new scrollbar in the app menu with a green theme. I added extra icons so that the scrollbar can be tested
#7 devlog Probably the last devlog for this project. CapyOS is now ready for shipping. Sorry for last devlog, I just wanāt to get these hours logged. The last feature I added was a timer. Its icon is, of course, caybara-themed.
Ships:
Here is my project for WebOS 1: CapyOS. A capybara themed WebOs using HTML, JavaScript and CSS. Capybaras are cute chill guys. So why not to make a capybara themed WebOS? This isnāt supposed to be a very serious project. I took the right to make it kinda silly. But at the same time itās an actual web app and you could go to play around with it right now (link: https://vilp357.github.io/WebOS-Stardance/ )! Itān not very complex yet, but Iāve planned to continue to WebOS 2 mission to finish what Iāve started (nothing is stopping me, hahaa). My own features: scrollable app menu (when it has more icons itās actually scrollable). I donāt like my desktop being covered in icons, so this way icons will stay on the left side forever. fullscreen button. This one works best when there is only one window. Otherwise it might work, letās say, in a different way. Before starting this project I was already familiar with HTML and CSS, but I wasnāt that familiar with plain JavaScript. I think that I learned most about coding webpages with JavaScript and I feel confident continuing to WebOS 2.
CapyOS This is just a silly project made just for fun! CapyOS is a capybara-themed web operating system. I followed WebOS 1 mission to build core features and for WebOS 2 I added 2 new apps, fixed full screen mode and made app menu scrollable. I also did some polishing for the UI and added āclear windowsā -button. This was my first time building a website with pure html, javascript and css for a long time. I had a lot of fun designing while adding all those capybaras you will find when you test it! I accidentally used over 7hr with mission 1 because I had so much fun and I love to adjust small things little bit better. Also because this project was made just for fun, I didnāt have much pressure to make this āgoodā or āseriousā. Itās still 100% (hopefully) working. Have fun while testing! More details in readme....
|
1792842961.9758317
|
1792929361.9758317
|
|
24796
|
Soulful by @Alafandri | Stardance
|
Alafandri
|
2
|
49.0
|
409
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-30T00:23:16Z", "hours": 3.0, "multiplier": 12.86, "payout": 43, "blessing": "neutral", "text": "I made an update to my game called āSoulfulā. Itās a game about a soul sent to earth to defeat a corrupted soul who is trying to take over the world. This update mainly features bug fixes and big improvements to the game. The most challenging part was to get the systems to feel right. I am most proud of the outcome of everything and very happy about doing these fixes. People who plan on playing it should know that in the end there is also a cutscene when you finish the game. Also note that the game bosses are quite wonky and being able to save inside the arena and also heal is a feature ;). Anyways have fun!", "repo": "https://github.com/Alafandri/Soulful", "demo": "https://alafandri.itch.io/soulful"}, {"ship_num": 2, "ts": "2026-08-07T17:40:13Z", "hours": 46.0, "multiplier": 15.91, "payout": 366, "blessing": "neutral", "text": "I made a pixel art style platformer game that includes enemies, bosses, abilities, platformer challenges a story and much more. This project might be by far my biggest game project I have ever made! And I am really proud of the results. The most challenging thing with making this game was programming. I ran into a bunch of problems, had really weird bugs but I somehow managed to outcome them. I am really proud of the art for this game. That is because I havenāt really ever made pixel art before until this project. This project really forced me to step out of my comfort zone. People who are planning on playing this should know that donāt expect anything insane. This game doesnāt take very long to complete. I would say around 5-10 min, depending on the person. Anyways, enjoy!", "repo": "https://github.com/Alafandri/Soulful", "demo": "https://alafandri.itch.io/soulful"}]...
|
[{"post_id": 57733, "ts": "202 [{"post_id": 57733, "ts": "2026-08-30T00:10:36Z", "hours": 3.3725, "text": "Devlog #8: overhaul Hello guys! So I have come back to the game after some time cause I wanted to do some improvements that I just had to get out of my head. Everything new: š„ More settings options Improved lighting Platforming improvements Sound fixes Bug fixes Buttons and menu overhaul And a few small other things like tweaking particle amounts and a few settings So after reading everyones feedback to the game I realized that some parts of the game really needed to be improved. So I got to work and thats what I did. Also tysm to everyones feedback on the game and those amazing wordsā¤ļø. Anyways that is it for now! Will probably return to this project in the future or will work on the game but without the devlog thing anymore. Anyways enjoy!š„°"}, {"post_id": 42771, "ts": "2026-08-07T17:29:49Z", "hours": 1.8014, "text": "Game is ready for release!"}, {"post_id": 42605, "ts": "2026-08-07T12:52:46Z", "hours": 8.5772, "text": "Devlog #8: Sound šµ Hi guys! So the game is basically done but it is missing alot of sfx and there is no music yet in the game. But other than that I have gotten everything else done! Everything new: š„ Ending Credits Tutorial Menu Settings Some sfx and ambience All I am doing currently with the game pretty much is just finishing off areas, adding final touches and adding in sfx. The music will be probably the hardest part but we will see. I am so proud of the game and I cannot wait to make it public for everyone. The game is about to come out any day now. Maybe even today if I lock in. We will see. Byeeeeeā¤ļø"}, {"post_id": 41600, "ts": "2026-08-05T21:58:58Z", "hours": 4.7264, "text": "Devlog #7: The game š Yo wsp everyone!!! The game is so so close to being done. I decided to make a final long form devlog on this project. I will probably do another small one later when I am really close to release. Everything new: 2 bosses new enemy a bunch of areas And bunch other stuff you will find out about when you play the game Okay. so I have added actually a lot of stuff since last devlog. All of the areas are basically finished, they just need a little touch of love. I currently am working on the final boss of the game which I am proud of. This game isnāt anything big. You will probs finish it in a few minutes. Itās nothing special, but I am proud of it since so much work went into this and the results so far are more than I ever thought I was capable of. Until starting this project I hadnāt basically really ever done pixel art. I have tried before and watched tutorials for it but it always seemed too hard for me. While making this game I have improved so much in making pixel art and I will definitely in the future continue making pixel art cause it is alot of fun. This project has definitely been a challenge but but it has also been alot of fun. I like writing this devlogs and sharing updates with everyone, even though my post barely get any attention. Anyways, I should get back to work. Basically the game is almost done and I donāt have much left to do. Byeee!!!!"}, {"post_id": 40389, "ts": "2026-08-03T21:10:15Z", "hours": 1.4594, "text": "Another update: All of the areas are finished! All that is needed to be worked on is the final boss, adding detail, end cutscene. When this game comes out you will have option to either download it or just to play it on your browser. Also heres a little sneak peek of a tileset for a area in the game"}, {"post_id": 40054, "ts": "2026-08-03T12:35:58Z", "hours": 4.0144, "text": "Little update: So much work is being done! I just finished one of the areas for the game. I got 3 more to go and final boss to be implemented to the game. The boss is fully drawn but itās not in the game yet. The game will be out very very soon!"}, {"post_id": 38830, "ts": "2026-08-01T12:08:20Z", "hours": 8.0881, "text": "Devlog #6: World building š Hey everyone! This devlog will be short and without a current progress video like usually. That is because I have started to build the games world. I have finished the starting area and got a rough layout for the next one. I have written out the game lore and how the game should progress so I know what keep in mind while building the map. Most of the current time is spent drawing cause so much art is needed for the game but the progress is overall really good! Also check out this cool tree I made. It wont have any purpose in the game but It does help with the world feel. See you soon!"}, {"post_id": 36380, "ts": "2026-07-28T13:38:19Z", "hours": 5.6547, "text": "Devlog #5: Npc, new art, health and bug fixes š Hey guys! I havenāt posted in a while and I wasnāt able to work much on the game in the time but now Iām back and working on the game again! š„³ Even though I havenāt worked on the game much then I still have got quite a few new things to show you guys for this devlog. Everything new: š„ Npc New enemy sprites, death particles and few fixes Ball Player improvements(bug fixes. few tweaks and hit invincibility indicator!) New decorational flower sprites Health bar And some other things that Iām not going to bore you with⦠So thatās quite a lot of stuff I would say, It might not seem like it to you but It does for me. Seeing the game coming slowly together really motivates me to work on it even more. SO so much needs to be still done until it can be finally shipped and you to be able to play it, but eventually we will get there! Next Iām planning on working on the abilities, then I will try to make 2 bosses for the game. Wait lemme just make a roadmap for the game real quick⦠ROADMAP: šŗļø other 2 Abilities Breakable walls Attacking enemies 2 Bosses Save/load system Ending/s? map 2 Areas Parkour sections Boss rooms Some other stuff I canāt think of rn Currently my plan is to make the basic things for the game before I can start building it out. I want save the map for the last cause I want it to feel nice and logical to explore. But thats all for this devlog! See you next time!!!!š"}, {"post_id": 19188, "ts": "2026-06-30T13:35:01Z", "hours": 3.0072, "text": "Devlog #4: Player, enemies and visuals ⨠Hello everyone once again! I am back with a nother devlog. This time I will be talking about the new visuals for the game and player and enemy interactions. Everything new: š„ Parallax background Enemy ai Enemy damage player Player health Added player attack function Visual improvements I have been having so much fun making this game. I love going back to look at the old footage I have filmed of the game and see how much has changed. With every devlog Iām getting closer to shipping the game. Even though a lot needs still to be done to get to that point Iām still very happy with what I have made so far. Iāve had a lot of problems before getting the parallax background to work properly but somehow I got it to work! One of the things I have been wanting to add was a enemy which finally is here now. Currently I only got one enemy who doesnāt do much but still itās at least something for now and I will be definitely adding more in the future. A lot of things still need to be added like player health ui and sprites need to be made for the enemy and hopefully I will have those things for the next devlog! In the next devlog you can hopefully expect: š Expand world Dialogue system New art Player death respawn fix probs more stuff idk Oki, thatās it for this devlog! See you soon!!!! š¤"}, {"post_id": 17896, "ts": "2026-06-28T20:42:11Z", "hours": 5.2508, "text": "Devlog #3: Character and the world š„ Hey everyone! I havenāt posted for a few days but thatās because I have been doing a lot of work on the game. So far everything is coming along very nicely. Everything new: Grass wind shader Character attack Checkpoints Particles Menu screen Tweaked character settings Changed some sprites Visual changes(particles and etc) So as you can see I have added quite a few things but there is still a lot for me left to do until itās an actual game where you have something to do. Probably the biggest things that I have added are the player attack, checkpoints and menu. Other are just visual changes and some tiny value and number changes here and there. I also changed the grass sprite cause I wanted to add a wind shader on the grass but I ran into a problem that when the grass has an outline then it disappears sometimes to who knows where or there are suddenly more black pixels than there should be. So I decided that I will just remake the texture and replace the old ones. I have also added wind particles which I had already made earlier but it didnāt look very good before so I had to tweak the settings around here and there until it looked right. I think that it still could be a little better but for now it will do just fine. I also have already written some lore for the game and what that game is going to be about which I will start working once I have all of the main systems that I would need to start building the game. I will hopefully be working next on: Enemies Parallax background Expand world Dialogue system Character death animations some sfx respawn Abilities? Keep in mind that I wonāt probably have added all of those things by the next devlog but definitely some. Anyways, thank you so much for reading my devlog! I hope to see you in the next one!!!š„°"}, {"post_id": 15270, "ts": "2026-06-24T20:02:18Z", "hours": 2.6256, "text": "Devlog #2: Art and particles ⨠Hey everyone! In this devlog I have made mostly **visual **changes.š All changes: Added particles Also made wind particles but that needs to be worked on and isnāt shown in the video Player sprites and animations Grass sprites Player movement improvements Tilemap ground sprites Grass sprites to make stuff more lively Modified background color I have done actually quite a lot since the last devlog and piece by piece eventually I will have a full functioning game. But to get there there is so much still to do. Anyways the biggest thing I worked on in this devlog is obviously the visual side of things. I wanted to game to look a bit more pleasing on the eye when developing the game. The character design might not be final but I am very proud of myself for this result since I donāt usually do pixel art at all and I thought it might be a nice challange and an opportunity to learn something new while making this game. So far Iām loving making art for this game cause itās so fun but also hard for me since one wrongly placed pixel can ruin the effect so easily and look wrong overall. Iāve still got to do some work on the grass since it might look a bit tall next to the player cause Iām going for a pixel perfect game and using 16x16 for both the player and grass sprites. Iām also working on a wind shader to give the grass some movement. But yeah thatās all, and Iāve got a lot to do so.. see you in the next devlog. Byeee š„° !!!"}, {"post_id": 14662, "ts": "2026-06-23T21:02:37Z", "hours": 0.8072, "text": "DEVLOG #1: Setup Yayyyy a new godot project!!ššš There is nothing more exciting than starting a new game development project and opening up the fresh new project window. What I have done so far: Made the godot project and setup github page Added keybinds to godots input map Made a character controller Changed window settings Made a basic platform Configured games gravitational settings Iām trying to make a pixel perfect system something like in Celeste so that the game would look extra cleanš . It doesnāt look that great rn but Iām going to start making art soon when I have the basic stuff setup. Thatās all for this devlog but see you very very soon in the next one!!! byeeeeeš„° !!!!!!!!"}]...
|
Title: Soulful by @Alafandri | Stardance
Devlogs: Title: Soulful by @Alafandri | Stardance
Devlogs:
DEVLOG #1: Setup Yayyyy a new godot project!!ššš There is nothing more exciting than starting a new game development project and opening up the fresh new project window. What I have done so far: Made the godot project and setup github page Added keybinds to godots input map Made a character controller Changed window settings Made a basic platform Configured games gravitational settings Iām trying to make a pixel perfect system something like in Celeste so that the game would look extra cleanš . It doesnāt look that great rn but Iām going to start making art soon when I have the basic stuff setup. Thatās all for this devlog but see you very very soon in the next one!!! byeeeeeš„° !!!!!!!!
Devlog #2: Art and particles ⨠Hey everyone! In this devlog I have made mostly **visual **changes.š All changes: Added particles Also made wind particles but that needs to be worked on and isnāt shown in the video Player sprites and animations Grass sprites Player movement improvements Tilemap ground sprites Grass sprites to make stuff more lively Modified background color I have done actually quite a lot since the last devlog and piece by piece eventually I will have a full functioning game. But to get there there is so much still to do. Anyways the biggest thing I worked on in this devlog is obviously the visual side of things. I wanted to game to look a bit more pleasing on the eye when developing the game. The character design might not be final but I am very proud of myself for this result since I donāt usually do pixel art at all and I thought it might be a nice challange and an opportunity to learn something new while making this game. So far Iām loving making art for this game cause itās so fun but also hard for me since one wrongly placed pixel can ruin the effect so easily and look wrong overall. Iāve still got to do some work on the grass since it might look a bit tall next to the player cause Iām going for a pixel perfect game and using 16x16 for both the player and grass sprites. Iām also working on a wind shader to give the grass some movement. But yeah thatās all, and Iāve got a lot to do so.. see you in the next devlog. Byeee š„° !!!
Devlog #3: Character and the world š„ Hey everyone! I havenāt posted for a few days but thatās because I have been doing a lot of work on the game. So far everything is coming along very nicely. Everything new: Grass wind shader Character attack Checkpoints Particles Menu screen Tweaked character settings Changed some sprites Visual changes(particles and etc) So as you can see I have added quite a few things but there is still a lot for me left to do until itās an actual game where you have something to do. Probably the biggest things that I have added are the player attack, checkpoints and menu. Other are just visual changes and some tiny value and number changes here and there. I also changed the grass sprite cause I wanted to add a wind shader on the grass but I ran into a problem that when the grass has an outline then it disappears sometimes to who knows where or there are suddenly more black pixels than there should be. So I decided that I will just remake the texture and replace the old ones. I have also added wind particles which I had already made earlier but it didnāt look very good before so I had to tweak the settings around here and there until it looked right. I think that it still could be a little better but for now it will do just fine. I also have already written some lore for the game and what that game is going to be about which I will start working once I have all of the main systems that I would need to start building the game. I will hopefully be working next on: Enemies Parallax background Expand world Dialogue system Character death animations some sfx respawn Abilities? Keep in mind that I wonāt probably have added all of those things by the next devlog but definitely some. Anyways, thank you so much for reading my devlog! I hope to see you in the next one!!!š„°
Devlog #4: Player, enemies and visuals ⨠Hello everyone once again! I am back with a nother devlog. This time I will be talking about the new visuals for the game and player and enemy interactions. Everything new: š„ Parallax background Enemy ai Enemy damage player Player health Added player attack function Visual improvements I have been having so much fun making this game. I love going back to look at the old footage I have filmed of the game and see how much has changed. With every devlog Iām getting closer to shipping the game. Even though a lot needs still to be done to get to that point Iām still very happy with what I have made so far. Iāve had a lot of problems before getting the parallax background to work properly but somehow I got it to work! One of the things I have been wanting to add was a enemy which finally is here now. Currently I only got one enemy who doesnāt do much but still itās at least something for now and I will be definitely adding more in the future. A lot of things still need to be added like player health ui and sprites need to be made for the enemy and hopefully I will have those things for the next devlog! In the next devlog you can hopefully expect: š Expand world Dialogue system New art Player death respawn fix probs more stuff idk Oki, thatās it for this devlog! See you soon!!!! š¤
Devlog #5: Npc, new art, health and bug fixes š Hey guys! I havenāt posted in a while and I wasnāt able to work much on the game in the time but now Iām back and working on the game again! š„³ Even though I havenāt worked on the game much then I still have got quite a few new things to show you guys for this devlog. Everything new: š„ Npc New enemy sprites, death particles and few fixes Ball Player improvements(bug fixes. few tweaks and hit invincibility indicator!) New decorational flower sprites Health bar And some other things that Iām not going to bore you with⦠So thatās quite a lot of stuff I would say, It might not seem like it to you but It does for me. Seeing the game coming slowly together really motivates me to work on it even more. SO so much needs to be still done until it can be finally shipped and you to be able to play it, but eventually we will get there! Next Iām planning on working on the abilities, then I will try to make 2 bosses for the game. Wait lemme just make a roadmap for the game real quick⦠ROADMAP: šŗļø other 2 Abilities Breakable walls Attacking enemies 2 Bosses Save/load system Ending/s? map 2 Areas Parkour sections Boss rooms Some other stuff I canāt think of rn Currently my plan is to make the basic things for the game before I can start building it out. I want save the map for the last cause I want it to feel nice and logical to explore. But thats all for this devlog! See you next time!!!!š
Devlog #6: World building š Hey everyone! This devlog will be short and without a current progress video like usually. That is because I have started to build the games world. I have finished the starting area and got a rough layout for the next one. I have written out the game lore and how the game should progress so I know what keep in mind while building the map. Most of the current time is spent drawing cause so much art is needed for the game but the progress is overall really good! Also check out this cool tree I made. It wont have any purpose in the game but It does help with the world feel. See you soon!
Little update: So much work is being done! I just finished one of the areas for the game. I got 3 more to go and final boss to be implemented to the game. The boss is fully drawn but itās not in the game yet. The game will be out very very soon!
Another update: All of the areas are finished! All that is needed to be worked on is the final boss, adding detail, end cutscene. When this game comes out you will have option to either download it or just to play it on your browser. Also heres a little sneak peek of a tileset for a area in the game
Devlog #7: The game š Yo wsp everyone!!! The game is so so close to being done. I decided to make a final long form devlog on this project. I will probably do another small one later when I am really close to release. Everything new: 2 bosses new enemy a bunch of areas And bunch other stuff you will find out about when you play the game Okay. so I have added actually a lot of stuff since last devlog. All of the areas are basically finished, they just need a little touch of love. I currently am working on the final boss of the game which I am proud of. This game isnāt anything big. You will probs finish it in a few minutes. Itās nothing special, but I am proud of it since so much work went into this and the results so far are more than I ever thought I was capable of. Until starting this project I hadnāt basically really ever done pixel art. I have tried before and watched tutorials for it but it always seemed too hard for me. While making this game I have improved so much in making pixel art and I will definitely in the future continue making pixel art cause it is alot of fun. This project has definitely been a challenge but but it has also been alot of fun. I like writing this devlogs and sharing updates with everyone, even though my post barely get any attention. Anyways, I should get back to work. Basically the game is almost done and I donāt have much left to do. Byeee!!!!
Devlog #8: Sound šµ Hi guys! So the game is basically done but it is missing alot of sfx and there is no music yet in the game. But other than that I have gotten everything else done! Everything new: š„ Ending Credits Tutorial Menu Settings Some sfx and ambience All I am doing currently with the game pretty much is just finishing off areas, adding final touches and adding in sfx. The music will be probably the hardest part but we will see. I am so proud of the game and I cannot wait to make it public for everyone. The game is about to come out any day now. Maybe even today if I lock in. We will see. Byeeeeeā¤ļø
Game is ready for release!
Devlog #8: overhaul Hello guys! So I have come back to the game after some time cause I wanted to do some improvements that I just had to get out of my head. Everything new: š„ More settings options Improved lighting Platforming improvements Sound fixes Bug fixes Buttons and menu overhaul And a few small other things like tweaking particle amounts and a few settings So after reading everyones feedback to the game I realized that some parts of the game really needed to be improved. So I got to work and thats what I did. Also tysm to everyones feedback on the game and those amazing wordsā¤ļø. Anyways that is it for now! Will probably return to this project in the future or will work on the game but without the devlog thing anymore. Anyways enjoy!š„°
Ships:
I made a pixel art style platformer game that includes enemies, bosses, abilities, platformer challenges a story and much more. This project might be by far my biggest game project I have ever made! And I am really proud of the results. The most challenging thing with making this game was programming. I ran into a bunch of problems, had really weird bugs but I somehow managed to outcome them. I am really proud of the art for this game. That is because I havenāt really ever made pixel art before until this project. This project really forced me to step out of my comfort zone. People who are planning on playing this should know that donāt expect anything insane. This game doesnāt take very long to complete. I would say around 5-10 min, depending on the person. Anyways, enjoy!
I made an update to my game called āSoulfulā. Itās a game about a soul sent to earth to defeat a corrupted soul who is trying to take over the world. This update mainly features bug fixes and big improvements to the game. The most challenging part was to get the systems to feel right. I am most proud of the outcome of everything and very happy about doing these fixes. People who plan on playing it should know that in the end there is also a cutscene when you finish the game. Also note that the game bosses are quite wonky and being able to save inside the arena and also heal is a feature ;). Anyways have fun!...
|
1792828190.4525957
|
1792914590.4525957
|
|
24990
|
Fortress Fighter by @codingfreak234 | Stardance
|
codingfreak234
|
2
|
12.0
|
30
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T01:39:15Z", "hours": 0.0, "multiplier": 3.46, "payout": 2, "blessing": "neutral", "text": "I made some mistakes. Mainly, I wrote a terrible readme(oops), and completely forgot to tell anyone how to play the game. Also, I had it named as a RPG, which it is not. And now, after fixing these, Iām ready to re-release. To avoid a repeat: Use WASD to move Use L to launch a long range blast in the direction of travel Use K to launch a short range blast in the direction of travel I really hope I didnāt miss anything that needed to be fixed. Have Fun!", "repo": "https://github.com/CodingFreak234/Fortress-Fighter-Sprig-game", "demo": "https://sprig.hackclub.com/share/IgY4OhjZCEx4bOdCrc6c"}, {"ship_num": 2, "ts": "2026-09-08T02:26:07Z", "hours": 12.0, "multiplier": 2.33, "payout": 28, "blessing": "neutral", "text": "I made a basic RPG in sprig! It was really hard, especially since, this was my first real JavaScript project. I think the game turned out great, and I hope you enjoy it.", "repo": "https://github.com/CodingFreak234/Fortress-Fighter-Sprig-game", "demo": "https://sprig.hackclub.com/share/IgY4OhjZCEx4bOdCrc6c"}]...
|
[{"post_id": 72821, "ts": "202 [{"post_id": 72821, "ts": "2026-09-23T20:09:39Z", "hours": 0.4758, "text": "Mistakes were made⦠specifically the one were I forgot to tell anyone how to play my game. So here it is, and I will also include it in the second ship as well. Oh, and I added it to the read me as well. Plus, I changed the name, because it really isnāt an rpg. I updated the placement of the health and score displays as well because I needed time to make a devlog so I can ship again. controls are wasd to move/rotate. Use L to attack the bugs with long range blasts, and K to hit them with short range ones."}, {"post_id": 63981, "ts": "2026-09-08T02:23:44Z", "hours": 1.2344, "text": "IāM DONE!!! I finished the modifications, made a repository for the project, and Iām going to ship it. (This took me way too longā¦)"}, {"post_id": 56183, "ts": "2026-08-27T20:24:33Z", "hours": 1.89, "text": "Over the past week or so, I reworked the controls. I did this so I could add some sort of long range weapon. the long range weapon would be able to hit more enemies with longer range, but would also do less damage. It was a lot of trial and error, and Iām still not done. I need to add the script where the enemies get damaged, but only part way. I also need to make it so that the long range blasts get removed from the screen after a second."}, {"post_id": 38577, "ts": "2026-08-01T01:51:24Z", "hours": 1.0628, "text": "Today I fixed a bug where the enemies in my game werenāt spawning at the very top of the playing field, they were spawning a little below it. After that I fixed a potential bug about being able to move the character out of bounds, and a very real bug about the program trying to spawn an attack sprite out of bounds. In fixing that, I also restrained the player a little more, making it harder to farm the enemies. Finally, I tried to add a theme song, but either something with the software didnāt work, or I have just failed to see the exit button for three or four days strait. The problem is likely that second option."}, {"post_id": 26324, "ts": "2026-07-11T01:50:56Z", "hours": 2.5386, "text": "I worked a lot on my Sprig RPG today, and got a lot of work done. I also got the project done. For those of you who are familiar with sprig, the game will be released there soon (hopefully tommorrow). However, lets go through what I did today. First off, I updated the player character from a large blue block to a blue circle with an orange outline. second, I added a castle for the player to defend. I also made it fairly difficult for players to puppy gaurd one segment of the castle. Finnally, I made it so that the game gets progressively harder. Thatās what I did today. Enjoy!"}, {"post_id": 25588, "ts": "2026-07-09T22:45:30Z", "hours": 0.5617, "text": "Today I did a lot of debugging and solved all known problems with the game. I (finally) fixed the health counter and made the blasts disappear shortly after they are fired. finally, I regulated the numbers of enemies to make them more manageable. Next time Iām going to do the final graphic design and then add some sort of castle for the player to defend. Enjoy!"}, {"post_id": 24469, "ts": "2026-07-08T01:24:56Z", "hours": 1.4217, "text": "I worked on debugging for both yesterday and today. I had one particular problem where the player could attack the enemies in the game, but the attack would do nothing to the enemy. I fixed that, and now I only have a few more bugs to fix. Right now, I still have to fix the health counter, and then I have to figure out how to make the blasts disappear about a half-second after the player brings them into existence. Enjoy!"}, {"post_id": 18862, "ts": "2026-06-30T01:59:26Z", "hours": 0.8964, "text": "I worked on fighting mechanics today for my sprig RPG. I have it so that you can blast the enemy sprites with the IJKL buttons, and then move around with the WASD buttons. There was a lot of tweaking in the code today, but it works. I havenāt fixed the health counter yet, but I think I know whatās wrong, and I plan to fix it soon. Enjoy!"}, {"post_id": 16059, "ts": "2026-06-26T02:54:05Z", "hours": 1.4053, "text": "I continued to work on the Sprig RPG today. Initially, I had planned for there to be some kind of wall building mechanic in the game, but I realized that might be a little over my head, so I put that on the shelf for now. I created an initial game loop today, and itās working okay. The one problem Iāve run into is the health counter. In the game, you start at 10 health I tried to make it so that after every hit you go down by one, but after the first hit you go up to 90, and then it counts down by ten after that. Iām going to try and figure that out next week. Enjoy!"}, {"post_id": 14812, "ts": "2026-06-24T01:40:09Z", "hours": 0.9139, "text": "I started on a basic RPG in sprig. To start off I did preliminary graphic design, and then I coded the wasd controls."}]...
|
Title: Fortress Fighter by @codingfreak234 | Stard Title: Fortress Fighter by @codingfreak234 | Stardance
Devlogs:
I started on a basic RPG in sprig. To start off I did preliminary graphic design, and then I coded the wasd controls.
I continued to work on the Sprig RPG today. Initially, I had planned for there to be some kind of wall building mechanic in the game, but I realized that might be a little over my head, so I put that on the shelf for now. I created an initial game loop today, and itās working okay. The one problem Iāve run into is the health counter. In the game, you start at 10 health I tried to make it so that after every hit you go down by one, but after the first hit you go up to 90, and then it counts down by ten after that. Iām going to try and figure that out next week. Enjoy!
I worked on fighting mechanics today for my sprig RPG. I have it so that you can blast the enemy sprites with the IJKL buttons, and then move around with the WASD buttons. There was a lot of tweaking in the code today, but it works. I havenāt fixed the health counter yet, but I think I know whatās wrong, and I plan to fix it soon. Enjoy!
I worked on debugging for both yesterday and today. I had one particular problem where the player could attack the enemies in the game, but the attack would do nothing to the enemy. I fixed that, and now I only have a few more bugs to fix. Right now, I still have to fix the health counter, and then I have to figure out how to make the blasts disappear about a half-second after the player brings them into existence. Enjoy!
Today I did a lot of debugging and solved all known problems with the game. I (finally) fixed the health counter and made the blasts disappear shortly after they are fired. finally, I regulated the numbers of enemies to make them more manageable. Next time Iām going to do the final graphic design and then add some sort of castle for the player to defend. Enjoy!
I worked a lot on my Sprig RPG today, and got a lot of work done. I also got the project done. For those of you who are familiar with sprig, the game will be released there soon (hopefully tommorrow). However, lets go through what I did today. First off, I updated the player character from a large blue block to a blue circle with an orange outline. second, I added a castle for the player to defend. I also made it fairly difficult for players to puppy gaurd one segment of the castle. Finnally, I made it so that the game gets progressively harder. Thatās what I did today. Enjoy!
Today I fixed a bug where the enemies in my game werenāt spawning at the very top of the playing field, they were spawning a little below it. After that I fixed a potential bug about being able to move the character out of bounds, and a very real bug about the program trying to spawn an attack sprite out of bounds. In fixing that, I also restrained the player a little more, making it harder to farm the enemies. Finally, I tried to add a theme song, but either something with the software didnāt work, or I have just failed to see the exit button for three or four days strait. The problem is likely that second option.
Over the past week or so, I reworked the controls. I did this so I could add some sort of long range weapon. the long range weapon would be able to hit more enemies with longer range, but would also do less damage. It was a lot of trial and error, and Iām still not done. I need to add the script where the enemies get damaged, but only part way. I also need to make it so that the long range blasts get removed from the screen after a second.
IāM DONE!!! I finished the modifications, made a repository for the project, and Iām going to ship it. (This took me way too longā¦)
Mistakes were made⦠specifically the one were I forgot to tell anyone how to play my game. So here it is, and I will also include it in the second ship as well. Oh, and I added it to the read me as well. Plus, I changed the name, because it really isnāt an rpg. I updated the placement of the health and score displays as well because I needed time to make a devlog so I can ship again. controls are wasd to move/rotate. Use L to attack the bugs with long range blasts, and K to hit them with short range ones.
Ships:
I made a basic RPG in sprig! It was really hard, especially since, this was my first real JavaScript project. I think the game turned out great, and I hope you enjoy it.
I made some mistakes. Mainly, I wrote a terrible readme(oops), and completely forgot to tell anyone how to play the game. Also, I had it named as a RPG, which it is not. And now, after fixing these, Iām ready to re-release. To avoid a repeat: Use WASD to move Use L to launch a long range blast in the direction of travel Use K to launch a short range blast in the direction of travel I really hope I didnāt miss anything that needed to be fixed. Have Fun!...
|
1792853244.30974
|
1792939644.30974
|
|
25209
|
Partner Compatibility Evaluator by @naman0410 | St Partner Compatibility Evaluator by @naman0410 | Stardance...
|
naman0410
|
2
|
7.0
|
23
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-05T01:36:42Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This project is a fun Love Compatibility Calculator that estimates how compatible two people are by combining different factors instead of relying on a single random score. It considers multiple aspects to generate a result that feels more engaging and personalized. While building it, one of the biggest challenges was deciding how to balance different calculations so that the results remained interesting without feeling completely unrealistic. I also spent time improving the user interface, making it simpler to use, and updating the songs and preferences based on user feedback to create a better overall experience. Another challenge was ensuring that all the calculations worked together smoothly and produced consistent results. The goal is for people to use this project as a light-hearted and entertaining experience rather than a serious prediction of relationships. I hope users enjoy comparing results with friends, exploring different matches, and having fun while interacting with the application.", "repo": "https://github.com/modinaman099/Love-compatibility-Calculator-", "demo": "https://agent-6a3d0091dfe7cb239d1e0--dapper-genie-1ea83f.netlify.app/"}, {"ship_num": 2, "ts": "2026-06-25T16:46:04Z", "hours": 5.0, "multiplier": 4.73, "payout": 23, "blessing": "neutral", "text": "First of all, this project is not only for you and your girlfriend, but also you and your bros . If you donāt have a girlfriend, you feel me. Now letās talk about work, I have made this calculator based on the theory that people with same taste, personality and interest tend to have good time together. Through this project, you can analyze with whom do you suit the best, because this includes songs, real-life experiences and food. Aspects like date of birth and difference between the ages of the people also matters in this calculator because this defines the gap of generations that can create problems in the relationship. I hope you like my work and use it with your bros (or girlfriend, if you have one š)", "repo": "https://github.com/modinaman099/Love-compatibility-Calculator-", "demo": "https://agent-6a3d0091dfe7cb239d1e0--dapper-genie-1ea83f.netlify.app/"}]...
|
[{"post_id": 41086, "ts": "202 [{"post_id": 41086, "ts": "2026-08-05T01:33:52Z", "hours": 2.0, "text": "This time, I focused on improving the overall user experience based on the feedback I received. I updated the UI to make it cleaner, more intuitive, and visually appealing. I also changed the song preferences to include tracks that are more popular and recognizable to people around the world, making the project feel more inclusive. These changes were made to ensure the application is easier to use and better suited for a global audience."}, {"post_id": 15734, "ts": "2026-06-25T16:31:02Z", "hours": 3.0, "text": "I just have to make some changes in the UI of the website . Also i have to clean up my code from unwanted comments"}, {"post_id": 15567, "ts": "2026-06-25T09:47:30Z", "hours": 1.0, "text": "Most the things to be asked from the both are inputed . The UI design and debugging is left"}, {"post_id": 15235, "ts": "2026-06-24T18:56:03Z", "hours": 0.0, "text": "I have decided the factors that will be taken for the relationship compatibility predictor"}]...
|
Title: Partner Compatibility Evaluator by @naman04 Title: Partner Compatibility Evaluator by @naman0410 | Stardance
Devlogs:
I have decided the factors that will be taken for the relationship compatibility predictor
Most the things to be asked from the both are inputed . The UI design and debugging is left
I just have to make some changes in the UI of the website . Also i have to clean up my code from unwanted comments
This time, I focused on improving the overall user experience based on the feedback I received. I updated the UI to make it cleaner, more intuitive, and visually appealing. I also changed the song preferences to include tracks that are more popular and recognizable to people around the world, making the project feel more inclusive. These changes were made to ensure the application is easier to use and better suited for a global audience.
Ships:
First of all, this project is not only for you and your girlfriend, but also you and your bros . If you donāt have a girlfriend, you feel me. Now letās talk about work, I have made this calculator based on the theory that people with same taste, personality and interest tend to have good time together. Through this project, you can analyze with whom do you suit the best, because this includes songs, real-life experiences and food. Aspects like date of birth and difference between the ages of the people also matters in this calculator because this defines the gap of generations that can create problems in the relationship. I hope you like my work and use it with your bros (or girlfriend, if you have one š)
This project is a fun Love Compatibility Calculator that estimates how compatible two people are by combining different factors instead of relying on a single random score. It considers multiple aspects to generate a result that feels more engaging and personalized. While building it, one of the biggest challenges was deciding how to balance different calculations so that the results remained interesting without feeling completely unrealistic. I also spent time improving the user interface, making it simpler to use, and updating the songs and preferences based on user feedback to create a better overall experience. Another challenge was ensuring that all the calculations worked together smoothly and produced consistent results. The goal is for people to use this project as a light-hearted and entertaining experience rather than a serious prediction of relationships. I hope users enjoy comparing results with friends, exploring different matches, and having fun while interacting with the application....
|
1792878799.499168
|
1793742799.499168
|
|
25275
|
tuxiclick by @Tuxilio | Stardance
|
Tuxilio
|
2
|
8.0
|
26
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-07T07:45:00Z", "hours": 2.0, "multiplier": 8.04, "payout": 12, "blessing": "neutral", "text": "I made a penguin-themed cookie clicker! It is really basic for now, but I think it is quite nice :) I am really proud of the penguin animation which I have done by myself. You can buy āgit commitā to save your state using cookies ;) I think the shopitems are now more equally distributed. Thanks for the feedback! If you have bought the console, you can set the var count to anything you want, for example count = 10000 . Itās just a javascript console. Donāt forget to sync the UI by clicking the penguin or running the function sync() :)", "repo": "https://codeberg.org/Tuxilio/tuxiclick", "demo": "https://tuxilio.codeberg.page/tuxiclick"}, {"ship_num": 2, "ts": "2026-06-28T21:22:09Z", "hours": 6.0, "multiplier": 4.57, "payout": 14, "blessing": "neutral", "text": "I made a penguin-themed cookie clicker! It is really basic for now, but I think it is quite nice :) I am really proud of the penguin animation which I have done by myself. If you have bought the console, you can set the var count to anything you want, for example count = 1000 . Itās just a javascript console. Donāt forget to sync the UI by clicking the penguin or running the function sync() :)", "repo": "https://codeberg.org/Tuxilio/tuxiclick", "demo": "https://tuxilio.codeberg.page/tuxiclick"}]...
|
[{"post_id": 23982, "ts": "202 [{"post_id": 23982, "ts": "2026-07-07T07:42:32Z", "hours": 0.5797, "text": "I added the new shopitems CI/CD Pipeline, Code Optimizer and API Integration and Git Commit and also fixed the rm-rf shopitem. I also added a multiplier when you rm -rf everything š"}, {"post_id": 23379, "ts": "2026-07-06T09:39:14Z", "hours": 0.4186, "text": "I added a function to save the current count and owned items in a cookie so your game gets restored when reloading :)"}, {"post_id": 23366, "ts": "2026-07-06T09:10:21Z", "hours": 0.5197, "text": "I added a better readme and a new shopitem: a confetti animation when you click š"}, {"post_id": 17921, "ts": "2026-06-28T21:15:24Z", "hours": 2.3664, "text": "I created a terminal you can drag around, a panel with your owned items and nice new shop items :)"}, {"post_id": 16282, "ts": "2026-06-26T14:05:59Z", "hours": 2.035, "text": "I added a shop! It isnāt really done yet, but it is built modular so I can just specify what action to run when you buy it, how many of these you can buy, and I added a mobile view!"}, {"post_id": 15232, "ts": "2026-06-24T18:49:26Z", "hours": 0.6347, "text": "I added an image to click on with a nice selfmade click animation (based on an svg) š š š"}, {"post_id": 15179, "ts": "2026-06-24T17:38:23Z", "hours": 0.8894, "text": "Iām working on a funny clicker game written in javascript with some html and css. I finished the basic page with just a simple button and counter. The whole thing is deployed on Codeberg Pages: https://tuxilio.codeberg.page/tuxiclick/"}]...
|
Title: tuxiclick by @Tuxilio | Stardance
Devlogs: Title: tuxiclick by @Tuxilio | Stardance
Devlogs:
Iām working on a funny clicker game written in javascript with some html and css. I finished the basic page with just a simple button and counter. The whole thing is deployed on Codeberg Pages: https://tuxilio.codeberg.page/tuxiclick/
I added an image to click on with a nice selfmade click animation (based on an svg) š š š
I added a shop! It isnāt really done yet, but it is built modular so I can just specify what action to run when you buy it, how many of these you can buy, and I added a mobile view!
I created a terminal you can drag around, a panel with your owned items and nice new shop items :)
I added a better readme and a new shopitem: a confetti animation when you click š
I added a function to save the current count and owned items in a cookie so your game gets restored when reloading :)
I added the new shopitems CI/CD Pipeline, Code Optimizer and API Integration and Git Commit and also fixed the rm-rf shopitem. I also added a multiplier when you rm -rf everything š
Ships:
I made a penguin-themed cookie clicker! It is really basic for now, but I think it is quite nice :) I am really proud of the penguin animation which I have done by myself. If you have bought the console, you can set the var count to anything you want, for example count = 1000 . Itās just a javascript console. Donāt forget to sync the UI by clicking the penguin or running the function sync() :)
I made a penguin-themed cookie clicker! It is really basic for now, but I think it is quite nice :) I am really proud of the penguin animation which I have done by myself. You can buy āgit commitā to save your state using cookies ;) I think the shopitems are now more equally distributed. Thanks for the feedback! If you have bought the console, you can set the var count to anything you want, for example count = 10000 . Itās just a javascript console. Donāt forget to sync the UI by clicking the penguin or running the function sync() :)...
|
1792824526.715161
|
1792910926.715161
|
|
25302
|
Fantasy Football Draft Assistant by @atharva02 | S Fantasy Football Draft Assistant by @atharva02 | Stardance...
|
atharva02
|
2
|
11.0
|
94
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-01T02:31:11Z", "hours": 6.0, "multiplier": 7.4, "payout": 40, "blessing": "neutral", "text": "My project is Fantasy Football draft assistant which will give you pick suggestions during your Fantasy Draft. The purpose of this second ship is because Sleeper draft integration is here! Following the usage instructions from my GitHub README, you can try out this new feature yourself. The hardest about this new feature was figuring out why it took so long to sync and finding a way to minimize this lag. However, I am proud that, despite a small lag, it still works and is able to quickly gather your Sleeper draft info. One thing to note when using this feature, my app only supports certain positions so adding unique FLEX positions that isnāt the standard WR/RB/TE, will not work. Another thing to note is that this is unfortunately not mobile friendly, but let me know through reviews if this is a wanted feature. Enjoy!", "repo": "https://github.com/atharva-277/Fantasy-Football-Drafter", "demo": "https://ffdrafter.atharva02.hackclub.app/"}, {"ship_num": 2, "ts": "2026-07-20T20:05:36Z", "hours": 5.0, "multiplier": 11.38, "payout": 54, "blessing": "neutral", "text": "My project is a fantasy football draft assistant which gives you suggestions on who to draft based on the current state of the draft and the players themselves. The most challenging part of this was finding the right medium within the calculation algorithm. It was difficult figuring out how to suggest great players at a position youāve already drafted but I think Iāve found the right medium now. Iām most proud of the fact that I was able to power through that exact struggle and be able to ship now that the right algorithm is, hopefully, in place. The link is live being hosted through Render. One thing to note with Render is that if there is slight inactivity, you may have to wait 40-60 seconds for it to load for the first time, but after it loads, there shouldnāt be any other hiccups. Enjoy!", "repo": "https://github.com/atharva-277/Fantasy-Football-Drafter", "demo": "https://ffdrafter.atharva02.hackclub.app/"}]...
|
[{"post_id": 37857, "ts": "202 [{"post_id": 37857, "ts": "2026-07-30T20:39:50Z", "hours": 1.9783, "text": "Devlog #7 Sleeper API integration is finally here! This took a while to get out, but Iām so happy that itās finally here! The main limitation is that itās based on draft ID, so it might be a hassle to find. However, I canāt control that as Sleeper is read-only API, which means I canāt allow for people to sign in and then access leagues and mock drafts that way. Regardless, it works really great based on my tests with the caveat that if you update the draft settings, you may need to refresh once or twice to ensure theyāre updated on ffdrafter. Once youāre in the draft, the main thing you do is simply check back in and view suggestions on the side panel, manually logging picks is disabled since youāre doing that on Sleeper anyway! Another unfortunate caveat is that syncs do take a little bit(5-7 seconds) when others are auto-drafting and when the draft first starts. These are unfortunate side effects, but again they arenāt in my control as I donāt know how often Sleeper updates and sends drafts responses back. Yet, the feature still works even if it does take a small amount of time, so hope it works for anyone who uses it. Attaches is the UI for how the user inputs the Sleeper Draft ID."}, {"post_id": 35362, "ts": "2026-07-26T18:21:34Z", "hours": 2.5111, "text": "Devlog #6 A few more style updates have occurred since my last log. First, the font has changes to be a little more fancy, if thatās what you want to call it, but I think it looks nice for the site itself. Along with that depending on if youāre searching, seeing suggestions, or viewing top talent, different info appears when you click on the player. The commonality is showing the team logo and their tier. But when searching it only shows the top reason, when seeing suggestions it gives age and top 2 reasons, and viewing top talent also shows age along with position(jersey number). Other than that itās still basically the same since functionality wise, nothing really changed. I hope to start implement the direct Sleeper API integration along with other sites if possible including ESPN and Yahoo Fantasy."}, {"post_id": 32644, "ts": "2026-07-21T22:39:38Z", "hours": 1.0361, "text": "Devlog #5 So I was recently about to ship but it got recalled because I used Claude to do the whole UI and never touched up on it again, which is my fault completely. However, since then I have actually updated the entire UI by adding modular sections and more color by position points. It has the same dark tone as before, but thereās a new purple accent now to make it less generic. Along with that, every position is basically customized by itās own unique color as well, providing a connection beyond text. Other than that, text was made bigger, and font colors were made lighter to make them pop out more against the dark background. Attached is how the starting page looks like now."}, {"post_id": 31971, "ts": "2026-07-20T20:00:14Z", "hours": 0.3911, "text": "Devlog #4 This devlog is the last before the first ship as the site is now officially live! The only change made between this log and the last is that you can choose whether you have a snake or linear draft. Other than that, hosting is being done through Render(hopefully an accepted hosting platform) and the link is officially live at: https://fantasy-football-drafter.onrender.com/ . Attached is how the menu looks now that you can choose draft type."}, {"post_id": 31578, "ts": "2026-07-20T02:48:36Z", "hours": 1.6669, "text": "Devlog #3 So unfortunately, I wasnāt able to connect to Sleeper API, because I was busy updating the value algorithm to make it sure it worked well. Earlier, it was favoring positions too much and wasnāt realizing that starters matter more than bench. I think Iāve found the perfect medium between balancing both maximizing starting talent and a decent bench lineup. I expect to ship within the next few days once I upload a live link and maybe add a feature to differentiate between snake and linear draft along with adding more position customization perhaps. Other than that, this project will probably ship with just a manual mode at first, and then have another ship with Sleeper API connected to it. Attached is a sample of how the UI looks when updating draft picks based on whatās going on in."}, {"post_id": 29229, "ts": "2026-07-16T00:26:55Z", "hours": 1.6556, "text": "Devlog #2 Well, the initial part of the project is completed. There is now a value calculation algorithm in place that ranks each player based on a number of metrics: current draft pick, player ranking, bye week, and roster needs. After that, it gives 8 suggested players in the menu, ranked by points, and also gives warnings about possible reaches and the current pick, but also symbols that could signify a steal at the current pick. Additional testing will be conducted in regards to how well the system seems to be working by simulating a separate mock draft with online resources. My next plan after this, if the system is working correctly, is to connect it seamlessly with Sleeper, as stated in Devlog #1. Attached is how the user interface currently looks after starting the draft."}, {"post_id": 27491, "ts": "2026-07-13T03:09:04Z", "hours": 1.0464, "text": "Devlog #1 This is the start of a fantasy football draft assistant project Iām working on. Currently, it doesnāt do much as most of the time was spent on gathering data for the three main scoring types: PPR, Half-PPR, and Standard, along with the player database from Sleeper. The plan is to eventually find an algorithm to calculate expected value for each player based on different data points: your draft position, current draft pick, player data in general, along with other external factors such as current roster. Also Iām only working on the manual mode right now where all picks have to be manually put in but since Sleeper has a free API(used for player data), I hope to eventually add a seamless integration where it can directly link to a Sleeper League. Provided below is the starter UI menu but will be changed over time as more features are added."}]...
|
Title: Fantasy Football Draft Assistant by @atharv Title: Fantasy Football Draft Assistant by @atharva02 | Stardance
Devlogs:
Devlog #1 This is the start of a fantasy football draft assistant project Iām working on. Currently, it doesnāt do much as most of the time was spent on gathering data for the three main scoring types: PPR, Half-PPR, and Standard, along with the player database from Sleeper. The plan is to eventually find an algorithm to calculate expected value for each player based on different data points: your draft position, current draft pick, player data in general, along with other external factors such as current roster. Also Iām only working on the manual mode right now where all picks have to be manually put in but since Sleeper has a free API(used for player data), I hope to eventually add a seamless integration where it can directly link to a Sleeper League. Provided below is the starter UI menu but will be changed over time as more features are added.
Devlog #2 Well, the initial part of the project is completed. There is now a value calculation algorithm in place that ranks each player based on a number of metrics: current draft pick, player ranking, bye week, and roster needs. After that, it gives 8 suggested players in the menu, ranked by points, and also gives warnings about possible reaches and the current pick, but also symbols that could signify a steal at the current pick. Additional testing will be conducted in regards to how well the system seems to be working by simulating a separate mock draft with online resources. My next plan after this, if the system is working correctly, is to connect it seamlessly with Sleeper, as stated in Devlog #1. Attached is how the user interface currently looks after starting the draft.
Devlog #3 So unfortunately, I wasnāt able to connect to Sleeper API, because I was busy updating the value algorithm to make it sure it worked well. Earlier, it was favoring positions too much and wasnāt realizing that starters matter more than bench. I think Iāve found the perfect medium between balancing both maximizing starting talent and a decent bench lineup. I expect to ship within the next few days once I upload a live link and maybe add a feature to differentiate between snake and linear draft along with adding more position customization perhaps. Other than that, this project will probably ship with just a manual mode at first, and then have another ship with Sleeper API connected to it. Attached is a sample of how the UI looks when updating draft picks based on whatās going on in.
Devlog #4 This devlog is the last before the first ship as the site is now officially live! The only change made between this log and the last is that you can choose whether you have a snake or linear draft. Other than that, hosting is being done through Render(hopefully an accepted hosting platform) and the link is officially live at: https://fantasy-football-drafter.onrender.com/ . Attached is how the menu looks now that you can choose draft type.
Devlog #5 So I was recently about to ship but it got recalled because I used Claude to do the whole UI and never touched up on it again, which is my fault completely. However, since then I have actually updated the entire UI by adding modular sections and more color by position points. It has the same dark tone as before, but thereās a new purple accent now to make it less generic. Along with that, every position is basically customized by itās own unique color as well, providing a connection beyond text. Other than that, text was made bigger, and font colors were made lighter to make them pop out more against the dark background. Attached is how the starting page looks like now.
Devlog #6 A few more style updates have occurred since my last log. First, the font has changes to be a little more fancy, if thatās what you want to call it, but I think it looks nice for the site itself. Along with that depending on if youāre searching, seeing suggestions, or viewing top talent, different info appears when you click on the player. The commonality is showing the team logo and their tier. But when searching it only shows the top reason, when seeing suggestions it gives age and top 2 reasons, and viewing top talent also shows age along with position(jersey number). Other than that itās still basically the same since functionality wise, nothing really changed. I hope to start implement the direct Sleeper API integration along with other sites if possible including ESPN and Yahoo Fantasy.
Devlog #7 Sleeper API integration is finally here! This took a while to get out, but Iām so happy that itās finally here! The main limitation is that itās based on draft ID, so it might be a hassle to find. However, I canāt control that as Sleeper is read-only API, which means I canāt allow for people to sign in and then access leagues and mock drafts that way. Regardless, it works really great based on my tests with the caveat that if you update the draft settings, you may need to refresh once or twice to ensure theyāre updated on ffdrafter. Once youāre in the draft, the main thing you do is simply check back in and view suggestions on the side panel, manually logging picks is disabled since youāre doing that on Sleeper anyway! Another unfortunate caveat is that syncs do take a little bit(5-7 seconds) when others are auto-drafting and when the draft first starts. These are unfortunate side effects, but again they arenāt in my control as I donāt know how often Sleeper updates and sends drafts responses back. Yet, the feature still works even if it does take a small amount of time, so hope it works for anyone who uses it. Attaches is the UI for how the user inputs the Sleeper Draft ID.
Ships:
My project is a fantasy football draft assistant which gives you suggestions on who to draft based on the current state of the draft and the players themselves. The most challenging part of this was finding the right medium within the calculation algorithm. It was difficult figuring out how to suggest great players at a position youāve already drafted but I think Iāve found the right medium now. Iām most proud of the fact that I was able to power through that exact struggle and be able to ship now that the right algorithm is, hopefully, in place. The link is live being hosted through Render. One thing to note with Render is that if there is slight inactivity, you may have to wait 40-60 seconds for it to load for the first time, but after it loads, there shouldnāt be any other hiccups. Enjoy!
My project is Fantasy Football draft assistant which will give you pick suggestions during your Fantasy Draft. The purpose of this second ship is because Sleeper draft integration is here! Following the usage instructions from my GitHub README, you can try out this new feature yourself. The hardest about this new feature was figuring out why it took so long to sync and finding a way to minimize this lag. However, I am proud that, despite a small lag, it still works and is able to quickly gather your Sleeper draft info. One thing to note when using this feature, my app only supports certain positions so adding unique FLEX positions that isnāt the standard WR/RB/TE, will not work. Another thing to note is that this is unfortunately not mobile friendly, but let me know through reviews if this is a wanted feature. Enjoy!...
|
1792878511.5076895
|
1793742511.5076895
|
|
25359
|
SkyOS by @samraat-756 | Stardance
|
samraat-756
|
2
|
12.0
|
12
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-29T06:55:26Z", "hours": 2.0, "multiplier": 5.59, "payout": 12, "blessing": "neutral", "text": "As a follow up to WebOS 1, I have added 3 more features to SkyOS, aswell as refined and simplified some redundant logic that runs the foundation of this web Operating System. The features added were: 1 - A desktop switcher for multi-tasking up to 5 different workspaces 2 - A weather widget in the top right corner displaying the current weather in the area 3 - A flight radar widget in the bottom right corner displaying the number of aircraft in your area, aswell as the details of the closest aircraft to you I also re worked the script.js logic to keep each app local to its designated workspace, so that even if you switch to another workspace, that app doesnāt close, and stays running in the background.", "repo": "https://github.com/samraatpchauhan-eng/SkyOS", "demo": "https://samraatpchauhan-eng.github.io/SkyOS/"}, {"ship_num": 2, "ts": "2026-06-28T18:54:19Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is SkyOS. An aviation themed Web Operating System, to turn your desktop into a virtual cockpit! For the asthetics I went with a clean frosted glass look, with aviation themed backgrounds and a grey color scheme. The most challenging part of this project was getting the formatting of the windows to line up with each other, and making the logic for each app. This was my first time working with html, so WebOS 1 was a learning experience for me. Overall I am pretty impressed with how SkyOS came out though.", "repo": "https://github.com/samraatpchauhan-eng/SkyOS", "demo": "https://samraatpchauhan-eng.github.io/SkyOS/"}]...
|
[{"post_id": 57117, "ts": "202 [{"post_id": 57117, "ts": "2026-08-29T06:49:33Z", "hours": 0.8039, "text": "My 3rd feature added to SkyOS is a nice little flight radar widget found at the bottom right corner of the desktop. I utilized the OpenSky API to display the number of aircraft in your area, and the callsign and altitude of the closest plane to your location. I will say the visual aspects of this feature was pretty easy to create, however is was the logic behind this that took some time to understand. Overall, Iām pretty happy about this feature! The only gripe I have is the limited amount of times you can call data from it, so I had to set the refresh rate to 60 seconds, which is a little slow."}, {"post_id": 46077, "ts": "2026-08-13T01:07:08Z", "hours": 0.7839, "text": "After a little bit of playing around with js and getting some help from online tutorials, I was able to create a workspace system, similarly found on most operating systems like Windows 11 or most Linux distros. You can use this for multitasking and can have up to 5 workspaces open at once with different apps opened in each one, without fear of them closing when switching desktops!"}, {"post_id": 46049, "ts": "2026-08-12T23:54:15Z", "hours": 0.5789, "text": "I have added a new feature for SkyOS! Using Meteomaticās Open Meteo API, I was able to implement a weather widget in the top right corner of the desktop workspace, so you can see the current temperature in the area you are currently in."}, {"post_id": 17297, "ts": "2026-06-28T00:50:23Z", "hours": 0.6519, "text": "I have finally finished making the ACP (Audio Control Panel) app for SkyOS! It features 3 songs from msfs2020 and fsx, and features a song time display, and controls to skip and go back a track, and a play/pause button ofc."}, {"post_id": 17087, "ts": "2026-06-27T19:01:42Z", "hours": 0.9669, "text": "Finished creating the wallpapers app, to switch the background to 3 different images, a Boeing 777, Airbus a350, or F-22."}, {"post_id": 16778, "ts": "2026-06-27T07:44:41Z", "hours": 0.7544, "text": "At the time of making this devlog it is 12:14am. I am lwk exhausted, but just finished building my second, and so far most complicated app for SkyOS (in terms of the logic). It is a simple but functional Stopwatch cleverly called āChronoā. I also want to mention ~1 hour out of the 3 hours logged in the second devlog, was spent building the chrono app"}, {"post_id": 16755, "ts": "2026-06-27T06:37:46Z", "hours": 3.9269, "text": "After a bit of struggle getting the formatting of the elements of SkyOS to work properly, I have finally finished my first app! I call it FlightLog, which is a place to type anything you want, and save it. It works similar to Windows 11ās NotePad application, but simpler."}, {"post_id": 15957, "ts": "2026-06-25T22:26:57Z", "hours": 3.4564, "text": "Finally got a hang of html, and JS! Curently was able to build the basic framework of the onboarding window, and the top bar of SkyOS. I also put a stock image of a Soutwest 737-800 as the background, as it appropriately fits the theme of SkyOS."}]...
|
Title: SkyOS by @samraat-756 | Stardance
Devlogs: Title: SkyOS by @samraat-756 | Stardance
Devlogs:
Finally got a hang of html, and JS! Curently was able to build the basic framework of the onboarding window, and the top bar of SkyOS. I also put a stock image of a Soutwest 737-800 as the background, as it appropriately fits the theme of SkyOS.
After a bit of struggle getting the formatting of the elements of SkyOS to work properly, I have finally finished my first app! I call it FlightLog, which is a place to type anything you want, and save it. It works similar to Windows 11ās NotePad application, but simpler.
At the time of making this devlog it is 12:14am. I am lwk exhausted, but just finished building my second, and so far most complicated app for SkyOS (in terms of the logic). It is a simple but functional Stopwatch cleverly called āChronoā. I also want to mention ~1 hour out of the 3 hours logged in the second devlog, was spent building the chrono app
Finished creating the wallpapers app, to switch the background to 3 different images, a Boeing 777, Airbus a350, or F-22.
I have finally finished making the ACP (Audio Control Panel) app for SkyOS! It features 3 songs from msfs2020 and fsx, and features a song time display, and controls to skip and go back a track, and a play/pause button ofc.
I have added a new feature for SkyOS! Using Meteomaticās Open Meteo API, I was able to implement a weather widget in the top right corner of the desktop workspace, so you can see the current temperature in the area you are currently in.
After a little bit of playing around with js and getting some help from online tutorials, I was able to create a workspace system, similarly found on most operating systems like Windows 11 or most Linux distros. You can use this for multitasking and can have up to 5 workspaces open at once with different apps opened in each one, without fear of them closing when switching desktops!
My 3rd feature added to SkyOS is a nice little flight radar widget found at the bottom right corner of the desktop. I utilized the OpenSky API to display the number of aircraft in your area, and the callsign and altitude of the closest plane to your location. I will say the visual aspects of this feature was pretty easy to create, however is was the logic behind this that took some time to understand. Overall, Iām pretty happy about this feature! The only gripe I have is the limited amount of times you can call data from it, so I had to set the refresh rate to 60 seconds, which is a little slow.
Ships:
This is SkyOS. An aviation themed Web Operating System, to turn your desktop into a virtual cockpit! For the asthetics I went with a clean frosted glass look, with aviation themed backgrounds and a grey color scheme. The most challenging part of this project was getting the formatting of the windows to line up with each other, and making the logic for each app. This was my first time working with html, so WebOS 1 was a learning experience for me. Overall I am pretty impressed with how SkyOS came out though.
As a follow up to WebOS 1, I have added 3 more features to SkyOS, aswell as refined and simplified some redundant logic that runs the foundation of this web Operating System. The features added were: 1 - A desktop switcher for multi-tasking up to 5 different workspaces 2 - A weather widget in the top right corner displaying the current weather in the area 3 - A flight radar widget in the bottom right corner displaying the number of aircraft in your area, aswell as the details of the closest aircraft to you I also re worked the script.js logic to keep each app local to its designated workspace, so that even if you switch to another workspace, that app doesnāt close, and stays running in the background....
|
1792832047.6953495
|
1792918447.6953495
|
|
25390
|
WarioWare Godot by @GeorgeSun | Stardance
|
GeorgeSun
|
2
|
17.0
|
14
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T15:11:22Z", "hours": 3.0, "multiplier": 6.02, "payout": 14, "blessing": "neutral", "text": "I made a WarioWare themed game with 9 minigames in total. You have to beat as many minigames as possible before running out of lives. What I found was challenging was designing and creating my own minigames. What I am most proud of is how polished the game feels especially how animated the menus feel. The controls are intuitive and easy to learn as in most of the minigames, you only use the mouse. I also added onto the second version of the project local multiplayer so that you can play with your friends. Player 1 takes WASD and Player 2 takes the arrow keys. You can play the game right now by clicking the try project button below!", "repo": "https://github.com/Geofoods/Wario-Ware-Game-Version-2", "demo": "https://georgecodes.itch.io/warioware-godot"}, {"ship_num": 2, "ts": "2026-06-27T23:08:53Z", "hours": 14.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a WarioWare themed game with 9 minigames in total. You have to beat as many minigames as possible before running out of lives. What I found was challenging was designing and creating my own minigames. What I am most proud of is how polished the game feels especially how animated the menus feel. The controls are intuitive and easy to learn as in most of the minigames, you only use the mouse.", "repo": "https://github.com/Geofoods/Wario-Ware-Game-Version-2", "demo": "https://georgecodes.itch.io/warioware-godot"}]...
|
[{"post_id": 44025, "ts": "202 [{"post_id": 44025, "ts": "2026-08-09T15:07:58Z", "hours": 2.9356, "text": "I made a two player gamemode which includes two player versions of all of the minigames. After one of the player wins the best out of 10, it shows it in the new multiplayer end screen"}, {"post_id": 17175, "ts": "2026-06-27T21:36:58Z", "hours": 1.0933, "text": "Added three more minigames: rock breaking, geometry dash, and quick math"}, {"post_id": 17029, "ts": "2026-06-27T17:16:14Z", "hours": 1.0986, "text": "Finished and polished my game by adding audio and sprucing up the menus with animations. You can try the demo now! https://georgecodes.itch.io/warioware-godot"}, {"post_id": 16641, "ts": "2026-06-27T02:05:06Z", "hours": 2.5589, "text": "Made ui look a lot better, added settings menu, game over menu, added find luigi minigame, space invaders minigame, and pong minigame. Replaced platformer minigame with doodle jump minigame"}, {"post_id": 15977, "ts": "2026-06-25T22:57:07Z", "hours": 1.4875, "text": "Created clicker and flappy bird game, also created a scrolling background on all levels"}, {"post_id": 15277, "ts": "2026-06-24T20:18:07Z", "hours": 7.7194, "text": "Finished Making the Main Menu and Level Scene"}]...
|
Title: WarioWare Godot by @GeorgeSun | Stardance
Title: WarioWare Godot by @GeorgeSun | Stardance
Devlogs:
Finished Making the Main Menu and Level Scene
Created clicker and flappy bird game, also created a scrolling background on all levels
Made ui look a lot better, added settings menu, game over menu, added find luigi minigame, space invaders minigame, and pong minigame. Replaced platformer minigame with doodle jump minigame
Finished and polished my game by adding audio and sprucing up the menus with animations. You can try the demo now! https://georgecodes.itch.io/warioware-godot
Added three more minigames: rock breaking, geometry dash, and quick math
I made a two player gamemode which includes two player versions of all of the minigames. After one of the player wins the best out of 10, it shows it in the new multiplayer end screen
Ships:
I made a WarioWare themed game with 9 minigames in total. You have to beat as many minigames as possible before running out of lives. What I found was challenging was designing and creating my own minigames. What I am most proud of is how polished the game feels especially how animated the menus feel. The controls are intuitive and easy to learn as in most of the minigames, you only use the mouse.
I made a WarioWare themed game with 9 minigames in total. You have to beat as many minigames as possible before running out of lives. What I found was challenging was designing and creating my own minigames. What I am most proud of is how polished the game feels especially how animated the menus feel. The controls are intuitive and easy to learn as in most of the minigames, you only use the mouse. I also added onto the second version of the project local multiplayer so that you can play with your friends. Player 1 takes WASD and Player 2 takes the arrow keys. You can play the game right now by clicking the try project button below!...
|
1792839105.7096064
|
1792925505.7096064
|
|
25605
|
My very own WebOS by @AwesomeFreshDay | Stardance
|
AwesomeFreshDay
|
2
|
10.0
|
4
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-02T22:27:16Z", "hours": 3.0, "multiplier": 1.17, "payout": 4, "blessing": "neutral", "text": "Created an embed game of the game I created during the Warioware mission to put into an app that is playable thanks to Itch.io features. Created background/wallpaper changer app, and a simple 3 seocnd laoding screen when entering the OS. What was challenging was coming upw ith new ideas to expand on the WebOS 1 when I started and having to work around my messy code. I had to use AI help with parts of debugging because the code was all over the place it is like 100 something lines that could be turned into probably less than half but point is I was able to proceed and work around it.", "repo": "https://github.com/AdamT2529/My-very-own-WebOS", "demo": "https://awesomefreshday.github.io/My-very-own-WebOS/"}, {"ship_num": 2, "ts": "2026-07-02T04:25:33Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "a website about cars. Understanding classes learning html css and making the desktop icons, and draggable windows were challenging. Classes especially were challenging.", "repo": "https://github.com/AdamT2529/My-very-own-WebOS", "demo": "https://awesomefreshday.github.io/My-very-own-WebOS/"}]...
|
[{"post_id": 39751, "ts": "202 [{"post_id": 39751, "ts": "2026-08-02T22:23:36Z", "hours": 0.6586, "text": "Created my wariogame app and included a playable game embed link into the OS luckily Itch io included embed links hwne you go to distribute in the options"}, {"post_id": 39301, "ts": "2026-08-02T05:55:29Z", "hours": 2.4083, "text": "Fixed/organized many parts of code by changing into classes. Worked on and added 2 new features which are a loading screen and background changer app"}, {"post_id": 20517, "ts": "2026-07-02T04:08:19Z", "hours": 0.2808, "text": "finally finished it the one new feature is a restart btuton which is just reshign the page but anyways lesson of the story i learned is to find the thin you are itnerested in because i didnt like this very much and it took a while consdiering that hte time for this mission woudl take around 2 hours 30 mins and i spent like 7 but i hope to find soemthign related to here on here that is something i would be passionate baout but hey the final projduct isnt that bad and i hope things going forward will be mroe smooth sialign since this is pretty much my first real projekzs tjcreated in hthos platforkm so i hope to find that thign i am interested in on here to continue pursuing and others should see what they would like on here to focus on anyways good luck to evyerhting and everyone"}, {"post_id": 20509, "ts": "2026-07-02T03:43:03Z", "hours": 6.0328, "text": "did some stuff but i accidently did the guide wrong so i am stuck in a rabbit hole following through the guide and having tot ake alternate path because i messed up on soemthing about the welcome screen i didnt knwo the author made some new one so i tried to use the welcome screen i already made in the introductiona nd then they started using div classes but it was hard tof ollow because one part they showed normal code and then the next was a bunch of new stuff and then they remvoed it to put in styles.css idk y it wasnt stated but maybe i follwoed hte guide wrong"}, {"post_id": 16657, "ts": "2026-06-27T02:35:34Z", "hours": 1.1081, "text": "I am beginner to coding and this is my barebones OS so far"}]...
|
Title: My very own WebOS by @AwesomeFreshDay | Sta Title: My very own WebOS by @AwesomeFreshDay | Stardance
Devlogs:
I am beginner to coding and this is my barebones OS so far
did some stuff but i accidently did the guide wrong so i am stuck in a rabbit hole following through the guide and having tot ake alternate path because i messed up on soemthing about the welcome screen i didnt knwo the author made some new one so i tried to use the welcome screen i already made in the introductiona nd then they started using div classes but it was hard tof ollow because one part they showed normal code and then the next was a bunch of new stuff and then they remvoed it to put in styles.css idk y it wasnt stated but maybe i follwoed hte guide wrong
finally finished it the one new feature is a restart btuton which is just reshign the page but anyways lesson of the story i learned is to find the thin you are itnerested in because i didnt like this very much and it took a while consdiering that hte time for this mission woudl take around 2 hours 30 mins and i spent like 7 but i hope to find soemthign related to here on here that is something i would be passionate baout but hey the final projduct isnt that bad and i hope things going forward will be mroe smooth sialign since this is pretty much my first real projekzs tjcreated in hthos platforkm so i hope to find that thign i am interested in on here to continue pursuing and others should see what they would like on here to focus on anyways good luck to evyerhting and everyone
Fixed/organized many parts of code by changing into classes. Worked on and added 2 new features which are a loading screen and background changer app
Created my wariogame app and included a playable game embed link into the OS luckily Itch io included embed links hwne you go to distribute in the options
Ships:
a website about cars. Understanding classes learning html css and making the desktop icons, and draggable windows were challenging. Classes especially were challenging.
Created an embed game of the game I created during the Warioware mission to put into an app that is playable thanks to Itch.io features. Created background/wallpaper changer app, and a simple 3 seocnd laoding screen when entering the OS. What was challenging was coming upw ith new ideas to expand on the WebOS 1 when I started and having to work around my messy code. I had to use AI help with parts of debugging because the code was all over the place it is like 100 something lines that could be turned into probably less than half but point is I was able to proceed and work around it....
|
1792828114.1787755
|
1792914514.1787755
|
|
25808
|
Goose Games by @Gabl | Stardance
|
Gabl
|
2
|
19.0
|
143
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T15:04:43Z", "hours": 13.0, "multiplier": 11.17, "payout": 143, "blessing": "neutral", "text": "Goose Games ship 2 This is a fairly simple WarioWare game, where you have to manage to beat 5 minigames to win. The Game currently features 7 Minigames: Platformer - eat the 3 Breads as fast as possible Clicker - eat all of the 6 Breads in time Click-Smasher - Honk at the human enough times in the timeframe Flappy-Goose - Reach a random score of points Donāt-Click - you donāt. Honk-Correctly - Hit the green area to honk correctly Jump - jump over a random amount of obstacles I added so much to the game since last ship, but here are some things I remember off the top of my head: WarioWare Music and SFX Settings Screen actually working lol 4 new minigames randomisation - for example in minigames but also in which order you get minigames Popup Text at the beginning of the minigame tons of bug fixes prob more Thanks for playing, hope you have fun!", "repo": "https://github.com/gabl18/WarioWare", "demo": "https://gabl18.itch.io/goose-games"}, {"ship_num": 2, "ts": "2026-06-28T20:07:08Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Goose Games You are a simple Goose that has a big appetite for Bread and annoying people. A simple WarioWare like game with fast paced minigames. Controls: WASD or Arrows to Move Space to jump Mouseclick The Game currently features 3 Minigames: Platformer - eat the 3 Breads as fast as possible Clicker - eat all of the 6 Breads in time Click-Smasher - Honk at the human enough times in the timeframe All art assets have been created by me - yes, even the font. I still have many plans to extend the games size, polish everthing, add more randomness and make more art. Created for Stardance Hackclub - Make a WarioWare Game. Thanks for playing, hope you have fun!", "repo": "https://github.com/gabl18/WarioWare", "demo": "https://gabl18.itch.io/goose-games"}]...
|
[{"post_id": 71248, "ts": "202 [{"post_id": 71248, "ts": "2026-09-20T14:59:28Z", "hours": 0.5531, "text": "Last Devlog before ship!Fixed some errors and bugs, such as the faulty hitbox for the 7th minigame and the intervention screen always showing the wrong level lol.Then also updated the readme and everything regarding the itch page."}, {"post_id": 70288, "ts": "2026-09-18T21:33:21Z", "hours": 2.8886, "text": "Fixing Stuff and more! Since last time I firstly added some sound effects to better indicate if you failed or not- for example if you fail the HONK CORRECTLY! Minigame its a different honk to when you win, or same for the new minigame I added- yes I added a new minigame: JUMP! : Here you must jump over some items I drew, had a lot of fun to draw these again, also drew some new Backgrounds and so on. I also added the actual controls and code for the settings to actually work, and also added credits there haha. Lastly I fixed a really annoying bug, that was driving me insane - the music wouldnāt Always work in the browser for whatever reason. After some digging the solution was surprisingly easy, just had to change the Default Playback type for audio in the project settings. I am glad that works now. Not much to go untill the second ship, Maybe Iāll add another minigame, or just ship it in the next devlog - weāll see."}, {"post_id": 69548, "ts": "2026-09-17T08:53:27Z", "hours": 1.3675, "text": "Yippie, added another game- HONK CORRECTLY! In this game you just need to honk at the right moment to win. Seems pretty simple, but took me some time to get done."}, {"post_id": 69070, "ts": "2026-09-16T10:03:53Z", "hours": 0.3117, "text": "Last Devlog bugged I donāt know why but the last devlog bugged out and I sent it off before I finished writing it. Now I have made some really minor fixes to make this devlog but am still wondering how to fix others. But here are new features I added since the actual last devlog: Music: implemented actual warioware music, which did fit perfectly. It works perfect in godot, but I donāt know why, it doesnāt in the browser all the time - I have no idea how to fix that. Randomisation: Minigames now come in a random order and some minigames have variation - such as donāt press (length), annoy the human (click amount) and flappy goose (points amount). Oh, and you canāt get the same minigame back to back. Better Organisation: Changed the organisation of folders, scenes, etc. to be better bc it was a full nightmare before. Took longer than expected because it messed all the dependencies up - but I think it works now. New Minigame: Donāt Click - or elseā¦. Also made some new art for this minigame which turned out great once again imo! Thanks for checking this devlog out, idk why that before happened but well yeah."}, {"post_id": 69054, "ts": "2026-09-16T09:36:39Z", "hours": 2.2619, "text": "More randomisation!"}, {"post_id": 67228, "ts": "2026-09-13T08:59:38Z", "hours": 3.22, "text": "Finally continued working on the game!! Made a flappy bird-like game - which took me way too long because I had many difficulties spawning in the chimneys. And also drawing the sprites took quite some time but I think it was definitely worth it - I am really happy with them"}, {"post_id": 20844, "ts": "2026-07-02T15:39:25Z", "hours": 2.1719, "text": "Made a lil explanation Text pop up before each minigame starting wich gave me a huge headache and still doesnāt really work like intended, also I have no idea why the quality is so bad or why I canāt adjust the size and its just bigger in some scenes and smaller in others. But I am waay too dumb to figure anything out it seems, have definitely wasted too much time on this text popup, might actually quit this, bc I am hella down cause nothing seems to work right I am trying to do ):"}, {"post_id": 17866, "ts": "2026-06-28T20:05:30Z", "hours": 1.8047, "text": "Added a new Game - āAnnoy a humanā: Just spam the goose enough times in the timeframe! Aditionally created tons of art and different Geese - lol, had much fun drawing these."}, {"post_id": 16200, "ts": "2026-06-26T10:13:25Z", "hours": 3.7047, "text": "Have pretty much finished the guide and implemented some of my own art already - not without its issues, had a bit of difficulties following the guide since I didnāt always know what it wanted me to do lol. But got everything done in the end. Before shipping for the first time I still gotta decide what theme this game should have, what the protagonist should be and add one or two more minigames. - should play some warioware for inspiration haha."}]...
|
Title: Goose Games by @Gabl | Stardance
Devlogs:
Title: Goose Games by @Gabl | Stardance
Devlogs:
Have pretty much finished the guide and implemented some of my own art already - not without its issues, had a bit of difficulties following the guide since I didnāt always know what it wanted me to do lol. But got everything done in the end. Before shipping for the first time I still gotta decide what theme this game should have, what the protagonist should be and add one or two more minigames. - should play some warioware for inspiration haha.
Added a new Game - āAnnoy a humanā: Just spam the goose enough times in the timeframe! Aditionally created tons of art and different Geese - lol, had much fun drawing these.
Made a lil explanation Text pop up before each minigame starting wich gave me a huge headache and still doesnāt really work like intended, also I have no idea why the quality is so bad or why I canāt adjust the size and its just bigger in some scenes and smaller in others. But I am waay too dumb to figure anything out it seems, have definitely wasted too much time on this text popup, might actually quit this, bc I am hella down cause nothing seems to work right I am trying to do ):
Finally continued working on the game!! Made a flappy bird-like game - which took me way too long because I had many difficulties spawning in the chimneys. And also drawing the sprites took quite some time but I think it was definitely worth it - I am really happy with them
More randomisation!
Last Devlog bugged I donāt know why but the last devlog bugged out and I sent it off before I finished writing it. Now I have made some really minor fixes to make this devlog but am still wondering how to fix others. But here are new features I added since the actual last devlog: Music: implemented actual warioware music, which did fit perfectly. It works perfect in godot, but I donāt know why, it doesnāt in the browser all the time - I have no idea how to fix that. Randomisation: Minigames now come in a random order and some minigames have variation - such as donāt press (length), annoy the human (click amount) and flappy goose (points amount). Oh, and you canāt get the same minigame back to back. Better Organisation: Changed the organisation of folders, scenes, etc. to be better bc it was a full nightmare before. Took longer than expected because it messed all the dependencies up - but I think it works now. New Minigame: Donāt Click - or elseā¦. Also made some new art for this minigame which turned out great once again imo! Thanks for checking this devlog out, idk why that before happened but well yeah.
Yippie, added another game- HONK CORRECTLY! In this game you just need to honk at the right moment to win. Seems pretty simple, but took me some time to get done.
Fixing Stuff and more! Since last time I firstly added some sound effects to better indicate if you failed or not- for example if you fail the HONK CORRECTLY! Minigame its a different honk to when you win, or same for the new minigame I added- yes I added a new minigame: JUMP! : Here you must jump over some items I drew, had a lot of fun to draw these again, also drew some new Backgrounds and so on. I also added the actual controls and code for the settings to actually work, and also added credits there haha. Lastly I fixed a really annoying bug, that was driving me insane - the music wouldnāt Always work in the browser for whatever reason. After some digging the solution was surprisingly easy, just had to change the Default Playback type for audio in the project settings. I am glad that works now. Not much to go untill the second ship, Maybe Iāll add another minigame, or just ship it in the next devlog - weāll see.
Last Devlog before ship!Fixed some errors and bugs, such as the faulty hitbox for the 7th minigame and the intervention screen always showing the wrong level lol.Then also updated the readme and everything regarding the itch page.
Ships:
Goose Games You are a simple Goose that has a big appetite for Bread and annoying people. A simple WarioWare like game with fast paced minigames. Controls: WASD or Arrows to Move Space to jump Mouseclick The Game currently features 3 Minigames: Platformer - eat the 3 Breads as fast as possible Clicker - eat all of the 6 Breads in time Click-Smasher - Honk at the human enough times in the timeframe All art assets have been created by me - yes, even the font. I still have many plans to extend the games size, polish everthing, add more randomness and make more art. Created for Stardance Hackclub - Make a WarioWare Game. Thanks for playing, hope you have fun!
Goose Games ship 2 This is a fairly simple WarioWare game, where you have to manage to beat 5 minigames to win. The Game currently features 7 Minigames: Platformer - eat the 3 Breads as fast as possible Clicker - eat all of the 6 Breads in time Click-Smasher - Honk at the human enough times in the timeframe Flappy-Goose - Reach a random score of points Donāt-Click - you donāt. Honk-Correctly - Hit the green area to honk correctly Jump - jump over a random amount of obstacles I added so much to the game since last ship, but here are some things I remember off the top of my head: WarioWare Music and SFX Settings Screen actually working lol 4 new minigames randomisation - for example in minigames but also in which order you get minigames Popup Text at the beginning of the minigame tons of bug fixes prob more Thanks for playing, hope you have fun!...
|
1792832217.4257607
|
1792918617.4257607
|
|
25986
|
Katnip by @b1j2754 | Stardance
|
b1j2754
|
2
|
80.41
|
1182
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-11T09:31:56Z", "hours": 37.0, "multiplier": 19.83, "payout": 741, "blessing": "neutral", "text": "Katnip. For real this time. From text -> blocks. It now exists. Fully type-checked. Powerful enums. Function returns. And it all compiles into scratch. Over the past 36 hours I have worked on making the IR and Codegen layers come to life. From working with stacks, and other more complex algorithms, hoisting, scopes, and everything in between, It now compiles. Katnip is a language designed to not just be a surragate for scratch syntax, its supposed to fix it, and offer a scripting alternative. Gone are the days of wrong data types, debugging random lines, Katnip can do that for you. Types and bugs are well defined, and easy to find. To use this project, I currently do not have a website, but install it through NPM: https://www.npmjs.com/package/@katnip-org/compiler npm i @katnip-org/compiler Happy coding :P", "repo": "https://github.com/Katnip-org/Katnip/", "demo": "https://www.npmjs.com/package/@katnip-org/compiler"}, {"ship_num": 2, "ts": "2026-07-06T22:46:43Z", "hours": 25.0, "multiplier": 19.56, "payout": 441, "blessing": "neutral", "text": "I made the semantic analysis portion to a custom coding language for scratch. It aims to bridge the gap for kids between code blocks and real scripting. It has full type safety, and a variety of different language components, creating a rich and immersive transition from scratch into the real world of programming. It has both simple syntax but also allows a high skill ceiling with more complex syntax. I struggled a lot, spending hours on end chatting with programmers I am friends with, crafting a lot of these language decisions in late night chats. Every single step has been deliberately taken. I am proud of the consistency and quality of the code I wrote. I feel proud to have made this section, and hope that by shipping (and hopefully the community receiving it well) I will be able to continue forwards to finishing the IR and code gen. Since there isnāt a best way to use a programming language, I suggest both installing the npm package and the vscode extension (search āKatnipā in the store). This will give you in-editor syntax highlighting and typechecking. Feel free to use the cli for lexing, parsing, and type checking.", "repo": "https://github.com/Katnip-org/Katnip/", "demo": "https://www.npmjs.com/package/@katnip-org/compiler"}]...
|
[{"post_id": 63302, "ts": "202 [{"post_id": 63302, "ts": "2026-09-07T01:41:07Z", "hours": 4.3019, "text": "Sigma Peak Editor Frfr The editor is turning out beautifully . Like I love it so far. Tons and tons of improvements to mainly the editor, but a few pivotal improvements to the compiler itself. Website / GUI Improvements File uploads ā no longer are your costumes handwritten svgs :P AND you can import .knip files! QOL improvements ā draggable files, auto-focus editor on openning of website Terminal prettification STAGE BUTTONS! ā start / pause / stop + TurboMode Flag functionality rework click => compile + run shift+click => run without compiling Settings file actually does something Compiler improvements Costumes implementation (new syntax!) Forever block + more math blocks! Zip compression level compiler flag"}, {"post_id": 62117, "ts": "2026-09-05T11:32:11Z", "hours": 5.4575, "text": "Costumes + Sounds! Finally, after a long time of putting this off, Katnip finally has syntax to import sounds and assets to use for your projects! stage { costume \"./sky.svg\"; events.onFlag() { looks.switchBackdrop(\"sky\"); } } sprite Cat { costume \"./cat.svg\" as idle; costume \"./cat-blink.svg\" as blink; sound \"./meow.wav\"; events.onFlag() { motion.goTo(-100, 0); looks.switchCostume(\"idle\"); looks.say(\"costumes + sounds work\", 2); forever { wait(0.5); looks.nextCostume(); } } } Changelog Compiler changes Added costume and sound keywords Added stage keyword for stage override (previously auto-genād) Added forever keyword (cuz I forgot to add it somehow) Website changes Added upload icon for uploading files Added support for the new costume and sound required fs callbacks Added ārenameā in dropdown right-click context Notes Not sure how the forever block and rename button took this long to add, both seem like something I couldāve adressed earlier, butābetter late than never :P"}, {"post_id": 55346, "ts": "2026-08-27T03:01:18Z", "hours": 4.2003, "text": "Fleshing out the GUI Finally got a working prototype! Check it out at https://katnip.org Components added: Stage This was honestly a pretty hard part of the process. I am using tw-scaffolding, the core vm from TurboWarp. But it has no types, no docs, and the docs that exist are outdated. So I resorted to having Claude make a .d.ts file for me so I could fuzz my way through instead. This process wasnāt that bad once the functions were clear, and I hooked it up to my compilerāintentionally designed to output Uint8Array. Toolbar This was fun since I donāt know svelte yet that well. I had a state originally stored in my state.svelte.ts, but I figure out I could refactor and not need it. Then I just did some vm tomfoolery to ensure the threads stay open on pausing, and it was good to go. Terminal This is a super rudamentry approach. I plan to have an input method at some point, but we will see. Hopefully I implement a better technique, currently I just have a string array storing the logs. Makes it easy to make it stateful in svelte ig"}, {"post_id": 53486, "ts": "2026-08-24T01:41:19Z", "hours": 4.4464, "text": "Katnip GUI!!! Ahhhh im so excited. Iām building the gui for Katnip right nowābuilt off a small foundation done by a friend. Currently repo is private, but Iāll open it once my computerās not about to die and Iām on stable internet. Worked on the following things: Re-binding TextMate grammar tokens File editor popup TurboWarp scaffolding library for the running Pulling in my compiler through npm for compilation"}, {"post_id": 44833, "ts": "2026-08-10T21:09:24Z", "hours": 3.1028, "text": "Yikes. So this is a step I didnāt really want to take. I had to take away a part of the language that I always wanted to exist. The existence of the temp keyword. I mean this thing was literally covering my demos and other scripts in the docs and whatnot. But alas, it was not properly implemented, and I have no forseeable good solution to working it out. So its removed for the time being. Brighter note On the flipside, I did finalize and fully implement zip , enumerate , and range ! These functions now properly parse the list arguments and let tuple unpacking do its amazing goodness."}, {"post_id": 44242, "ts": "2026-08-09T21:24:44Z", "hours": 4.6969, "text": "Cooking up straight peak Great new features. Genuinely super cool. This new bout of progress that led to end-to-end compilation has given me so much motivation. Enums So, this already existed. But I realized that they are so much more than just a way to create states to check against, or store values in. Ever since I allowed scalar values to be the represenation of enum members, this has become more powerful than I realized. The key was implementing the type interpretation of an enum. I already was kind of doing this, but when you have an input param for a function, you can assign a type of enum FlowerType for instance. So the input only accepts FlowerType.x where x is the type. But thats long. Look at a function call: sniff(FlowerType.DAFFODIL, backup = FlowerType.ROSE); Instead, I like what typescript does with its discriminant types, allowing a type to represent a set of possible values. So, it was born. sniff(\"daffodil\", backup = \"rose\"); In order to use this, just assign values to your enum: enum FlowerType { DAFFODIL = \"daffodil\", ROSE = \"rose\", ... } STDLib improvements Prior, a lot of stuff including type casting was a mess. I just recently got this up and running, so it was hard to even try to think about this. Scratch only has a few types: round and angled and block. Thats it. And types really only apply to round/angled. So I implemented small blocks that allow scratchās oddities and allow you to tell the compiler to āshut upā. Want to get the string of a bool? No problem. looks.say( Str(var == 2) + \"apple\") And many many other use cases. Made some marginal improvements to the CLI to allow parsing Made some commands to run with command pallete for the vscode ext"}, {"post_id": 43872, "ts": "2026-08-09T10:04:26Z", "hours": 8.3239, "text": "Holy Guacamole Iām So Excited Insane progress over the past few days has occurred, in large part due to my travels on train, and my apparent ability to lock in when I start seeing things. Codegen Probably the most recognizable part of the project, Katnip can now generate scratch code. Blocks are being made, and complex patterns written in the IR are finally revealing themselves. It is so important that you look at the pictures, as the improvements made here are hard to put into words. Writing this part was arguably the most fun part of the entire project. This part was more scratch-like than any other part so far (āwell duh, its the closest stageā you might be saying. And youād be right.) IR Writing a majority did not come without its need for the IR to step up its game. I was quite fed up with 0 visual progress, so I jumped to codegen to boost my morale for the improvements made to the IR. This includes dict and list slicing, and a proper handling of booleans. Iām so excited"}, {"post_id": 41989, "ts": "2026-08-06T15:08:47Z", "hours": 9.1267, "text": "The light I can see it⦠(what is it?) ⦠the light at the end of the tunnel⦠(what are you talking about?) .. its almost here Yea no it aināt Though the project isnāt done, I will admit I am nearing the closing moments of the IR stage, with only 1 last hurdle to overcome before I can transpile projects beginning -> end . Hereās a small overview of whatās been done in the last two weeks (nah who am I kidding its all last night, I havenāt touched this in a bit) Procedures Katnip is scratch. Kinda. It transpiles to scratch. So it needs procedures. I took a giant bite out of the huge problem that is procedures. It is very complex to try and emulate a return system in a program that just doesnāt support it. Having taken a DSA class, this was a problem that I took to paper, and got the following solution: Stacks are beautiful. Let me elaborate. A stack is a structure that follows FiLo , or first-in, last-out . This is super important for returning from procedures, when considering the fact that a single variable will not be enough for systems when/if the function recurses. So this way, you push and pop on the stack to keep the order, and all return values are kept track of nicely! Mangled vars. Scope is a really hard concept to grasp, but even harder to emulate in a non-scoped language. For the most part, I want to keep Scratchās inherent scope-less design, in the sense that variables can exist in similar ways. But I do want scopes. So I take back the before-last sentence. To do this, I mangle vars, allowing scopes to exist, multiple instances of the same code to run, and to have variables not collide. For loops A smaller sections, but still cool. A for loop in scratch is a hiddenābut supportedāblock. You can only iterate a variable, lets call it x , from 1..y inclusive, where y is the max range. So for lists, this means lowering this: for (x, myList) { looks.say(x); } into this: for (x, listLength(myList)) { x = myList[x]; looks.say(x); } Additionally, if doing a range function like this: for (x, range(4, 10, 2)) { looks.say(x); } it lowers into this: for (x, 3) { x = x * 2 + 4; looks.say(x); }"}, {"post_id": 32049, "ts": "2026-07-20T22:44:57Z", "hours": 6.3789, "text": "Project depth increase Retrospectively, this probably shouldāve been multiple seperate posts. But I forgot. Again. Return statements For compiling to scratch, a variety of different appracohes have been done. Personally, these fall under a few distinct approaches: variable and list. Variable is simply setting a variable to the output, whereas a list is just a stack following LiFo rules. A variable should be used for single value, non-recursive functions. Itās pretty naive actually. The better alternative way is to use a stack, in which you push and pop from it. This way, you know the exact offset that correlates to the return value in recursive functions. The stack also allows for easy nesting of functions next to each other, like foo(1, 2) + foo(3, 4) , which is only possible in variable form with temporary vars. Vscode Autocomplete Less said here, but this was actually pretty simple. I just ran some regex to get all the identifiers, and then seperated them by type. Pretty rudamentry, but nice. Scratch Defs This was a huge first step in the IR design. Basically, I need a good way of storing metadata. Inventing whole new katnip syntax for this would: a. Look bad, but also b. Be horrible to implement So I wrote a typescript file that takes care of the json metadata, allowing only rudamentry tags and opcode to be stored in Katnip portion. Imports This was a fun portion to tackle. Because I am targeting 3 deployments: vsc, cli, and web, I need a design that covers all 3. A friend suggested callbacks. This allows me to assume the user will define a function that allows filesystem interactions, without me touching a thing. So all I did was bring in the code from the imported file, and ran compilation over it too. I pulled it in during the semantic analysis phase as that was the correct timing; after verifying the import statement; before the codegen. Structs Lots of deliberation occured here. It was very crucial to implement this, personally, because I use this type of feature (self-implemented, each time) in scratch. It always felt like a thing that I needed. I was torn between strided and parallel list storage for the pieces of it. Strided was cool, and was more efficient with space and project list bloat, but in the end parallel lists were just SO much cleaner."}, {"post_id": 29545, "ts": "2026-07-16T15:27:53Z", "hours": 5.7258, "text": "Bugfixes + webprep This will be a shorter devlog, because, though there is a lot of time logged, much of this was just troubleshooting the few things I was adding. Bugfixes: In the lexer, there existed some issues with my fsm, and the way I processed escaped characters Added some protections in the parser instead of semantic analysis so enforcement was throurough and non-manual Webprep: Removed external dependencies that only npm could run. This enabled the beginning of development of a web editor gui by my friend in Svelte Rewrote dependencies and npm-specific stuff to my npm-agnostic, using my own implementations (mostly just pico-colors tbh) The photo attached is it showing how another runtime (in this example, bun) can run the project that originally only worked with npm."}, {"post_id": 23783, "ts": "2026-07-06T22:36:35Z", "hours": 1.3239, "text": "Getting ready! Getting ready to ship the semantic analysis. General config stuff, npm registry, vsc ext, open vsx, all those fun things. https://www.npmjs.com/package/@katnip-org/compiler https://marketplace.visualstudio.com/items?itemName=Katnip-org.katnip-vscode https://open-vsx.org/extension/Katnip-org/katnip-vscode"}, {"post_id": 23347, "ts": "2026-07-06T07:47:42Z", "hours": 11.2783, "text": "Phase 2 complete (plus a lil extra) Phase 2 Function overloads This was an interesting task to take on. I had to first figure out how to match a functionās signiture to its call. I couldnāt simply check if a signiture existed or not, I had to check which variation it satisfied. This involved reworking the way I stored signitures, and allowed a single object to hold them all for a certain function name. This way, it was a lot cleaner and put together. STDLIB After working through the project, I realized that I needed a way to define the primitive blocks used in Scratch. I didnāt think adding them in as a Typescript object was elegant, and it definently wasnāt extendable. Instead, I opted to expand the language syntax to allow generics, and therefore enable modular and clean code in the form of a katnip-defined STDLib. Katnip LSP This section is less in depth, because the setup wasnāt as hard. I look up some docs, and most of it was drag and drop. There exists a single file for defining the regex expressions with which to color the words on the page, and then I connected my error reporter to the lspās standard error reporter to further enhance the experience. Every 300ms or so, it updates, and tells the user where the errors are, just like any other language supported in text editors."}, {"post_id": 18873, "ts": "2026-06-30T02:11:27Z", "hours": 4.7678, "text": "Almost completed phase 2 of the Semantic Analysis Today I built a wide variety of things. But 3 specific features. visit(node: StatementNode): void This function parses all of my nodes. It covers variable assignment, sprite declaration, etc etc. It has many jobs, including entering scopes, declaring bodies, and following each AST-node stack recursively. Some are left stubbed out, as I spent most of my time on #2: inferType(expression: ExpressionNode): InternalType This function is ~200loc. It covers a wide variety of cases, all pertaining to the type inference of an expression AST. It not only infers the type, but recursively builds an internal model of what the user has written. So a type of list<dict<num, str>> becomes the stored internal representation of: { kind : \" list \" , element : { kind : \" dict \" , key : { kind : \" primitive \" , name : \" num \" }, value : { kind : \" primitive \" , name : \" str \" } } } Though it is a lot more complex than that, thatās what it boils down to. And lots and lots and lots of error statements. InternalTypes itself I built a system that stores the type state, with a few extra helper functions: isAssignable and typeToString. The former recursively traces both types and ensures total match. This means that a variable of type to could be assigned to a value of type from . The latter is just a pretty-print function for pretty errors to see what types were being looked at/expected at certain parts of the code."}, {"post_id": 17300, "ts": "2026-06-28T00:56:35Z", "hours": 3.6656, "text": "Finished phase 1 of the Semantic Analysis Implemented Scope-Analysis checks. It can correctly identify and point out issues with scopes. It understands a variety of different scopes, from for-loops to functions to Sprites. Also added support for switch-statements. Importantly, I chose to force only 1 default, and force it to be only at the end. I also implemented true and false as a new Boolean primitive type, alongside a true return statement"}, {"post_id": 16732, "ts": "2026-06-27T05:49:23Z", "hours": 2.8311, "text": "2. Building Semantic Analysis This will be shorter, since most of what I say is better just written in code. The main idea is two passes: Hoist Bring procedures to the top to allow forward references. I explain why I did so above. Visit Acctually go through and validate. This is the main core bit of the semantic analysis portion. I am a little stuck at a desgin fork. Should I allow scripts inside no āSpriteā Scope to be there? Or should I force them into the Stage. Or do I error? Scratch-like behaviors tell me that it should go to stage, but that feels tacky and wrong. Can functions be public? I think so. Canāt be temp. Need to make start and end possibly null Make function be able to be public/private. Assumed private Everything at the root of a file should be invalidated. The space should be reserved for imports, functions, global stuff. Overall, I worked on building semantic analysis, at least the basic parts. I added variable decleration handling in scopes, and all of expressionstatement parsing."}, {"post_id": 16096, "ts": "2026-06-26T05:23:16Z", "hours": 1.1658, "text": "Semantic Analysis Planning Currently trying to think about how best to implement semantic analysis. I canāt lie, I am just getting back into this project, so I am rediscovering what I had previously written.I guess I have to start at the beginning. What is semantic analysis? Type Checking Operations need to be with compatible data types One note to myself here is that I have reserved functions because itās Scratch, so those need to have a designed store for their types2. Scope Resolution Make sure variables and functions are designed in the right parts of code I think this will cover imports too, but its worth thinking about Undeclared and redeclared variable checks Function Call Validation Iāll have to go back and check if I accidentally covered that in the parser, but I believe this should go here Flow Control Switch case validations, make sure fall through keywords and default cases etc. are all in valid places5. Reserved Keyword Check if variable and functions defined are conflicting with Katnipās First Iām going to do symbol collection and scope resolution. One important nuance I discovered was whether or not to enforce scope declaration. Should there be an inferred scope? In Scratch, this inferred scope is mostly āPublicā, as variables are shared across sprites. However, I think I am going to flip this, as it feels wrong to teach the user that variables work across sprites. Thought dump: āPrivateā kward canāt be used at root level (stage). Canāt be used as modifier for sprite either, tho neither should any modifier. Scope-less definitions are okay. Scratch does this, just opposite of me. I am going to raise function declarations so that they can be referenced before making. Requires 2 passes, but seems simpler and more intuitive in my opinion. I am going to allow function overloading. It seems useful, and I like the way Java does it."}]...
|
Title: Katnip by @b1j2754 | Stardance
Devlogs:
Se Title: Katnip by @b1j2754 | Stardance
Devlogs:
Semantic Analysis Planning Currently trying to think about how best to implement semantic analysis. I canāt lie, I am just getting back into this project, so I am rediscovering what I had previously written.I guess I have to start at the beginning. What is semantic analysis? Type Checking Operations need to be with compatible data types One note to myself here is that I have reserved functions because itās Scratch, so those need to have a designed store for their types2. Scope Resolution Make sure variables and functions are designed in the right parts of code I think this will cover imports too, but its worth thinking about Undeclared and redeclared variable checks Function Call Validation Iāll have to go back and check if I accidentally covered that in the parser, but I believe this should go here Flow Control Switch case validations, make sure fall through keywords and default cases etc. are all in valid places5. Reserved Keyword Check if variable and functions defined are conflicting with Katnipās First Iām going to do symbol collection and scope resolution. One important nuance I discovered was whether or not to enforce scope declaration. Should there be an inferred scope? In Scratch, this inferred scope is mostly āPublicā, as variables are shared across sprites. However, I think I am going to flip this, as it feels wrong to teach the user that variables work across sprites. Thought dump: āPrivateā kward canāt be used at root level (stage). Canāt be used as modifier for sprite either, tho neither should any modifier. Scope-less definitions are okay. Scratch does this, just opposite of me. I am going to raise function declarations so that they can be referenced before making. Requires 2 passes, but seems simpler and more intuitive in my opinion. I am going to allow function overloading. It seems useful, and I like the way Java does it.
2. Building Semantic Analysis This will be shorter, since most of what I say is better just written in code. The main idea is two passes: Hoist Bring procedures to the top to allow forward references. I explain why I did so above. Visit Acctually go through and validate. This is the main core bit of the semantic analysis portion. I am a little stuck at a desgin fork. Should I allow scripts inside no āSpriteā Scope to be there? Or should I force them into the Stage. Or do I error? Scratch-like behaviors tell me that it should go to stage, but that feels tacky and wrong. Can functions be public? I think so. Canāt be temp. Need to make start and end possibly null Make function be able to be public/private. Assumed private Everything at the root of a file should be invalidated. The space should be reserved for imports, functions, global stuff. Overall, I worked on building semantic analysis, at least the basic parts. I added variable decleration handling in scopes, and all of expressionstatement parsing.
Finished phase 1 of the Semantic Analysis Implemented Scope-Analysis checks. It can correctly identify and point out issues with scopes. It understands a variety of different scopes, from for-loops to functions to Sprites. Also added support for switch-statements. Importantly, I chose to force only 1 default, and force it to be only at the end. I also implemented true and false as a new Boolean primitive type, alongside a true return statement
Almost completed phase 2 of the Semantic Analysis Today I built a wide variety of things. But 3 specific features. visit(node: StatementNode): void This function parses all of my nodes. It covers variable assignment, sprite declaration, etc etc. It has many jobs, including entering scopes, declaring bodies, and following each AST-node stack recursively. Some are left stubbed out, as I spent most of my time on #2: inferType(expression: ExpressionNode): InternalType This function is ~200loc. It covers a wide variety of cases, all pertaining to the type inference of an expression AST. It not only infers the type, but recursively builds an internal model of what the user has written. So a type of list<dict<num, str>> becomes the stored internal representation of: { kind : " list " , element : { kind : " dict " , key : { kind : " primitive " , name : " num " }, value : { kind : " primitive " , name : " str " } } } Though it is a lot more complex than that, thatās what it boils down to. And lots and lots and lots of error statements. InternalTypes itself I built a system that stores the type state, with a few extra helper functions: isAssignable and typeToString. The former recursively traces both types and ensures total match. This means that a variable of type to could be assigned to a value of type from . The latter is just a pretty-print function for pretty errors to see what types were being looked at/expected at certain parts of the code.
Phase 2 complete (plus a lil extra) Phase 2 Function overloads This was an interesting task to take on. I had to first figure out how to match a functionās signiture to its call. I couldnāt simply check if a signiture existed or not, I had to check which variation it satisfied. This involved reworking the way I stored signitures, and allowed a single object to hold them all for a certain function name. This way, it was a lot cleaner and put together. STDLIB After working through the project, I realized that I needed a way to define the primitive blocks used in Scratch. I didnāt think adding them in as a Typescript object was elegant, and it definently wasnāt extendable. Instead, I opted to expand the language syntax to allow generics, and therefore enable modular and clean code in the form of a katnip-defined STDLib. Katnip LSP This section is less in depth, because the setup wasnāt as hard. I look up some docs, and most of it was drag and drop. There exists a single file for defining the regex expressions with which to color the words on the page, and then I connected my error reporter to the lspās standard error reporter to further enhance the experience. Every 300ms or so, it updates, and tells the user where the errors are, just like any other language supported in text editors.
Getting ready! Getting ready to ship the semantic analysis. General config stuff, npm registry, vsc ext, open vsx, all those fun things. https://www.npmjs.com/package/@katnip-org/compiler https://marketplace.visualstudio.com/items?itemName=Katnip-org.katnip-vscode https://open-vsx.org/extension/Katnip-org/katnip-vscode
Bugfixes + webprep This will be a shorter devlog, because, though there is a lot of time logged, much of this was just troubleshooting the few things I was adding. Bugfixes: In the lexer, there existed some issues with my fsm, and the way I processed escaped characters Added some protections in the parser instead of semantic analysis so enforcement was throurough and non-manual Webprep: Removed external dependencies that only npm could run. This enabled the beginning of development of a web editor gui by my friend in Svelte Rewrote dependencies and npm-specific stuff to my npm-agnostic, using my own implementations (mostly just pico-colors tbh) The photo attached is it showing how another runtime (in this example, bun) can run the project that originally only worked with npm.
Project depth increase Retrospectively, this probably shouldāve been multiple seperate posts. But I forgot. Again. Return statements For compiling to scratch, a variety of different appracohes have been done. Personally, these fall under a few distinct approaches: variable and list. Variable is simply setting a variable to the output, whereas a list is just a stack following LiFo rules. A variable should be used for single value, non-recursive functions. Itās pretty naive actually. The better alternative way is to use a stack, in which you push and pop from it. This way, you know the exact offset that correlates to the return value in recursive functions. The stack also allows for easy nesting of functions next to each other, like foo(1, 2) + foo(3, 4) , which is only possible in variable form with temporary vars. Vscode Autocomplete Less said here, but this was actually pretty simple. I just ran some regex to get all the identifiers, and then seperated them by type. Pretty rudamentry, but nice. Scratch Defs This was a huge first step in the IR design. Basically, I need a good way of storing metadata. Inventing whole new katnip syntax for this would: a. Look bad, but also b. Be horrible to implement So I wrote a typescript file that takes care of the json metadata, allowing only rudamentry tags and opcode to be stored in Katnip portion. Imports This was a fun portion to tackle. Because I am targeting 3 deployments: vsc, cli, and web, I need a design that covers all 3. A friend suggested callbacks. This allows me to assume the user will define a function that allows filesystem interactions, without me touching a thing. So all I did was bring in the code from the imported file, and ran compilation over it too. I pulled it in during the semantic analysis phase as that was the correct timing; after verifying the import statement; before the codegen. Structs Lots of deliberation occured here. It was very crucial to implement this, personally, because I use this type of feature (self-implemented, each time) in scratch. It always felt like a thing that I needed. I was torn between strided and parallel list storage for the pieces of it. Strided was cool, and was more efficient with space and project list bloat, but in the end parallel lists were just SO much cleaner.
The light I can see it⦠(what is it?) ⦠the light at the end of the tunnel⦠(what are you talking about?) .. its almost here Yea no it aināt Though the project isnāt done, I will admit I am nearing the closing moments of the IR stage, with only 1 last hurdle to overcome before I can transpile projects beginning -> end . Hereās a small overview of whatās been done in the last two weeks (nah who am I kidding its all last night, I havenāt touched this in a bit) Procedures Katnip is scratch. Kinda. It transpiles to scratch. So it needs procedures. I took a giant bite out of the huge problem that is procedures. It is very complex to try and emulate a return system in a program that just doesnāt support it. Having taken a DSA class, this was a problem that I took to paper, and got the following solution: Stacks are beautiful. Let me elaborate. A stack is a structure that follows FiLo , or first-in, last-out . This is super important for returning from procedures, when considering the fact that a single variable will not be enough for systems when/if the function recurses. So this way, you push and pop on the stack to keep the order, and all return values are kept track of nicely! Mangled vars. Scope is a really hard concept to grasp, but even harder to emulate in a non-scoped language. For the most part, I want to keep Scratchās inherent scope-less design, in the sense that variables can exist in similar ways. But I do want scopes. So I take back the before-last sentence. To do this, I mangle vars, allowing scopes to exist, multiple instances of the same code to run, and to have variables not collide. For loops A smaller sections, but still cool. A for loop in scratch is a hiddenābut supportedāblock. You can only iterate a variable, lets call it x , from 1..y inclusive, where y is the max range. So for lists, this means lowering this: for (x, myList) { looks.say(x); } into this: for (x, listLength(myList)) { x = myList[x]; looks.say(x); } Additionally, if doing a range function like this: for (x, range(4, 10, 2)) { looks.say(x); } it lowers into this: for (x, 3) { x = x * 2 + 4; looks.say(x); }
Holy Guacamole Iām So Excited Insane progress over the past few days has occurred, in large part due to my travels on train, and my apparent ability to lock in when I start seeing things. Codegen Probably the most recognizable part of the project, Katnip can now generate scratch code. Blocks are being made, and complex patterns written in the IR are finally revealing themselves. It is so important that you look at the pictures, as the improvements made here are hard to put into words. Writing this part was arguably the most fun part of the entire project. This part was more scratch-like than any other part so far (āwell duh, its the closest stageā you might be saying. And youād be right.) IR Writing a majority did not come without its need for the IR to step up its game. I was quite fed up with 0 visual progress, so I jumped to codegen to boost my morale for the improvements made to the IR. This includes dict and list slicing, and a proper handling of booleans. Iām so excited
Cooking up straight peak Great new features. Genuinely super cool. This new bout of progress that led to end-to-end compilation has given me so much motivation. Enums So, this already existed. But I realized that they are so much more than just a way to create states to check against, or store values in. Ever since I allowed scalar values to be the represenation of enum members, this has become more powerful than I realized. The key was implementing the type interpretation of an enum. I already was kind of doing this, but when you have an input param for a function, you can assign a type of enum FlowerType for instance. So the input only accepts FlowerType.x where x is the type. But thats long. Look at a function call: sniff(FlowerType.DAFFODIL, backup = FlowerType.ROSE); Instead, I like what typescript does with its discriminant types, allowing a type to represent a set of possible values. So, it was born. sniff("daffodil", backup = "rose"); In order to use this, just assign values to your enum: enum FlowerType { DAFFODIL = "daffodil", ROSE = "rose", ... } STDLib improvements Prior, a lot of stuff including type casting was a mess. I just recently got this up and running, so it was hard to even try to think about this. Scratch only has a few types: round and angled and block. Thats it. And types really only apply to round/angled. So I implemented small blocks that allow scratchās oddities and allow you to tell the compiler to āshut upā. Want to get the string of a bool? No problem. looks.say( Str(var == 2) + "apple") And many many other use cases. Made some marginal improvements to the CLI to allow parsing Made some commands to run with command pallete for the vscode ext
Yikes. So this is a step I didnāt really want to take. I had to take away a part of the language that I always wanted to exist. The existence of the temp keyword. I mean this thing was literally covering my demos and other scripts in the docs and whatnot. But alas, it was not properly implemented, and I have no forseeable good solution to working it out. So its removed for the time being. Brighter note On the flipside, I did finalize and fully implement zip , enumerate , and range ! These functions now properly parse the list arguments and let tuple unpacking do its amazing goodness.
Katnip GUI!!! Ahhhh im so excited. Iām building the gui for Katnip right nowābuilt off a small foundation done by a friend. Currently repo is private, but Iāll open it once my computerās not about to die and Iām on stable internet. Worked on the following things: Re-binding TextMate grammar tokens File editor popup TurboWarp scaffolding library for the running Pulling in my compiler through npm for compilation
Fleshing out the GUI Finally got a working prototype! Check it out at https://katnip.org Components added: Stage This was honestly a pretty hard part of the process. I am using tw-scaffolding, the core vm from TurboWarp. But it has no types, no docs, and the docs that exist are outdated. So I resorted to having Claude make a .d.ts file for me so I could fuzz my way through instead. This process wasnāt that bad once the functions were clear, and I hooked it up to my compilerāintentionally designed to output Uint8Array. Toolbar This was fun since I donāt know svelte yet that well. I had a state originally stored in my state.svelte.ts, but I figure out I could refactor and not need it. Then I just did some vm tomfoolery to ensure the threads stay open on pausing, and it was good to go. Terminal This is a super rudamentry approach. I plan to have an input method at some point, but we will see. Hopefully I implement a better technique, currently I just have a string array storing the logs. Makes it easy to make it stateful in svelte ig
Costumes + Sounds! Finally, after a long time of putting this off, Katnip finally has syntax to import sounds and assets to use for your projects! stage { costume "./sky.svg"; events.onFlag() { looks.switchBackdrop("sky"); } } sprite Cat { costume "./cat.svg" as idle; costume "./cat-blink.svg" as blink; sound "./meow.wav"; events.onFlag() { motion.goTo(-100, 0); looks.switchCostume("idle"); looks.say("costumes + sounds work", 2); forever { wait(0.5); looks.nextCostume(); } } } Changelog Compiler changes Added costume and sound keywords Added stage keyword for stage override (previously auto-genād) Added forever keyword (cuz I forgot to add it somehow) Website changes Added upload icon for uploading files Added support for the new costume and sound required fs callbacks Added ārenameā in dropdown right-click context Notes Not sure how the forever block and rename button took this long to add, both seem like something I couldāve adressed earlier, butābetter late than never :P
Sigma Peak Editor Frfr The editor is turning out beautifully . Like I love it so far. Tons and tons of improvements to mainly the editor, but a few pivotal improvements to the compiler itself. Website / GUI Improvements File uploads ā no longer are your costumes handwritten svgs :P AND you can import .knip files! QOL improvements ā draggable files, auto-focus editor on openning of website Terminal prettification STAGE BUTTONS! ā start / pause / stop + TurboMode Flag functionality rework click => compile + run shift+click => run without compiling Settings file actually does something Compiler improvements Costumes implementation (new syntax!) Forever block + more math blocks! Zip compression level compiler flag
Ships:
I made the semantic analysis portion to a custom coding language for scratch. It aims to bridge the gap for kids between code blocks and real scripting. It has full type safety, and a variety of different language components, creating a rich and immersive transition from scratch into the real world of programming. It has both simple syntax but also allows a high skill ceiling with more complex syntax. I struggled a lot, spending hours on end chatting with programmers I am friends with, crafting a lot of these language decisions in late night chats. Every single step has been deliberately taken. I am proud of the consistency and quality of the code I wrote. I feel proud to have made this section, and hope that by shipping (and hopefully the community receiving it well) I will be able to continue forwards to finishing the IR and code gen. Since there isnāt a best way to use a programming language, I suggest both installing the npm package and the vscode extension (search āKatnipā in the store). This will give you in-editor syntax highlighting and typechecking. Feel free to use the cli for lexing, parsing, and type checking.
Katnip. For real this time. From text -> blocks. It now exists. Fully type-checked. Powerful enums. Function returns. And it all compiles into scratch. Over the past 36 hours I have worked on making the IR and Codegen layers come to life. From working with stacks, and other more complex algorithms, hoisting, scopes, and everything in between, It now compiles. Katnip is a language designed to not just be a surragate for scratch syntax, its supposed to fix it, and offer a scripting alternative. Gone are the days of wrong data types, debugging random lines, Katnip can do that for you. Types and bugs are well defined, and easy to find. To use this project, I currently do not have a website, but install it through NPM: https://www.npmjs.com/package/@katnip-org/compiler npm i @katnip-org/compiler Happy coding :P...
|
1792842974.0866675
|
1792929374.0866675
|
|
26037
|
Geomatrix by @muntean_andrew | Stardance
|
muntean_andrew
|
2
|
91.0
|
1037
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T09:44:15Z", "hours": 29.0, "multiplier": 13.05, "payout": 462, "blessing": "neutral", "text": "What did you make? What was challenging? What are you proud of? I updated my multiplayer game where interesting geometrical shapes fight each other to dominate the world of maths called Geomatrix. It is built fully in C++ with ENet being used for the client-server communication over UDP and Raylib being used to display graphics on the client side. In Geomatrix different shapes have their own strengths and weaknesses and players have to leverage them in the best way possible so they can win. It was quite challenging trying to stay consistent and not get overwhelmed by the loads of things I could add to the game as my time is limited and I easily ended up in a rabbit-hole about AI models that could play my game, which I didnāt end up making. I am proud that even though I wouldnāt say this is the most sophisticated piece of software, I would say itās pretty rudimentary compared to other games but Iāve come to expect reliability and modularity from it, which really came in handy when adding the maps and shapes. Even though there were some minor bugs here and there with the new maps and shapes at the beginning, it all ended up working with very small tweaks. What should people know so they can test your project? To test the project follow these steps: Go to releases section of the GitHub repository. Download the Client and Server executables. Download the āmapsā folder from the root directory of the repository. Place the Client and Server executables and the āmapsā folder inside 1 directory. Start the Server and then the Client. For multiple clients just spin up new instances of the Client.", "repo": "https://github.com/AliendsOG/Geometrical-Brawl-Stars", "demo": "https://github.com/AliendsOG/Geometrical-Brawl-Stars/releases/tag/Pre-alpha"}, {"ship_num": 2, "ts": "2026-07-08T15:02:01Z", "hours": 62.0, "multiplier": 10.25, "payout": 575, "blessing": "neutral", "text": "What did you make? What was challenging? What are you proud of? I made a multiplayer game where interesting geometrical shapes fight each other to dominate the world of maths called Geomatrix. It is built fully in C++ with ENet being used for the client-server communication over UDP and Raylib being used to display graphics on the client side. In Geomatrix different shapes have their own strengths and weaknesses and players have to leverage them in the best way possible so they can win. It was quite challenging getting the client to render and interpolate the packets sent from the server because without taking into account the time difference the players might overshoot, and because the projectiles didnāt have an id at the time, they would flicker in positions where they shouldnāt have been. I am very proud of my server and the client-server communication because were the most reliable and straightforward things during the development of this project, even though I firstly started to build the server, the collision simulation, aiming, map and shape changes were very intuitive which proved to be extremely reliable. This reliability of the server really did come in handy when debugging the numerous bugs of the client, but most of the bugs that I found in the client are now fixed, but if someone finds more, I wouldnāt be surprised and you can contact me and describe the issue. What should people know so they can test your project? To test the project follow these steps: Go to releases section of the GitHub repository. Download the Client and Server executables. Download the āmapsā folder from the root directory of the repository. Place the Client and Server executables and the āmapsā folder inside 1 directory. Start the Server and then the Client. For multiple clients just spin up new instances of the Client. It is only on Windows at the moment, but in a future update it will be cross platform, even on mobile.", "repo": "https://github.com/AliendsOG/Geometrical-Brawl-Stars", "demo": "https://github.com/AliendsOG/Geometrical-Brawl-Stars/releases/tag/Pre-alpha"}]...
|
[{"post_id": 49424, "ts": "202 [{"post_id": 49424, "ts": "2026-08-18T08:07:01Z", "hours": 2.0125, "text": "I added 2 new shapes that will fight for supremacy in the math world. They are the Astroid and the Reuleaux Triangle. The Astroid is more of a sniper with long range and lots of damage, but smaller ammo. The Reuleaux Triangle is more of a tank with a shorter range and smaller speed but tons of ammo and damage and also loads of health. Also I added 2 new maps, one is a team mode map and another is a PVE map in which each shape has to fight to be the only one standing at the end of the match."}, {"post_id": 49068, "ts": "2026-08-17T17:43:39Z", "hours": 1.975, "text": "I added the aiming line overlay to make it easier for players to see where they are aiming. It was actually a little bit of spaghetti code involved in the making of this as I use a function to draw the match and another function calculates the last point of the line and returns it but I made it work and it does so beautifully and reliably. I am thinking of maybe adding 1 or 2 more shapes and 1 or 2 new maps and Iād say the project is ready for another ship!"}, {"post_id": 45690, "ts": "2026-08-12T10:43:13Z", "hours": 3.9244, "text": "After a bit of a pause on this project because I wanted to clear my mind a little and do the Hackpad hardware project I returned and made the Game Over screen a bit nicer and so everything is beginning to tie together. I wrote Reals and Quanta so that new users will know what those icons mean. In addition I redesigned the map selection screen to show a preview of the map before selecting it. I am also thinking of adding an aim overview and the players just hold the arrow keys or move the right joystick on the controller."}, {"post_id": 35801, "ts": "2026-07-27T13:53:01Z", "hours": 4.3969, "text": "These past days I am trying to figure out how to implement the IPC (inter process communication) between Python (where the AI model will be made) and the C++ āmegaclientā that acts as 10 clients that connect to the game server. From what Iāve seen one of the easiest ways to implement it is through binary standard streams because Iāll have to move 14KB of data per frame, and because I will unlock the speed of the server physics simulation, it will be like thousands of frames per second, which will add up pretty fast. But the problem isnāt the actual size of data, but the latency, if I would just save it into a txt file my SSD will be hit with thousands of requests every second, so keeping everything in the RAM is why I chose to try and implement the IPC through binary standard streams. But I didnāt yet get it working and my brain hurts a little cause for the first time since the beginning of this project I have absolutely no idea what to do or how to actually solve this issue and I kinda feel lost and a bit demotivated, thatās why this week I managed a bit over 1hr of coding per day. But at the same time Iāve been watching more and more videos about how to build AI models and for the first version Iāll build a standard Backprop model as Iāve read in a paper that Predictive Coding approximates Backprop. The problem is this will have to come after the IPC is implemented successfully, which currently it is not. If anyone sees and reads this I would happily accept any suggestions on how to implement the IPC between Python and C++."}, {"post_id": 31456, "ts": "2026-07-19T20:32:11Z", "hours": 3.9214, "text": "Iām starting the development of an Predictive Coding AI model that would play my game as a bot. Iāll make it in Python so I can learn a new language and as it is the standard language used in AI development. Currently Iām building a kind of āmega clientā which acts as 10 client that connect to the server and it displays the whole map on the screen with all the players. After this I will link the Python project with the āMega Clientā through standard streams as ENet on Python isnāt really a modern supported thing and this will cut down network bandwidth and I think will decrease the CPU overhead while the model trains. When the link between the Python and C++ program is finished then Iāll start the development of the actual AI model, which will involve reading through some scientific papers on the topic. Right now I have 2 of them bookmarked, but you never know when something new may pop up."}, {"post_id": 30359, "ts": "2026-07-17T20:44:31Z", "hours": 3.7181, "text": "I designed kinda a rough sketch of how the icons for the game currencies could look like. The sine waves are drawn in Raylib and they are static, as well as the circle and the border. The āRā and āiā in the reals and imaginariesā icon are font characters. Initially I thought about drawing everything, but then I saw a video about game optimization and that itās very inefficient for the GPU to render small triangles, which eliminated the drawing in Raylib option, and also it would have been a hassle and a half. So this left 2 choices, load the R and i as a font or an image. I chose to load them as fonts because this allows better scalability, as a font isnāt made of pixels. But I didnāt know how much time I will spend making the font implementation to work. First I had to find the fonts that had my desired characters, which was a little tedious having to download or scroll through the list of characters for each font. For this I had to install Font Forge so I could view every character in the font. After that I had to create a new font and to replace the i and R characters of the font with my special characters and then hook it up to Raylib. After loading up my special font I had to tell Raylib whicch characters to import, and I had to measure the characters visual height so I could align them properly in the icon. Each icon is drawn using their specific function, but I am thinking of combining them into one function in the future."}, {"post_id": 29455, "ts": "2026-07-16T12:35:42Z", "hours": 7.1175, "text": "Currently Iām focusing on UI refinement, currency introduction and ātrophyā road implementation. I introduced to the game: Reals - the basic currency of the game (kinda like coins in any other game), you win them after a match and they can be used to buy shapes and upgrades. If it wasnāt obvious, the name comes from the set of real numbers. Imaginaries - they are the āpremiumā currency in the game which can be used to buy reals. At the moment the game doesnāt really use them or display them.š
Itās a work in progress so yeah. Quanta - these are the equivalent of trophies, they would determine the skill of the player. You gain then winning matches and also lose them losing matches. At the end of the match (or when the player is eliminated) the server transmits a packet in which is specified the amount of reals and quanta received by the player. At the moment the amount of currency a player has is stored in a txt file in the game directory for simplicity. In the future I think that maybe it could be encrypted somehow with a key given by the server so the player wonāt just be able to modify it. In addition to this, I changed the UI for the main screen, the shape selection screen and introduces the ability to see the shape, itās level, stats, and to upgrade it. Iāll be honest that I took a bit of āinspirationā from the Brawl Stars layout, but tried to change some things, and my UI is still not in itās final form. Everything is done in Raylib, I still donāt use any PNG textures because I want everything to be vectors cause they are not limited by resolution (which maybe is worse for optimisation) and frankly because I donāt know how and Iām a little afraid to try. š
The settings and map selection menu still remained the same, maybe Iāll work on the map selection menu but idk about the settings menu cause it technically works and as the saying goes āif it works, donāt touch itā, and Iām a little afraid of touching it. Also Iām thinking of introducing a scale variable for text, like the UI elements are defined by the width and height of the window, but the font size of the text is it plain pixels, so Iām thinking of making the text scale based on how it looks at 1080p and if the resolution is lower or higher the font size will multiply with the scale that will be the players resolution height divided by 1080. After the UI layout is ādoneā, which hopefully will happen till the end of the week, Iām starting the development and training of the Predictive Coding AI model that will play my game as a bot. P.S.: Iām trying to make longer devlogs as that was suggested numerous times in the reviews of the first ship."}, {"post_id": 25822, "ts": "2026-07-10T09:05:29Z", "hours": 2.4131, "text": "Added Linux support!!!"}, {"post_id": 24592, "ts": "2026-07-08T09:25:14Z", "hours": 1.1092, "text": "Finally got the settings to work, but the user has to press Enter twice for the change to happen, but hey, itās not a bug, itās a feature. š
Iām getting ready to ship this first alpha version of Geomatrix. It has been such a journey managing UDP packet types, the server physics simulations, the client interpolation and the Raylib rendering pipeline. But at the end of the day, it was fun, and I learned a ton about client-server communication and the massive optimizations you can unlock when you find the right architectural abstractions."}, {"post_id": 24359, "ts": "2026-07-07T21:27:49Z", "hours": 4.04, "text": "Trying to get the settings menu to work. Firstly I made a general menu class, then I added to it a submenu vector, and I got it to work when I was only focused on getting the resolution to change. But then I tried to implement the frame rate setting and so the class had to be redesigned and now, letās say itās halfway there. PS: the total time across the 2 Hackatime projects (server and client) linked to this Stardance project is 71hrs."}, {"post_id": 23794, "ts": "2026-07-06T22:53:58Z", "hours": 4.8689, "text": "Implemented settings and a save file. Now whenever the user reopens the game it remembers their last used shape and map so they donāt have to reselect them. The settings UI is only partially made. P.S.: Hackatime shows the 2 linked project times to be 31hrs 55min and 35hrs 8 min respectively, but the total somehow is 57hrs 19 min."}, {"post_id": 23073, "ts": "2026-07-05T20:13:55Z", "hours": 6.6294, "text": "Added support for new shapes and levels. Different shapes have different stats and some of them can be upgraded with a leveling up system. Also added a sine wave animation to a tile."}, {"post_id": 22465, "ts": "2026-07-04T22:45:53Z", "hours": 4.1553, "text": "Introduced a new tech inspired design into the game. Now players that are in a ābushā get invisible. Made the game modular and added support for multiple maps on the server side. P.S.: In Hackatime I have 54 hours logged on this project, 8 more than Stardance logged, this discrepancy appeared 2-3 devlogs ago and I asked on the stardance-help chat about it, but I got no response."}, {"post_id": 21790, "ts": "2026-07-03T22:04:37Z", "hours": 5.9508, "text": "Added a title screen, lobby waiting screen and a game over screen"}, {"post_id": 21117, "ts": "2026-07-02T22:17:01Z", "hours": 1.6061, "text": "Now users can resize the window and the game scales perfectly. There is now a main menu and a game over screen is in the works."}, {"post_id": 20365, "ts": "2026-07-01T22:57:07Z", "hours": 10.1514, "text": "Iāve implemented a āfog of warā so the server only sends to the player the data about the other players that they can actually see. I made the camera follow the current player. The game now uses interpolation to smooth out the data packets coming from the server, so players can enjoy smoother gameplay. Also the tick rate was increased to 69Hz. The network packets are now dynamic, they do not have a fixed size, this saves network bandwidth. What I wanna do next: create some basic UI; create a basic game over screen; introduce new shapes as playable ācharactersā; maybe introduce a trophy system"}, {"post_id": 18320, "ts": "2026-06-29T12:56:54Z", "hours": 16.1739, "text": "Iāve implemented shooting and health in the game. Next I have to add a reload and ammo count. After that I could start to focus onto implementing some interpolation in the player and bulletās movement to make it move at 144FPS not at the 30Hz tick rate of the server."}, {"post_id": 15942, "ts": "2026-06-25T22:02:49Z", "hours": 7.7833, "text": "Test the server side movement functionality"}]...
|
Title: Geomatrix by @muntean_andrew | Stardance
D Title: Geomatrix by @muntean_andrew | Stardance
Devlogs:
Test the server side movement functionality
Iāve implemented shooting and health in the game. Next I have to add a reload and ammo count. After that I could start to focus onto implementing some interpolation in the player and bulletās movement to make it move at 144FPS not at the 30Hz tick rate of the server.
Iāve implemented a āfog of warā so the server only sends to the player the data about the other players that they can actually see. I made the camera follow the current player. The game now uses interpolation to smooth out the data packets coming from the server, so players can enjoy smoother gameplay. Also the tick rate was increased to 69Hz. The network packets are now dynamic, they do not have a fixed size, this saves network bandwidth. What I wanna do next: create some basic UI; create a basic game over screen; introduce new shapes as playable ācharactersā; maybe introduce a trophy system
Now users can resize the window and the game scales perfectly. There is now a main menu and a game over screen is in the works.
Added a title screen, lobby waiting screen and a game over screen
Introduced a new tech inspired design into the game. Now players that are in a ābushā get invisible. Made the game modular and added support for multiple maps on the server side. P.S.: In Hackatime I have 54 hours logged on this project, 8 more than Stardance logged, this discrepancy appeared 2-3 devlogs ago and I asked on the stardance-help chat about it, but I got no response.
Added support for new shapes and levels. Different shapes have different stats and some of them can be upgraded with a leveling up system. Also added a sine wave animation to a tile.
Implemented settings and a save file. Now whenever the user reopens the game it remembers their last used shape and map so they donāt have to reselect them. The settings UI is only partially made. P.S.: Hackatime shows the 2 linked project times to be 31hrs 55min and 35hrs 8 min respectively, but the total somehow is 57hrs 19 min.
Trying to get the settings menu to work. Firstly I made a general menu class, then I added to it a submenu vector, and I got it to work when I was only focused on getting the resolution to change. But then I tried to implement the frame rate setting and so the class had to be redesigned and now, letās say itās halfway there. PS: the total time across the 2 Hackatime projects (server and client) linked to this Stardance project is 71hrs.
Finally got the settings to work, but the user has to press Enter twice for the change to happen, but hey, itās not a bug, itās a feature. š
Iām getting ready to ship this first alpha version of Geomatrix. It has been such a journey managing UDP packet types, the server physics simulations, the client interpolation and the Raylib rendering pipeline. But at the end of the day, it was fun, and I learned a ton about client-server communication and the massive optimizations you can unlock when you find the right architectural abstractions.
Added Linux support!!!
Currently Iām focusing on UI refinement, currency introduction and ātrophyā road implementation. I introduced to the game: Reals - the basic currency of the game (kinda like coins in any other game), you win them after a match and they can be used to buy shapes and upgrades. If it wasnāt obvious, the name comes from the set of real numbers. Imaginaries - they are the āpremiumā currency in the game which can be used to buy reals. At the moment the game doesnāt really use them or display them.š
Itās a work in progress so yeah. Quanta - these are the equivalent of trophies, they would determine the skill of the player. You gain then winning matches and also lose them losing matches. At the end of the match (or when the player is eliminated) the server transmits a packet in which is specified the amount of reals and quanta received by the player. At the moment the amount of currency a player has is stored in a txt file in the game directory for simplicity. In the future I think that maybe it could be encrypted somehow with a key given by the server so the player wonāt just be able to modify it. In addition to this, I changed the UI for the main screen, the shape selection screen and introduces the ability to see the shape, itās level, stats, and to upgrade it. Iāll be honest that I took a bit of āinspirationā from the Brawl Stars layout, but tried to change some things, and my UI is still not in itās final form. Everything is done in Raylib, I still donāt use any PNG textures because I want everything to be vectors cause they are not limited by resolution (which maybe is worse for optimisation) and frankly because I donāt know how and Iām a little afraid to try. š
The settings and map selection menu still remained the same, maybe Iāll work on the map selection menu but idk about the settings menu cause it technically works and as the saying goes āif it works, donāt touch itā, and Iām a little afraid of touching it. Also Iām thinking of introducing a scale variable for text, like the UI elements are defined by the width and height of the window, but the font size of the text is it plain pixels, so Iām thinking of making the text scale based on how it looks at 1080p and if the resolution is lower or higher the font size will multiply with the scale that will be the players resolution height divided by 1080. After the UI layout is ādoneā, which hopefully will happen till the end of the week, Iām starting the development and training of the Predictive Coding AI model that will play my game as a bot. P.S.: Iām trying to make longer devlogs as that was suggested numerous times in the reviews of the first ship.
I designed kinda a rough sketch of how the icons for the game currencies could look like. The sine waves are drawn in Raylib and they are static, as well as the circle and the border. The āRā and āiā in the reals and imaginariesā icon are font characters. Initially I thought about drawing everything, but then I saw a video about game optimization and that itās very inefficient for the GPU to render small triangles, which eliminated the drawing in Raylib option, and also it would have been a hassle and a half. So this left 2 choices, load the R and i as a font or an image. I chose to load them as fonts because this allows better scalability, as a font isnāt made of pixels. But I didnāt know how much time I will spend making the font implementation to work. First I had to find the fonts that had my desired characters, which was a little tedious having to download or scroll through the list of characters for each font. For this I had to install Font Forge so I could view every character in the font. After that I had to create a new font and to replace the i and R characters of the font with my special characters and then hook it up to Raylib. After loading up my special font I had to tell Raylib whicch characters to import, and I had to measure the characters visual height so I could align them properly in the icon. Each icon is drawn using their specific function, but I am thinking of combining them into one function in the future.
Iām starting the development of an Predictive Coding AI model that would play my game as a bot. Iāll make it in Python so I can learn a new language and as it is the standard language used in AI development. Currently Iām building a kind of āmega clientā which acts as 10 client that connect to the server and it displays the whole map on the screen with all the players. After this I will link the Python project with the āMega Clientā through standard streams as ENet on Python isnāt really a modern supported thing and this will cut down network bandwidth and I think will decrease the CPU overhead while the model trains. When the link between the Python and C++ program is finished then Iāll start the development of the actual AI model, which will involve reading through some scientific papers on the topic. Right now I have 2 of them bookmarked, but you never know when something new may pop up.
These past days I am trying to figure out how to implement the IPC (inter process communication) between Python (where the AI model will be made) and the C++ āmegaclientā that acts as 10 clients that connect to the game server. From what Iāve seen one of the easiest ways to implement it is through binary standard streams because Iāll have to move 14KB of data per frame, and because I will unlock the speed of the server physics simulation, it will be like thousands of frames per second, which will add up pretty fast. But the problem isnāt the actual size of data, but the latency, if I would just save it into a txt file my SSD will be hit with thousands of requests every second, so keeping everything in the RAM is why I chose to try and implement the IPC through binary standard streams. But I didnāt yet get it working and my brain hurts a little cause for the first time since the beginning of this project I have absolutely no idea what to do or how to actually solve this issue and I kinda feel lost and a bit demotivated, thatās why this week I managed a bit over 1hr of coding per day. But at the same time Iāve been watching more and more videos about how to build AI models and for the first version Iāll build a standard Backprop model as Iāve read in a paper that Predictive Coding approximates Backprop. The problem is this will have to come after the IPC is implemented successfully, which currently it is not. If anyone sees and reads this I would happily accept any suggestions on how to implement the IPC between Python and C++.
After a bit of a pause on this project because I wanted to clear my mind a little and do the Hackpad hardware project I returned and made the Game Over screen a bit nicer and so everything is beginning to tie together. I wrote Reals and Quanta so that new users will know what those icons mean. In addition I redesigned the map selection screen to show a preview of the map before selecting it. I am also thinking of adding an aim overview and the players just hold the arrow keys or move the right joystick on the controller.
I added the aiming line overlay to make it easier for players to see where they are aiming. It was actually a little bit of spaghetti code involved in the making of this as I use a function to draw the match and another function calculates the last point of the line and returns it but I made it work and it does so beautifully and reliably. I am thinking of maybe adding 1 or 2 more shapes and 1 or 2 new maps and Iād say the project is ready for another ship!
I added 2 new shapes that will fight for supremacy in the math world. They are the Astroid and the Reuleaux Triangle. The Astroid is more of a sniper with long range and lots of damage, but smaller ammo. The Reuleaux Triangle is more of a tank with a shorter range and smaller speed but tons of ammo and damage and also loads of health. Also I added 2 new maps, one is a team mode map and another is a PVE map in which each shape has to fight to be the only one standing at the end of the match.
Ships:
What did you make? What was challenging? What are you proud of? I made a multiplayer game where interesting geometrical shapes fight each other to dominate the world of maths called Geomatrix. It is built fully in C++ with ENet being used for the client-server communication over UDP and Raylib being used to display graphics on the client side. In Geomatrix different shapes have their own strengths and weaknesses and players have to leverage them in the best way possible so they can win. It was quite challenging getting the client to render and interpolate the packets sent from the server because without taking into account the time difference the players might overshoot, and because the projectiles didnāt have an id at the time, they would flicker in positions where they shouldnāt have been. I am very proud of my server and the client-server communication because were the most reliable and straightforward things during the development of this project, even though I firstly started to build the server, the collision simulation, aiming, map and shape changes were very intuitive which proved to be extremely reliable. This reliability of the server really did come in handy when debugging the numerous bugs of the client, but most of the bugs that I found in the client are now fixed, but if someone finds more, I wouldnāt be surprised and you can contact me and describe the issue. What should people know so they can test your project? To test the project follow these steps: Go to releases section of the GitHub repository. Download the Client and Server executables. Download the āmapsā folder from the root directory of the repository. Place the Client and Server executables and the āmapsā folder inside 1 directory. Start the Server and then the Client. For multiple clients just spin up new instances of the Client. It is only on Windows at the moment, but in a future update it will be cross platform, even on mobile.
What did you make? What was challenging? What are you proud of? I updated my multiplayer game where interesting geometrical shapes fight each other to dominate the world of maths called Geomatrix. It is built fully in C++ with ENet being used for the client-server communication over UDP and Raylib being used to display graphics on the client side. In Geomatrix different shapes have their own strengths and weaknesses and players have to leverage them in the best way possible so they can win. It was quite challenging trying to stay consistent and not get overwhelmed by the loads of things I could add to the game as my time is limited and I easily ended up in a rabbit-hole about AI models that could play my game, which I didnāt end up making. I am proud that even though I wouldnāt say this is the most sophisticated piece of software, I would say itās pretty rudimentary compared to other games but Iāve come to expect reliability and modularity from it, which really came in handy when adding the maps and shapes. Even though there were some minor bugs here and there with the new maps and shapes at the beginning, it all ended up working with very small tweaks. What should people know so they can test your project? To test the project follow these steps: Go to releases section of the GitHub repository. Download the Client and Server executables. Download the āmapsā folder from the root directory of the repository. Place the Client and Server executables and the āmapsā folder inside 1 directory. Start the Server and then the Client. For multiple clients just spin up new instances of the Client....
|
1792824621.388316
|
1792911021.388316
|
|
26084
|
MagnOS by @ABN | Stardance
|
ABN
|
2
|
15.0
|
71
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T00:52:53Z", "hours": 10.0, "multiplier": 7.34, "payout": 71, "blessing": "neutral", "text": "I made a magnet themed OS called MagnOS. This OSās standout feature is the ability to flip the polarity of the windows to make them either attract or repel each other. The goal is to let people be able to organize related windows and put them where they want to. I added a switch which toggles window outlines between red and blue, and linked windows can be dragged together. Along with this feature, I also added a scientific calculator, a music player, and a search app. Windows are also scalable now by dragging the corners, allowing even more freedom to the user. So altogether, 5 new features. The most challenging part was getting the magnetism feature working; I couldnāt find any references online, and even after the core function was working, there were a bunch of number tweaks to be made. Generally speaking, Iām proud of making an HTML site that goes above and beyond, expanding on my previous ship for the more limited mission. Iām also proud of some of the intentional choices I made, like adding feedback to windows snapping and creating gradients on the magnetism switches. For anyone who wants to test my project, just head to the demo URL, since it is just a web page you can run in your browser. The magnetism stuff should be pretty intuitive to use, but it can be a bit janky if you spawn many windows on top of each other. Thanks for reading!", "repo": "https://github.com/abn3000/magnos", "demo": "https://abn3000.github.io/magnos/"}, {"ship_num": 2, "ts": "2026-07-06T01:19:48Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a magnet-themed OS, with a red and blue design. I added a welcome window and a notes app, both of which can be dragged around. For some bonus features, I added the ability to drag the app icon, as well as an editable taskbar āTo Doā item. The most challenging part of designing this was getting the icon for the app to be draggable without having the app open when dragged. I am proud of this OS, since I have limited experience with HTML, and almost no experience in combining it with JavaScript. To test it out, just head to the attached link (itās hosted using Github pages).", "repo": "https://github.com/abn3000/magnos", "demo": "https://abn3000.github.io/magnos/"}]...
|
[{"post_id": 73366, "ts": "202 [{"post_id": 73366, "ts": "2026-09-25T00:23:22Z", "hours": 6.8256, "text": "Final Update Scalable Windows It wouldnāt really be useful for productivity if you couldnāt shrink the apps that can stay off to the side, so now they can be shrunk and still attached to other windows! This was definitely the hardest part, and Iām not 100% sure it works in all cases when windows are already magnetized. Snapping Design Previously, I was able to make the windowsā edges change to white when connected. After doing some more Googling, I was able to make a sort of pulse that acts as feedback when the super snaps the windows together (Iām very proud of this). If thatās not enough, it also plays a snap sound now. Search Fix I noticed that some OSās make their search app replace the current tab, which makes the OS tab go away. I fixed mine to have it open a new tab with your query. End of the Line This will be the final devlog for MagnOS, at least before my first WebOS 2 ship. Iāve added 3 new apps and a big new feature, which I hope Stardancers will enjoy."}, {"post_id": 67028, "ts": "2026-09-13T02:09:47Z", "hours": 2.1383, "text": "Big Update Magnetism Features Click a switch on a window to swap it between red mode and blue mode. Opposites attract, while like poles repel. The main feature of this OS. Calculator Not just a four-function one, but scientific with all the bells and whistles! Music Player Comes with all the basic features youād expect (except maybe more than one song, but I feel like the song choice is self-explanatory). Next Time I have a search feature that I want to properly flesh out so that itās actually usable. Also, I want to make scalable windows, but Iāve been having a lot of trouble getting that to be separate from the dragging functionality."}, {"post_id": 25046, "ts": "2026-07-09T00:17:57Z", "hours": 0.7333, "text": "Looks pretty sketchy⦠Introducing the MagSketch app, which comes with different colours, pen sizes, and even a colour picker (Iām pretty proud of that one). Getting the canvas to work was pretty challenging, but there are plenty of guides online that really helped speed things up."}, {"post_id": 22198, "ts": "2026-07-04T15:35:53Z", "hours": 3.1514, "text": "What a drag⦠Iāve updated quite a bit since the last devlog, so the windows are now draggable, closable, openable, all that jazz. We also have some editability: the MagNotes app is up and working as a simple notepad, and the to-do list in the taskbar can be updated. One app is a little boring, though, so I think we can step things up in the coming days. The end of WebOS 1 is in sight!"}, {"post_id": 17962, "ts": "2026-06-28T22:28:49Z", "hours": 1.3928, "text": "Are we sure weāre on task right now? The bottom bar is ready, except for that to-do button in the centre. That can be made inputtable and working once I get a bit more in-depth on my JavaScript. Right now, we have a window of content, the taskbar, and a nice screensaver background (this might be a placeholder, but I kind of like it). Moving on to some clickability!"}, {"post_id": 17361, "ts": "2026-06-28T03:37:48Z", "hours": 0.9319, "text": "Welcome! Iāve made the welcome page for MagnOS, including the basics on what it does, and a little introduction to how magnets work. Thatās the basic HTML and CSS, but JavaScript (a.k.a. the hard stuff) is yet to come. If this pans out how I hope, I think the OS can really be a cool thing to mess around with, and I might even use the code for my personal productivity!"}]...
|
Title: MagnOS by @ABN | Stardance
Devlogs:
Welcom Title: MagnOS by @ABN | Stardance
Devlogs:
Welcome! Iāve made the welcome page for MagnOS, including the basics on what it does, and a little introduction to how magnets work. Thatās the basic HTML and CSS, but JavaScript (a.k.a. the hard stuff) is yet to come. If this pans out how I hope, I think the OS can really be a cool thing to mess around with, and I might even use the code for my personal productivity!
Are we sure weāre on task right now? The bottom bar is ready, except for that to-do button in the centre. That can be made inputtable and working once I get a bit more in-depth on my JavaScript. Right now, we have a window of content, the taskbar, and a nice screensaver background (this might be a placeholder, but I kind of like it). Moving on to some clickability!
What a drag⦠Iāve updated quite a bit since the last devlog, so the windows are now draggable, closable, openable, all that jazz. We also have some editability: the MagNotes app is up and working as a simple notepad, and the to-do list in the taskbar can be updated. One app is a little boring, though, so I think we can step things up in the coming days. The end of WebOS 1 is in sight!
Looks pretty sketchy⦠Introducing the MagSketch app, which comes with different colours, pen sizes, and even a colour picker (Iām pretty proud of that one). Getting the canvas to work was pretty challenging, but there are plenty of guides online that really helped speed things up.
Big Update Magnetism Features Click a switch on a window to swap it between red mode and blue mode. Opposites attract, while like poles repel. The main feature of this OS. Calculator Not just a four-function one, but scientific with all the bells and whistles! Music Player Comes with all the basic features youād expect (except maybe more than one song, but I feel like the song choice is self-explanatory). Next Time I have a search feature that I want to properly flesh out so that itās actually usable. Also, I want to make scalable windows, but Iāve been having a lot of trouble getting that to be separate from the dragging functionality.
Final Update Scalable Windows It wouldnāt really be useful for productivity if you couldnāt shrink the apps that can stay off to the side, so now they can be shrunk and still attached to other windows! This was definitely the hardest part, and Iām not 100% sure it works in all cases when windows are already magnetized. Snapping Design Previously, I was able to make the windowsā edges change to white when connected. After doing some more Googling, I was able to make a sort of pulse that acts as feedback when the super snaps the windows together (Iām very proud of this). If thatās not enough, it also plays a snap sound now. Search Fix I noticed that some OSās make their search app replace the current tab, which makes the OS tab go away. I fixed mine to have it open a new tab with your query. End of the Line This will be the final devlog for MagnOS, at least before my first WebOS 2 ship. Iāve added 3 new apps and a big new feature, which I hope Stardancers will enjoy.
Ships:
I made a magnet-themed OS, with a red and blue design. I added a welcome window and a notes app, both of which can be dragged around. For some bonus features, I added the ability to drag the app icon, as well as an editable taskbar āTo Doā item. The most challenging part of designing this was getting the icon for the app to be draggable without having the app open when dragged. I am proud of this OS, since I have limited experience with HTML, and almost no experience in combining it with JavaScript. To test it out, just head to the attached link (itās hosted using Github pages).
I made a magnet themed OS called MagnOS. This OSās standout feature is the ability to flip the polarity of the windows to make them either attract or repel each other. The goal is to let people be able to organize related windows and put them where they want to. I added a switch which toggles window outlines between red and blue, and linked windows can be dragged together. Along with this feature, I also added a scientific calculator, a music player, and a search app. Windows are also scalable now by dragging the corners, allowing even more freedom to the user. So altogether, 5 new features. The most challenging part was getting the magnetism feature working; I couldnāt find any references online, and even after the core function was working, there were a bunch of number tweaks to be made. Generally speaking, Iām proud of making an HTML site that goes above and beyond, expanding on my previous ship for the more limited mission. Iām also proud of some of the intentional choices I made, like adding feedback to windows snapping and creating gradients on the magnetism switches. For anyone who wants to test my project, just head to the demo URL, since it is just a web page you can run in your browser. The magnetism stuff should be pretty intuitive to use, but it can be a bit janky if you spawn many windows on top of each other. Thanks for reading!...
|
1792846058.1884913
|
1792932458.1884913
|
|
26175
|
PURFORATE by @yashasvib | Stardance
|
yashasvib
|
2
|
16.0
|
66
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-03T10:33:19Z", "hours": 6.0, "multiplier": 8.49, "payout": 47, "blessing": "neutral", "text": "PURFORATE HI EVERYBODY , WELCOME TO YET ANOTHER PROJECT OF MINE !! this is purforate , a simple game hub - where you will find that all the games are created by me , myself and I . i had quite a story behind it , i wanted to learn to make all types of simple, complex,easy,hard,oneshot,1000000shot games and i thought why not collect them and make a full game hub . definately i was going to build 15-20 games and i think iāll add 15-20 more making it a full game hub of approx. 30-40 games . this number can hugely vary cuz you know iām one of the most laziest persons alive . so lets talk about what all i actually use Languages used for devlopment of this application so i used 1-HTML 2-CSS 3-JS (these 3 are my go to favorite languages i personally think they are easy and do most of the work easily plus i learn them in my school as on opptional subject so thatās a plus point ) AI Usage declaration so iād like to come straight to the list i cretaed to make sure i dont miss anything 1- it is used for debugging and solving unexpected guest - ERROR!! 2-some content has been created by AI (a seprate README section dedicated to that ) 3-ideas for some games has been taken by AI (such as i asked for a list of 100 games and i selected some game from it ) THINGS THAT HAS BEEN CREATED BY AI things that has been created by AI is mentioned in the big bold letters in the webs only ā¦! 1- the introduction video in the RUNNER GAME (ghost version)has been created by AI and also has been mentioned in the video itself 2-the tutorials i used to learn these games are partial AI and partial youtube this project id still ongoing and i had to ship it cuz my other project was ready and this was anyways gonna time so i shipped it so that i can ship that project . i have a lot of things planned for this like i want to make a major game like inspired by The Apothecary Diaries . so i just need to remove this outta way for that project for a while . <3 love you all ! i hope thatās all i will try keep things updated bye !!", "repo": "https://github.com/yashasvi-2012-star/VIPER-VIPER", "demo": "https://viper-viperyuqi.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-16T06:34:46Z", "hours": 10.0, "multiplier": 2.0, "payout": 19, "blessing": "neutral", "text": "HEY !! this is a simple game of snake . I wanted to learn to make new games and master them completely so I started with the basics !! this game is so simple most of you have once or twice ever seen , and I donāt have much to explain much bout it and this is one of the most simplest project that didnāt bring much of sleepless nights like my other projects did !!", "repo": "https://github.com/yashasvi-2012-star/VIPER-VIPER", "demo": "https://viper-viperyuqi.vercel.app/"}]...
|
[{"post_id": 38769, "ts": "202 [{"post_id": 38769, "ts": "2026-08-01T10:25:39Z", "hours": 0.9089, "text": "hi guys !! i did add some more features to the game such as smooth control and dual controls (it was quite easy than i expected ) and connected and polished my webs . i also made the search bar functional so that you all can search game (they are only three !!) i planned to add 20-30 games but i am gonna ship it at 3 games only cuz this is absolutely gonna take time and my other project is also ready to ship ! so thatās all bye !! SECRET : I HAVE SEVERAL ELEMENTS FOR A SECRET UPCOMING GAME !!"}, {"post_id": 38095, "ts": "2026-07-31T09:46:06Z", "hours": 4.6458, "text": "hi !! GUYSS !! I thought if I am learning to make games why not make a game hub !??!! so that is what here is I upgraded this project from a simple game to a big game hub (tho it only contain like 3 games ). AND I EVEN ADDED MY FAVORITE GROUP AS BACKGROUND ! .I made a simple search bar which will search within the games name and show ānot found ā if nothing matches . I made three games which are - a simple snake game , a Tetris cute version and a ghost inspired runner game .(this game uses a AI introduction Video ! ) I will be adding more 100 games because my goal is to learn top 100 games to make !! hope my goal is archeived! so thatās all meet u in the next vlog !! bye !!"}, {"post_id": 29281, "ts": "2026-07-16T02:58:22Z", "hours": 0.2769, "text": "HI !! THIUS TIME I WORKED ON spawn particle which means -āthe red dot which the snake eats appear when ā this is also gonna be a short update and I even did some UI changes like making the colour pallet more symphanized !! bye !!"}, {"post_id": 29268, "ts": "2026-07-16T02:31:36Z", "hours": 0.2678, "text": "HI !! THIS IS GONNA BE SHORT CUZ I WROTE ONLY THE README TODAY ! BYE !"}, {"post_id": 29261, "ts": "2026-07-16T02:11:05Z", "hours": 8.9964, "text": "HEY !! I made this game to learn making / coding different - different types of game this doesnāt have many things to understand and this is easy and thus doesnāt have anything to share in devlogs that complicates. so my devlogs readme and everything else is just gonna talk bout different stages of this game and different updates and all thank you !!"}]...
|
Title: PURFORATE by @yashasvib | Stardance
Devlog Title: PURFORATE by @yashasvib | Stardance
Devlogs:
HEY !! I made this game to learn making / coding different - different types of game this doesnāt have many things to understand and this is easy and thus doesnāt have anything to share in devlogs that complicates. so my devlogs readme and everything else is just gonna talk bout different stages of this game and different updates and all thank you !!
HI !! THIS IS GONNA BE SHORT CUZ I WROTE ONLY THE README TODAY ! BYE !
HI !! THIUS TIME I WORKED ON spawn particle which means -āthe red dot which the snake eats appear when ā this is also gonna be a short update and I even did some UI changes like making the colour pallet more symphanized !! bye !!
hi !! GUYSS !! I thought if I am learning to make games why not make a game hub !??!! so that is what here is I upgraded this project from a simple game to a big game hub (tho it only contain like 3 games ). AND I EVEN ADDED MY FAVORITE GROUP AS BACKGROUND ! .I made a simple search bar which will search within the games name and show ānot found ā if nothing matches . I made three games which are - a simple snake game , a Tetris cute version and a ghost inspired runner game .(this game uses a AI introduction Video ! ) I will be adding more 100 games because my goal is to learn top 100 games to make !! hope my goal is archeived! so thatās all meet u in the next vlog !! bye !!
hi guys !! i did add some more features to the game such as smooth control and dual controls (it was quite easy than i expected ) and connected and polished my webs . i also made the search bar functional so that you all can search game (they are only three !!) i planned to add 20-30 games but i am gonna ship it at 3 games only cuz this is absolutely gonna take time and my other project is also ready to ship ! so thatās all bye !! SECRET : I HAVE SEVERAL ELEMENTS FOR A SECRET UPCOMING GAME !!
Ships:
HEY !! this is a simple game of snake . I wanted to learn to make new games and master them completely so I started with the basics !! this game is so simple most of you have once or twice ever seen , and I donāt have much to explain much bout it and this is one of the most simplest project that didnāt bring much of sleepless nights like my other projects did !!
PURFORATE HI EVERYBODY , WELCOME TO YET ANOTHER PROJECT OF MINE !! this is purforate , a simple game hub - where you will find that all the games are created by me , myself and I . i had quite a story behind it , i wanted to learn to make all types of simple, complex,easy,hard,oneshot,1000000shot games and i thought why not collect them and make a full game hub . definately i was going to build 15-20 games and i think iāll add 15-20 more making it a full game hub of approx. 30-40 games . this number can hugely vary cuz you know iām one of the most laziest persons alive . so lets talk about what all i actually use Languages used for devlopment of this application so i used 1-HTML 2-CSS 3-JS (these 3 are my go to favorite languages i personally think they are easy and do most of the work easily plus i learn them in my school as on opptional subject so thatās a plus point ) AI Usage declaration so iād like to come straight to the list i cretaed to make sure i dont miss anything 1- it is used for debugging and solving unexpected guest - ERROR!! 2-some content has been created by AI (a seprate README section dedicated to that ) 3-ideas for some games has been taken by AI (such as i asked for a list of 100 games and i selected some game from it ) THINGS THAT HAS BEEN CREATED BY AI things that has been created by AI is mentioned in the big bold letters in the webs only ā¦! 1- the introduction video in the RUNNER GAME (ghost version)has been created by AI and also has been mentioned in the video itself 2-the tutorials i used to learn these games are partial AI and partial youtube this project id still ongoing and i had to ship it cuz my other project was ready and this was anyways gonna time so i shipped it so that i can ship that project . i have a lot of things planned for this like i want to make a major game like inspired by The Apothecary Diaries . so i just need to remove this outta way for that project for a while . <3 love you all ! i hope thatās all i will try keep things updated bye !!...
|
1792842757.8313549
|
1792929157.8313549
|
|
26237
|
WebOS Air by @Charlie_Coder | Stardance
|
Charlie_Coder
|
2
|
5.0
|
6
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-13T06:56:04Z", "hours": 2.0, "multiplier": 4.46, "payout": 6, "blessing": "neutral", "text": "I have made a WebOS for those who have an interest in aviation. I am going to continue to add more features, but so far there is the following: Welcome Screen Cool aircraft background Aviation Photos Notepad that saves to localstorage Weather Aviation Facts Iframe to flight tracking map Flight tracker uses lazy loading Moveable and close-able windows that change the one on top to most recently accessed Settings page with 12/24 hour time I have made this project as a part of missions WebOS 1 and WebOS 2. I hope you like this, and feel free to use this OS yourself for aviation-based needs!", "repo": "https://github.com/CharlieLindsay/webosair", "demo": "https://webosair.charleilei.dpdns.org"}, {"ship_num": 2, "ts": "2026-06-30T04:46:47Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have made an WebOS for those who have an interest in aviation. I am going to continue to add more features, but so far there is the following: Welcome Screen Cool background Aviation Photos Notepad that saves to localstorage Aviation Facts Moveable and close-able windows that change the one on top to most recently accessed I am really proud of all of this, especially when I managed to get my first window to work. I went with the guide a lot of the way, but made my own changes and additions.", "repo": "https://github.com/CharlieLindsay/webosair", "demo": "https://webosair.charleilei.dpdns.org"}]...
|
[{"post_id": 27547, "ts": "202 [{"post_id": 27547, "ts": "2026-07-13T06:50:10Z", "hours": 0.4033, "text": "I got a flight tracking map going! I found a free flight map service that provides iframe code straight for sites, so I have used that for this step. I am going to do some more touchups, and then I will be ready to ship!"}, {"post_id": 27516, "ts": "2026-07-13T04:32:43Z", "hours": 0.3319, "text": "I got the settings page working! I have plans to add more settings (possibly), but I am just happy to have a 12 hour vs 24 hour toggle working. I am not very good with JavaScript, so I am proud of this."}, {"post_id": 27072, "ts": "2026-07-12T09:22:47Z", "hours": 0.4181, "text": "Got the weather window working!"}, {"post_id": 27009, "ts": "2026-07-12T04:35:48Z", "hours": 0.3803, "text": "I am starting the WebOS 2 mission now My addition plans Live Data Window Settings Window Weather"}, {"post_id": 18977, "ts": "2026-06-30T04:41:22Z", "hours": 0.8575, "text": "I have added a lot more, including photos, facts, a notepad that saves to local storage, and windows layering on top. I am very proud and am ready to ship!"}, {"post_id": 18096, "ts": "2026-06-29T03:08:16Z", "hours": 0.3875, "text": "I started adding more windows that can be dragged and closed."}, {"post_id": 17477, "ts": "2026-06-28T08:46:08Z", "hours": 1.0664, "text": "Time added, and the window can now be closed and opened using the bar at the bottom, and the red button on the window. It can be dragged around the screen using the handle bar at the top of the window."}, {"post_id": 16811, "ts": "2026-06-27T09:23:30Z", "hours": 0.4061, "text": "Iām actually really proud of this. I have got the top bar started, changed some styling and adjusted some stuff behind the scenes (and as per the guide) to help ensure everything will work still as I add more to the operating system."}, {"post_id": 16789, "ts": "2026-06-27T08:03:27Z", "hours": 0.3781, "text": "I started the guide, and made the site so you canāt scroll when the background isnāt just right. The background I found doesnāt require attribution. I also made the tag for the welcome 50% opaque."}]...
|
Title: WebOS Air by @Charlie_Coder | Stardance
De Title: WebOS Air by @Charlie_Coder | Stardance
Devlogs:
I started the guide, and made the site so you canāt scroll when the background isnāt just right. The background I found doesnāt require attribution. I also made the tag for the welcome 50% opaque.
Iām actually really proud of this. I have got the top bar started, changed some styling and adjusted some stuff behind the scenes (and as per the guide) to help ensure everything will work still as I add more to the operating system.
Time added, and the window can now be closed and opened using the bar at the bottom, and the red button on the window. It can be dragged around the screen using the handle bar at the top of the window.
I started adding more windows that can be dragged and closed.
I have added a lot more, including photos, facts, a notepad that saves to local storage, and windows layering on top. I am very proud and am ready to ship!
I am starting the WebOS 2 mission now My addition plans Live Data Window Settings Window Weather
Got the weather window working!
I got the settings page working! I have plans to add more settings (possibly), but I am just happy to have a 12 hour vs 24 hour toggle working. I am not very good with JavaScript, so I am proud of this.
I got a flight tracking map going! I found a free flight map service that provides iframe code straight for sites, so I have used that for this step. I am going to do some more touchups, and then I will be ready to ship!
Ships:
I have made an WebOS for those who have an interest in aviation. I am going to continue to add more features, but so far there is the following: Welcome Screen Cool background Aviation Photos Notepad that saves to localstorage Aviation Facts Moveable and close-able windows that change the one on top to most recently accessed I am really proud of all of this, especially when I managed to get my first window to work. I went with the guide a lot of the way, but made my own changes and additions.
I have made a WebOS for those who have an interest in aviation. I am going to continue to add more features, but so far there is the following: Welcome Screen Cool aircraft background Aviation Photos Notepad that saves to localstorage Weather Aviation Facts Iframe to flight tracking map Flight tracker uses lazy loading Moveable and close-able windows that change the one on top to most recently accessed Settings page with 12/24 hour time I have made this project as a part of missions WebOS 1 and WebOS 2. I hope you like this, and feel free to use this OS yourself for aviation-based needs!...
|
1792824575.158028
|
1792910975.158028
|
|
26256
|
aeroOS by @arman | Stardance
|
arman
|
2
|
10.0
|
145
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-15T19:05:41Z", "hours": 8.0, "multiplier": 17.82, "payout": 145, "blessing": "neutral", "text": "What did I make? Picked up where ship #1 left off and turned AeroOS into an actual usable desktop. Added a full boot sequence (shutdown > boot > lock screen > desktop), a top menu bar with working flyouts for battery, wifi, volume, and calendar, and a functional Start menu with search. Four new apps: Settings (wallpaper, sound, network, accounts), File Explorer, Media Player, and a Games Explorer with 5 playable embedded games. Also added a custom right-click context menu and a Browser app. What was challenging? Keeping everything visually consistent as the app count grew. Every new flyout, window, and panel needed the same treatment as the original apps, so I ended up building shared pieces instead of copy pasting styles everywhere. Wiring the boot > lock > desktop flow through session state without it feeling janky took a few tries too. What am I proud of? The flyouts. Getting battery, wifi, volume, and the calendar to all feel like they belong to the same OS. The same borders, same shadows, same footer links was fiddly but itās the difference between āa pile of componentsā and āa coherent system.ā How to test it? Start on the shutdown screen, hit power, and let it boot through to the lock screen. Click āLog onā to reach the desktop. Try the Start menu (bottom-left) and search for an app by name. Open File Explorer, double-click an audio/video/image file: itāll launch in Media Player. Check the top-right flyouts (wifi, volume, battery, calendar). Right click the desktop for the context menu.", "repo": "https://github.com/armansinghh/WebOS2", "demo": "https://aero-os.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-01T17:25:00Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did I make? I built AeroOS! Itās a fully functional, browser based desktop OS thatās basically a love letter to the āFrutiger Aeroā the popular aesthetic of mid 2000s (think Windows Vista, Windows 7, and early Mac OS X). I built a custom window manager so you can drag and minimize windows, added a 3D glass dock with that classic magnification effect on hover, and threw in a bunch of skeuomorphic apps. right now, it has a Notepad, a detailed mechanical analog clock, a live weather dashboard, and a Welcome app. What was challenging? Honestly, nailing the aesthetic was the hardest part. It is surprisingly difficult to recreate authentic 2000s glass UI using modern CSS. If you arenāt careful, it just ends up looking like modern Apple glassmorphism. Getting that true Frutiger Aero vibe meant stacking crazy complex box shadows, using sharp 50% split linear gradients to get those harsh glass cuts, and layering inner white borders so the UI actually looks like thick, physical acrylic glass. What am I proud of? As a person who loves designing as much as I love web dev, Iām proud of how I was able to blend those two together. Iām really proud of the details, like the vista pearl CSS orb, the red counterweight on the analog clockās second hand, and the custom Vista style cyan loading ring. Seeing all those tedious, tiny CSS tweaks finally come together into a desktop that actually feels like a real machine from 2007 is just incredibly satisfying. How to test it? Just head over to https://aero-os.vercel.app/ and youāll be on the desktop. Have fun!", "repo": "https://github.com/armansinghh/WebOS2", "demo": "https://aero-os.vercel.app/"}]...
|
[{"post_id": 29084, "ts": "202 [{"post_id": 29084, "ts": "2026-07-15T18:54:31Z", "hours": 2.2086, "text": "Finally finished polishing up! what I did: Flyouts now have consistent styling. Updated welcome app. Start button became more functional. Created new custom svg icons. Updated settings app to display system, network and user settings. Made a new browser app Made custom hook for volume to sync it across different components. what we do next: ship"}, {"post_id": 28842, "ts": "2026-07-15T11:20:29Z", "hours": 5.9203, "text": "Did so many changes in AeroOS! heres explained in detail: Added boot sequence. shutdownScreen > bootScreen > lockScreen > desktop Updated top menu bar with flyouts (system tray, battery, volume, wifi and calendar) Added more apps. (settings, file explorer, media player and games) Moved wallpaper changing logic to settings File manager content like audio, video and image opens through media viewer. Games Explorer currently supports 5 games, all embedded through <iframe> Added custom right click context menu. Added windows like start button. note: several minor issues, such as unconnected links between the Start menu and applications, are currently known and will be resolved in future. what we do next: polish"}, {"post_id": 20095, "ts": "2026-07-01T16:45:18Z", "hours": 0.7717, "text": "Built 2 more apps for aeroOS! notpad: the notes persist and added bold, italic and underline text formatting too weather: the app supports realtime search using geocoding api and providing weather results using open meteo api other updates: added top menu bar, showing the focused app name on left and icons, time on right. updated dock, removed the time and moved it to top menu bar. wallpaper switcher now supports links, also the wallpapers persist on reload. what we do next? polish and ship"}, {"post_id": 18999, "ts": "2026-06-30T05:03:34Z", "hours": 0.8886, "text": "Added a bunch of new features to aeroOS! a mini dock (temp right now) on bottom left to change wallpapers improved dock design and animation built window component and window manager built 2 simple apps - clock and welcome what we do next? build advance apps"}, {"post_id": 17561, "ts": "2026-06-28T12:06:32Z", "hours": 0.4719, "text": "Js started working on aeroOS! based on frutiger aero design aesthetic, which was really popular during the time i was born anyways tech stack: next js with tailwind what we do next? improve the desktop then we move to apps"}]...
|
Title: aeroOS by @arman | Stardance
Devlogs:
Js s Title: aeroOS by @arman | Stardance
Devlogs:
Js started working on aeroOS! based on frutiger aero design aesthetic, which was really popular during the time i was born anyways tech stack: next js with tailwind what we do next? improve the desktop then we move to apps
Added a bunch of new features to aeroOS! a mini dock (temp right now) on bottom left to change wallpapers improved dock design and animation built window component and window manager built 2 simple apps - clock and welcome what we do next? build advance apps
Built 2 more apps for aeroOS! notpad: the notes persist and added bold, italic and underline text formatting too weather: the app supports realtime search using geocoding api and providing weather results using open meteo api other updates: added top menu bar, showing the focused app name on left and icons, time on right. updated dock, removed the time and moved it to top menu bar. wallpaper switcher now supports links, also the wallpapers persist on reload. what we do next? polish and ship
Did so many changes in AeroOS! heres explained in detail: Added boot sequence. shutdownScreen > bootScreen > lockScreen > desktop Updated top menu bar with flyouts (system tray, battery, volume, wifi and calendar) Added more apps. (settings, file explorer, media player and games) Moved wallpaper changing logic to settings File manager content like audio, video and image opens through media viewer. Games Explorer currently supports 5 games, all embedded through <iframe> Added custom right click context menu. Added windows like start button. note: several minor issues, such as unconnected links between the Start menu and applications, are currently known and will be resolved in future. what we do next: polish
Finally finished polishing up! what I did: Flyouts now have consistent styling. Updated welcome app. Start button became more functional. Created new custom svg icons. Updated settings app to display system, network and user settings. Made a new browser app Made custom hook for volume to sync it across different components. what we do next: ship
Ships:
What did I make? I built AeroOS! Itās a fully functional, browser based desktop OS thatās basically a love letter to the āFrutiger Aeroā the popular aesthetic of mid 2000s (think Windows Vista, Windows 7, and early Mac OS X). I built a custom window manager so you can drag and minimize windows, added a 3D glass dock with that classic magnification effect on hover, and threw in a bunch of skeuomorphic apps. right now, it has a Notepad, a detailed mechanical analog clock, a live weather dashboard, and a Welcome app. What was challenging? Honestly, nailing the aesthetic was the hardest part. It is surprisingly difficult to recreate authentic 2000s glass UI using modern CSS. If you arenāt careful, it just ends up looking like modern Apple glassmorphism. Getting that true Frutiger Aero vibe meant stacking crazy complex box shadows, using sharp 50% split linear gradients to get those harsh glass cuts, and layering inner white borders so the UI actually looks like thick, physical acrylic glass. What am I proud of? As a person who loves designing as much as I love web dev, Iām proud of how I was able to blend those two together. Iām really proud of the details, like the vista pearl CSS orb, the red counterweight on the analog clockās second hand, and the custom Vista style cyan loading ring. Seeing all those tedious, tiny CSS tweaks finally come together into a desktop that actually feels like a real machine from 2007 is just incredibly satisfying. How to test it? Just head over to https://aero-os.vercel.app/ and youāll be on the desktop. Have fun!
What did I make? Picked up where ship #1 left off and turned AeroOS into an actual usable desktop. Added a full boot sequence (shutdown > boot > lock screen > desktop), a top menu bar with working flyouts for battery, wifi, volume, and calendar, and a functional Start menu with search. Four new apps: Settings (wallpaper, sound, network, accounts), File Explorer, Media Player, and a Games Explorer with 5 playable embedded games. Also added a custom right-click context menu and a Browser app. What was challenging? Keeping everything visually consistent as the app count grew. Every new flyout, window, and panel needed the same treatment as the original apps, so I ended up building shared pieces instead of copy pasting styles everywhere. Wiring the boot > lock > desktop flow through session state without it feeling janky took a few tries too. What am I proud of? The flyouts. Getting battery, wifi, volume, and the calendar to all feel like they belong to the same OS. The same borders, same shadows, same footer links was fiddly but itās the difference between āa pile of componentsā and āa coherent system.ā How to test it? Start on the shutdown screen, hit power, and let it boot through to the lock screen. Click āLog onā to reach the desktop. Try the Start menu (bottom-left) and search for an app by name. Open File Explorer, double-click an audio/video/image file: itāll launch in Media Player. Check the top-right flyouts (wifi, volume, battery, calendar). Right click the desktop for the context menu....
|
1792810476.1560392
|
1792896876.1560392
|
|
26398
|
200 MPH Drone RTOS by @Guagyyy | Stardance
|
Guagyyy
|
2
|
129.28
|
2267
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T00:49:05Z", "hours": 106.0, "multiplier": 19.18, "payout": 2024, "blessing": "neutral", "text": "200 MPH Drone RTOS: How it went Simulation to Silicon! When I published the first major update for this project at the 15-hour mark, I essentially had a proof-of-concept. I had managed to write a custom hybrid cooperative/preemptive scheduler and get an ARM Cortex-M7 (on the STM32f756VGTx) assembly context switcher functioning inside the Renode simulator. Although this looked like a massive leap, the project had barely started. Over 100 hours of development have gone into this project since then. The transition from a simulated kernel to a bare-metal flight controller capable of keeping a 200 MPH drone in the air required stripping the system down to its bare components, rewriting the memory architecture, and debugging some of the most frustrating hardware faults I have ever encountered-especially whenever the project just crashed, leaving me no traces as to what went wrong. Software Limitations The biggest turning point was realizing that software simulation can only take you so far. Renode is an amazing tool, but it hid a massive amount of race conditions and timing flaws that only exposed themselves when I finally flashed the code to physical STM32F756 Nucleo board. Sometimes, the MCU would have to reboot every 2 seconds. I spent dozens of hours tracking down massive architectural bugs. One of the worst was a context-switching fault where floating-point math was corrupting the return address in the CPU registers, causing the processor to execute raw garbage data. To fix this, I had to completely restructure the boot sequence and overhaul the memory management. I moved away from static arrays to a dynamic per-task stack allocation system, and implemented a dual-guard memory system. Arguably, this was the most important change as it allowed me to debug tasks way quicker as I instantly could know when the canary values were corrupted. Overhauling the Data Pipelines In order to avoid the 10ms delay of my original blocking pipline (for data transfer), I entirely rewrote the hardware data pipelines multiple times to use a semi-blocking, circular Direct Memory Access (DMA) architecture. Instead of the processor handling the data transfer, the hardware itself moves the bytes from the sensors directly into memory in the background. The DMA streams now trigger precise interrupts at the halfway and full-transfer points, allowing the RTOS to safely parse incoming radio packets and sensor reads without ever risking data overwrites or blocking the main flight loop. Building a Flight Controller I integrated Betaflightās Actual Rates algorithm with custom expo curves, ensuring that physical stick inputs map perfectly to target velocities. I built a custom SPI driver to pull 24-bit raw pressure and temperature data from a BMP390 barometer, passing it through hypsometric formulas to calculate altitude. For video and telemetry, I moved away from raw UART strings and implemented native MSP DisplayPort communication (for true digital Walksnail Avatar connection). I also built an interactive USB command-line interface. Instead of having to recompile and re-flash the firmware every time a PID value needs to be adjusted, I can plug into the board, pull up a terminal, and manually tune gains, remap CRSF radio channels, or adjust IMU orientation offsets in real time. Final Version The last few weeks have been about refinement and consistency, removing race conditions and overall polishing the code. Now that the RTOS is fully functional, the only things to add are extra features, like a permanent + more expanded CLI, as well as finishing the external RM and linking the ESC drivers. As these are pretty insignificant, I have linked the source of this shipment to the Github project rather than a specific release so that I can update these during review!", "repo": "https://github.com/Guag914/200-MPH-Drone-RTOS/", "demo": "https://github.com/Guag914/200-MPH-Drone-RTOS#interactive--simulation-demo"}, {"ship_num": 2, "ts": "2026-07-15T04:02:12Z", "hours": 15.0, "multiplier": 16.44, "payout": 243, "blessing": "neutral", "text": "Phase 1 (The Custom RTOS Kernel) I am building a custom FPV drone from scratch with my friend in an attempt to achieve 200 mph . At those speeds, standard super loops are far too slow, as a single microsecond of lag means the drone travels feet before making a PID correction. To solve this, I built a custom, hybrid cooperative/preemptive Real-Time Operating System (RTOS) from scratch for the ARM Cortex-M7 (STM32F7)! What Was Challenging? The absolute hardest part of this phase was writing the low-level assembly context switcher ( PendSV_Handler.S ). Hacking the ARM Cortex-M7 registers to physically hot-swap stack pointers ( PSP ) mid-execution without crashing the CPU or corrupting the program state was a massive headache. I had to ensure that when an asynchronous preemption event fires, the assembly code perfectly preserves the execution registers ( R4-R11 plus the hardware-stacked registers), jumps to the high-priority task, and then seamlessly restores the background task right where it left off. Getting the compiler-enforced task overloading working so the kernel cleanly separates periodic tasks from raw interrupts was another huge hurdle, but it makes the whole codebase infinitely more robust. Want to Test It or Write Your Own Tasks? You donāt need physical hardware to watch this run! Iāve packaged the entire project with a Renode simulation script. You can run the interactive emulator with a single command to see the preemption scheduler hijack our counter task live, or you can jump into the user sandbox file and write your own custom tasks. Check out the GitHub Repository to Run the Demo! The README has a quick 5-minute setup guide to get you compiling and simulating your own code in no time.", "repo": "https://github.com/Guag914/200-MPH-Drone-RTOS/", "demo": "https://github.com/Guag914/200-MPH-Drone-RTOS#interactive--simulation-demo"}]...
|
[{"post_id": 78931, "ts": "202 [{"post_id": 78931, "ts": "2026-10-12T02:34:08Z", "hours": 8.2783, "text": "Although I havenāt been able to make much progress on the project due to school over the past weeks I did manage to make some substantial project mostly with the scheduler, allowing for fairly good performance on my STM Nucleo boards, rather than it just crashing instantly. 1. Issues with the Old Design The flight controllerās RTOS scheduler wasnāt working under real hardware timing because global variables like currTaskIndex, topOfStack, and excReturn were being modified from multiple entry points simultaneously. Yield calls, interrupt handlers, and the main task-selection logic were all making independent writes to the same shared task control blocks. Whenever a hardware interrupt fired mid-write, stack pointers and exception return values were saved into the wrong taskControlBlocks slot. This created edge cases where preempted tasks were silently double-queued, state tracking completely desynchronized, and time-critical hardware events were dropped during flight. 2. Centralizing Context Switches in PendSV To eliminate these race conditions, all state-selection decisions were moved out of individual execution contexts and consolidated into decideNextTask(), which now runs exclusively inside the PendSV assembly handler. Functions like yieldCurrentTask(), decideNextInterruptTask(), and decideNextScheduledTask() no longer touch global scheduler state or choose which task runs next; they simply update local status flags like TaskState::BLOCKED or TaskState::READY inside brief __disable_irq() critical sections and trigger PendSV using SCB_ICSR_PENDSVSET_Msk. When PendSV fires, decideNextTask() saves outgoingSP and outgoingExcReturn to the active block, sets RUNNING tasks to READY, and runs a two-pass check over taskControlBlocks[]āevaluating high-priority TaskType::INTERRUPT tasks first, then TaskType::SCHEDULED tasks, and falling back to index 0 for idle. Since PendSV is the only place allowed to modify currTaskIndex, concurrent state corruption is structurally impossible."}, {"post_id": 71997, "ts": "2026-09-21T23:26:43Z", "hours": 7.2761, "text": "For the past couple weeks I have been mostly refining small bugs, which were originally rendering the RTOS usless, as well as refactoring the code for simplicity rather than elegancy. 1. Transition to Actual Hardware Renode is great for simulation, but it ended up hiding a bunch of race conditions in the population methods and the main scheduler that led to no code actually running during the IRQ handler calls. I spent a lot of time securing those resources and finally got the scheduler mostly finished up. Also, I decided to just take out the double preempts entirely since they were adding way too much complexity for absolutely zero speed benefits in practice (plus they were creating detrimental but rare race conditions). 2. Code Refactor To make things run a bit more consistent, I restructured how the control loops operate. I ended up merging the dShotGeneration task with the parent IMU control loop, so now everything from reading the sensors to pushing motor commands happens in one clean sequence (rather than including an unnecessary preempt). I also built out a brand new CRSF control loop to handle all the radio parsing and state machine updates in its own dedicated space (just for consistency). Lastly, while doing a final pass on the code, I realized that in my dShotGeneration helper, I had forgot to scale the values by a factor of 1/2000, as the inputs require the value to be between 0 and 1 (not 0 and 2000). 3. Final DMA Iteration The biggest relief was finally getting rid of the old blocking USART system. I finally transitioned away from manually handling the streaming by polling flags in a loop, which was tying up the processor way more than it should have. Everything has been converted over to a blocking DMA system, so the hardware can just handle all the memory transfers in the background while the CPU focuses on actually keeping the drone in the air. Overall, I think that this will be the final iteration of the RTOS DMA pipeline, as now that it is solid and works with all the edge cases, theres no need to change it. 4. Timeline With almost all the major bugs fixed, I am going to ship the project! While it is not 100% done, it will likely be as close as it will get during the timeframe of the Stardance hackathon, and with it so close, theres no reason not to ship. Anyway, I will keep the source as the main project rather than a release, so if I do end up fixing any major bugs, they will get patched either before or during project review (besides most of these bugs are only detectable on actual hardware). I will most likely finish the RTOS in the next couple weeks (by the end of October), and will finish the drivers for the ESC and RM by latest end of November (for more timing refer to the README). Thanks to everyone who supported me throughout this project (hopefully me and my friend can get this drone flying in another Hack Club Hackathon!)."}, {"post_id": 63202, "ts": "2026-09-06T21:25:57Z", "hours": 9.6606, "text": "1. Scheduler Hardening and Task Discovery Spent part of this session making the RTOS scheduler itself more robust. I added a findTaskByName() function so interrupt-driven task lookups happen dynamically instead of relying on hardcoded task indices, which was a fragile setup just waiting to break the moment task registration order changed. Alongside that, I wrapped every one of those lookups with lambdas that throw a proper warning if a task canāt be found, so a missing task fails loudly instead of silently dereferencing a null pointer somewhere downstream. 2. Blocking vs Non-Blocking Scheduled Tasks After a lot of painful debugging, I traced a string of issues (including interrupt tasks silently failing to fire and scheduled tasks stepping on each other) back to non-blocking statements Iād introduced inside scheduled tasks in the previous devlog. I ended up taking those out and reverting scheduled tasks fully back to blocking, which is genuinely what the scheduled zone was designed for in the first place: tasks that donāt need to run in polynomial time and can safely block without putting the drone at risk of crashing. Once that was sorted, I converted the raw USART byte-pushing into a blocking DMA system instead, so streaming is handled by DMA hardware rather than manually pushed byte-by-byte over USART. 3. Flight Loop Refactor and VTX Communication On the flight logic side, I refactored flightLoop() to use lambdas and a state machine so I would never have to yield in the middle of my tasks (which was used previousely for zeroing motor outputs). I also converted the error handling into a proper state machine, so different types of warnings can be caught and handled distinctly instead of lumping every issue into one path, and turned on full debug printing whenever the system is running. Last but not least, I built out a dedicated injector for respondToVTX so I can properly test and simulate VTX communication going forward. 4. Real Hardware Testing Since, I am almost 100% done with the RTOS I bought two NUCLEO-F756ZGās which will serve as testing the 100% production code rather than the simulation version. I bought two so that one of the boards will be running the real RTOS code, testing DMA reading from USART, SPI, and emitting real motor signals, while the second will be emulating all of my peripherals. When the boards come, if the code does work, it will also mean that the real PCBās will also work when my friend finishes with them. 5. Next Steps As of now there are a few issues with the double preempt system (for the interrupt tasks) I designed a while back, so I will need to debug that before they arrive. Right now before the boards arrive, I will be finishing up the RTOS blocking DMA pipelines (stripping out IRQ, removing NVIC etc. for scheduled tasks), and performing a bunch of baseline testing in order to prove that the RTOS is capable of flying an actual drone!"}, {"post_id": 52761, "ts": "2026-08-23T03:11:04Z", "hours": 9.6356, "text": "1. CLI Upgrades and Channel Mapping Over the past 5 days, I knocked out some major quality-of-life upgrades for the flight controller. I added customizable channel mapping for CRSF directly through the CLI. By utilizing a combination of references and pointers, I was able to point a volatile alias to certain channel mappings, allowing for completely customizable CRSF channels. While I was in the CLI logic, I also added the ability to configure custom IMU orientations around the z-axis, making it way easier to mount the board in different directions without having to recompile the firmware. 2. DMA Pipeline Fixes and Baro Optimization A big chunk of this session went into debugging and refactoring the hardware data pipelines. I adjusted the ADC population pipeline in order to fix some stream parsing issues, and gave the barometer a massive overhaul. The baro now uses a non-blocking, non-circular DMA setup that relies on a semi-interrupt-driven task call rather than a continuous loop. This enabled me to yield in the middle of the function, and call back later as soon as DMA is finished transferring. I also fixed a massive bug in the DMA setup: the DMA_SxCR_HTIE and DMA_SxCR_TCIE flags were accidentally enabled for the GPS and OSD ring buffers, which would have crashed the whole RTOS by firing unhandled interrupts, causing default HAL and IRQ handlers to run. 3. Walksnail Two-Way Communication Finally, I built out the respondToVTX task to get the drone properly communicating with the Walksnail VTX. Instead of just blindly sending video data out, this sets up true two-way communication over asynchronous UART. By writing a persistent byte-by-byte state machine, the flight controller can now safely parse incoming requests from the VTX without dropping half-packets, allowing me to send back live stick positions and armed status for the OSD menus. The only thing left to do now is handle persistent CLI storage, the logToBlackBox task, integrating the semi-interrupt pipeline with telemetryTX and the OSD, and a few other system tweaks. After that the RTOS will be 100% ready to fly the actual drone."}, {"post_id": 49360, "ts": "2026-08-18T04:16:35Z", "hours": 4.0211, "text": "Complete RTOS Overhaul, Circular DMA Pipelines, and CPU Abort Fixes This update focuses on fine-tuning the RTOS, organizing the scheduler, and rewriting microcontroller memory handling. Renodeās simulated DMA restrictions make software-only pipeline testing nearly impossible, so I plan to buy a physical dev board and Raspberry Pi to validate on silicon. While the Git diff might not look massive, the architecture has evolved from a blocking system to a true preemptive RTOS with precise polynomial timing. 1. Reworking DMA Flow & Standardizing Ring Buffers Sensor and receiver data pipelines are now driven by circular DMA, enabling non-blocking, high-frequency transfers with response times as fast as 0.3 ms (without printToUSART enabled). Everything now relies on ring buffers. Instead of generating complete packets instantly, mock injectors stream bytes directly into the buffers while updating the simulated NDTR register to mirror hardware behavior. if ( byteIdx >= frameLen ) { byteIdx = 0 ; } crsfRingBuffer [ head ] = frameBuf [ byteIdx ++ ]; head = ( head + 1 ) % CRSF_RING_BUFFER_SIZE ; currentBoardConfig . crsf_dma_stream -> NDTR = CRSF_RING_BUFFER_SIZE - head ; Feeding bytes incrementally moves the write head gradually, ensuring the simulation mimics a physical UART and allowing population functions to safely pull data within interrupt locks. 2. DMA Interrupts for Safe Parsing To prevent data overwrites, DMA streams trigger interrupts at the halfway (HTIE) and full-transfer (TCIE) points to queue tasks. Because registers like LISR are read-only in hardware, I implemented a software mock flag system (mock_LISR) for simulation: extern \"C\" void DMA1_Stream0_IRQHandler ( void ) { #ifdef SIMULATION uint32_t flags = mock_LISR ; mock_LISR = 0 ; #else uint32_t flags = DMA1 -> LISR ; #endif if ( flags & DMA_LISR_HTIF0 ) { DMA1 -> LIFCR = DMA_LIFCR_CHTIF0 ; decideNextInterruptTask ( & taskControlBlocks [ 1 ]); } } Functions safely extract data with interrupts disabled, ensuring the CPU never blocks waiting for peripheral transfers. 3. Assembly Bugs & CPU Aborts Debugging nested hardware interrupts exposed massive faults: The context-switching bug: FPU usage or large stack frames corrupted the return address, causing the CPU to execute BX LR with garbage data. Fixed in PendSV_Handler.S by explicitly storing excReturn inside the TaskControlBlock rather than relying on stacked registers. Second, a 0x00000000 Null Return Crash: Scheduled tasks attempted to return natively, popping 0x00000000 from the zero-initialized Link Register and causing a fetch fault. Every task now runs inside an infinite while(true) loop calling yieldCurrentTask() . 4. Clock PLLs & Hardware Re-routing After configuring the STM32CubeMX PLL for a 25 MHz HSE clock, the MCU runs at its full 216 MHz. I added a standardized initSystemGPIOClocks() function to enable peripheral clocks consistently. I also moved motor 3 from TIM1 to TIM4, synchronizing it with the 216MHz clock and freeing up a TIM1 DMA stream exclusively for the upcoming BlackBox logging. Future Updates With the core RTOS stabilized, development shifts to flight-facing systems: hooking the SPI pipeline to the video overlay for live OSD goggle telemetry, adding permanent flash storage for PID tunes/configs, exposing MCU controls via CLI, supporting programmable transmitter bind buttons, building a desktop GUI, and using the freed TIM1 DMA for BlackBox logging. Below, I have attached a screenshot of every single task working, and outputting values in the simulation, something that wasnāt possible for the interrupt tasks until now."}, {"post_id": 48647, "ts": "2026-08-17T03:57:01Z", "hours": 9.6761, "text": "1. Reworking the DMA Flow for Speed So, a lot has been going on lately, starting with a massive rework of the entire DMA flow. The functions are now entirely populated by circular DMA, which is a huge upgrade for the systemās overall performance. This architectural change allows for completely non-blocking, high-frequency calls, hitting response times as fast as 0.03 milliseconds. It basically means the whole data pipeline is significantly faster, and much more responsive than it was in previous versions. 2. Standardizing Ring Buffers and Mock Injectors To make everything more reliable, the DMA now follows a very specific and predictable pattern for both scheduled and interrupt tasks. Everything relies on ring buffers now, whether they are being injected by actual hardware (or simulated) DMA or by my custom simulation scripts. I also reworked the mock injectors so they no longer just return a pre-formatted packet. Instead, they write directly into the ring buffer, which lets me test the exact same parsing pipeline in software, simulating the hardware flow almost exactly like Renode (if only they would ever fix that USART DMA bugā¦). 3. Assembly BX LR Bug + STMCubeMX Clock PLL I also finally solved the long term BX LR return bug that I literally spent over 20 hours trying to find. Whenever tasks used the FPU or had slightly larger stacks, the return address in the r0 register would just get completely corrupted by the extra data. I fixed this by storing the return address in a dedicated uint value instead of blindly trusting the registers to hold it. That fix alone allowed me to safely re-add telemetryTX and make a bunch of other function logic much more robust. On top of that, I went into STM32CubeMX and reworked the clock PLL manually (it took over 3 hours to solve by hand). By feeding in a 25 MHz HSE clock, I managed to unlock the MCUās internal clocks to run at their full 216 MHz.I also took some time to clean up the codebase to improve overall readability and commenting. 4. DMA Interrupts for Safe Parsing Another feature is that DMA now triggers interrupts when the ring buffers hit exactly halfway and when they are fully populated. This gives me the time to parse all the incoming values safely without having the risk about data getting overwritten by the next DMA pass before I am done reading it. I set up the IRQ handlers in the code to call the interrupt methods automatically, which ensures the CPU stays completely unblocked and free to handle other flight control tasks almost all the time (overall decreasing headroom). 5. Current Status: NVIC Bug Sadly, the code is actually not functional right now because the NVIC and IRQ pipeline is malfunctioning and just refusing to call the interrupts for reasons I cannot figure out yet. Because of this, I am holding off on pushing the code until I can track down the bug, give everything a final polish, and run some benchmark testing (since I donāt want to commit broken code). Also, sorry for promising a commit a day or two after my last devlog. I got super busy, especially with vacation, but I will try my best to get this sorted. Depending on how long it takes to figure out this NVIC issue, the next commit might drop anywhere from tomorrow to a few weeks from now."}, {"post_id": 41654, "ts": "2026-08-06T00:44:12Z", "hours": 9.5336, "text": "This week was heavily focused on the fine tuning and organization of the RTOS. I spent numerous hours of research and untangling environment setups. I originally tried to build out a complete framework for the drone code without relying on any simulation code, but Renodeās restrictions, specifically with its ability to perform DMA requests, quickly made it clear that path was impossible. To fix this Iām looking into picking up a dev board and a Raspberry Pi so I can test and debug everything on an actual MCU before finally moving the codebase over to the drone. Even though the git wonāt look a whole lot different and not a lot of actual code changed, getting these configs finalized (especially in STM32CubeMX) in was a huge step forward for the project. I expect to commit the next version of the code either today or tomorrow, with improvements specifically in TelemetryTX, BlackBoxLogging, and a few other minor changes!"}, {"post_id": 37983, "ts": "2026-07-31T02:30:16Z", "hours": 8.6756, "text": "Major Architecture Upgrade : OSD, Betaflight Rates & Build System Refactor 1. OSD, DMA + SYS First off on the hardware side, I added native MSP-based OSD support for Walksnail video transmitters, built the SPI barometer driver for altitude tracking, and spun up a low-level health task that constantly monitors MPU registers and stack usage in the background. On top of that, I finally fixed the DMA stream conflicts (mainly in STMCubeMX) between TIM1 DShot motor outputs , ADC1, and SPI peripherals, so everything runs without collisions now. 2. SYS Health + Debugging I also implemented a few other low level tasks, allowing me to monitor system health, based upon ram usage and storage used. This task prints out the amount at which each tasks stack is being used, allowing me to effectively debug whether a task was actually overflowing, vs an unrestricted read/write. Furthermore, the original canary values that I used, were completely replaced as they in fact were causing some of the āstack overflowā bugs (via unrestricted reads/write every 1 ms in SysTick_Handler ). 3. Betaflight Rates + CLI Update For flight feel, I implemented Betaflightās Actual Rates algorithm with custom expo curves, so stick inputs map to target angular velocities with center-stick precision. I also completely separated serial communications by moving the interactive CLI to USART1 (accessible via nc -C localhost 1234 in terminal) and pushing system logs to USART3. Additionally, I removed the old telemetryTX task because its unauthorized reads/writes were completely breaking the RTOS scheduler, and expanded the CLI with a ton of commands for live sensor readings and more PID tuning. Speaking of which, I am planning to create a persistent file in /bin/ , allowing for rates to be stored between runs, rather than being reset each during runtime, and having to be manually configured through the CLI. 4. Overhauled Building Workflow Finally, I overhauled the whole developer workflow and build automation setup. The build.sh and build.bat scripts now auto-configure custom CMake profiles and generate a full disassembly file in /bin/ after every build for fast low-level debugging, while run.sh and run.bat automatically launch the right terminal windows on launch. 5. Future Additions: Iām planning to build a closed-loop Renode simulation matrix to stream hardware data into every peripheral externally, letting me run 100% real production code during SIL testing! For this, I will utilize the currently blank simulate.py as well as certain commands in simulate.resc to create properly formatted dynamic buffers(which are not directly injected into the code), allowing me to properly test the DMA drivers, and many of the memory management helpers."}, {"post_id": 35605, "ts": "2026-07-27T04:22:30Z", "hours": 9.44, "text": "Over the last few days, I wrapped up two major tasks for the flight controllerās core sensor and telemetry stack: the on-screen display (OSD) renderer and the BMP390 barometer subsystem. The OSD engine is now fully hooked up to the state system, giving real-time visual downlinks for critical metrics like flight battery voltage, active flight modes, and height statistics over UART. To keep the execution completely non-blocking, all frame updates are dispatched asynchronously, preventing rendering delays from hindering the performance of the high-frequency control loops. On the barometer side, I implemented altitude tracking using Boschās BMP390 sensor over SPI with non-blocking DMA burst transfers. In the 50Hz task loop, incoming 24-bit raw pressure and temperature bytes are assembled and passed through the hypsometric formula to calculate smooth, relative height above ground level (AGL). Although the barometer task is a bit flawed due to floating point register stack errors with the header and end canary values, they donāt seem to be affecting the system in anyway (nor is any data being corrupted). I will find a way to fix these issues before the next commit, as well as the race condition in the interrupt tasks in the next Github commit. After that, it is just system polish and extensive testing before the RTOS will be complete!"}, {"post_id": 33865, "ts": "2026-07-24T04:03:21Z", "hours": 7.1808, "text": "1. Fixing the Stack Overflows at Boot After an entire 25-hour debugging period across 4 days, the RTOS kernel is finally done (for the scheduled tasks). I tracked down a silent bug where several critical scheduled tasksālike powerManagement , lowLevelFailSafe , and telemetryTX āwere crashing the MCU on boot. The issue came down to a boot-time dependency lock: tasks were trying to poll hardware registers (like UART TX flags) and read shared drone state variables before the peripherals or producer tasks had time to initialize on Tick 0. By adding an initial yieldCurrentTask() right at the top of these methods, Task Phase Alignment was officially added. This gives the hardware a full cycle to stabilize, preventing buffer overflows and eliminating the cascading task state corruptions that were locking up the scheduler. 2. Custom Stack Sizing & Real-Time Guard Checks Alongside the scheduler fix, I pushed major upgrades to memory safety and task management. Instead of assigning a static stack array to every task, I transitioned to dynamic per-task stack allocations during initialization ( new (std::nothrow) ). Heavy string-parsing and math tasks get larger stacks, while simple toggle tasks stay lightweight. To catch memory issues before they corrupt the heap, I implemented a custom dual guarding system: 0xDEADBEEF is appended at the bottom of the stack to catch standard stack overflows, while a new 0xBEEFCAFE canary value is written to the very top index ( stackSizeWords ) to instantly flag memory breaches in the SysTick_Handler . Furthermore, I refactored powerManagement to use ADC2 in Circular DMA Mode, writing battery telemetry directly to RAM in the background for zero CPU overhead. 3. Transitioning to Walksnail Avatar HD Looking ahead, my and my friend are officially transitioning our existing analog video setup over to a fully integrated Walksnail Avatar HD digital ecosystem. Rather than keeping my custom telemetry task ( telemetryTX ) with heavy string formatting over raw UART, Walksnail allows me to stream standard MSP (MultiWii Serial Protocol) DisplayPort frames straight to the VTX. The Walksnail system will serve as our primary onboard logging source, giving us full OSD telemetry, high-framerate HD video, and precise blackbox data logging. With the RTOS core now stable and non-blocking, our next focus shifts toward āpremiumā flight controller features, e.g. including custom RC stick expo curves, an expanded USB CLI, and an integrated simulator interface."}, {"post_id": 32665, "ts": "2026-07-21T23:24:15Z", "hours": 9.0794, "text": "I just finished expanding the RTOS architecture, filling out all of the scheduled background tasks to handle real-time flight telemetry, peripheral hardware, and terminal configuration. On the telemetry side, I built out telemetryTX to package battery, status, and GPS data into standard CRSF frames over UART, alongside an NMEA gpsParser that decodes $GNGGA and $GNRMC sentences for live location fixes. I also made powerManagement into its own standalone task so ADC voltage and current metrics can feed into the failsafe logic and telemetry concurrently. To make bench testing and tuning significantly easier, I added usbCLI over USART1, giving me a full interactive shell to tweak PID gains (Kp, Ki, Kd), dump raw IMU data, and inspect hardware states on the fly without needing to reflash firmware. To keep the physical quad safe and responsive during flight, I added updatePeripherals for LED status patterns and buzzer warnings, along with a dedicated Independent Watchdog (IWDG) task running as a low-priority fail-safe to trigger hardware MCU resets if the scheduler ever freezes. On the project structure side, CMake now routes all output binaries straight into a clean ./bin/ directory so nobody has to compile the source manually just to run the .elf target in Renode. I also introduced a -DENABLE_DEBUG flag, allowing me to cleanly toggle between complete USART log prints across every loop or a blank terminal environment meant purely for the CLI shell. While all the background subsystems and scheduled task priorities are fully mapped out, Iām currently figuring out a few lingering RTOS bugsāspecifically around stack allocation, causing stack overflow flags on certain scheduled tasks, along with scheduling starvation where context switching isnāt releasing task blocks properly. Because I want to ensure the scheduler kernel is 100% complete before pushing broken stack frames to the main branch, the GitHub repository will be updated with the complete, bug-fixed code later today. Everything is moving in the right direction, and getting these background tasks finalized brings me one step closer to full flight hardware deployment!"}, {"post_id": 31067, "ts": "2026-07-19T04:58:26Z", "hours": 2.5139, "text": "Iāve spent the last 20 hours of coding basically staring at bare-metal memory allocations and tracking down why the droneās context switcher was triggering CPU drops under the Renode simulation environment. Moving away from manual Python injection scripts to a cleaner C++ conditional compilation framework using CMake was supposed to simplify the testing layout, but instead, it exposed structural design flaws in how the scheduler kernel boots up. Running a multi-sample sensorCalibration() routine at cold boot was forcing hidden task yields before the OS kernel was fully mapped out, which was throwing unmapped register address errors and wiping out index-0 entries. To solve this, I decoupled the entire state machine sequence so that hardware allocations, peripheral registers, and core tracking counters now clear before any operational loops drop into the registry. I also added a critical rtosStarted gatekeeper flag to yieldCurrentTask() so calibration math runs cleanly in sequence without triggering early PendSV handler switches. On top of that, the task stack pointers are completely realigned. The assembly context swapper now maps a precise 32-word boundary allocation utilizing 0xFFFFFFFD as a basic exception return code, which completely eliminates the data corruption that was misaligning our Process Stack Pointer. With the fundamental kernel stabilized, I shifted entirely into clean architecture organization. The massive, cluttered code blocks have been split up into independent tracking files (BufferPopulation.cpp, Tasks.cpp, and SimInjector.cpp). High-speed SPI reads for the IMU, UART ring buffers for decoding CRSF radio channel frames, battery ADC sampling, and DShot600 motor output mixers are now fully broken out and functional. There is still a nagging preemption lockout issue inside the simulator where a single interrupt task attempts to starve out the other concurrent loops during a millisecond window, but the baseline operating system is locked in, meaning I can confidently verify the PID flight mixing tables and safety code blocks safely before the code ever touches a physical quadcopter. If you would like to run your own tasks, I also added support in the .bat and .sh files to build code for the simulation (flag=sim), user task code (flag=user), and actual drone upload code (no flags). Example MacOS Commands: ./build.sh sim ./build.sh user ./build.sh This makes it so that I donāt have to constantly modify code to run either the user tasks or simulation code, instead using a flag. Overall, this RTOS is not done yet, however, I plan to add the rest of the scheduled tasks later today, and fixing the sole bug keeping this simulation back! I expect a full ship to be comming out in the next week or so, along with all ESC, RM, and TM code complete!"}, {"post_id": 30963, "ts": "2026-07-18T23:42:07Z", "hours": 9.2461, "text": "Iāve been doing a lot of debugging for the RTOS scheduler inside the simulation environment, and itās been very difficult for me to identify many bugs in teh core architecture of my tasks. Moving away from Python scripts to a cleaner C++ conditional compilation framework using CMake was supposed to simplify things, but instead, it exposed some nasty architectural bugs in how tasks and context switching interact. There has also been a massive priority inversion and preemption lockup where the CRSF parsing loop completely starves out the lower-priority threads. Also, running a raw sensor calibration loop at boot was forcing thread switches before the OS kernel was even fully initialized, completely corrupting task indexes, throwing null pointer warnings, and leaving half of my PID calculations at zero. Still working on many fixes, but it has been a lot of work (9 hours), but I hope to get the full RTOS with at least bare minimum flight tasks out by tomorrow! The GitHub repo still wonāt be fully up-to-date until these structural bugs are figured out, but I plan to push the corrected scheduler files and mock drivers very soon. The screenshot below shows an image of the CRSF task completely dominating, without any processes interrupting it."}, {"post_id": 30245, "ts": "2026-07-17T17:45:35Z", "hours": 9.5911, "text": "I just wrapped up the core architecture of the droneās flight controller, including mapping out all 7 interrupt methods into a far more optimized RTOS scheduler. The updated version makes use of a FIFO stack, to keep track of nested interrupts. I also protected the main code from data corruption during pendSV switches by enabling and disabling irq in certain areas of vulnerable code. Other small changes to the assembly to save floating point registers as well as better memory allocation was also done in this update. From high-speed IMU sensor integration and state estimation calculations to CRSF packet decoding and DShot motor generation, the essential tasks are fully written and compiled. Iāve officially shifted gears into the testing phase, working on simulated environments to debug DMA transfers, registers, and the flight state machineās arming sequences. As of now, I am writing python scripts by hand, in order to inject ādummyā values into the GPIO, SPI, and USART registers in order to populate the buffers, and simulate the calculations. As the code is becoming longer and longer, I will try to refactor a lot of the files into smaller more organized portions, to increase readability (often I have a hard time traversing everything). Note: The current code pushed to GitHub isnāt quite the latest since Iām in the middle of troubleshooting a few simulation-specific register bugs, but I wanted to get this update out to meet the 10-hour devlog requirement on Stardance. Everything is moving in the right direction, and having a virtual environment all working means I can safely verify the PID mixer and safety flags before this code ever touches a physical quad. This officially marks the end of both phases 2 and 3, and now its a matter of finishing extra scheduled telemetry tasks (e.g. OSD and EdgeTX logging), but I estimate that the flight controller portion of the code (around 60% of all logic in the drone) will be done between now and Sunday, July 19th! I will also post a much more in depth devlog about how the methods work, as well as an updated README.md on Github ASAP."}, {"post_id": 28703, "ts": "2026-07-15T03:44:43Z", "hours": 1.4603, "text": "To make my hybrid RTOS accessible and easy to test, I designed a modular sandbox task registry system that isolates the core kernel from custom user code. Developers can write standard non-returning tasks in an isolated file ( User_Tasks/user_tasks.cpp ), while the kernel exposes a registration hook that allocates a dedicated 1024-word stack space. This decoupling means anyone can plug in their own cooperative or preemptive tasks, set execution periods or trigger bounds, and run them instantly on our virtual STM32F7 without risking memory corruption or touching the underlying context-switching assembly. For more information on how to make your own tasks refer to the README.md ."}, {"post_id": 28651, "ts": "2026-07-15T01:05:47Z", "hours": 1.0922, "text": "I just updated a few build files and restructured the project, so code and simulation separation would be better. I also added a few executable files (build.sh, run.bat, and run.sh) to easily compile and run the project."}, {"post_id": 28615, "ts": "2026-07-14T23:38:20Z", "hours": 5.5942, "text": "I finally reached a massive milestone with the kernel architecture and got the scheduler firing exactly how it needs to. Even though I thought the RTOS portion was completely wrapped up a bit ago, now it is officially done. I ended up doing a massive revamp on how scheduled tasks execute, routing them through PendSV so that the background worker states get completely backed up and saved by my assembly code just like the preemptive ones. I also cleaned up the initialization API by throwing in an overloaded function to separate timed loops from raw hardware events (the interrupt tasks). Overall most of the testing logic is now gone, and now the system is being more and more focused on the actual drone tasks. On the hardware side of things, I built out the actual drone tasks and the underlying SPI and UART DMA drivers that populate my local data packets. Even though they are not in use right now as all the tasks (which are not fully completed) require the support of each other for full testing. With the core OS completely checked off, the focus is shifting entirely over to the actual flight control logic. Over the next couple of days, Iām going to wrap up the final flight controller tasks, and get the core stabilization algorithms running. Once the flight controller application layer is fully put together, Iām moving straight onto building out complete simulations for the receiver, transmitter, and finally the ESC modules to get the whole drone network interacting together!"}, {"post_id": 27365, "ts": "2026-07-12T21:17:48Z", "hours": 3.8289, "text": "I finally finished the most difficult part of the project so far and got a hybrid cooperative/preemptive scheduler running from scratch. After a ton of debugging with the assembly memory layout, the core RTOS kernel shell is officially stable, verified inside the Renode simulator, and completely ready to handle flight data. The architecture divides the CPUās brain into two execution pathways to maximize calculation speeds while keeping latency near zero. Standard background tasks, like handling low-priority peripheral updates, run sequentially inside a cooperative loop based on their relative priority. They execute and then drop out without wasting an overhead time. But for high-priority hardware event such as a critical radio packet arriving over UART or raw sensor data from the IMU, the system completely bypasses the standard queue. It pulls a physical hardware lever (PendSV) that forces an instant stack swap. When an interrupt task fires through PendSV, the CPU pauses the background scheduled loop, and my assembly code packs up the core registers, saves that exact memory address to RAM, and hot-swaps the Process Stack Pointer to launch the interrupt task. Right now, there is just a dummy delay loop inside the interrupt task to visually show the execution break in the console logs. Once it finishes printing, it hits a yield function that throws the assembly switch backward, pops the background registers, and hands control straight back to the flight loop. The repository currenly has a lot of diagnostic test code because I needed to prove the pointer indirection and stack-faking logic worked without blowing up the memory alignment. Now that the plumbing is completely verified, the next step is to strip out the test code and start writing the actual flight infrastructure. I am moving straight into coding the PID control loops, signal mixers, Kalman filters, and live motor generation."}, {"post_id": 26996, "ts": "2026-07-12T03:54:25Z", "hours": 2.8228, "text": "I finally added minimum task scheduling for the RTOS. I had originally designed a simple kernel to create a buffer of scheduled tasks in QEMU, but after learning that the simulation didnāt actually support the specific MCU that my friend and I are using for the real drone, I had to pivot. I switched over to using STM32CubeMX for the actual bare-metal configuration and Renode to handle running the emulation. Right now, the kernel just executes a task based on a basic timing loop and priority, waits for it to completely finish, and then moves on to the next task. To be honest, it isnāt super useful yet because it only covers tasks in what I call the āscheduled zoneā of the drone. This includes background stuff like blackbox flight data management, but it leaves out the most critical parts like the PID control loops and streaming real-time UART data from the IMU. Those features need to fire their own asynchronous interrupt signals at the highest possible hardware priority so they can instantly pause the optional background tasks and execute the critical code that actually keeps the drone stable and flying. Next up, I need to write a short piece of assembly to handle saving the current CPU state and registers of whatever task is currently running when an interrupt hits. It shouldnāt be too bad since it will only take about 30 lines of code. I know I havenāt been posting devlogs for the past couple of weeks even though Iāve been grinding on this, but thatās mostly because we spent a ton of time initially planning out the architecture of the drone. We wanted to map out the software boundaries early so my friend and I could go our separate ways working on different systems without having massive merge conflicts later on."}]...
|
Title: 200 MPH Drone RTOS by @Guagyyy | Stardance
Title: 200 MPH Drone RTOS by @Guagyyy | Stardance
Devlogs:
I finally added minimum task scheduling for the RTOS. I had originally designed a simple kernel to create a buffer of scheduled tasks in QEMU, but after learning that the simulation didnāt actually support the specific MCU that my friend and I are using for the real drone, I had to pivot. I switched over to using STM32CubeMX for the actual bare-metal configuration and Renode to handle running the emulation. Right now, the kernel just executes a task based on a basic timing loop and priority, waits for it to completely finish, and then moves on to the next task. To be honest, it isnāt super useful yet because it only covers tasks in what I call the āscheduled zoneā of the drone. This includes background stuff like blackbox flight data management, but it leaves out the most critical parts like the PID control loops and streaming real-time UART data from the IMU. Those features need to fire their own asynchronous interrupt signals at the highest possible hardware priority so they can instantly pause the optional background tasks and execute the critical code that actually keeps the drone stable and flying. Next up, I need to write a short piece of assembly to handle saving the current CPU state and registers of whatever task is currently running when an interrupt hits. It shouldnāt be too bad since it will only take about 30 lines of code. I know I havenāt been posting devlogs for the past couple of weeks even though Iāve been grinding on this, but thatās mostly because we spent a ton of time initially planning out the architecture of the drone. We wanted to map out the software boundaries early so my friend and I could go our separate ways working on different systems without having massive merge conflicts later on.
I finally finished the most difficult part of the project so far and got a hybrid cooperative/preemptive scheduler running from scratch. After a ton of debugging with the assembly memory layout, the core RTOS kernel shell is officially stable, verified inside the Renode simulator, and completely ready to handle flight data. The architecture divides the CPUās brain into two execution pathways to maximize calculation speeds while keeping latency near zero. Standard background tasks, like handling low-priority peripheral updates, run sequentially inside a cooperative loop based on their relative priority. They execute and then drop out without wasting an overhead time. But for high-priority hardware event such as a critical radio packet arriving over UART or raw sensor data from the IMU, the system completely bypasses the standard queue. It pulls a physical hardware lever (PendSV) that forces an instant stack swap. When an interrupt task fires through PendSV, the CPU pauses the background scheduled loop, and my assembly code packs up the core registers, saves that exact memory address to RAM, and hot-swaps the Process Stack Pointer to launch the interrupt task. Right now, there is just a dummy delay loop inside the interrupt task to visually show the execution break in the console logs. Once it finishes printing, it hits a yield function that throws the assembly switch backward, pops the background registers, and hands control straight back to the flight loop. The repository currenly has a lot of diagnostic test code because I needed to prove the pointer indirection and stack-faking logic worked without blowing up the memory alignment. Now that the plumbing is completely verified, the next step is to strip out the test code and start writing the actual flight infrastructure. I am moving straight into coding the PID control loops, signal mixers, Kalman filters, and live motor generation.
I finally reached a massive milestone with the kernel architecture and got the scheduler firing exactly how it needs to. Even though I thought the RTOS portion was completely wrapped up a bit ago, now it is officially done. I ended up doing a massive revamp on how scheduled tasks execute, routing them through PendSV so that the background worker states get completely backed up and saved by my assembly code just like the preemptive ones. I also cleaned up the initialization API by throwing in an overloaded function to separate timed loops from raw hardware events (the interrupt tasks). Overall most of the testing logic is now gone, and now the system is being more and more focused on the actual drone tasks. On the hardware side of things, I built out the actual drone tasks and the underlying SPI and UART DMA drivers that populate my local data packets. Even though they are not in use right now as all the tasks (which are not fully completed) require the support of each other for full testing. With the core OS completely checked off, the focus is shifting entirely over to the actual flight control logic. Over the next couple of days, Iām going to wrap up the final flight controller tasks, and get the core stabilization algorithms running. Once the flight controller application layer is fully put together, Iām moving straight onto building out complete simulations for the receiver, transmitter, and finally the ESC modules to get the whole drone network interacting together!
I just updated a few build files and restructured the project, so code and simulation separation would be better. I also added a few executable files (build.sh, run.bat, and run.sh) to easily compile and run the project.
To make my hybrid RTOS accessible and easy to test, I designed a modular sandbox task registry system that isolates the core kernel from custom user code. Developers can write standard non-returning tasks in an isolated file ( User_Tasks/user_tasks.cpp ), while the kernel exposes a registration hook that allocates a dedicated 1024-word stack space. This decoupling means anyone can plug in their own cooperative or preemptive tasks, set execution periods or trigger bounds, and run them instantly on our virtual STM32F7 without risking memory corruption or touching the underlying context-switching assembly. For more information on how to make your own tasks refer to the README.md .
I just wrapped up the core architecture of the droneās flight controller, including mapping out all 7 interrupt methods into a far more optimized RTOS scheduler. The updated version makes use of a FIFO stack, to keep track of nested interrupts. I also protected the main code from data corruption during pendSV switches by enabling and disabling irq in certain areas of vulnerable code. Other small changes to the assembly to save floating point registers as well as better memory allocation was also done in this update. From high-speed IMU sensor integration and state estimation calculations to CRSF packet decoding and DShot motor generation, the essential tasks are fully written and compiled. Iāve officially shifted gears into the testing phase, working on simulated environments to debug DMA transfers, registers, and the flight state machineās arming sequences. As of now, I am writing python scripts by hand, in order to inject ādummyā values into the GPIO, SPI, and USART registers in order to populate the buffers, and simulate the calculations. As the code is becoming longer and longer, I will try to refactor a lot of the files into smaller more organized portions, to increase readability (often I have a hard time traversing everything). Note: The current code pushed to GitHub isnāt quite the latest since Iām in the middle of troubleshooting a few simulation-specific register bugs, but I wanted to get this update out to meet the 10-hour devlog requirement on Stardance. Everything is moving in the right direction, and having a virtual environment all working means I can safely verify the PID mixer and safety flags before this code ever touches a physical quad. This officially marks the end of both phases 2 and 3, and now its a matter of finishing extra scheduled telemetry tasks (e.g. OSD and EdgeTX logging), but I estimate that the flight controller portion of the code (around 60% of all logic in the drone) will be done between now and Sunday, July 19th! I will also post a much more in depth devlog about how the methods work, as well as an updated README.md on Github ASAP.
Iāve been doing a lot of debugging for the RTOS scheduler inside the simulation environment, and itās been very difficult for me to identify many bugs in teh core architecture of my tasks. Moving away from Python scripts to a cleaner C++ conditional compilation framework using CMake was supposed to simplify things, but instead, it exposed some nasty architectural bugs in how tasks and context switching interact. There has also been a massive priority inversion and preemption lockup where the CRSF parsing loop completely starves out the lower-priority threads. Also, running a raw sensor calibration loop at boot was forcing thread switches before the OS kernel was even fully initialized, completely corrupting task indexes, throwing null pointer warnings, and leaving half of my PID calculations at zero. Still working on many fixes, but it has been a lot of work (9 hours), but I hope to get the full RTOS with at least bare minimum flight tasks out by tomorrow! The GitHub repo still wonāt be fully up-to-date until these structural bugs are figured out, but I plan to push the corrected scheduler files and mock drivers very soon. The screenshot below shows an image of the CRSF task completely dominating, without any processes interrupting it.
Iāve spent the last 20 hours of coding basically staring at bare-metal memory allocations and tracking down why the droneās context switcher was triggering CPU drops under the Renode simulation environment. Moving away from manual Python injection scripts to a cleaner C++ conditional compilation framework using CMake was supposed to simplify the testing layout, but instead, it exposed structural design flaws in how the scheduler kernel boots up. Running a multi-sample sensorCalibration() routine at cold boot was forcing hidden task yields before the OS kernel was fully mapped out, which was throwing unmapped register address errors and wiping out index-0 entries. To solve this, I decoupled the entire state machine sequence so that hardware allocations, peripheral registers, and core tracking counters now clear before any operational loops drop into the registry. I also added a critical rtosStarted gatekeeper flag to yieldCurrentTask() so calibration math runs cleanly in sequence without triggering early PendSV handler switches. On top of that, the task stack pointers are completely realigned. The assembly context swapper now maps a precise 32-word boundary allocation utilizing 0xFFFFFFFD as a basic exception return code, which completely eliminates the data corruption that was misaligning our Process Stack Pointer. With the fundamental kernel stabilized, I shifted entirely into clean architecture organization. The massive, cluttered code blocks have been split up into independent tracking files (BufferPopulation.cpp, Tasks.cpp, and SimInjector.cpp). High-speed SPI reads for the IMU, UART ring buffers for decoding CRSF radio channel frames, battery ADC sampling, and DShot600 motor output mixers are now fully broken out and functional. There is still a nagging preemption lockout issue inside the simulator where a single interrupt task attempts to starve out the other concurrent loops during a millisecond window, but the baseline operating system is locked in, meaning I can confidently verify the PID flight mixing tables and safety code blocks safely before the code ever touches a physical quadcopter. If you would like to run your own tasks, I also added support in the .bat and .sh files to build code for the simulation (flag=sim), user task code (flag=user), and actual drone upload code (no flags). Example MacOS Commands: ./build.sh sim ./build.sh user ./build.sh This makes it so that I donāt have to constantly modify code to run either the user tasks or simulation code, instead using a flag. Overall, this RTOS is not done yet, however, I plan to add the rest of the scheduled tasks later today, and fixing the sole bug keeping this simulation back! I expect a full ship to be comming out in the next week or so, along with all ESC, RM, and TM code complete!
I just finished expanding the RTOS architecture, filling out all of the scheduled background tasks to handle real-time flight telemetry, peripheral hardware, and terminal configuration. On the telemetry side, I built out telemetryTX to package battery, status, and GPS data into standard CRSF frames over UART, alongside an NMEA gpsParser that decodes $GNGGA and $GNRMC sentences for live location fixes. I also made powerManagement into its own standalone task so ADC voltage and current metrics can feed into the failsafe logic and telemetry concurrently. To make bench testing and tuning significantly easier, I added usbCLI over USART1, giving me a full interactive shell to tweak PID gains (Kp, Ki, Kd), dump raw IMU data, and inspect hardware states on the fly without needing to reflash firmware. To keep the physical quad safe and responsive during flight, I added updatePeripherals for LED status patterns and buzzer warnings, along with a dedicated Independent Watchdog (IWDG) task running as a low-priority fail-safe to trigger hardware MCU resets if the scheduler ever freezes. On the project structure side, CMake now routes all output binaries straight into a clean ./bin/ directory so nobody has to compile the source manually just to run the .elf target in Renode. I also introduced a -DENABLE_DEBUG flag, allowing me to cleanly toggle between complete USART log prints across every loop or a blank terminal environment meant purely for the CLI shell. While all the background subsystems and scheduled task priorities are fully mapped out, Iām currently figuring out a few lingering RTOS bugsāspecifically around stack allocation, causing stack overflow flags on certain scheduled tasks, along with scheduling starvation where context switching isnāt releasing task blocks properly. Because I want to ensure the scheduler kernel is 100% complete before pushing broken stack frames to the main branch, the GitHub repository will be updated with the complete, bug-fixed code later today. Everything is moving in the right direction, and getting these background tasks finalized brings me one step closer to full flight hardware deployment!
1. Fixing the Stack Overflows at Boot After an entire 25-hour debugging period across 4 days, the RTOS kernel is finally done (for the scheduled tasks). I tracked down a silent bug where several critical scheduled tasksālike powerManagement , lowLevelFailSafe , and telemetryTX āwere crashing the MCU on boot. The issue came down to a boot-time dependency lock: tasks were trying to poll hardware registers (like UART TX flags) and read shared drone state variables before the peripherals or producer tasks had time to initialize on Tick 0. By adding an initial yieldCurrentTask() right at the top of these methods, Task Phase Alignment was officially added. This gives the hardware a full cycle to stabilize, preventing buffer overflows and eliminating the cascading task state corruptions that were locking up the scheduler. 2. Custom Stack Sizing & Real-Time Guard Checks Alongside the scheduler fix, I pushed major upgrades to memory safety and task management. Instead of assigning a static stack array to every task, I transitioned to dynamic per-task stack allocations during initialization ( new (std::nothrow) ). Heavy string-parsing and math tasks get larger stacks, while simple toggle tasks stay lightweight. To catch memory issues before they corrupt the heap, I implemented a custom dual guarding system: 0xDEADBEEF is appended at the bottom of the stack to catch standard stack overflows, while a new 0xBEEFCAFE canary value is written to the very top index ( stackSizeWords ) to instantly flag memory breaches in the SysTick_Handler . Furthermore, I refactored powerManagement to use ADC2 in Circular DMA Mode, writing battery telemetry directly to RAM in the background for zero CPU overhead. 3. Transitioning to Walksnail Avatar HD Looking ahead, my and my friend are officially transitioning our existing analog video setup over to a fully integrated Walksnail Avatar HD digital ecosystem. Rather than keeping my custom telemetry task ( telemetryTX ) with heavy string formatting over raw UART, Walksnail allows me to stream standard MSP (MultiWii Serial Protocol) DisplayPort frames straight to the VTX. The Walksnail system will serve as our primary onboard logging source, giving us full OSD telemetry, high-framerate HD video, and precise blackbox data logging. With the RTOS core now stable and non-blocking, our next focus shifts toward āpremiumā flight controller features, e.g. including custom RC stick expo curves, an expanded USB CLI, and an integrated simulator interface.
Over the last few days, I wrapped up two major tasks for the flight controllerās core sensor and telemetry stack: the on-screen display (OSD) renderer and the BMP390 barometer subsystem. The OSD engine is now fully hooked up to the state system, giving real-time visual downlinks for critical metrics like flight battery voltage, active flight modes, and height statistics over UART. To keep the execution completely non-blocking, all frame updates are dispatched asynchronously, preventing rendering delays from hindering the performance of the high-frequency control loops. On the barometer side, I implemented altitude tracking using Boschās BMP390 sensor over SPI with non-blocking DMA burst transfers. In the 50Hz task loop, incoming 24-bit raw pressure and temperature bytes are assembled and passed through the hypsometric formula to calculate smooth, relative height above ground level (AGL). Although the barometer task is a bit flawed due to floating point register stack errors with the header and end canary values, they donāt seem to be affecting the system in anyway (nor is any data being corrupted). I will find a way to fix these issues before the next commit, as well as the race condition in the interrupt tasks in the next Github commit. After that, it is just system polish and extensive testing before the RTOS will be complete!
Major Architecture Upgrade : OSD, Betaflight Rates & Build System Refactor 1. OSD, DMA + SYS First off on the hardware side, I added native MSP-based OSD support for Walksnail video transmitters, built the SPI barometer driver for altitude tracking, and spun up a low-level health task that constantly monitors MPU registers and stack usage in the background. On top of that, I finally fixed the DMA stream conflicts (mainly in STMCubeMX) between TIM1 DShot motor outputs , ADC1, and SPI peripherals, so everything runs without collisions now. 2. SYS Health + Debugging I also implemented a few other low level tasks, allowing me to monitor system health, based upon ram usage and storage used. This task prints out the amount at which each tasks stack is being used, allowing me to effectively debug whether a task was actually overflowing, vs an unrestricted read/write. Furthermore, the original canary values that I used, were completely replaced as they in fact were causing some of the āstack overflowā bugs (via unrestricted reads/write every 1 ms in SysTick_Handler ). 3. Betaflight Rates + CLI Update For flight feel, I implemented Betaflightās Actual Rates algorithm with custom expo curves, so stick inputs map to target angular velocities with center-stick precision. I also completely separated serial communications by moving the interactive CLI to USART1 (accessible via nc -C localhost 1234 in terminal) and pushing system logs to USART3. Additionally, I removed the old telemetryTX task because its unauthorized reads/writes were completely breaking the RTOS scheduler, and expanded the CLI with a ton of commands for live sensor readings and more PID tuning. Speaking of which, I am planning to create a persistent file in /bin/ , allowing for rates to be stored between runs, rather than being reset each during runtime, and having to be manually configured through the CLI. 4. Overhauled Building Workflow Finally, I overhauled the whole developer workflow and build automation setup. The build.sh and build.bat scripts now auto-configure custom CMake profiles and generate a full disassembly file in /bin/ after every build for fast low-level debugging, while run.sh and run.bat automatically launch the right terminal windows on launch. 5. Future Additions: Iām planning to build a closed-loop Renode simulation matrix to stream hardware data into every peripheral externally, letting me run 100% real production code during SIL testing! For this, I will utilize the currently blank simulate.py as well as certain commands in simulate.resc to create properly formatted dynamic buffers(which are not directly injected into the code), allowing me to properly test the DMA drivers, and many of the memory management helpers.
This week was heavily focused on the fine tuning and organization of the RTOS. I spent numerous hours of research and untangling environment setups. I originally tried to build out a complete framework for the drone code without relying on any simulation code, but Renodeās restrictions, specifically with its ability to perform DMA requests, quickly made it clear that path was impossible. To fix this Iām looking into picking up a dev board and a Raspberry Pi so I can test and debug everything on an actual MCU before finally moving the codebase over to the drone. Even though the git wonāt look a whole lot different and not a lot of actual code changed, getting these configs finalized (especially in STM32CubeMX) in was a huge step forward for the project. I expect to commit the next version of the code either today or tomorrow, with improvements specifically in TelemetryTX, BlackBoxLogging, and a few other minor changes!
1. Reworking the DMA Flow for Speed So, a lot has been going on lately, starting with a massive rework of the entire DMA flow. The functions are now entirely populated by circular DMA, which is a huge upgrade for the systemās overall performance. This architectural change allows for completely non-blocking, high-frequency calls, hitting response times as fast as 0.03 milliseconds. It basically means the whole data pipeline is significantly faster, and much more responsive than it was in previous versions. 2. Standardizing Ring Buffers and Mock Injectors To make everything more reliable, the DMA now follows a very specific and predictable pattern for both scheduled and interrupt tasks. Everything relies on ring buffers now, whether they are being injected by actual hardware (or simulated) DMA or by my custom simulation scripts. I also reworked the mock injectors so they no longer just return a pre-formatted packet. Instead, they write directly into the ring buffer, which lets me test the exact same parsing pipeline in software, simulating the hardware flow almost exactly like Renode (if only they would ever fix that USART DMA bugā¦). 3. Assembly BX LR Bug + STMCubeMX Clock PLL I also finally solved the long term BX LR return bug that I literally spent over 20 hours trying to find. Whenever tasks used the FPU or had slightly larger stacks, the return address in the r0 register would just get completely corrupted by the extra data. I fixed this by storing the return address in a dedicated uint value instead of blindly trusting the registers to hold it. That fix alone allowed me to safely re-add telemetryTX and make a bunch of other function logic much more robust. On top of that, I went into STM32CubeMX and reworked the clock PLL manually (it took over 3 hours to solve by hand). By feeding in a 25 MHz HSE clock, I managed to unlock the MCUās internal clocks to run at their full 216 MHz.I also took some time to clean up the codebase to improve overall readability and commenting. 4. DMA Interrupts for Safe Parsing Another feature is that DMA now triggers interrupts when the ring buffers hit exactly halfway and when they are fully populated. This gives me the time to parse all the incoming values safely without having the risk about data getting overwritten by the next DMA pass before I am done reading it. I set up the IRQ handlers in the code to call the interrupt methods automatically, which ensures the CPU stays completely unblocked and free to handle other flight control tasks almost all the time (overall decreasing headroom). 5. Current Status: NVIC Bug Sadly, the code is actually not functional right now because the NVIC and IRQ pipeline is malfunctioning and just refusing to call the interrupts for reasons I cannot figure out yet. Because of this, I am holding off on pushing the code until I can track down the bug, give everything a final polish, and run some benchmark testing (since I donāt want to commit broken code). Also, sorry for promising a commit a day or two after my last devlog. I got super busy, especially with vacation, but I will try my best to get this sorted. Depending on how long it takes to figure out this NVIC issue, the next commit might drop anywhere from tomorrow to a few weeks from now.
Complete RTOS Overhaul, Circular DMA Pipelines, and CPU Abort Fixes This update focuses on fine-tuning the RTOS, organizing the scheduler, and rewriting microcontroller memory handling. Renodeās simulated DMA restrictions make software-only pipeline testing nearly impossible, so I plan to buy a physical dev board and Raspberry Pi to validate on silicon. While the Git diff might not look massive, the architecture has evolved from a blocking system to a true preemptive RTOS with precise polynomial timing. 1. Reworking DMA Flow & Standardizing Ring Buffers Sensor and receiver data pipelines are now driven by circular DMA, enabling non-blocking, high-frequency transfers with response times as fast as 0.3 ms (without printToUSART enabled). Everything now relies on ring buffers. Instead of generating complete packets instantly, mock injectors stream bytes directly into the buffers while updating the simulated NDTR register to mirror hardware behavior. if ( byteIdx >= frameLen ) { byteIdx = 0 ; } crsfRingBuffer [ head ] = frameBuf [ byteIdx ++ ]; head = ( head + 1 ) % CRSF_RING_BUFFER_SIZE ; currentBoardConfig . crsf_dma_stream -> NDTR = CRSF_RING_BUFFER_SIZE - head ; Feeding bytes incrementally moves the write head gradually, ensuring the simulation mimics a physical UART and allowing population functions to safely pull data within interrupt locks. 2. DMA Interrupts for Safe Parsing To prevent data overwrites, DMA streams trigger interrupts at the halfway (HTIE) and full-transfer (TCIE) points to queue tasks. Because registers like LISR are read-only in hardware, I implemented a software mock flag system (mock_LISR) for simulation: extern "C" void DMA1_Stream0_IRQHandler ( void ) { #ifdef SIMULATION uint32_t flags = mock_LISR ; mock_LISR = 0 ; #else uint32_t flags = DMA1 -> LISR ; #endif if ( flags & DMA_LISR_HTIF0 ) { DMA1 -> LIFCR = DMA_LIFCR_CHTIF0 ; decideNextInterruptTask ( & taskControlBlocks [ 1 ]); } } Functions safely extract data with interrupts disabled, ensuring the CPU never blocks waiting for peripheral transfers. 3. Assembly Bugs & CPU Aborts Debugging nested hardware interrupts exposed massive faults: The context-switching bug: FPU usage or large stack frames corrupted the return address, causing the CPU to execute BX LR with garbage data. Fixed in PendSV_Handler.S by explicitly storing excReturn inside the TaskControlBlock rather than relying on stacked registers. Second, a 0x00000000 Null Return Crash: Scheduled tasks attempted to return natively, popping 0x00000000 from the zero-initialized Link Register and causing a fetch fault. Every task now runs inside an infinite while(true) loop calling yieldCurrentTask() . 4. Clock PLLs & Hardware Re-routing After configuring the STM32CubeMX PLL for a 25 MHz HSE clock, the MCU runs at its full 216 MHz. I added a standardized initSystemGPIOClocks() function to enable peripheral clocks consistently. I also moved motor 3 from TIM1 to TIM4, synchronizing it with the 216MHz clock and freeing up a TIM1 DMA stream exclusively for the upcoming BlackBox logging. Future Updates With the core RTOS stabilized, development shifts to flight-facing systems: hooking the SPI pipeline to the video overlay for live OSD goggle telemetry, adding permanent flash storage for PID tunes/configs, exposing MCU controls via CLI, supporting programmable transmitter bind buttons, building a desktop GUI, and using the freed TIM1 DMA for BlackBox logging. Below, I have attached a screenshot of every single task working, and outputting values in the simulation, something that wasnāt possible for the interrupt tasks until now.
1. CLI Upgrades and Channel Mapping Over the past 5 days, I knocked out some major quality-of-life upgrades for the flight controller. I added customizable channel mapping for CRSF directly through the CLI. By utilizing a combination of references and pointers, I was able to point a volatile alias to certain channel mappings, allowing for completely customizable CRSF channels. While I was in the CLI logic, I also added the ability to configure custom IMU orientations around the z-axis, making it way easier to mount the board in different directions without having to recompile the firmware. 2. DMA Pipeline Fixes and Baro Optimization A big chunk of this session went into debugging and refactoring the hardware data pipelines. I adjusted the ADC population pipeline in order to fix some stream parsing issues, and gave the barometer a massive overhaul. The baro now uses a non-blocking, non-circular DMA setup that relies on a semi-interrupt-driven task call rather than a continuous loop. This enabled me to yield in the middle of the function, and call back later as soon as DMA is finished transferring. I also fixed a massive bug in the DMA setup: the DMA_SxCR_HTIE and DMA_SxCR_TCIE flags were accidentally enabled for the GPS and OSD ring buffers, which would have crashed the whole RTOS by firing unhandled interrupts, causing default HAL and IRQ handlers to run. 3. Walksnail Two-Way Communication Finally, I built out the respondToVTX task to get the drone properly communicating with the Walksnail VTX. Instead of just blindly sending video data out, this sets up true two-way communication over asynchronous UART. By writing a persistent byte-by-byte state machine, the flight controller can now safely parse incoming requests from the VTX without dropping half-packets, allowing me to send back live stick positions and armed status for the OSD menus. The only thing left to do now is handle persistent CLI storage, the logToBlackBox task, integrating the semi-interrupt pipeline with telemetryTX and the OSD, and a few other system tweaks. After that the RTOS will be 100% ready to fly the actual drone.
1. Scheduler Hardening and Task Discovery Spent part of this session making the RTOS scheduler itself more robust. I added a findTaskByName() function so interrupt-driven task lookups happen dynamically instead of relying on hardcoded task indices, which was a fragile setup just waiting to break the moment task registration order changed. Alongside that, I wrapped every one of those lookups with lambdas that throw a proper warning if a task canāt be found, so a missing task fails loudly instead of silently dereferencing a null pointer somewhere downstream. 2. Blocking vs Non-Blocking Scheduled Tasks After a lot of painful debugging, I traced a string of issues (including interrupt tasks silently failing to fire and scheduled tasks stepping on each other) back to non-blocking statements Iād introduced inside scheduled tasks in the previous devlog. I ended up taking those out and reverting scheduled tasks fully back to blocking, which is genuinely what the scheduled zone was designed for in the first place: tasks that donāt need to run in polynomial time and can safely block without putting the drone at risk of crashing. Once that was sorted, I converted the raw USART byte-pushing into a blocking DMA system instead, so streaming is handled by DMA hardware rather than manually pushed byte-by-byte over USART. 3. Flight Loop Refactor and VTX Communication On the flight logic side, I refactored flightLoop() to use lambdas and a state machine so I would never have to yield in the middle of my tasks (which was used previousely for zeroing motor outputs). I also converted the error handling into a proper state machine, so different types of warnings can be caught and handled distinctly instead of lumping every issue into one path, and turned on full debug printing whenever the system is running. Last but not least, I built out a dedicated injector for respondToVTX so I can properly test and simulate VTX communication going forward. 4. Real Hardware Testing Since, I am almost 100% done with the RTOS I bought two NUCLEO-F756ZGās which will serve as testing the 100% production code rather than the simulation version. I bought two so that one of the boards will be running the real RTOS code, testing DMA reading from USART, SPI, and emitting real motor signals, while the second will be emulating all of my peripherals. When the boards come, if the code does work, it will also mean that the real PCBās will also work when my friend finishes with them. 5. Next Steps As of now there are a few issues with the double preempt system (for the interrupt tasks) I designed a while back, so I will need to debug that before they arrive. Right now before the boards arrive, I will be finishing up the RTOS blocking DMA pipelines (stripping out IRQ, removing NVIC etc. for scheduled tasks), and performing a bunch of baseline testing in order to prove that the RTOS is capable of flying an actual drone!
For the past couple weeks I have been mostly refining small bugs, which were originally rendering the RTOS usless, as well as refactoring the code for simplicity rather than elegancy. 1. Transition to Actual Hardware Renode is great for simulation, but it ended up hiding a bunch of race conditions in the population methods and the main scheduler that led to no code actually running during the IRQ handler calls. I spent a lot of time securing those resources and finally got the scheduler mostly finished up. Also, I decided to just take out the double preempts entirely since they were adding way too much complexity for absolutely zero speed benefits in practice (plus they were creating detrimental but rare race conditions). 2. Code Refactor To make things run a bit more consistent, I restructured how the control loops operate. I ended up merging the dShotGeneration task with the parent IMU control loop, so now everything from reading the sensors to pushing motor commands happens in one clean sequence (rather than including an unnecessary preempt). I also built out a brand new CRSF control loop to handle all the radio parsing and state machine updates in its own dedicated space (just for consistency). Lastly, while doing a final pass on the code, I realized that in my dShotGeneration helper, I had forgot to scale the values by a factor of 1/2000, as the inputs require the value to be between 0 and 1 (not 0 and 2000). 3. Final DMA Iteration The biggest relief was finally getting rid of the old blocking USART system. I finally transitioned away from manually handling the streaming by polling flags in a loop, which was tying up the processor way more than it should have. Everything has been converted over to a blocking DMA system, so the hardware can just handle all the memory transfers in the background while the CPU focuses on actually keeping the drone in the air. Overall, I think that this will be the final iteration of the RTOS DMA pipeline, as now that it is solid and works with all the edge cases, theres no need to change it. 4. Timeline With almost all the major bugs fixed, I am going to ship the project! While it is not 100% done, it will likely be as close as it will get during the timeframe of the Stardance hackathon, and with it so close, theres no reason not to ship. Anyway, I will keep the source as the main project rather than a release, so if I do end up fixing any major bugs, they will get patched either before or during project review (besides most of these bugs are only detectable on actual hardware). I will most likely finish the RTOS in the next couple weeks (by the end of October), and will finish the drivers for the ESC and RM by latest end of November (for more timing refer to the README). Thanks to everyone who supported me throughout this project (hopefully me and my friend can get this drone flying in another Hack Club Hackathon!).
Although I havenāt been able to make much progress on the project due to school over the past weeks I did manage to make some substantial project mostly with the scheduler, allowing for fairly good performance on my STM Nucleo boards, rather than it just crashing instantly. 1. Issues with the Old Design The flight controllerās RTOS scheduler wasnāt working under real hardware timing because global variables like currTaskIndex, topOfStack, and excReturn were being modified from multiple entry points simultaneously. Yield calls, interrupt handlers, and the main task-selection logic were all making independent writes to the same shared task control blocks. Whenever a hardware interrupt fired mid-write, stack pointers and exception return values were saved into the wrong taskControlBlocks slot. This created edge cases where preempted tasks were silently double-queued, state tracking completely desynchronized, and time-critical hardware events were dropped during flight. 2. Centralizing Context Switches in PendSV To eliminate these race conditions, all state-selection decisions were moved out of individual execution contexts and consolidated into decideNextTask(), which now runs exclusively inside the PendSV assembly handler. Functions like yieldCurrentTask(), decideNextInterruptTask(), and decideNextScheduledTask() no longer touch global scheduler state or choose which task runs next; they simply update local status flags like TaskState::BLOCKED or TaskState::READY inside brief __disable_irq() critical sections and trigger PendSV using SCB_ICSR_PENDSVSET_Msk. When PendSV fires, decideNextTask() saves outgoingSP and outgoingExcReturn to the active block, sets RUNNING tasks to READY, and runs a two-pass check over taskControlBlocks[]āevaluating high-priority TaskType::INTERRUPT tasks first, then TaskType::SCHEDULED tasks, and falling back to index 0 for idle. Since PendSV is the only place allowed to modify currTaskIndex, concurrent state corruption is structurally impossible.
Ships:
Phase 1 (The Custom RTOS Kernel) I am building a custom FPV drone from scratch with my friend in an attempt to achieve 200 mph . At those speeds, standard super loops are far too slow, as a single microsecond of lag means the drone travels feet before making a PID correction. To solve this, I built a custom, hybrid cooperative/preemptive Real-Time Operating System (RTOS) from scratch for the ARM Cortex-M7 (STM32F7)! What Was Challenging? The absolute hardest part of this phase was writing the low-level assembly context switcher ( PendSV_Handler.S ). Hacking the ARM Cortex-M7 registers to physically hot-swap stack pointers ( PSP ) mid-execution without crashing the CPU or corrupting the program state was a massive headache. I had to ensure that when an asynchronous preemption event fires, the assembly code perfectly preserves the execution registers ( R4-R11 plus the hardware-stacked registers), jumps to the high-priority task, and then seamlessly restores the background task right where it left off. Getting the compiler-enforced task overloading working so the kernel cleanly separates periodic tasks from raw interrupts was another huge hurdle, but it makes the whole codebase infinitely more robust. Want to Test It or Write Your Own Tasks? You donāt need physical hardware to watch this run! Iāve packaged the entire project with a Renode simulation script. You can run the interactive emulator with a single command to see the preemption scheduler hijack our counter task live, or you can jump into the user sandbox file and write your own custom tasks. Check out the GitHub Repository to Run the Demo! The README has a quick 5-minute setup guide to get you compiling and simulating your own code in no time.
200 MPH Drone RTOS: How it went Simulation to Silicon! When I published the first major update for this project at the 15-hour mark, I essentially had a proof-of-concept. I had managed to write a custom hybrid cooperative/preemptive scheduler and get an ARM Cortex-M7 (on the STM32f756VGTx) assembly context switcher functioning inside the Renode simulator. Although this looked like a massive leap, the project had barely started. Over 100 hours of development have gone into this project since then. The transition from a simulated kernel to a bare-metal flight controller capable of keeping a 200 MPH drone in the air required stripping the system down to its bare components, rewriting the memory architecture, and debugging some of the most frustrating hardware faults I have ever encountered-especially whenever the project just crashed, leaving me no traces as to what went wrong. Software Limitations The biggest turning point was realizing that software simulation can only take you so far. Renode is an amazing tool, but it hid a massive amount of race conditions and timing flaws that only exposed themselves when I finally flashed the code to physical STM32F756 Nucleo board. Sometimes, the MCU would have to reboot every 2 seconds. I spent dozens of hours tracking down massive architectural bugs. One of the worst was a context-switching fault where floating-point math was corrupting the return address in the CPU registers, causing the processor to execute raw garbage data. To fix this, I had to completely restructure the boot sequence and overhaul the memory management. I moved away from static arrays to a dynamic per-task stack allocation system, and implemented a dual-guard memory system. Arguably, this was the most important change as it allowed me to debug tasks way quicker as I instantly could know when the canary values were corrupted. Overhauling the Data Pipelines In order to avoid the 10ms delay of my original blocking pipline (for data transfer), I entirely rewrote the hardware data pipelines multiple times to use a semi-blocking, circular Direct Memory Access (DMA) architecture. Instead of the processor handling the data transfer, the hardware itself moves the bytes from the sensors directly into memory in the background. The DMA streams now trigger precise interrupts at the halfway and full-transfer points, allowing the RTOS to safely parse incoming radio packets and sensor reads without ever risking data overwrites or blocking the main flight loop. Building a Flight Controller I integrated Betaflightās Actual Rates algorithm with custom expo curves, ensuring that physical stick inputs map perfectly to target velocities. I built a custom SPI driver to pull 24-bit raw pressure and temperature data from a BMP390 barometer, passing it through hypsometric formulas to calculate altitude. For video and telemetry, I moved away from raw UART strings and implemented native MSP DisplayPort communication (for true digital Walksnail Avatar connection). I also built an interactive USB command-line interface. Instead of having to recompile and re-flash the firmware every time a PID value needs to be adjusted, I can plug into the board, pull up a terminal, and manually tune gains, remap CRSF radio channels, or adjust IMU orientation offsets in real time. Final Version The last few weeks have been about refinement and consistency, removing race conditions and overall polishing the code. Now that the RTOS is fully functional, the only things to add are extra features, like a permanent + more expanded CLI, as well as finishing the external RM and linking the ESC drivers. As these are pretty insignificant, I have linked the source of this shipment to the Github project rather than a specific release so that I can update these during review!...
|
1792842857.8059814
|
1792929257.8059814
|
|
26435
|
Coffee OS by @kristaps | Stardance
|
kristaps
|
2
|
20.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-27T17:30:37Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made coffee OS an operating system similair to windows, but it is also a game? Yes it is really fun to mess around with the coffee clicker. The most challenging part of making it was to update the innerHTML variables in javascript inside my content that is stored there. I am really happy how well the coffee theme looks on the website and I really like the little secret overlay that blocks you from doing anything if you beat the OS. More info in README š", "repo": "https://github.com/kristapsskele/My-OS-I-guess", "demo": "https://kristapsskele.github.io/My-OS-I-guess/"}, {"ship_num": 2, "ts": "2026-08-03T12:36:10Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an operating system called coffee-os. It features a working clock, coffee os welcome screen (open frome bottom left corner text), notes app and slot machine. The most challenging part was making all the values that are being updated in javascript update in html. You can read more from github ReadMe", "repo": "https://github.com/kristapsskele/My-OS-I-guess", "demo": "https://kristapsskele.github.io/My-OS-I-guess/"}]...
|
[{"post_id": 55679, "ts": "202 [{"post_id": 55679, "ts": "2026-08-27T17:17:22Z", "hours": 2.8056, "text": "Finished making my coffee clicker appš®. I really enjoyed making the logic behind it because it was just pure math, playing it made me feel addicted thatās why the video is sped up. This app concludes my WebOS 2 journey, I might continue this project and make other cool apps, maybe Iāll add a roasted coffee bean shop."}, {"post_id": 45815, "ts": "2026-08-12T15:18:57Z", "hours": 3.0842, "text": "I started my clicker app, it has 1 upgrade available, and it works from the same coffee beans as the slot machine. (Middle explains some of the new things I learned.) ///////////////////////////////////////////////////////////////////////// To link the amount of beans I used querrySelectorALL.forEach⦠It is a really helpful thingy because I donāt have to use multiple ids. To update my clicker info I used the same principle used in tutorial, but I added my variables in it so they change the values automatically and I made the texts in a function, to make them easier to update. I will try adding the other upgrade buttons in one function, just like opening windows is one. Next thing Iām going to try implementing is that the apps can be minimized/maximized, and that open apps are visible on the task bar just like in windows. /////////////////////////////////////////////////////////////////////////////////////// I will not make any progress for about a week or more, because I am going to be busy with lots (I mean lots) of other life stuff. I hope you have an excitingly wonderful dayāā!"}, {"post_id": 44575, "ts": "2026-08-10T12:59:34Z", "hours": 0.7972, "text": "I made a coffee map app. Actually it was pretty simple. I found the map in google, copied url, added it to an iframe, then changed the size of it and after a few changes to the iframe left placement, got rid of the side scrolling bar and navbar, so the map doesnt look as clustered. I will try to make a game š® next, but I have not decided what I will try going for. //////////////////////////////////////////////////////////////////////////////////////// Currently Iām thinking about making a clicker game connected to the slot machine š°, that uses the same beans and lets you upgrade the machine further. But weāll see.."}, {"post_id": 40027, "ts": "2026-08-03T11:36:19Z", "hours": 5.6678, "text": "Added a slot machine app, that lets you play for your coffee beans. Used new functions like math.random and onclick, I realised I really like making some little logic thingies using math, so next apps will probably also be little games. This app completes my webOS 1 journey which I will continue on webOS2. š"}, {"post_id": 36392, "ts": "2026-07-28T13:53:13Z", "hours": 1.9242, "text": "I mostly finished the note app (I only need to add a way to create new notes). When clicking on the app icon the background gets selected and on another click the app opens. Added MY function handleNoteTap it is similair to the tutorial, but a bit different and it helps you see which note you selected. ////////////////////////////////////////////////////////////////////////////////////This isnāt related to my OS so you can skip it. I was really busy the last month so did not manage to continue working on this OS until now but I think that I will have a couple of free days to finish this project."}, {"post_id": 19242, "ts": "2026-06-30T14:37:12Z", "hours": 2.0536, "text": "I almost made a coffee themed notetaking app, moved almost all styling from inline to css. I spent half of my time looking for mistakes in my code because I COULD NOT FIND THE 1 LETTER WHICH I ACCIDENTALLY PRESSED. Next time I will finish the note app. And I need a break from java script so maybe I will make designs for icons and buttons and other things ā"}, {"post_id": 18460, "ts": "2026-06-29T16:56:01Z", "hours": 2.3261, "text": "Made the welcome window closeable and openable and DRAGGABLE. Decided I will make this OS coffee themed, also a fun thing from the tutorial was adding time and date. On the bottom bar I used :hover to make the colour of words change."}, {"post_id": 17602, "ts": "2026-06-28T13:51:25Z", "hours": 0.8653, "text": "I built the basic structure of my OS. I changed the size of images and even rounded one, I changed the colour of the text and added a new font."}]...
|
Title: Coffee OS by @kristaps | Stardance
Devlogs Title: Coffee OS by @kristaps | Stardance
Devlogs:
I built the basic structure of my OS. I changed the size of images and even rounded one, I changed the colour of the text and added a new font.
Made the welcome window closeable and openable and DRAGGABLE. Decided I will make this OS coffee themed, also a fun thing from the tutorial was adding time and date. On the bottom bar I used :hover to make the colour of words change.
I almost made a coffee themed notetaking app, moved almost all styling from inline to css. I spent half of my time looking for mistakes in my code because I COULD NOT FIND THE 1 LETTER WHICH I ACCIDENTALLY PRESSED. Next time I will finish the note app. And I need a break from java script so maybe I will make designs for icons and buttons and other things ā
I mostly finished the note app (I only need to add a way to create new notes). When clicking on the app icon the background gets selected and on another click the app opens. Added MY function handleNoteTap it is similair to the tutorial, but a bit different and it helps you see which note you selected. ////////////////////////////////////////////////////////////////////////////////////This isnāt related to my OS so you can skip it. I was really busy the last month so did not manage to continue working on this OS until now but I think that I will have a couple of free days to finish this project.
Added a slot machine app, that lets you play for your coffee beans. Used new functions like math.random and onclick, I realised I really like making some little logic thingies using math, so next apps will probably also be little games. This app completes my webOS 1 journey which I will continue on webOS2. š
I made a coffee map app. Actually it was pretty simple. I found the map in google, copied url, added it to an iframe, then changed the size of it and after a few changes to the iframe left placement, got rid of the side scrolling bar and navbar, so the map doesnt look as clustered. I will try to make a game š® next, but I have not decided what I will try going for. //////////////////////////////////////////////////////////////////////////////////////// Currently Iām thinking about making a clicker game connected to the slot machine š°, that uses the same beans and lets you upgrade the machine further. But weāll see..
I started my clicker app, it has 1 upgrade available, and it works from the same coffee beans as the slot machine. (Middle explains some of the new things I learned.) ///////////////////////////////////////////////////////////////////////// To link the amount of beans I used querrySelectorALL.forEach⦠It is a really helpful thingy because I donāt have to use multiple ids. To update my clicker info I used the same principle used in tutorial, but I added my variables in it so they change the values automatically and I made the texts in a function, to make them easier to update. I will try adding the other upgrade buttons in one function, just like opening windows is one. Next thing Iām going to try implementing is that the apps can be minimized/maximized, and that open apps are visible on the task bar just like in windows. /////////////////////////////////////////////////////////////////////////////////////// I will not make any progress for about a week or more, because I am going to be busy with lots (I mean lots) of other life stuff. I hope you have an excitingly wonderful dayāā!
Finished making my coffee clicker appš®. I really enjoyed making the logic behind it because it was just pure math, playing it made me feel addicted thatās why the video is sped up. This app concludes my WebOS 2 journey, I might continue this project and make other cool apps, maybe Iāll add a roasted coffee bean shop.
Ships:
I made an operating system called coffee-os. It features a working clock, coffee os welcome screen (open frome bottom left corner text), notes app and slot machine. The most challenging part was making all the values that are being updated in javascript update in html. You can read more from github ReadMe
I made coffee OS an operating system similair to windows, but it is also a game? Yes it is really fun to mess around with the coffee clicker. The most challenging part of making it was to update the innerHTML variables in javascript inside my content that is stored there. I am really happy how well the coffee theme looks on the website and I really like the little secret overlay that blocks you from doing anything if you beat the OS. More info in README š...
|
1792831822.1060488
|
1792918222.1060488
|
|
26452
|
Orbital by @Mehmet | Stardance
|
Mehmet
|
2
|
32.0
|
390
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T19:39:02Z", "hours": 17.0, "multiplier": 12.19, "payout": 201, "blessing": "neutral", "text": "I built Orbital, the all-in-one project that encompasses whatever you need from a 2D astronomical simulator. When first loading it up, a window titled āOrbitalā pops up, and you will see a star right at the center. You can change the window dimensions however you would like, whether fullscreen or resized small. This is where the fun starts: I spent tireless hours implementing a slingshot mechanism where you can intuitively and easily launch āorbitals,ā as I like to call them. You can think of these as small planets that you can send to orbit around each other and around bigger stars, masses, and objects that you create yourself. The starting star is just to get you going. Controls and Features: ⢠Navigation: Use the WASD keys and/or arrow keys to navigate around this 2D world and find different orbits across the gigantic canvas. It does not have an end (unless you spend 10 hours of unemployment trying to find it, but I am sure you are not that stubborn). ⢠Mass Adjustment: Use the plus (+) and minus (-) keys to change the mass of the objects you throw into the simulation. ⢠Physics: It runs on full n-body physics; nothing is hard-coded and everything is dynamic. No matter how quirky and interesting your orbits are, they will be solely and originally yours. ⢠Visuals: The colors change up every once in a while. I really tried to make it as minimalist and physics-identifying as possible. ⢠Reset: Press the R key on your keyboard to reset the world and start from a fresh universe, marked by the reset star that kickstarts everything again. I am really proud of the n-body physics because it was surprisingly manageable and cool to work on. Where I really struggled was on advanced merging. Normally, if objects are touching, you can simply merge them. But when objects move super fast, one frame they are far away, and by the next frame, high velocity math teleports them right past or into the other object. If you slingshot a planet relatively fast, it could easily glitch and teleport through objects. To fix this, I had to calculate whether the path the object took from frame 0 to frame 1 intersected any other objects along its trajectory. That was an especially hard, albeit depressing challenge, but nevertheless, it was encountered and defeated so you could enjoy astronomical bliss. Thank you!", "repo": "https://github.com/SameRainbows/Starshell", "demo": "https://github.com/SameRainbows/Orbital/releases/tag/v1.0.0"}, {"ship_num": 2, "ts": "2026-07-05T15:30:25Z", "hours": 15.0, "multiplier": 12.8, "payout": 189, "blessing": "neutral", "text": "Initial Ship Update (v1.0.0) What did I make? I built Orbital , a 2D gravitational physics sandbox created entirely in Python using only standard library modules ( turtle and tkinter ). Orbits are not hardcoded; they emerge dynamically from Newtonās Law of Universal Gravitation calculated between every single body frame-by-frame. You can interactively slingshot planets into orbit, pan a camera infinitely around the universe using WASD or Arrow keys, adjust the laws of physics on the fly using a Tkinter-based HUD, and watch planets collide and merge under the conservation of momentum. What was challenging? The Coordinates Separation: Early on, a planetās physics position was its drawing position. To build a panning camera, I had to decouple themācreating a 9-element list structure to track world coordinates privately while subtracting camera offsets only for rendering. The āTunnelingā Bug: Fast slingshotted planets would frequently phase straight through the central star between frames. I solved this by implementing Continuous Collision Detection (CCD)āusing vector dot-product projection to check if the line segment traveled during a frame intersected the star. Singularity Prevention: As merging planets got infinitesimally close, the gravity force equation approached divide-by-zero, creating infinite force that would sling bodies off screen at lightspeed. I had to write custom logic to disable gravity between two bodies the exact frame they overlap. A Responsive HUD: Nesting Tkinter widgets on a Turtle ScrolledCanvas caused nesting errors. I resolved this by passing the raw screen._root as the parent, and binding the canvas <Configure> event to dynamically slide the widgets so they stay pinned to the top-right corner when resizing. What am I proud of? Conserving Density: When two bodies merge, the new objectās size is calculated using sqrt(r1² + r2²) rather than just adding the radii. This ensures area is conserved, keeping physical density mathematically consistent. Conservation of Momentum: If you launch two equal-mass planets head-on at the same speed, they will perfectly cancel out and stop dead in space upon impact, exactly as real-world physics dictates. What should people know so they can test my project? Slingshot: Click, drag, and release to fling planets into the cosmos. HUD Controls: Adjust the Gravity slider to warp orbits in real-time, and slide the Mass slider to change the size and weight of the next planet you launch. Color Picker: Click the color button to cycle the launching color (the button text dynamically updates to show what is selected). Navigation: Use WASD or Arrow keys to pan the camera around. Rebuilding: Press the Reset button to wipe the board and start a clean universe. No Python installed? Zero-dependency, standalone executables for Windows , macOS , and Linux are automatically built and attached directly to the GitHub Release!", "repo": "https://github.com/SameRainbows/Starshell", "demo": "https://github.com/SameRainbows/Orbital/releases/tag/v1.0.0"}]...
|
[{"post_id": 63802, "ts": "202 [{"post_id": 63802, "ts": "2026-09-07T19:26:27Z", "hours": 1.2872, "text": "I updated the project. I was notified that it initially crashed on macOS, and the arrow keys were a bit janky on macOS as well. All of that has been completely fixed, and Iāve updated the readme and the latest code on GitHub to encompass those changes."}, {"post_id": 38456, "ts": "2026-07-31T20:42:59Z", "hours": 0.3458, "text": "A few cleanups on the size of the grid."}, {"post_id": 37557, "ts": "2026-07-30T11:27:46Z", "hours": 0.4203, "text": "Today I changed the title card of the window that pops up. A few other updates: ⢠I tweaked the final game feel a bit. ⢠I made the initial spawning star spawn in a sort of light yellow color, and I also added that light yellow color to the colors list. ⢠I made sure that the window of the simulation is also in dark mode, so you get more encapsulated in it."}, {"post_id": 37243, "ts": "2026-07-29T20:01:14Z", "hours": 0.3844, "text": "Added a background grid so that you get a sense of spatial bigness and tininess. You get a feel for how big and small your orbitals really are."}, {"post_id": 36907, "ts": "2026-07-29T09:37:56Z", "hours": 0.5981, "text": "I finally got the complex merging done. Before, when an orbital was going too fast, one frame it was at the back of another orbital, and the next frame, it was in front of it. Since its velocity was so high, the radii didnāt ever collide, so it just went through other ones without merging. That was really not acceptable, so I worked a lot on making sure it works. How I did it is actually very interesting: Get the starting position of the moving object and its ending position on the next frame. Get the coordinates of the target object you want to check for a potential merge. Draw a line from where the moving object started to where it ended, and check if the target object is intersecting that line (calculating what percentage along that line the checked object sits). If it intersects, you merge them."}, {"post_id": 34557, "ts": "2026-07-25T11:31:10Z", "hours": 1.9503, "text": "Added some instructions to make it easier, added more colors, and Iām now working on making more rigorous merge logic."}, {"post_id": 31787, "ts": "2026-07-20T13:42:17Z", "hours": 0.7153, "text": "Today I added zooming that works with scrolling up and scrolling down appropriately: when you scroll down, everything gets smaller, and when you scroll up, everything gets bigger. Mass and gravity, of course, stay the same. I made sure that the sling function (basically spawning new orbitals) works flawlessly. Our aim functionāwhich draws that mini press-and-drag indicator to make it easier to see where you are spawning orbitalsāis also working with both camera differentiation and zoom differentiation. This way, you can zoom all the way out and still spawn orbitals in the correct way, or zoom all the way in and spawn them super close up. All the physics and rendering works beautifully."}, {"post_id": 31286, "ts": "2026-07-19T15:52:23Z", "hours": 0.4508, "text": "I made some more intuitive user changes: Slingshot Dampening: Now, the slingshot isnāt like an Angry Bird slingshot that propels your particles to the other side of the universe (though you could do that if you want, just open the code). All the slingshot coordinates and values are now multiplied by 0.2. Weāre nerfing it a lot, but it seems more intuitive that way. Since you donāt know itās nerfed, you wonāt notice there is a higher capacity. In our case, a higher capacity actually means friction. Donāt get me wrong: itās not particle friction, because they go super fast. Itās friction when trying to get orbits to work. Repository Tweaks: Calling the script from_scratch.py was killing me, so I found something simpler: orbital.py. Itās much better. I updated the GitHub repository so that the current release is orbital.py (the refactored version). While main.py (the previous version) has a few more features right now, orbital.py is much cleaner. Main.py was more of a learning run, and I feel like Iām bringing my A-game with this new refactor. Look and Feel: I really liked the black background and white orbitals of the previous main.py version, so I changed the clinical-seeming style of from_scratch.py. I scrapped that look and made sure the new orbital.py has some taste."}, {"post_id": 30665, "ts": "2026-07-18T12:54:27Z", "hours": 0.4531, "text": "I fixed the āmerging from hellā. The first issue was the radius calculation. When two circles merge, simply adding their radii ( r1 + r2 ) is physically wrong because the combined area grows way too fast. In reality, the area of the circles should add up: A_new = A1 + A2 . By plugging in the area formula Ļ Ć r² , we get Ļ Ć r_new² = (Ļ Ć r1²) + (Ļ Ć r2²) . The Ļ cancels out completely, leaving r_new = math.sqrt(r1² + r2²) . I updated the collision code with this, and now the combined masses have physically accurate sizes.To make this look right, I also fixed the visual scaling issue. Previously, every particle rendered at shapesize(1, 1) regardless of its actual mass or radius. I changed the instantiator so that a bodyās shapesize dynamically scales with its physics radius: self.turt.shapesize(self.radius / 10, self.radius / 10) . Now when objects collide, you can actually see the merged planet grow on the screen.Lastly, I added a quick reset button . Pressing the R key runs a function that loops through the current objects, hides all their turtles to prevent visual ghosts, clears the main objects list, resets the camera back to center coordinates, and spawns a fresh central star"}, {"post_id": 30329, "ts": "2026-07-17T20:01:25Z", "hours": 0.7283, "text": "Hey, I added merging, but itās āmerging out of hellā because I made a very unphysically true and crude (if youād call it that), but working prototype of merge_collisions and the merge function itself. It works as I intended, but not physically truly. Right now, it adds the radii of the circles themselves. If you think about it, thatās physically wrong because thereās a big difference between adding the areas of the circles versus their radii. Thatās something I want to get right, so the next time Iām working on it, Iāll make sure to fix it so that we are adding the areas of the circles rather than their radii. I also found a bit of a problem where the merged objects themselves have a shape size of (1, 1). Thatās not right because if you merge two objects with shape size 1, youād expect the new shape size to be 2. Right now, no matter how many objects you merge, it still stays at 1, resulting in a very, very dense circle. Iām going to change that so we add the areas themselves, and have that new, bigger area update the visual representation of those astronomical objects. Iāll keep you guys updated. See you next time."}, {"post_id": 29651, "ts": "2026-07-16T18:34:38Z", "hours": 2.6961, "text": "Lots of stuff today: Camera movement: I added camera movement to our new refractor. Better version of the sling: The older one just expected you to press, drag, and release without seeing much of an indicator. While that works if you know the program a bit, I think a direct, laser-esque pointer that shows you actively as youāre pressing, dragging, and releasing is more intuitive and easier to work with. So I added that. Now we have intuitive camera movement and intuitive spawning. For this refactor, we wonāt have any UI. All the sliders for gravity and mass will be per keyboard or hotkey."}, {"post_id": 27197, "ts": "2026-07-12T15:21:09Z", "hours": 0.7889, "text": "Welcome! Today, I fully migrated to the object-oriented programming architecture. Earlier, the class wasnāt really full OOP; it was just a hidden list factory that appended the stuff via a class instead of doing it manually. I wanted to change that because this is going to be a refactor in an OOP perspective , and thatās what I did.I made sure that all the formulas used the latest changes:1. Earlier, they would use the index of the objects inside the objs list of lists. It would be something like object1 and the index of whichever element it wants to access, like mass , radius , velocity , or coordinates. It was very sloppy, and you had to keep up with what each index meant.2. With an OOP version, you just write object1.mass , object1.x , or object1.vx . Each and every line is more intuitive.I also worked more on the planet spawning . Remember, this is a new file with a different perspective of trying to remake this in an OOP sense, using classes and the benefits that ensue from them.Additionally, today I implemented the balancing of the canvas differences in Tkinter and Turtle :- In Turtle, the (0, 0) coordinate is directly in the middle of the screen .- In Tkinter, itās at the absolute top left of the screen.You have to make sure that all the formulas and all the logic get the correct version, which in my project is the Turtle version . I added and worked out the logic that would make sure that balance is kept."}, {"post_id": 26600, "ts": "2026-07-11T14:59:24Z", "hours": 0.7944, "text": "Actively working on making Orbital (via the from_scratch.py file) more object-oriented. I think OOP (object-oriented programming) will be a great addition to Orbital because we have lots of stuff that can be simplified. These could be new particles, like new planets, and I think grouping everything into classes would be a better way to handle these. Right now, our sling function just does the same thing again and again. A class that could be called any time we want to make a new particle is probably the way to go. Iāll keep you guys updated."}, {"post_id": 25989, "ts": "2026-07-10T15:20:31Z", "hours": 0.7464, "text": "Today I spent all my time on from_scratch.py to really get to understand the physics of it all. Before, I just relied on a few formulas.Thatās why Iām going to try and maximize my gains from this project by re-understanding all the logic and trying to write it from scratch, using only my notes and not looking at any AI or code from main.py .Itās going good! I added quite a few functions:- A distance function- A force function- An angle function (all of these take two objects, by the way ā I still have the same objs list, which is a list of lists)- A velocity update function called velo_update that takes an object , a force , angle , and mass , and updates the velocities of those objects depending on their forces, angles, and massMaybe I can cut back on mass . I donāt know why I added it, since we can already get it from the objs list with our object parameter. Iāll look into that.I also created the scaffold for an update function, which is going to be the main function . I added screen.ontimer(update, 10) to run it every 10 milliseconds. Itās just the main scaffold for now, but Iām really focusing on the logic of it all."}, {"post_id": 25611, "ts": "2026-07-10T00:02:56Z", "hours": 3.3097, "text": "Hey, this is another mini devlog. I just wanted to say that while waiting for my initial ship to get reviewed, I was working on reviewing my current code and remembering how every part interacted. Iām doing this by making a from-scratch.py file where I just try to build the general project from the ground up with my direct understanding and recall of it, without looking at every line of code. This is like a mini side quest in the background so that as the file gets big, I donāt lose where Iām going. Right now, it just has the basic functions like distance and force, and has two Python turtles set to circles with different colors. Iām going to build this from the ground up and really focus on the struggle and pain through the process. I want to maximize my gains from this project this way."}, {"post_id": 23423, "ts": "2026-07-06T11:33:26Z", "hours": 0.8419, "text": "The UI was a very wretched default gray, and to be honest, it didnāt look so visually appealing. Mine still isnāt all peaches and cream, but itās less of a distraction and more of a subtlety in the grand scheme of things. I changed this to a better, harmonizing dark charcoal color that I think goes pretty well with the minimalist design of all-white Orbitals and a pure black background."}, {"post_id": 22825, "ts": "2026-07-05T12:58:40Z", "hours": 0.5425, "text": "Hey, remember the UI I had in earlier? Well, when you change the window size, it just stays hard-coded. If you maximize your window, thereās suddenly a piece of UI that was supposed to help you navigate the simulator thatās in your way. So, I did some math so that the UI is at the perfect top right of any shape and size of the windows you make. Itās a dynamic UI layout, and itās dynamic enough to survive window resizing. Pretty cool."}, {"post_id": 22811, "ts": "2026-07-05T12:15:42Z", "hours": 1.3161, "text": "Today I added some UI, so we have some actually good interactive elements. We can use sliders to, in real time, update our gravity. And I also added a reset button that basically lets you clean up all the messes and start from a fresh place."}, {"post_id": 22124, "ts": "2026-07-04T12:42:36Z", "hours": 2.3839, "text": "This is not a full devlog. Because Iām typing this on my phone. Came to say that Iām working on adding a minimalistic UI to the project, like small buttons and maybe sliders for mass and color control. Using tkinter, the underlying library in which turtle was built. I donāt have any screenshots with me, so enjoy this photo from my gallery, shot at the beach at night."}, {"post_id": 21435, "ts": "2026-07-03T11:55:53Z", "hours": 3.6731, "text": "Today I added merging. Now, objects that get too close to each other donāt do weird physics-breaking stuff. They intuitively merge into an object with a total mass, total area, and a new velocity depending on the previous velocities. This way, you can actually build complex systems that fall apart in at least an ordered way. There was a slight problem if the objects were going too fast: because of their speed, one frame they would be behind each other and the next frame they would be ahead of each other. I had to do some math to see if the path they took went through the object we were checking. That was a very fun, intuitive piece to work on, and merging now works very intuitively and very well."}, {"post_id": 19114, "ts": "2026-06-30T11:02:05Z", "hours": 1.3767, "text": "Added camera movement with WASD. Now, the objects that run out of your view arenāt lost forever: you can catch up to them with only your keyboard and a few fingers."}, {"post_id": 18601, "ts": "2026-06-29T19:53:31Z", "hours": 2.1206, "text": "I finally added slingshotting! Basically, the planets arenāt hidden in the code itself anymore; they are right at your fingertips. You can spawn planets just by clicking and dragging. Itās that simple. This was a feature I wanted for a very long time, and Iām really satisfied with how it turned out."}, {"post_id": 16991, "ts": "2026-06-27T15:56:02Z", "hours": 0.7453, "text": "Devlog #2 ā N-Body Physics Today I implemented dynamic physics and dynamic moving. Basically, before, the move functionāthe function on a one-millisecond timer that updated everythingāwas extremely hard-coded. It just used the data of the existing two turtles (the two bodies I made myself), and it definitely wasnāt scalable. So that was what I tackled today. Now, the main function that runs our whole physics simulation is a tad bit less torturous."}, {"post_id": 16363, "ts": "2026-06-26T16:57:58Z", "hours": 2.59, "text": "Iām building Starshell, a 2D astronomical physics simulator in pure Python turtle. No game engine, no physics libraryājust the standard library, a turtle canvas, and physics and math. The idea in my head is quite simple: I want to simulate how gravity actually works. Bodies with mass attract each other, their paths bend, and orbits merge. Eventually, I want collisions, multi-body chaos, and a UI where you click to place stars and planets. Todayās milestone was the first orbit. To get here, I didnāt just plug in some formulas; I had to build the physics chains from a blank turtle canvas: Distance between two bodies Gravitational force: F = G Ć (m1 Ć m2) / r² Direction of that force: atan2(y, x) Force components: splitting into x and y with cos and sin Acceleration: a = F / m Velocity update: adding acceleration each frame Position update: moving the turtle by velocity each frame The orbit isnāt actually hard to code. The planet doesnāt know itās supposed to go in a circle; I donāt tell it to trace a circle. It just responds to the pull of the star every single frame. The circle is what falls out of the math when the initial velocity is balanced just right. One of the trickiest moments was realizing my gravitational constant (G = 1) made the force so smallāaround 0.0004āthat compared to my velocity of two units per frame, the planet just flew away in a straight line. I couldnāt see any curve at all, let alone an orbit. Cranking the gravity up to something like 1,000 to 1,600 (found by experimentation) made the orbits visible. That moment when the blue dot actually curved and came back around in a full orbit felt very satisfying. Next up, I want multiple bodies that interact with each other, not just a fixed point (aka a star). Follow Along!"}]...
|
Title: Orbital by @Mehmet | Stardance
Devlogs:
Iā Title: Orbital by @Mehmet | Stardance
Devlogs:
Iām building Starshell, a 2D astronomical physics simulator in pure Python turtle. No game engine, no physics libraryājust the standard library, a turtle canvas, and physics and math. The idea in my head is quite simple: I want to simulate how gravity actually works. Bodies with mass attract each other, their paths bend, and orbits merge. Eventually, I want collisions, multi-body chaos, and a UI where you click to place stars and planets. Todayās milestone was the first orbit. To get here, I didnāt just plug in some formulas; I had to build the physics chains from a blank turtle canvas: Distance between two bodies Gravitational force: F = G Ć (m1 Ć m2) / r² Direction of that force: atan2(y, x) Force components: splitting into x and y with cos and sin Acceleration: a = F / m Velocity update: adding acceleration each frame Position update: moving the turtle by velocity each frame The orbit isnāt actually hard to code. The planet doesnāt know itās supposed to go in a circle; I donāt tell it to trace a circle. It just responds to the pull of the star every single frame. The circle is what falls out of the math when the initial velocity is balanced just right. One of the trickiest moments was realizing my gravitational constant (G = 1) made the force so smallāaround 0.0004āthat compared to my velocity of two units per frame, the planet just flew away in a straight line. I couldnāt see any curve at all, let alone an orbit. Cranking the gravity up to something like 1,000 to 1,600 (found by experimentation) made the orbits visible. That moment when the blue dot actually curved and came back around in a full orbit felt very satisfying. Next up, I want multiple bodies that interact with each other, not just a fixed point (aka a star). Follow Along!
Devlog #2 ā N-Body Physics Today I implemented dynamic physics and dynamic moving. Basically, before, the move functionāthe function on a one-millisecond timer that updated everythingāwas extremely hard-coded. It just used the data of the existing two turtles (the two bodies I made myself), and it definitely wasnāt scalable. So that was what I tackled today. Now, the main function that runs our whole physics simulation is a tad bit less torturous.
I finally added slingshotting! Basically, the planets arenāt hidden in the code itself anymore; they are right at your fingertips. You can spawn planets just by clicking and dragging. Itās that simple. This was a feature I wanted for a very long time, and Iām really satisfied with how it turned out.
Added camera movement with WASD. Now, the objects that run out of your view arenāt lost forever: you can catch up to them with only your keyboard and a few fingers.
Today I added merging. Now, objects that get too close to each other donāt do weird physics-breaking stuff. They intuitively merge into an object with a total mass, total area, and a new velocity depending on the previous velocities. This way, you can actually build complex systems that fall apart in at least an ordered way. There was a slight problem if the objects were going too fast: because of their speed, one frame they would be behind each other and the next frame they would be ahead of each other. I had to do some math to see if the path they took went through the object we were checking. That was a very fun, intuitive piece to work on, and merging now works very intuitively and very well.
This is not a full devlog. Because Iām typing this on my phone. Came to say that Iām working on adding a minimalistic UI to the project, like small buttons and maybe sliders for mass and color control. Using tkinter, the underlying library in which turtle was built. I donāt have any screenshots with me, so enjoy this photo from my gallery, shot at the beach at night.
Today I added some UI, so we have some actually good interactive elements. We can use sliders to, in real time, update our gravity. And I also added a reset button that basically lets you clean up all the messes and start from a fresh place.
Hey, remember the UI I had in earlier? Well, when you change the window size, it just stays hard-coded. If you maximize your window, thereās suddenly a piece of UI that was supposed to help you navigate the simulator thatās in your way. So, I did some math so that the UI is at the perfect top right of any shape and size of the windows you make. Itās a dynamic UI layout, and itās dynamic enough to survive window resizing. Pretty cool.
The UI was a very wretched default gray, and to be honest, it didnāt look so visually appealing. Mine still isnāt all peaches and cream, but itās less of a distraction and more of a subtlety in the grand scheme of things. I changed this to a better, harmonizing dark charcoal color that I think goes pretty well with the minimalist design of all-white Orbitals and a pure black background.
Hey, this is another mini devlog. I just wanted to say that while waiting for my initial ship to get reviewed, I was working on reviewing my current code and remembering how every part interacted. Iām doing this by making a from-scratch.py file where I just try to build the general project from the ground up with my direct understanding and recall of it, without looking at every line of code. This is like a mini side quest in the background so that as the file gets big, I donāt lose where Iām going. Right now, it just has the basic functions like distance and force, and has two Python turtles set to circles with different colors. Iām going to build this from the ground up and really focus on the struggle and pain through the process. I want to maximize my gains from this project this way.
Today I spent all my time on from_scratch.py to really get to understand the physics of it all. Before, I just relied on a few formulas.Thatās why Iām going to try and maximize my gains from this project by re-understanding all the logic and trying to write it from scratch, using only my notes and not looking at any AI or code from main.py .Itās going good! I added quite a few functions:- A distance function- A force function- An angle function (all of these take two objects, by the way ā I still have the same objs list, which is a list of lists)- A velocity update function called velo_update that takes an object , a force , angle , and mass , and updates the velocities of those objects depending on their forces, angles, and massMaybe I can cut back on mass . I donāt know why I added it, since we can already get it from the objs list with our object parameter. Iāll look into that.I also created the scaffold for an update function, which is going to be the main function . I added screen.ontimer(update, 10) to run it every 10 milliseconds. Itās just the main scaffold for now, but Iām really focusing on the logic of it all.
Actively working on making Orbital (via the from_scratch.py file) more object-oriented. I think OOP (object-oriented programming) will be a great addition to Orbital because we have lots of stuff that can be simplified. These could be new particles, like new planets, and I think grouping everything into classes would be a better way to handle these. Right now, our sling function just does the same thing again and again. A class that could be called any time we want to make a new particle is probably the way to go. Iāll keep you guys updated.
Welcome! Today, I fully migrated to the object-oriented programming architecture. Earlier, the class wasnāt really full OOP; it was just a hidden list factory that appended the stuff via a class instead of doing it manually. I wanted to change that because this is going to be a refactor in an OOP perspective , and thatās what I did.I made sure that all the formulas used the latest changes:1. Earlier, they would use the index of the objects inside the objs list of lists. It would be something like object1 and the index of whichever element it wants to access, like mass , radius , velocity , or coordinates. It was very sloppy, and you had to keep up with what each index meant.2. With an OOP version, you just write object1.mass , object1.x , or object1.vx . Each and every line is more intuitive.I also worked more on the planet spawning . Remember, this is a new file with a different perspective of trying to remake this in an OOP sense, using classes and the benefits that ensue from them.Additionally, today I implemented the balancing of the canvas differences in Tkinter and Turtle :- In Turtle, the (0, 0) coordinate is directly in the middle of the screen .- In Tkinter, itās at the absolute top left of the screen.You have to make sure that all the formulas and all the logic get the correct version, which in my project is the Turtle version . I added and worked out the logic that would make sure that balance is kept.
Lots of stuff today: Camera movement: I added camera movement to our new refractor. Better version of the sling: The older one just expected you to press, drag, and release without seeing much of an indicator. While that works if you know the program a bit, I think a direct, laser-esque pointer that shows you actively as youāre pressing, dragging, and releasing is more intuitive and easier to work with. So I added that. Now we have intuitive camera movement and intuitive spawning. For this refactor, we wonāt have any UI. All the sliders for gravity and mass will be per keyboard or hotkey.
Hey, I added merging, but itās āmerging out of hellā because I made a very unphysically true and crude (if youād call it that), but working prototype of merge_collisions and the merge function itself. It works as I intended, but not physically truly. Right now, it adds the radii of the circles themselves. If you think about it, thatās physically wrong because thereās a big difference between adding the areas of the circles versus their radii. Thatās something I want to get right, so the next time Iām working on it, Iāll make sure to fix it so that we are adding the areas of the circles rather than their radii. I also found a bit of a problem where the merged objects themselves have a shape size of (1, 1). Thatās not right because if you merge two objects with shape size 1, youād expect the new shape size to be 2. Right now, no matter how many objects you merge, it still stays at 1, resulting in a very, very dense circle. Iām going to change that so we add the areas themselves, and have that new, bigger area update the visual representation of those astronomical objects. Iāll keep you guys updated. See you next time.
I fixed the āmerging from hellā. The first issue was the radius calculation. When two circles merge, simply adding their radii ( r1 + r2 ) is physically wrong because the combined area grows way too fast. In reality, the area of the circles should add up: A_new = A1 + A2 . By plugging in the area formula Ļ Ć r² , we get Ļ Ć r_new² = (Ļ Ć r1²) + (Ļ Ć r2²) . The Ļ cancels out completely, leaving r_new = math.sqrt(r1² + r2²) . I updated the collision code with this, and now the combined masses have physically accurate sizes.To make this look right, I also fixed the visual scaling issue. Previously, every particle rendered at shapesize(1, 1) regardless of its actual mass or radius. I changed the instantiator so that a bodyās shapesize dynamically scales with its physics radius: self.turt.shapesize(self.radius / 10, self.radius / 10) . Now when objects collide, you can actually see the merged planet grow on the screen.Lastly, I added a quick reset button . Pressing the R key runs a function that loops through the current objects, hides all their turtles to prevent visual ghosts, clears the main objects list, resets the camera back to center coordinates, and spawns a fresh central star
I made some more intuitive user changes: Slingshot Dampening: Now, the slingshot isnāt like an Angry Bird slingshot that propels your particles to the other side of the universe (though you could do that if you want, just open the code). All the slingshot coordinates and values are now multiplied by 0.2. Weāre nerfing it a lot, but it seems more intuitive that way. Since you donāt know itās nerfed, you wonāt notice there is a higher capacity. In our case, a higher capacity actually means friction. Donāt get me wrong: itās not particle friction, because they go super fast. Itās friction when trying to get orbits to work. Repository Tweaks: Calling the script from_scratch.py was killing me, so I found something simpler: orbital.py. Itās much better. I updated the GitHub repository so that the current release is orbital.py (the refactored version). While main.py (the previous version) has a few more features right now, orbital.py is much cleaner. Main.py was more of a learning run, and I feel like Iām bringing my A-game with this new refactor. Look and Feel: I really liked the black background and white orbitals of the previous main.py version, so I changed the clinical-seeming style of from_scratch.py. I scrapped that look and made sure the new orbital.py has some taste.
Today I added zooming that works with scrolling up and scrolling down appropriately: when you scroll down, everything gets smaller, and when you scroll up, everything gets bigger. Mass and gravity, of course, stay the same. I made sure that the sling function (basically spawning new orbitals) works flawlessly. Our aim functionāwhich draws that mini press-and-drag indicator to make it easier to see where you are spawning orbitalsāis also working with both camera differentiation and zoom differentiation. This way, you can zoom all the way out and still spawn orbitals in the correct way, or zoom all the way in and spawn them super close up. All the physics and rendering works beautifully.
Added some instructions to make it easier, added more colors, and Iām now working on making more rigorous merge logic.
I finally got the complex merging done. Before, when an orbital was going too fast, one frame it was at the back of another orbital, and the next frame, it was in front of it. Since its velocity was so high, the radii didnāt ever collide, so it just went through other ones without merging. That was really not acceptable, so I worked a lot on making sure it works. How I did it is actually very interesting: Get the starting position of the moving object and its ending position on the next frame. Get the coordinates of the target object you want to check for a potential merge. Draw a line from where the moving object started to where it ended, and check if the target object is intersecting that line (calculating what percentage along that line the checked object sits). If it intersects, you merge them.
Added a background grid so that you get a sense of spatial bigness and tininess. You get a feel for how big and small your orbitals really are.
Today I changed the title card of the window that pops up. A few other updates: ⢠I tweaked the final game feel a bit. ⢠I made the initial spawning star spawn in a sort of light yellow color, and I also added that light yellow color to the colors list. ⢠I made sure that the window of the simulation is also in dark mode, so you get more encapsulated in it.
A few cleanups on the size of the grid.
I updated the project. I was notified that it initially crashed on macOS, and the arrow keys were a bit janky on macOS as well. All of that has been completely fixed, and Iāve updated the readme and the latest code on GitHub to encompass those changes.
Ships:
Initial Ship Update (v1.0.0) What did I make? I built Orbital , a 2D gravitational physics sandbox created entirely in Python using only standard library modules ( turtle and tkinter ). Orbits are not hardcoded; they emerge dynamically from Newtonās Law of Universal Gravitation calculated between every single body frame-by-frame. You can interactively slingshot planets into orbit, pan a camera infinitely around the universe using WASD or Arrow keys, adjust the laws of physics on the fly using a Tkinter-based HUD, and watch planets collide and merge under the conservation of momentum. What was challenging? The Coordinates Separation: Early on, a planetās physics position was its drawing position. To build a panning camera, I had to decouple themācreating a 9-element list structure to track world coordinates privately while subtracting camera offsets only for rendering. The āTunnelingā Bug: Fast slingshotted planets would frequently phase straight through the central star between frames. I solved this by implementing Continuous Collision Detection (CCD)āusing vector dot-product projection to check if the line segment traveled during a frame intersected the star. Singularity Prevention: As merging planets got infinitesimally close, the gravity force equation approached divide-by-zero, creating infinite force that would sling bodies off screen at lightspeed. I had to write custom logic to disable gravity between two bodies the exact frame they overlap. A Responsive HUD: Nesting Tkinter widgets on a Turtle ScrolledCanvas caused nesting errors. I resolved this by passing the raw screen._root as the parent, and binding the canvas <Configure> event to dynamically slide the widgets so they stay pinned to the top-right corner when resizing. What am I proud of? Conserving Density: When two bodies merge, the new objectās size is calculated using sqrt(r1² + r2²) rather than just adding the radii. This ensures area is conserved, keeping physical density mathematically consistent. Conservation of Momentum: If you launch two equal-mass planets head-on at the same speed, they will perfectly cancel out and stop dead in space upon impact, exactly as real-world physics dictates. What should people know so they can test my project? Slingshot: Click, drag, and release to fling planets into the cosmos. HUD Controls: Adjust the Gravity slider to warp orbits in real-time, and slide the Mass slider to change the size and weight of the next planet you launch. Color Picker: Click the color button to cycle the launching color (the button text dynamically updates to show what is selected). Navigation: Use WASD or Arrow keys to pan the camera around. Rebuilding: Press the Reset button to wipe the board and start a clean universe. No Python installed? Zero-dependency, standalone executables for Windows , macOS , and Linux are automatically built and attached directly to the GitHub Release!
I built Orbital, the all-in-one project that encompasses whatever you need from a 2D astronomical simulator. When first loading it up, a window titled āOrbitalā pops up, and you will see a star right at the center. You can change the window dimensions however you would like, whether fullscreen or resized small. This is where the fun starts: I spent tireless hours implementing a slingshot mechanism where you can intuitively and easily launch āorbitals,ā as I like to call them. You can think of these as small planets that you can send to orbit around each other and around bigger stars, masses, and objects that you create yourself. The starting star is just to get you going. Controls and Features: ⢠Navigation: Use the WASD keys and/or arrow keys to navigate around this 2D world and find different orbits across the gigantic canvas. It does not have an end (unless you spend 10 hours of unemployment trying to find it, but I am sure you are not that stubborn). ⢠Mass Adjustment: Use the plus (+) and minus (-) keys to change the mass of the objects you throw into the simulation. ⢠Physics: It runs on full n-body physics; nothing is hard-coded and everything is dynamic. No matter how quirky and interesting your orbits are, they will be solely and originally yours. ⢠Visuals: The colors change up every once in a while. I really tried to make it as minimalist and physics-identifying as possible. ⢠Reset: Press the R key on your keyboard to reset the world and start from a fresh universe, marked by the reset star that kickstarts everything again. I am really proud of the n-body physics because it was surprisingly manageable and cool to work on. Where I really struggled was on advanced merging. Normally, if objects are touching, you can simply merge them. But when objects move super fast, one frame they are far away, and by the next frame, high velocity math teleports them right past or into the other object. If you slingshot a planet relatively fast, it could easily glitch and teleport through objects. To fix this, I had to calculate whether the path the object took from frame 0 to frame 1 intersected any other objects along its trajectory. That was an especially hard, albeit depressing challenge, but nevertheless, it was encountered and defeated so you could enjoy astronomical bliss. Thank you!...
|
1792835800.259513
|
1792922200.259513
|
|
26517
|
Exopossibilities by @Skye | Stardance
|
Skye
|
2
|
63.0
|
909
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-27T20:04:39Z", "hours": 50.0, "multiplier": 15.94, "payout": 791, "blessing": "neutral", "text": "Hi everyone! This is my first ever website Iāve made by myself and Iām super proud to share it with you guys! Itās called Exopossibilities (Exoplanet and Possibilities blended into one). It uses a whole bunch of data from NASAās Exoplanet Archive and presents in a fun way. I started this summer by making the base of the website (the home, discover, and planet pages), and have since added a bunch of fun features! I used Claude for help a lot with JS at the beginning, but have since learned how to do most of it myself, which Iām super proud of. The point of this project is to bring together my interests and present them in a way that is fun for other people to explore and learn from. Thereās a quiz to match exoplanets to your preferences, a glossary for words you donāt know, and so much more! I put a lot of work into this project and really hope you enjoy it!", "repo": "https://github.com/julietmeletta/Exopossibilities", "demo": "https://julietmeletta.github.io/Exopossibilities/index"}, {"ship_num": 2, "ts": "2026-07-06T03:13:26Z", "hours": 13.0, "multiplier": 9.22, "payout": 118, "blessing": "neutral", "text": "I created a website and named it Exopossibilities, basically blending the word possibilities into the word Exoplanets. On my website, the user can navigate to the Discover page, where they see a list of every exoplanet in NASAās archive(over 5,000). They can then explore info on each planet, search for a specific planet, filter to see planets that fit specific criteria, i.e. Each box containing the planetās name and info is able to be clicked on, which sends the user to a page focused solely on that planet. Each planetās page displays the planetās info, how long it would take to get to the planet, how living on the planet would affect the human body, and what would be needed to live on that planet, if possible at all. Iām super proud because this was all super unfamiliar to me. This was my first website, it was my first time using APIs, my first time using JS at all, i.e. As expected, I ran into some problems (for example, sometimes the list of planets just wouldnāt load: yes it was a very silly mistake of forgetting to rename one of the filters in my JS file) but was able to troubleshoot/debug to get everything working. I made this project because Iām interested in aerospace engineering and in biomedical engineering, so the idea behind the project was to blend the two by exploring the effects on the human body of living on different exoplanets. I hope you guys enjoy my project!", "repo": "https://github.com/julietmeletta/Exopossibilities", "demo": "https://julietmeletta.github.io/Exopossibilities/index"}]...
|
[{"post_id": 55773, "ts": "202 [{"post_id": 55773, "ts": "2026-08-27T19:32:22Z", "hours": 1.9789, "text": "Ready to Ship!! I havenāt done much since the last devlog, just some random fixes, polishing whatever. But Iāve added a bunch since my last ship that Iāll talk more about in my ship itself!"}, {"post_id": 54681, "ts": "2026-08-25T18:55:05Z", "hours": 6.4967, "text": "I added some statistics on a page! Itās not much but it was fun to make and I like it. Thereās 6 different charts that each show different data. I think itās cool to see and fits in with the ādiscoverā theme. Currently Iām working on making it work well on mobile because rn it looks like it needs fixing. When Iām done I think Iām ready to ship!"}, {"post_id": 53153, "ts": "2026-08-23T16:17:58Z", "hours": 3.2425, "text": "Introducing Favorites! Used local storage so Iām not taking anyoneās info lol. It allows you to heart any planet and filter to favorites on the discover page. This way you can keep track of the planets you like! I like finding the matches of planets I like using the quiz then favoriting those!"}, {"post_id": 47729, "ts": "2026-08-15T20:47:06Z", "hours": 3.0519, "text": "Iāve been playing around with the locator page. For now I have it like this, where the info is entered and it tells the user where (better CSS than last devlog in my opinion). I donāt know if I can make it into a whole map thing mostly because I would probably use SVG but I donāt really have any experience with that. Anyway, if I have tons of extra time I might try that. For now, Iām just fixing the styling on mobile."}, {"post_id": 46666, "ts": "2026-08-14T03:09:32Z", "hours": 4.6506, "text": "So - another (not done) new feature. This one is kind of different. I found ra and dec values in the NASA archive Iāve been using and came up with this idea. My original idea was to make a map of the exoplanet and then you could search for one and it would find it on the map. There are sites that do same type of thing like Stellarium or the app Night Sky. I might do that or something like that later but this is what I have for now. Itās basically the math and JS that the map would use, just not made into a map. Iām hoping to make this more sophisticated than it currently is but Iām not sure quite how far Iāll be able to take it. I hope that the end product for this feature turns out well. Edit: When I say map I mean like a 360 view of the night sky from the ground type thing (you can look at Stellarium to understand what I mean if you are curious)."}, {"post_id": 45328, "ts": "2026-08-11T18:28:35Z", "hours": 2.3153, "text": "I added a print button on the planet page! Next to the side navigation button, thereās a button with the print symbol that allows the user to print that planetās page. Lot of styling went into it to figure out how to get it to show the background image and colors and stuff but overall it was pretty simple to make."}, {"post_id": 44940, "ts": "2026-08-11T01:14:31Z", "hours": 3.0764, "text": "Added a navigation side bar menu! Not in love with the styling, so maybe I will change up the CSS to make it prettier. But overall it works fully and is much more helpful than navigating through the site using home and back buttons."}, {"post_id": 44250, "ts": "2026-08-09T21:36:52Z", "hours": 5.9186, "text": "I added a glossary. When my sister was looking at my project I realized thereās a lot of terms some people might not know so I made a page explaining those terms. I also have been keeping my project updated to work on mobile."}, {"post_id": 38479, "ts": "2026-07-31T21:40:58Z", "hours": 1.9289, "text": "Guys I need help. I have a question and I canāt figure out what I should do. I have a whole bunch of files for my website Iāve been making and I donāt know how Iām supposed to organize my files. You may be thinking, this isnāt really a problem. Well I guess youāre right in the sense that it doesnāt affect how my website works. BUT itās like lowkey making me anxious because my file list keeps growing and whatnot. I tried to start sorting the files. I have folders for the JS files, the JSON files, and the images. Do I keep this pattern and make a folder for the html files and another for css files? I guess my real question is this: Is there a conventional way of organizing them that Iām supposed to know? If not, is there like a best way to do it?"}, {"post_id": 37691, "ts": "2026-07-30T16:16:58Z", "hours": 7.0717, "text": "So I was thinking about like what I could add to my site and came up with some fun ideas. First, I added a formula (from NASAās website) to calculate the ESI (Earth Similarity Index) of each exoplanet. Then, I made certain exoplanets āmedalistsā. Basically if a exoplanet is like unique in a quantitative way (with the data Iām already using) then it is awarded a medal. Some examples are largest/smallest mass, highest/lowest ESI Score, etc. In total, right now, there are 11 exoplanets with medals (out of like 6,000 total). Then I added having a medal to the filters and connected it to a button on the home screen."}, {"post_id": 29699, "ts": "2026-07-16T19:47:15Z", "hours": 1.7039, "text": "I APOLOGIZE FOR THE 18 COMMITS THAT ARE ALL FOR THE SAME THING. So I decided to style the site for mobile as well as laptop because it worked okay on mobile but was very zoomed out and stuff. So itās not like I have vs code on my phone and there probably is an easier way but I didnāt want to figure out getting a live server on my phone so I kept changing the CSS, committing, checking it on my phone, and repeat. But hey - now it looks better for mobile!"}, {"post_id": 29264, "ts": "2026-07-16T02:17:50Z", "hours": 1.1181, "text": "Introducing Planet of the Day and some neat CSS changes! I added a planet of the day on the home page which is clickable just like the cards on the discover page. I also added skeleton loading states for the list of planets on the discover page. I noticed that it was consistently taking time to load and render the planets (not surprisingly) so I added it to make it feel more polished and less sharp. And yes, the screenshot of the loading states was timed so that I caught them on the screen before the planets appeared."}, {"post_id": 29145, "ts": "2026-07-15T20:33:59Z", "hours": 2.8753, "text": "I added a new feature! A quiz that matches the userās preferences with exoplanets. The user answers 5 questions and gets a collection of exoplanets that match those preferences!"}, {"post_id": 28859, "ts": "2026-07-15T12:41:13Z", "hours": 1.6367, "text": "Update - Changes Since My Ship Photos! As I mentioned in my last 2 devlogs, I changed the planetsā photos. I used to have a single blue planet that was on every planetās page and that seemed boring, so I changed it. Most exoplanets donāt actually have photos, so I took a handful of photos and sorted the planets into types. Now, there is a photo for each type and the planetās corresponding photo is on its planet page and its card in the discover page. I have a photo for each type: terrestrial, super-earth, Neptune-like, mini-Neptune, gas giant, and hot Jupiter. Mini-Neptunes and hot Jupiters are really just subsections of Neptune-like and gas giants, respectively, but I decided to give them their own photo anyways. Random Planet Button! I added a button right next to the filters that brings the user to a random planet page obeying the filters that they set. I thought itās a fun little feature to make my site a bit more fun. Hopefully, Iāll be adding a couple other features too. I made like some minor CSS changes to the filters and stuff. Barely noticeable but I think that little part looks better than before. Yay! More to come!"}, {"post_id": 27429, "ts": "2026-07-13T00:02:15Z", "hours": 1.2636, "text": "So ⦠I added the images to the discover page, which makes it less boring. The planets are sorted into 6 categories, each with a different photo. I also finally sorted my files. Yay! I wasnāt quite sure how I should organize them - like do I put css in one folder and html in another? So I left some unorganized for now."}, {"post_id": 26975, "ts": "2026-07-12T02:57:00Z", "hours": 1.3003, "text": "A lot of people who reviewed my ship mentioned all the planet pages having the same image - which is totally fair. I felt the same way (and so did my sister), so I decided to do something about it. Most exoplanets just simply donāt have photos, so itās not like I could put a photo of each planet. I decided to put different photos for different types of planets (terrestrial, super earth, neptune-like, gas giant). Hope you guys like it!"}, {"post_id": 23246, "ts": "2026-07-06T02:28:12Z", "hours": 1.9897, "text": "I give you fonts ! And Iām done! (for now). I want to try and add a cool feature and do some other random stuff at some point but ta-da!"}, {"post_id": 22973, "ts": "2026-07-05T17:34:03Z", "hours": 7.4275, "text": "Finished the first draft of my website. I put an example image of what one of the planet pages looks like. I will probably do a little more CSS work and maybe add some new features but Iām pretty happy with what I have so far. This is my first website that Iāve made myself. Itās also my first time using APIs in a project which was super cool."}, {"post_id": 18833, "ts": "2026-06-30T01:11:16Z", "hours": 2.2908, "text": "I finished the filters and detailed blocks for each exoplanet! Next step is each exoplanet getting an individual page with more details."}, {"post_id": 18399, "ts": "2026-06-29T15:17:03Z", "hours": 1.0153, "text": "I have the API of exoplanets from NASA in my project and added a search bar. Next step is to add clickable cards to show the data of each planet, then filters for searching, etc. The API I used has info on each planetās name, radius, mass, distance from earth, and equilibrium temp. Iāll get around to better CSS at the end, right now itās kind of sad looking. Then Iāll tie the info to the effect on the human body."}, {"post_id": 17766, "ts": "2026-06-28T18:14:30Z", "hours": 0.4517, "text": "Hi everyone! This is my first ever devlog and Iām so excited! Iāve only just started my project, for now itās called Exopossibilities. Iām planning on using an API to have data on exoplanets then users can see what would happen to a human on a specific exoplanets. Iām planning to use a second API to have information on how the human body is affected by certain environmental factors(pressure, extreme temps, etc.)."}]...
|
Title: Exopossibilities by @Skye | Stardance
Devl Title: Exopossibilities by @Skye | Stardance
Devlogs:
Hi everyone! This is my first ever devlog and Iām so excited! Iāve only just started my project, for now itās called Exopossibilities. Iām planning on using an API to have data on exoplanets then users can see what would happen to a human on a specific exoplanets. Iām planning to use a second API to have information on how the human body is affected by certain environmental factors(pressure, extreme temps, etc.).
I have the API of exoplanets from NASA in my project and added a search bar. Next step is to add clickable cards to show the data of each planet, then filters for searching, etc. The API I used has info on each planetās name, radius, mass, distance from earth, and equilibrium temp. Iāll get around to better CSS at the end, right now itās kind of sad looking. Then Iāll tie the info to the effect on the human body.
I finished the filters and detailed blocks for each exoplanet! Next step is each exoplanet getting an individual page with more details.
Finished the first draft of my website. I put an example image of what one of the planet pages looks like. I will probably do a little more CSS work and maybe add some new features but Iām pretty happy with what I have so far. This is my first website that Iāve made myself. Itās also my first time using APIs in a project which was super cool.
I give you fonts ! And Iām done! (for now). I want to try and add a cool feature and do some other random stuff at some point but ta-da!
A lot of people who reviewed my ship mentioned all the planet pages having the same image - which is totally fair. I felt the same way (and so did my sister), so I decided to do something about it. Most exoplanets just simply donāt have photos, so itās not like I could put a photo of each planet. I decided to put different photos for different types of planets (terrestrial, super earth, neptune-like, gas giant). Hope you guys like it!
So ⦠I added the images to the discover page, which makes it less boring. The planets are sorted into 6 categories, each with a different photo. I also finally sorted my files. Yay! I wasnāt quite sure how I should organize them - like do I put css in one folder and html in another? So I left some unorganized for now.
Update - Changes Since My Ship Photos! As I mentioned in my last 2 devlogs, I changed the planetsā photos. I used to have a single blue planet that was on every planetās page and that seemed boring, so I changed it. Most exoplanets donāt actually have photos, so I took a handful of photos and sorted the planets into types. Now, there is a photo for each type and the planetās corresponding photo is on its planet page and its card in the discover page. I have a photo for each type: terrestrial, super-earth, Neptune-like, mini-Neptune, gas giant, and hot Jupiter. Mini-Neptunes and hot Jupiters are really just subsections of Neptune-like and gas giants, respectively, but I decided to give them their own photo anyways. Random Planet Button! I added a button right next to the filters that brings the user to a random planet page obeying the filters that they set. I thought itās a fun little feature to make my site a bit more fun. Hopefully, Iāll be adding a couple other features too. I made like some minor CSS changes to the filters and stuff. Barely noticeable but I think that little part looks better than before. Yay! More to come!
I added a new feature! A quiz that matches the userās preferences with exoplanets. The user answers 5 questions and gets a collection of exoplanets that match those preferences!
Introducing Planet of the Day and some neat CSS changes! I added a planet of the day on the home page which is clickable just like the cards on the discover page. I also added skeleton loading states for the list of planets on the discover page. I noticed that it was consistently taking time to load and render the planets (not surprisingly) so I added it to make it feel more polished and less sharp. And yes, the screenshot of the loading states was timed so that I caught them on the screen before the planets appeared.
I APOLOGIZE FOR THE 18 COMMITS THAT ARE ALL FOR THE SAME THING. So I decided to style the site for mobile as well as laptop because it worked okay on mobile but was very zoomed out and stuff. So itās not like I have vs code on my phone and there probably is an easier way but I didnāt want to figure out getting a live server on my phone so I kept changing the CSS, committing, checking it on my phone, and repeat. But hey - now it looks better for mobile!
So I was thinking about like what I could add to my site and came up with some fun ideas. First, I added a formula (from NASAās website) to calculate the ESI (Earth Similarity Index) of each exoplanet. Then, I made certain exoplanets āmedalistsā. Basically if a exoplanet is like unique in a quantitative way (with the data Iām already using) then it is awarded a medal. Some examples are largest/smallest mass, highest/lowest ESI Score, etc. In total, right now, there are 11 exoplanets with medals (out of like 6,000 total). Then I added having a medal to the filters and connected it to a button on the home screen.
Guys I need help. I have a question and I canāt figure out what I should do. I have a whole bunch of files for my website Iāve been making and I donāt know how Iām supposed to organize my files. You may be thinking, this isnāt really a problem. Well I guess youāre right in the sense that it doesnāt affect how my website works. BUT itās like lowkey making me anxious because my file list keeps growing and whatnot. I tried to start sorting the files. I have folders for the JS files, the JSON files, and the images. Do I keep this pattern and make a folder for the html files and another for css files? I guess my real question is this: Is there a conventional way of organizing them that Iām supposed to know? If not, is there like a best way to do it?
I added a glossary. When my sister was looking at my project I realized thereās a lot of terms some people might not know so I made a page explaining those terms. I also have been keeping my project updated to work on mobile.
Added a navigation side bar menu! Not in love with the styling, so maybe I will change up the CSS to make it prettier. But overall it works fully and is much more helpful than navigating through the site using home and back buttons.
I added a print button on the planet page! Next to the side navigation button, thereās a button with the print symbol that allows the user to print that planetās page. Lot of styling went into it to figure out how to get it to show the background image and colors and stuff but overall it was pretty simple to make.
So - another (not done) new feature. This one is kind of different. I found ra and dec values in the NASA archive Iāve been using and came up with this idea. My original idea was to make a map of the exoplanet and then you could search for one and it would find it on the map. There are sites that do same type of thing like Stellarium or the app Night Sky. I might do that or something like that later but this is what I have for now. Itās basically the math and JS that the map would use, just not made into a map. Iām hoping to make this more sophisticated than it currently is but Iām not sure quite how far Iāll be able to take it. I hope that the end product for this feature turns out well. Edit: When I say map I mean like a 360 view of the night sky from the ground type thing (you can look at Stellarium to understand what I mean if you are curious).
Iāve been playing around with the locator page. For now I have it like this, where the info is entered and it tells the user where (better CSS than last devlog in my opinion). I donāt know if I can make it into a whole map thing mostly because I would probably use SVG but I donāt really have any experience with that. Anyway, if I have tons of extra time I might try that. For now, Iām just fixing the styling on mobile.
Introducing Favorites! Used local storage so Iām not taking anyoneās info lol. It allows you to heart any planet and filter to favorites on the discover page. This way you can keep track of the planets you like! I like finding the matches of planets I like using the quiz then favoriting those!
I added some statistics on a page! Itās not much but it was fun to make and I like it. Thereās 6 different charts that each show different data. I think itās cool to see and fits in with the ādiscoverā theme. Currently Iām working on making it work well on mobile because rn it looks like it needs fixing. When Iām done I think Iām ready to ship!
Ready to Ship!! I havenāt done much since the last devlog, just some random fixes, polishing whatever. But Iāve added a bunch since my last ship that Iāll talk more about in my ship itself!
Ships:
I created a website and named it Exopossibilities, basically blending the word possibilities into the word Exoplanets. On my website, the user can navigate to the Discover page, where they see a list of every exoplanet in NASAās archive(over 5,000). They can then explore info on each planet, search for a specific planet, filter to see planets that fit specific criteria, i.e. Each box containing the planetās name and info is able to be clicked on, which sends the user to a page focused solely on that planet. Each planetās page displays the planetās info, how long it would take to get to the planet, how living on the planet would affect the human body, and what would be needed to live on that planet, if possible at all. Iām super proud because this was all super unfamiliar to me. This was my first website, it was my first time using APIs, my first time using JS at all, i.e. As expected, I ran into some problems (for example, sometimes the list of planets just wouldnāt load: yes it was a very silly mistake of forgetting to rename one of the filters in my JS file) but was able to troubleshoot/debug to get everything working. I made this project because Iām interested in aerospace engineering and in biomedical engineering, so the idea behind the project was to blend the two by exploring the effects on the human body of living on different exoplanets. I hope you guys enjoy my project!
Hi everyone! This is my first ever website Iāve made by myself and Iām super proud to share it with you guys! Itās called Exopossibilities (Exoplanet and Possibilities blended into one). It uses a whole bunch of data from NASAās Exoplanet Archive and presents in a fun way. I started this summer by making the base of the website (the home, discover, and planet pages), and have since added a bunch of fun features! I used Claude for help a lot with JS at the beginning, but have since learned how to do most of it myself, which Iām super proud of. The point of this project is to bring together my interests and present them in a way that is fun for other people to explore and learn from. Thereās a quiz to match exoplanets to your preferences, a glossary for words you donāt know, and so much more! I put a lot of work into this project and really hope you enjoy it!...
|
1792831864.712335
|
1792918264.712335
|
|
26542
|
My first slack bot! by @ishudutta487 | Stardance
|
ishudutta487
|
2
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-02T07:47:46Z", "hours": 0.0, "multiplier": 1.01, "payout": 0, "blessing": "neutral", "text": "idk why i am getting a ship button again , but nvm i am still going to click it anyway", "repo": "https://github.com/ishudutta487-png/Shinobi", "demo": "https://hackclub.enterprise.slack.com/archives/C0P5NE354"}, {"ship_num": 2, "ts": "2026-07-16T20:55:14Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Made a slackbot which will have future customizations later", "repo": "https://github.com/ishudutta487-png/Shinobi", "demo": "https://hackclub.enterprise.slack.com/archives/C0P5NE354"}]...
|
[{"post_id": 38446, "ts": "202 [{"post_id": 38446, "ts": "2026-07-31T20:17:10Z", "hours": 0.2644, "text": "Reworked on my slackbot, named shinobi inspired by the game Sekiro"}, {"post_id": 18721, "ts": "2026-06-29T22:07:56Z", "hours": 0.0, "text": "finally done with the slackbot"}]...
|
Title: My first slack bot! by @ishudutta487 | Star Title: My first slack bot! by @ishudutta487 | Stardance
Devlogs:
finally done with the slackbot
Reworked on my slackbot, named shinobi inspired by the game Sekiro
Ships:
Made a slackbot which will have future customizations later
idk why i am getting a ship button again , but nvm i am still going to click it anyway...
|
1792835246.2473664
|
1792921646.2473664
|
|
26626
|
Grapefruit by @tsunami014 | Stardance
|
tsunami014
|
2
|
135.0
|
2180
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-12T22:08:50Z", "hours": 25.0, "multiplier": 16.69, "payout": 421, "blessing": "neutral", "text": "FIXED THE UI with dynamic colours and themes! Fixed some layouts Improved how tasks are made (including a not overwhelming amount of qualities and changed the ambiguous āreasoningā into a much less so āgoalsā As well as many minor also cool things! (See the devlogs after ship 1 for the full account)", "repo": "https://github.com/Tsunami014/Grapefruit/tree/v2.0", "demo": "https://github.com/Tsunami014/Grapefruit/releases/tag/v2.0"}, {"ship_num": 2, "ts": "2026-08-20T11:10:17Z", "hours": 110.0, "multiplier": 15.99, "payout": 1759, "blessing": "neutral", "text": "I finally decided I had done enough and it was really good! This app contains the conversation, a scene with Grapefruit in it, a basic settings page with not much in it, a tasks manager with categories (including a today category) and tasks with importance, reasoning, qualities, items! Also has a great bottom bar for easier text editing and has everything layed out in a mobile-friendly manner! Installation instructions are in the README", "repo": "https://github.com/Tsunami014/Grapefruit/tree/v2.0", "demo": "https://github.com/Tsunami014/Grapefruit/releases/tag/v2.0"}]...
|
[{"post_id": 66920, "ts": "202 [{"post_id": 66920, "ts": "2026-09-12T21:50:02Z", "hours": 2.17, "text": "I improved how tasks are made, making the task overlay centred instead of to the side, changed āreasoningā into āgoalsā which is easier to understand and still useful, reduced the number of qualities and added some new ones similar to the old reasoning (e.g. āobligationā & ārewardā), came up with MUCH better sample tasks and fixed a small issue with the bottom bar!"}, {"post_id": 65770, "ts": "2026-09-11T04:14:17Z", "hours": 6.3225, "text": "I did a bunch of work on the settings and added a āthemeā! (Different variations of the base colour - which is now changeable in the settings!) I also used HSLuv instead of just HSL (which I tried before and thought it didnāt do much but now I realise it did help make everything nicer). I also added an effect so when you press on buttons it decreases the border radius a bit! And lastly I thought Iād fix some issues super quick due to the increased layout diversity from the settings but ended up spending much longer on them than expected, those being the jumpyness of the settings dropdowns (so I removed the animations and fixed it up a bit more and also fixed the flowlayout because it turns out everything is broken), fixed scrollbars inside other scrollbars, and probably more I forgot."}, {"post_id": 65060, "ts": "2026-09-09T22:07:39Z", "hours": 4.7747, "text": "Tweaked the colours lots and Iām now quite happy with how itās at! Added auto generating colours for everything I didnāt before (the calendar, settings, importance and some buttons in overlays) Saved the dark/light theme to a settings file And fixed a bug with the confirm and move overlays being a strange fixed width!"}, {"post_id": 64549, "ts": "2026-09-09T01:39:01Z", "hours": 7.5414, "text": "Added dynamic colours! Donāt worry that it looks kinda bad right now, I had to learn UI design from scratch for this, and I will improve it soon. Made all the colours (well, most of them for now) generate based on a base colour and added a light and dark theme! I also made the Android navigation icons and the svgs change between light and dark properly. I spent quite some time trying to implement HSLuv or HCT in the hopes it would improve the colours but ended up scrapping that due to many reasons, including too much extra stuff, wasnāt making much (or any) difference, and my HCT implementation was just so broken and I wasnāt bothered to try and fix it. Also some parts are now extra broken, Iāll fix them soon too donāt worry! I had to devlog this in case I went over 10h by accident, hopefully will be resolved before the next one"}, {"post_id": 62540, "ts": "2026-09-05T23:38:38Z", "hours": 4.4194, "text": "Improved some UI layouts, clarified a sentence or two in the conversation, reordered the tasks page, made selecting the title in the task overlay hide the buttons (to make it easier to see), fixed some visual bugs (maybe?), improved some icons, changed ātodayā to āstarredā (and made it not clear at the end of the day; I wanted to plan for the future) and last but not least I made the grey background for some of the overlays reach past the navigation AT LAST! So now the title bar doesnāt look off when the overlays are open!"}, {"post_id": 50885, "ts": "2026-08-20T10:54:28Z", "hours": 3.4444, "text": "Added an app icon and FINALLY got around to actually drawing the Grapefruit character! Also improved some parts of the conversation a bit more, improved the default tasks, improved the date importance calculations a smidge and fixed many tiny issues. It should now be DONE!"}, {"post_id": 47411, "ts": "2026-08-15T10:28:21Z", "hours": 0.8222, "text": "I thought I was done but turns out I forgot to add scrolling to the tasks list, so it would cause large issues if there were many tasks (or if the screen height was very low, as it does get on mobile when the keyboard is up)"}, {"post_id": 47355, "ts": "2026-08-15T07:43:42Z", "hours": 1.3553, "text": "Improved the āX weeks awayā text (which was just wrong before) and added a today toggle and category button!"}, {"post_id": 46825, "ts": "2026-08-14T10:57:19Z", "hours": 6.6328, "text": "Did various small improvements, including: Many many bugfixes, rearranging the task and settings display to have buttons on the bottom (from user feedback), a help screen, a āmove task to another categoryā button and dialogue (which I cannot believe I forgot about until now) and added another purpose in the conversation for the user designated reason (so it actually gets shown sometimes)!"}, {"post_id": 42346, "ts": "2026-08-07T00:53:14Z", "hours": 5.9806, "text": "Added all sorts of cool things, including info in the settings page, bullet points to the text edits, changed the preset times and tasks, extra conversation features (failsafes and external functions), and improved the conversation some more (because it was fun)!"}, {"post_id": 41181, "ts": "2026-08-05T07:11:58Z", "hours": 8.2414, "text": "Finished the conversation! (It may change/get improved more later, but for now Iām happy with it!) I made many changes to some terrible phrasing choices I made previously (e.g. āBut why wonāt you do xyz? Itās super fun!ā -> āYou donāt have to do it if you donāt want toā), rewriting huge chunks of it and adding other huge chunks. (I hope you appreciate the dialogue, Iāve apparently spent 20 hours by now JUST on that, not even the code behind it) Also changed times to use +...m as well as +...h and included a preset range of times which are more on the short side to incentavise shorter tasks."}, {"post_id": 39244, "ts": "2026-08-02T02:43:56Z", "hours": 1.5244, "text": "Added buttons to insert new lines above/below, saving information to an external file automatically and trimming whitespace off of some things (a small convenience when on mobile)"}, {"post_id": 38611, "ts": "2026-08-01T02:54:26Z", "hours": 7.6272, "text": "Finalised the connection between the task engine and the conversation including adding variety, conversation suggestions knowing about the qualities and reasons, a significantly improved conversation (thatās almost done!!), a lot of conversation backend (including a custom parser for recursive synonym choices) and heaps more!"}, {"post_id": 36925, "ts": "2026-07-29T10:13:07Z", "hours": 6.4594, "text": "Spent pretty much the entire time working on the conversation choices and options (yes itās that difficult). Also made some improvements to the backend (extra features making it easier/possible to do some things, fixed bugs). Still not done the conversation, will be another long stretch until I finish it but itās nearly there!"}, {"post_id": 35517, "ts": "2026-07-27T00:18:06Z", "hours": 4.7739, "text": "Worked on the conversation, improving the quality of texts and options, and added some new options and features! Also added some cool mathy functions for determining task urgency/load!"}, {"post_id": 33452, "ts": "2026-07-23T12:45:03Z", "hours": 3.1211, "text": "Added the beginnings to the task importance system and implemented a cool task bottom text including progress, and also included that task progress in the task overlay popup at the bottom!"}, {"post_id": 33268, "ts": "2026-07-23T01:41:19Z", "hours": 1.11, "text": "Implemented a bunch of small improvements and fixes to the calendar popup and date highlight!"}, {"post_id": 32915, "ts": "2026-07-22T11:46:31Z", "hours": 4.1114, "text": "Spent the whole time working on a date selector! Also added text about the due date, e.g. āwas due yesterdayā, ādue next Monday (in 5 days)ā, etc."}, {"post_id": 32801, "ts": "2026-07-22T05:52:27Z", "hours": 1.6331, "text": "Implemented many extremely minor things brought up from user feedback, including: adding titles to the category and task list, using e.g. +2.5h instead of #E for counting time, improved the importance selection layout, ordering tasks, improving done task formatting (with tick and strikethrough) and other even more minor things!"}, {"post_id": 32262, "ts": "2026-07-21T10:09:04Z", "hours": 4.2289, "text": "Added a qualities screen to add qualities to tasks by clicking on the buttons and a lot of backend work to make everything run smoother and easier to code!"}, {"post_id": 31592, "ts": "2026-07-20T03:27:25Z", "hours": 3.4722, "text": "Added an importance slider, an info text and some minor things to the task overlay"}, {"post_id": 31054, "ts": "2026-07-19T04:15:30Z", "hours": 3.5669, "text": "Fixed a lot of bugs in the tasks area; including resizing issues, inability to scroll, and wrapping problems."}, {"post_id": 30597, "ts": "2026-07-18T09:33:18Z", "hours": 6.4275, "text": "Added task groups and an add, rename, and delete task group button that do things! Deleting, naming collisions and other problems are also handled with dialogues! Also added a slightly better colour scheme"}, {"post_id": 30005, "ts": "2026-07-17T07:38:26Z", "hours": 3.5383, "text": "Added a basic scene!!"}, {"post_id": 23344, "ts": "2026-07-06T07:27:06Z", "hours": 5.0297, "text": "Dramatically improved the backend for the conversation, adding many new features!"}, {"post_id": 23221, "ts": "2026-07-06T01:25:52Z", "hours": 5.4508, "text": "Added a parser for conversation backend data and an options list and text box to display it in!"}, {"post_id": 20674, "ts": "2026-07-02T10:21:27Z", "hours": 4.2228, "text": "Added a bottom bar to the task input including some utility functions like move up and down, a sample highlight that can get modified with the + and - timer buttons and a scrollbar!"}, {"post_id": 20454, "ts": "2026-07-02T01:36:55Z", "hours": 7.5497, "text": "Added an item input field with a bottom bar with utilities in it!"}, {"post_id": 19643, "ts": "2026-07-01T00:49:45Z", "hours": 4.1286, "text": "Added more to the UI layout, including a settings (with accordian sections) and new tasks (currently empty) page!"}, {"post_id": 19012, "ts": "2026-06-30T05:31:27Z", "hours": 5.6044, "text": "Added the very basic interface! The reason it took so long was because I had zero idea how to compile anything and took way too long figuring that out. But it can compile for desktop or mobile now! (although desktop is only for testing)"}]...
|
Title: Grapefruit by @tsunami014 | Stardance
Devl Title: Grapefruit by @tsunami014 | Stardance
Devlogs:
Added the very basic interface! The reason it took so long was because I had zero idea how to compile anything and took way too long figuring that out. But it can compile for desktop or mobile now! (although desktop is only for testing)
Added more to the UI layout, including a settings (with accordian sections) and new tasks (currently empty) page!
Added an item input field with a bottom bar with utilities in it!
Added a bottom bar to the task input including some utility functions like move up and down, a sample highlight that can get modified with the + and - timer buttons and a scrollbar!
Added a parser for conversation backend data and an options list and text box to display it in!
Dramatically improved the backend for the conversation, adding many new features!
Added a basic scene!!
Added task groups and an add, rename, and delete task group button that do things! Deleting, naming collisions and other problems are also handled with dialogues! Also added a slightly better colour scheme
Fixed a lot of bugs in the tasks area; including resizing issues, inability to scroll, and wrapping problems.
Added an importance slider, an info text and some minor things to the task overlay
Added a qualities screen to add qualities to tasks by clicking on the buttons and a lot of backend work to make everything run smoother and easier to code!
Implemented many extremely minor things brought up from user feedback, including: adding titles to the category and task list, using e.g. +2.5h instead of #E for counting time, improved the importance selection layout, ordering tasks, improving done task formatting (with tick and strikethrough) and other even more minor things!
Spent the whole time working on a date selector! Also added text about the due date, e.g. āwas due yesterdayā, ādue next Monday (in 5 days)ā, etc.
Implemented a bunch of small improvements and fixes to the calendar popup and date highlight!
Added the beginnings to the task importance system and implemented a cool task bottom text including progress, and also included that task progress in the task overlay popup at the bottom!
Worked on the conversation, improving the quality of texts and options, and added some new options and features! Also added some cool mathy functions for determining task urgency/load!
Spent pretty much the entire time working on the conversation choices and options (yes itās that difficult). Also made some improvements to the backend (extra features making it easier/possible to do some things, fixed bugs). Still not done the conversation, will be another long stretch until I finish it but itās nearly there!
Finalised the connection between the task engine and the conversation including adding variety, conversation suggestions knowing about the qualities and reasons, a significantly improved conversation (thatās almost done!!), a lot of conversation backend (including a custom parser for recursive synonym choices) and heaps more!
Added buttons to insert new lines above/below, saving information to an external file automatically and trimming whitespace off of some things (a small convenience when on mobile)
Finished the conversation! (It may change/get improved more later, but for now Iām happy with it!) I made many changes to some terrible phrasing choices I made previously (e.g. āBut why wonāt you do xyz? Itās super fun!ā -> āYou donāt have to do it if you donāt want toā), rewriting huge chunks of it and adding other huge chunks. (I hope you appreciate the dialogue, Iāve apparently spent 20 hours by now JUST on that, not even the code behind it) Also changed times to use +...m as well as +...h and included a preset range of times which are more on the short side to incentavise shorter tasks.
Added all sorts of cool things, including info in the settings page, bullet points to the text edits, changed the preset times and tasks, extra conversation features (failsafes and external functions), and improved the conversation some more (because it was fun)!
Did various small improvements, including: Many many bugfixes, rearranging the task and settings display to have buttons on the bottom (from user feedback), a help screen, a āmove task to another categoryā button and dialogue (which I cannot believe I forgot about until now) and added another purpose in the conversation for the user designated reason (so it actually gets shown sometimes)!
Improved the āX weeks awayā text (which was just wrong before) and added a today toggle and category button!
I thought I was done but turns out I forgot to add scrolling to the tasks list, so it would cause large issues if there were many tasks (or if the screen height was very low, as it does get on mobile when the keyboard is up)
Added an app icon and FINALLY got around to actually drawing the Grapefruit character! Also improved some parts of the conversation a bit more, improved the default tasks, improved the date importance calculations a smidge and fixed many tiny issues. It should now be DONE!
Improved some UI layouts, clarified a sentence or two in the conversation, reordered the tasks page, made selecting the title in the task overlay hide the buttons (to make it easier to see), fixed some visual bugs (maybe?), improved some icons, changed ātodayā to āstarredā (and made it not clear at the end of the day; I wanted to plan for the future) and last but not least I made the grey background for some of the overlays reach past the navigation AT LAST! So now the title bar doesnāt look off when the overlays are open!
Added dynamic colours! Donāt worry that it looks kinda bad right now, I had to learn UI design from scratch for this, and I will improve it soon. Made all the colours (well, most of them for now) generate based on a base colour and added a light and dark theme! I also made the Android navigation icons and the svgs change between light and dark properly. I spent quite some time trying to implement HSLuv or HCT in the hopes it would improve the colours but ended up scrapping that due to many reasons, including too much extra stuff, wasnāt making much (or any) difference, and my HCT implementation was just so broken and I wasnāt bothered to try and fix it. Also some parts are now extra broken, Iāll fix them soon too donāt worry! I had to devlog this in case I went over 10h by accident, hopefully will be resolved before the next one
Tweaked the colours lots and Iām now quite happy with how itās at! Added auto generating colours for everything I didnāt before (the calendar, settings, importance and some buttons in overlays) Saved the dark/light theme to a settings file And fixed a bug with the confirm and move overlays being a strange fixed width!
I did a bunch of work on the settings and added a āthemeā! (Different variations of the base colour - which is now changeable in the settings!) I also used HSLuv instead of just HSL (which I tried before and thought it didnāt do much but now I realise it did help make everything nicer). I also added an effect so when you press on buttons it decreases the border radius a bit! And lastly I thought Iād fix some issues super quick due to the increased layout diversity from the settings but ended up spending much longer on them than expected, those being the jumpyness of the settings dropdowns (so I removed the animations and fixed it up a bit more and also fixed the flowlayout because it turns out everything is broken), fixed scrollbars inside other scrollbars, and probably more I forgot.
I improved how tasks are made, making the task overlay centred instead of to the side, changed āreasoningā into āgoalsā which is easier to understand and still useful, reduced the number of qualities and added some new ones similar to the old reasoning (e.g. āobligationā & ārewardā), came up with MUCH better sample tasks and fixed a small issue with the bottom bar!
Ships:
I finally decided I had done enough and it was really good! This app contains the conversation, a scene with Grapefruit in it, a basic settings page with not much in it, a tasks manager with categories (including a today category) and tasks with importance, reasoning, qualities, items! Also has a great bottom bar for easier text editing and has everything layed out in a mobile-friendly manner! Installation instructions are in the README
FIXED THE UI with dynamic colours and themes! Fixed some layouts Improved how tasks are made (including a not overwhelming amount of qualities and changed the ambiguous āreasoningā into a much less so āgoalsā As well as many minor also cool things! (See the devlogs after ship 1 for the full account)...
|
1792849706.283899
|
1792936106.283899
|
|
26647
|
Middle Earth Os by @Andrea | Stardance
|
Andrea
|
2
|
13.0
|
12
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-27T18:36:09Z", "hours": 1.0, "multiplier": 8.69, "payout": 12, "blessing": "neutral", "text": "As a big fan of The Lord of the Rings, I couldnāt resist expanding my very own space to it! Even though I donāt know much about HTML (okay, practically nothing at all š
), I decided it would be a really fun project to keep building and adding new features. Well, itās still a growing system, but it now comes with an awesome set of features: š - Time display š
- Day of the week (both in letters and numbers) š¢ - Date in numbers š - Welcome screen š - Notepad šļø - Eye of Sauron (which has a secret function - this was my favorite part!) And now⦠the new apps have arrived! Frodo, Gandalf, and Gollum are officially here: š¶āāļø - Frodoās Quest: A walking tracking feature where you can walk and complete the exact same distance that Frodo traveled on his journey. š¼ļø - Gandalfās Gallery: A magical gallery to explore artwork and lore. š - Gollumās Hoard: A dedicated space to add and manage all your most precious items (āmy preciousssā¦ā). Itās getting bigger and more immersive step by step, and Iād love to keep improving it in the future. Thanks for checking it out!", "repo": "https://github.com/Tei-Pancake/Middle-Earth-Os", "demo": "https://tei-pancake.github.io/Middle-Earth-Os/"}, {"ship_num": 2, "ts": "2026-07-17T15:07:23Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "As a big fan of The Lord of the Rings, I couldnāt resist dedicating my very own space to it! Even though I donāt know much about HTML (okay, practically nothing at all š
), I decided it would be a really fun project to build. Well, itās a pretty basic system, but it comes with the following features: š - Time display š
- Day of the week (both in letters and numbers) š¢ - Date in numbers š - Welcome screen š - Notepad šļø - Eye of Sauron (which has a secret function - this was my favorite part!) Itās not a huge project, but Iād love to keep improving it in the future. Thanks for checking it out!", "repo": "https://github.com/Tei-Pancake/Middle-Earth-Os", "demo": "https://tei-pancake.github.io/Middle-Earth-Os/"}]...
|
[{"post_id": 35942, "ts": "202 [{"post_id": 35942, "ts": "2026-07-27T18:31:43Z", "hours": 1.3808, "text": "I added 3 new apps, but for some reason the extension for tracking the time wasnāt functioning, I dunno what happen, buut FRODO, GALDALF and GOLLUM ARE HERE NOW!! Frodo: Now if you go to walk, you can do the same distance as frodo did. Gandalf: A gallery Gollum: treasurees"}, {"post_id": 30158, "ts": "2026-07-17T14:44:31Z", "hours": 0.2917, "text": "I almost forgot the demo link, and also I added a secret feature, can you find it?"}, {"post_id": 30149, "ts": "2026-07-17T14:17:17Z", "hours": 6.2894, "text": "I added a new distribution, which looks better for start the journey to fight against Sauron, will be able to win this battle?"}, {"post_id": 29219, "ts": "2026-07-15T23:47:10Z", "hours": 5.5442, "text": "Hello dear hobbits of distant Middle-earth, and of the welcoming village of Hobbiton, here is your operating system running from the web. Letās see if the all-seeing Eye of Sauron can notice what weāre planning."}]...
|
Title: Middle Earth Os by @Andrea | Stardance
Dev Title: Middle Earth Os by @Andrea | Stardance
Devlogs:
Hello dear hobbits of distant Middle-earth, and of the welcoming village of Hobbiton, here is your operating system running from the web. Letās see if the all-seeing Eye of Sauron can notice what weāre planning.
I added a new distribution, which looks better for start the journey to fight against Sauron, will be able to win this battle?
I almost forgot the demo link, and also I added a secret feature, can you find it?
I added 3 new apps, but for some reason the extension for tracking the time wasnāt functioning, I dunno what happen, buut FRODO, GALDALF and GOLLUM ARE HERE NOW!! Frodo: Now if you go to walk, you can do the same distance as frodo did. Gandalf: A gallery Gollum: treasurees
Ships:
As a big fan of The Lord of the Rings, I couldnāt resist dedicating my very own space to it! Even though I donāt know much about HTML (okay, practically nothing at all š
), I decided it would be a really fun project to build. Well, itās a pretty basic system, but it comes with the following features: š - Time display š
- Day of the week (both in letters and numbers) š¢ - Date in numbers š - Welcome screen š - Notepad šļø - Eye of Sauron (which has a secret function - this was my favorite part!) Itās not a huge project, but Iād love to keep improving it in the future. Thanks for checking it out!
As a big fan of The Lord of the Rings, I couldnāt resist expanding my very own space to it! Even though I donāt know much about HTML (okay, practically nothing at all š
), I decided it would be a really fun project to keep building and adding new features. Well, itās still a growing system, but it now comes with an awesome set of features: š - Time display š
- Day of the week (both in letters and numbers) š¢ - Date in numbers š - Welcome screen š - Notepad šļø - Eye of Sauron (which has a secret function - this was my favorite part!) And now⦠the new apps have arrived! Frodo, Gandalf, and Gollum are officially here: š¶āāļø - Frodoās Quest: A walking tracking feature where you can walk and complete the exact same distance that Frodo traveled on his journey. š¼ļø - Gandalfās Gallery: A magical gallery to explore artwork and lore. š - Gollumās Hoard: A dedicated space to add and manage all your most precious items (āmy preciousssā¦ā). Itās getting bigger and more immersive step by step, and Iād love to keep improving it in the future. Thanks for checking it out!...
|
1792835634.060732
|
1792922034.060732
|
|
26692
|
My very own WebOS by @Nanos | Stardance
|
Nanos
|
2
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-08T14:15:26Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "My very own webos", "repo": "https://github.com/na1os/webos", "demo": "https://demo.nanos.ro/webos/"}, {"ship_num": 2, "ts": "2026-06-28T00:18:21Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "My very own webos", "repo": "https://github.com/na1os/webos", "demo": "https://demo.nanos.ro/webos/"}]...
|
[{"post_id": 24714, "ts": "202 [{"post_id": 24714, "ts": "2026-07-08T14:14:46Z", "hours": 0.0, "text": "Finally reached a point where Iām happy with the first version of the project. Iāve been polishing the UI, fixing bugs, improving performance, and making the whole desktop experience feel much more complete."}, {"post_id": 24698, "ts": "2026-07-08T13:50:15Z", "hours": 0.0, "text": "Desktop Is Coming Together Made a lot of progress on the desktop environment. Most of my time went into polishing the UI and improving the overall experience. I also refactored parts of the project so adding new features later will be much easier. Progress: Improved desktop layout. Better window management. Smoother animations. More responsive interface."}, {"post_id": 17278, "ts": "2026-06-28T00:16:00Z", "hours": 0.0, "text": "My very first webos"}]...
|
Title: My very own WebOS by @Nanos | Stardance
De Title: My very own WebOS by @Nanos | Stardance
Devlogs:
My very first webos
Desktop Is Coming Together Made a lot of progress on the desktop environment. Most of my time went into polishing the UI and improving the overall experience. I also refactored parts of the project so adding new features later will be much easier. Progress: Improved desktop layout. Better window management. Smoother animations. More responsive interface.
Finally reached a point where Iām happy with the first version of the project. Iāve been polishing the UI, fixing bugs, improving performance, and making the whole desktop experience feel much more complete.
Ships:
My very own webos
My very own webos...
|
1792878866.740645
|
1793742866.740645
|
|
26706
|
My very own WebOS by @Astra4 | Stardance
|
Astra4
|
2
|
3.0
|
22
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-05T02:02:31Z", "hours": 1.0, "multiplier": 15.91, "payout": 22, "blessing": "neutral", "text": "creating my own OS ^-^ built using html, css, and javascript. most challenging part was figuring out the Javascript - my past coding experience was mostly HTML/CSS/Python. proud that i mulled it over, and that itās comparatively more aesthetic than my old websites that were super blocky. hackatime thought it would be funny to tell me to install and uninstall wakatime - iām missing probably 6 or 7 hours hours of work that shouldāve been logged -_-. you can find the actual devlogs saved as separate files on the github features: any additions you add will save even if you reload or exit the page - itās stored locally though so others wonāt be able to see it cute little loading bar welcome page - simple introduction that pops up when you click āMingOSā on top left corner, first taskbar app, or upon loading diary (star log) - a space for personal journal entries - you can add your own! doodles - a gallery for drawings and artwork - you can add your own! mixtape - a music playlist section, for now i have placeholder audio but iāll add my own later, maybe even the music that iām working on right now hehe sketch - draw directly in browser guestbook - leave messages and notes - i donāt have a database so unfortunately all the data will stay local Sunny - a virtual pet and interactive companion to care for while exploring the site - maybe iāll add an adjustment for need levels later", "repo": "https://github.com/astra-4/mingos", "demo": "https://astra-4.github.io/mingos/"}, {"ship_num": 2, "ts": "2026-06-30T09:00:35Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "creating my own OS ^-^ built using html, css, and javascript. most challenging part was figuring out the Javascript - my past coding experience was mostly HTML/CSS/Python. proud that i mulled it over, and that itās comparatively more aesthetic than my old websites that were super blocky. also hackaclub had severe issues so i had to re-install - iām missing probably 6 or 7 hours hours of work that shouldāve been logged -_- features: any additions you add will save even if you reload or exit the page - itās stored locally though so others wonāt be able to see it cute little loading bar welcome page - simple introduction that pops up when you click āMingOSā on top left corner, first taskbar app, or upon loading diary (star log) - a space for personal journal entries - you can add your own! doodles - a gallery for drawings and artwork - you can add your own! mixtape - a music playlist section, for now i have placeholder audio but iāll add my own later, maybe even the music that iām working on right now hehe sketch - draw directly in browser guestbook - leave messages and notes - i donāt have a database so unfortunately all the data will stay local Sunny - a virtual pet and interactive companion to care for while exploring the site - maybe iāll add an adjustment for need levels later", "repo": "https://github.com/astra-4/mingos", "demo": "https://astra-4.github.io/mingos/"}]...
|
[{"post_id": 22541, "ts": "202 [{"post_id": 22541, "ts": "2026-07-05T02:00:17Z", "hours": 1.3522, "text": "overhauled css. apparently i messed up git branches so i had to revert to an earlier version -_- now it starts off in dark mode and also changed the color scheme to fit the night sky/star theme more"}, {"post_id": 19082, "ts": "2026-06-30T08:49:25Z", "hours": 0.9947, "text": "finally finished! app icons are draggable, and any user inputs (star log, mixtape, window location, etc.) should be saved. the logged time is inaccurate and i had to fully restart the installation -_- for it to even track properly. try it out here: https://astra-4.github.io/mingos/"}, {"post_id": 18782, "ts": "2026-06-29T23:59:13Z", "hours": 0.2833, "text": "skipped 4 or 5 actual devlogs - you can find them on the github page. around this mark i actually spent around 6 hours. star log is like a mini diary, doodles is like a mini sketch book, mixtape is just like the diary but a songs list. later iām going to have entries that visitors can add themselves, a sketchpad app, and audio to mixtape."}, {"post_id": 18764, "ts": "2026-06-29T23:23:45Z", "hours": 0.3806, "text": "started part 1 - the main page. also heads up that hackatime wasnāt working for me so the logged time is inaccurate. the time and date wasnāt coded to be updated in real time yet so i put in a six seven joke. har har."}]...
|
Title: My very own WebOS by @Astra4 | Stardance
D Title: My very own WebOS by @Astra4 | Stardance
Devlogs:
started part 1 - the main page. also heads up that hackatime wasnāt working for me so the logged time is inaccurate. the time and date wasnāt coded to be updated in real time yet so i put in a six seven joke. har har.
skipped 4 or 5 actual devlogs - you can find them on the github page. around this mark i actually spent around 6 hours. star log is like a mini diary, doodles is like a mini sketch book, mixtape is just like the diary but a songs list. later iām going to have entries that visitors can add themselves, a sketchpad app, and audio to mixtape.
finally finished! app icons are draggable, and any user inputs (star log, mixtape, window location, etc.) should be saved. the logged time is inaccurate and i had to fully restart the installation -_- for it to even track properly. try it out here: https://astra-4.github.io/mingos/
overhauled css. apparently i messed up git branches so i had to revert to an earlier version -_- now it starts off in dark mode and also changed the color scheme to fit the night sky/star theme more
Ships:
creating my own OS ^-^ built using html, css, and javascript. most challenging part was figuring out the Javascript - my past coding experience was mostly HTML/CSS/Python. proud that i mulled it over, and that itās comparatively more aesthetic than my old websites that were super blocky. also hackaclub had severe issues so i had to re-install - iām missing probably 6 or 7 hours hours of work that shouldāve been logged -_- features: any additions you add will save even if you reload or exit the page - itās stored locally though so others wonāt be able to see it cute little loading bar welcome page - simple introduction that pops up when you click āMingOSā on top left corner, first taskbar app, or upon loading diary (star log) - a space for personal journal entries - you can add your own! doodles - a gallery for drawings and artwork - you can add your own! mixtape - a music playlist section, for now i have placeholder audio but iāll add my own later, maybe even the music that iām working on right now hehe sketch - draw directly in browser guestbook - leave messages and notes - i donāt have a database so unfortunately all the data will stay local Sunny - a virtual pet and interactive companion to care for while exploring the site - maybe iāll add an adjustment for need levels later
creating my own OS ^-^ built using html, css, and javascript. most challenging part was figuring out the Javascript - my past coding experience was mostly HTML/CSS/Python. proud that i mulled it over, and that itās comparatively more aesthetic than my old websites that were super blocky. hackatime thought it would be funny to tell me to install and uninstall wakatime - iām missing probably 6 or 7 hours hours of work that shouldāve been logged -_-. you can find the actual devlogs saved as separate files on the github features: any additions you add will save even if you reload or exit the page - itās stored locally though so others wonāt be able to see it cute little loading bar welcome page - simple introduction that pops up when you click āMingOSā on top left corner, first taskbar app, or upon loading diary (star log) - a space for personal journal entries - you can add your own! doodles - a gallery for drawings and artwork - you can add your own! mixtape - a music playlist section, for now i have placeholder audio but iāll add my own later, maybe even the music that iām working on right now hehe sketch - draw directly in browser guestbook - leave messages and notes - i donāt have a database so unfortunately all the data will stay local Sunny - a virtual pet and interactive companion to care for while exploring the site - maybe iāll add an adjustment for need levels later...
|
1792831885.7021933
|
1792918285.7021933
|
|
26732
|
My Portfolio by @lazerkat | Stardance
|
lazerkat
|
2
|
14.3
|
72
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-20T23:12:18Z", "hours": 4.0, "multiplier": 2.85, "payout": 13, "blessing": "neutral", "text": "I made a portfolio for myself and I spent a lot of time writing things on it!", "repo": "https://github.com/betelguesestudios/lazerkat/", "demo": "https://betelguesestudios.github.io/lazerkat/"}, {"ship_num": 2, "ts": "2026-07-07T01:28:05Z", "hours": 9.0, "multiplier": 6.75, "payout": 59, "blessing": "neutral", "text": "I made a portfolio for myself! The shake effect on the jobs section was challenging. I am proud of how much I wrote and how long I spent on it!", "repo": "https://github.com/betelguesestudios/lazerkat/", "demo": "https://betelguesestudios.github.io/lazerkat/"}]...
|
[{"post_id": 67785, "ts": "202 [{"post_id": 67785, "ts": "2026-09-14T01:03:42Z", "hours": 1.2975, "text": "Devlog #18!! google ads pls?"}, {"post_id": 31062, "ts": "2026-07-19T04:50:09Z", "hours": 1.0606, "text": "Devlog #17! Added a thing where I show off my old tech and a section where I do scam baiting which is very fun!! btw the image is a scam i got but iām ragebaiting him"}, {"post_id": 29956, "ts": "2026-07-17T04:53:35Z", "hours": 0.3792, "text": "Devlog #16! I added a cool percentage calculator which I find useful lol"}, {"post_id": 29295, "ts": "2026-07-16T03:34:17Z", "hours": 0.9586, "text": "Devlog #15! More ideas, and added other alfieās game! (picture unrelated its just egghead)"}, {"post_id": 28046, "ts": "2026-07-14T02:05:11Z", "hours": 0.3381, "text": "Devlog #14! More ranting in the ideas section. willem took my printer cord"}, {"post_id": 27469, "ts": "2026-07-13T02:08:10Z", "hours": 0.7961, "text": "Devlog #13! More ideas mostly"}, {"post_id": 27040, "ts": "2026-07-12T06:48:01Z", "hours": 0.8639, "text": "Devlog #12! Added a screen time section, bots? section, and a very cool thingy to open ALL the tabs!"}, {"post_id": 23847, "ts": "2026-07-07T00:58:43Z", "hours": 0.5908, "text": "Devlog #11!! added a small rant about ai because iām sick of it!"}, {"post_id": 23309, "ts": "2026-07-06T05:51:40Z", "hours": 0.5486, "text": "Devlog #10!! added new zealand, protein folding, more about the band, more ideas and more interests"}, {"post_id": 21960, "ts": "2026-07-04T05:11:53Z", "hours": 0.6042, "text": "Devlog #9!!! i have added favicon, coding languages, and music stuff! our song is so cool pls listen"}, {"post_id": 21228, "ts": "2026-07-03T01:56:41Z", "hours": 1.2547, "text": "Devlog #8! shaking, strobe mode, games, renderlight studios, and JOBS"}, {"post_id": 21112, "ts": "2026-07-02T22:13:27Z", "hours": 1.2756, "text": "Devlog #7! Added writing tab for all of my writing work!"}, {"post_id": 20278, "ts": "2026-07-01T20:31:43Z", "hours": 1.1075, "text": "Devlog #6! Added tools, contacts, and other things"}, {"post_id": 19688, "ts": "2026-07-01T02:29:46Z", "hours": 0.5408, "text": "Devlog #5! Added ideas section where i yap lol"}, {"post_id": 19604, "ts": "2026-06-30T23:27:28Z", "hours": 0.7878, "text": "Devlog #4! styling using a button generator, basic css and google fonts :)"}, {"post_id": 18982, "ts": "2026-06-30T04:44:38Z", "hours": 0.3381, "text": "Devlog #3! interests part"}, {"post_id": 18932, "ts": "2026-06-30T03:33:09Z", "hours": 0.9564, "text": "Devlog #2! added barnaby, more q&as, and projects i think"}, {"post_id": 18093, "ts": "2026-06-29T03:03:21Z", "hours": 1.2614, "text": "Devlog #1! I made the base of my portfolio. I have added a few questions and answers. gotta style"}]...
|
Title: My Portfolio by @lazerkat | Stardance
Devl Title: My Portfolio by @lazerkat | Stardance
Devlogs:
Devlog #1! I made the base of my portfolio. I have added a few questions and answers. gotta style
Devlog #2! added barnaby, more q&as, and projects i think
Devlog #3! interests part
Devlog #4! styling using a button generator, basic css and google fonts :)
Devlog #5! Added ideas section where i yap lol
Devlog #6! Added tools, contacts, and other things
Devlog #7! Added writing tab for all of my writing work!
Devlog #8! shaking, strobe mode, games, renderlight studios, and JOBS
Devlog #9!!! i have added favicon, coding languages, and music stuff! our song is so cool pls listen
Devlog #10!! added new zealand, protein folding, more about the band, more ideas and more interests
Devlog #11!! added a small rant about ai because iām sick of it!
Devlog #12! Added a screen time section, bots? section, and a very cool thingy to open ALL the tabs!
Devlog #13! More ideas mostly
Devlog #14! More ranting in the ideas section. willem took my printer cord
Devlog #15! More ideas, and added other alfieās game! (picture unrelated its just egghead)
Devlog #16! I added a cool percentage calculator which I find useful lol
Devlog #17! Added a thing where I show off my old tech and a section where I do scam baiting which is very fun!! btw the image is a scam i got but iām ragebaiting him
Devlog #18!! google ads pls?
Ships:
I made a portfolio for myself! The shake effect on the jobs section was challenging. I am proud of how much I wrote and how long I spent on it!
I made a portfolio for myself and I spent a lot of time writing things on it!...
|
1792842754.5994062
|
1792929154.5994062
|
|
26904
|
Serene Seasons Gen Fix by @Fiskerz | Stardance
|
Fiskerz
|
2
|
13.0
|
93
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-17T12:17:04Z", "hours": 10.0, "multiplier": 6.94, "payout": 71, "blessing": "neutral", "text": "What the hell am I looking at? If youāre asking that, well I am here to explain that. This is a Minecraft mod that aims to fix one known issue for the 1.21.x versions of the game. Technical overview The vanilla issue has already been covered by a mod named WorldGenFeatureFix, but if you install the serene seasons mod and try loading a few dozen chunks the server is likely to crash, even with the fixing mod present. This is beacause serene seasons skip the fixed chunk of code and go straight for the vanilla broken one. If you want a bit more detail on this issue, be sure to check out the github repo. What does this ship even add? As you might have noticed, this is a second ship of the mod. The main reason why I even extended on the original is beacause the issue has been reported even outside neoforge, the mod loader I originally made the mod for. Thus this ship adds support for Forge and Fabric loader, covering a slightly larger section of people Where can I get this mod? I have published all of the new versions of the mod to CurseForge and Modrinth , so you choose where you want to obtain it. How can I try this out for myself? Well this is the only part of this project that takes a bit of a toll on it. You see, because the mod fixes such a specific and rather rare issue there is not a very reliable and most importantly simple way to fully test it. I really, really wanted to make a comparison video to be able to show it to you atleast on the video, but guess what? Now that I want the server to crash it doesnāt :| No jokes, but I spent almost 6 hours just trying to catch that crash and it just refused to. So sorry, but you will have to test it the old way . The old way to test Make a world, or set-up a minecraft server for any of the compatible versions (most common crashes occur on Neoforge) and install the mod, alongside: Serene seasons (and its dependencies), WorldGenFeatureFix and to make the crash more likely to happen, add any world generation mod. And now observe no crashes at all. I know this is a very complicated way to test, but thereās just not a way to do it simpler.", "repo": "https://github.com/Catmaster543/Serene-Seasons-Gen-Fix", "demo": "https://www.curseforge.com/minecraft/mc-mods/serene-seasons-gen-fix"}, {"ship_num": 2, "ts": "2026-06-27T21:53:14Z", "hours": 3.0, "multiplier": 7.11, "payout": 22, "blessing": "neutral", "text": "I made a minecraft mod that has one purpose - fix an issue where modded servers crash due to a known problematic method that serene seasons uses. I took on this project because I saw nobody else doing anything about it, or keeping their solutions only to themselves. It was a whole new experience for me, as Iāve never made a minecraft mod, so I had to learn most of the things the hard way. Iām proud that it took me a pretty small amount of time to make it and also that I even finished it. To truly test this mod I reccomend making a 1.21.1 neoforge server with serene seasons present, some world generation mod like tectonic and using chunky to generate a few hundred chunks. Sure, not the easiest setup, but the projectās main focus is to fix a moreover niche issue.", "repo": "https://github.com/Catmaster543/Serene-Seasons-Gen-Fix", "demo": "https://www.curseforge.com/minecraft/mc-mods/serene-seasons-gen-fix"}]...
|
[{"post_id": 48841, "ts": "202 [{"post_id": 48841, "ts": "2026-08-17T12:00:22Z", "hours": 1.5403, "text": "Tried to catch the crash live, yet failed.. (again) I tried to catch the crash live for a comparison video to make the rating a teeny tiny bit easier, but I failed for like the fifth time, it now just does not crash. Funny enough when you need it the least it will of course crash, but it is, what it is⦠Now to prove that I am not going insane or smth I still have the old logs, that very clearly show the crash, such as the one I inserted in, but I canāt figure out just why it wonāt happen again now that I actually do want it to crash."}, {"post_id": 48782, "ts": "2026-08-17T10:00:59Z", "hours": 8.6372, "text": "Ported the fix to Forge and Fabric! Devlog #4 I did not expect to make any sort of update to this patch mod, yet I found out forge (and possibly fabric too) suffer from the issue. Thus it felt right to make the versions available as well, so that no one has to make it instead of me. I made sure to publish the versions to CurseForge and Modrinth as before and I made a tiny change to the github repo on my way too. The reason for this ridiculously high time logged (the project itself took initially just 3 hours) is because I wanted to make a comparison video to make the project rating atleast a little easier. To my absolute unfortune I got unlucky (almost every seed will have the issue-causing chunk somewhere, but sometimes it is furhter then other times) with three seeds in a row and it takes ages to generate the chunks in worlds, during which I had to just sit back and watch as they slowly load. Thus Iām sorry for not making it easier to rate, but Iāll cook my pc alive if I keep on loading more chunks."}, {"post_id": 17177, "ts": "2026-06-27T21:40:32Z", "hours": 0.3386, "text": "So I just added logging whenever the mod is used.. maybe not the best idea ever, but hey, if you ever need to know for whatever reason that the mod works here you go."}, {"post_id": 17142, "ts": "2026-06-27T20:32:43Z", "hours": 0.8408, "text": "I just re-designed the old icon for the mod, now looking way cleaner and sharper. It is now a part of the mod as its main icon."}, {"post_id": 16842, "ts": "2026-06-27T10:47:51Z", "hours": 1.8572, "text": "Yay, the mod seems to be doing a good job at preventing the crashes, even after generating 142k+ chunks, not a single crash happened!"}]...
|
Title: Serene Seasons Gen Fix by @Fiskerz | Starda Title: Serene Seasons Gen Fix by @Fiskerz | Stardance
Devlogs:
Yay, the mod seems to be doing a good job at preventing the crashes, even after generating 142k+ chunks, not a single crash happened!
I just re-designed the old icon for the mod, now looking way cleaner and sharper. It is now a part of the mod as its main icon.
So I just added logging whenever the mod is used.. maybe not the best idea ever, but hey, if you ever need to know for whatever reason that the mod works here you go.
Ported the fix to Forge and Fabric! Devlog #4 I did not expect to make any sort of update to this patch mod, yet I found out forge (and possibly fabric too) suffer from the issue. Thus it felt right to make the versions available as well, so that no one has to make it instead of me. I made sure to publish the versions to CurseForge and Modrinth as before and I made a tiny change to the github repo on my way too. The reason for this ridiculously high time logged (the project itself took initially just 3 hours) is because I wanted to make a comparison video to make the project rating atleast a little easier. To my absolute unfortune I got unlucky (almost every seed will have the issue-causing chunk somewhere, but sometimes it is furhter then other times) with three seeds in a row and it takes ages to generate the chunks in worlds, during which I had to just sit back and watch as they slowly load. Thus Iām sorry for not making it easier to rate, but Iāll cook my pc alive if I keep on loading more chunks.
Tried to catch the crash live, yet failed.. (again) I tried to catch the crash live for a comparison video to make the rating a teeny tiny bit easier, but I failed for like the fifth time, it now just does not crash. Funny enough when you need it the least it will of course crash, but it is, what it is⦠Now to prove that I am not going insane or smth I still have the old logs, that very clearly show the crash, such as the one I inserted in, but I canāt figure out just why it wonāt happen again now that I actually do want it to crash.
Ships:
I made a minecraft mod that has one purpose - fix an issue where modded servers crash due to a known problematic method that serene seasons uses. I took on this project because I saw nobody else doing anything about it, or keeping their solutions only to themselves. It was a whole new experience for me, as Iāve never made a minecraft mod, so I had to learn most of the things the hard way. Iām proud that it took me a pretty small amount of time to make it and also that I even finished it. To truly test this mod I reccomend making a 1.21.1 neoforge server with serene seasons present, some world generation mod like tectonic and using chunky to generate a few hundred chunks. Sure, not the easiest setup, but the projectās main focus is to fix a moreover niche issue.
What the hell am I looking at? If youāre asking that, well I am here to explain that. This is a Minecraft mod that aims to fix one known issue for the 1.21.x versions of the game. Technical overview The vanilla issue has already been covered by a mod named WorldGenFeatureFix, but if you install the serene seasons mod and try loading a few dozen chunks the server is likely to crash, even with the fixing mod present. This is beacause serene seasons skip the fixed chunk of code and go straight for the vanilla broken one. If you want a bit more detail on this issue, be sure to check out the github repo. What does this ship even add? As you might have noticed, this is a second ship of the mod. The main reason why I even extended on the original is beacause the issue has been reported even outside neoforge, the mod loader I originally made the mod for. Thus this ship adds support for Forge and Fabric loader, covering a slightly larger section of people Where can I get this mod? I have published all of the new versions of the mod to CurseForge and Modrinth , so you choose where you want to obtain it. How can I try this out for myself? Well this is the only part of this project that takes a bit of a toll on it. You see, because the mod fixes such a specific and rather rare issue there is not a very reliable and most importantly simple way to fully test it. I really, really wanted to make a comparison video to be able to show it to you atleast on the video, but guess what? Now that I want the server to crash it doesnāt :| No jokes, but I spent almost 6 hours just trying to catch that crash and it just refused to. So sorry, but you will have to test it the old way . The old way to test Make a world, or set-up a minecraft server for any of the compatible versions (most common crashes occur on Neoforge) and install the mod, alongside: Serene seasons (and its dependencies), WorldGenFeatureFix and to make the crash more likely to happen, add any world generation mod. And now observe no crashes at all. I know this is a very complicated way to test, but thereās just not a way to do it simpler....
|
1792828219.8865626
|
1792914619.8865626
|
|
27008
|
Cascade by @sheepex_ | Stardance
|
sheepex_
|
2
|
41.28
|
111
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-28T11:54:50Z", "hours": 2.0, "multiplier": 12.33, "payout": 25, "blessing": "neutral", "text": "This update is all about making Cascade feel more polished and consistent. I unified every dropdown across the app, added new settings for original map metadata, hold-to-confirm timing and background parallax, and improved the HUD editor with a timeline scrubber and more reliable previews. The desktop app also now asks before closing.", "repo": "https://github.com/sheepexx/cascade", "demo": "https://cascade.sheepex.net/"}, {"ship_num": 2, "ts": "2026-09-26T18:42:10Z", "hours": 25.0, "multiplier": 8.56, "payout": 86, "blessing": "neutral", "text": "This update is mostly about making playtesting feel like the real game and making it easier to share your maps. The biggest change is the playtest. I rebuilt it on osu!maniaās actual rules, so hold note tails, note lock, timing and offsets now behave the way they do in osu!. On top of that thereās a new HUD editor: your map plays on autoplay while you click and drag anything on screen to move or resize it. Scroll speed and audio offset moved in there too, so the playtest settings are a lot less cluttered now. I also added Map Cards. With one click you get a clean image of your map with its MSD, skillsets, BPM, length and note stats, ready to post on Discord or anywhere else. Thereās also a skillset graph under the timeline now that shows which skillset makes each part of the song hard, so you can see where a map spikes without playing it. There are a bunch of smaller changes too: Malody charts can be opened and exported, hitsounds can be copied onto every difficulty at once, thereās a colourblind-friendly lane colour option, keybinds work like osu!stable so you just type your keys in order, and the whole editor is now translated into German, Russian, Portuguese and Chinese. You can try it here: https://cascade.sheepex.net", "repo": "https://github.com/sheepexx/cascade", "demo": "https://cascade.sheepex.net/"}]...
|
[{"post_id": 79533, "ts": "202 [{"post_id": 79533, "ts": "2026-10-14T14:21:22Z", "hours": 2.03, "text": "I changed the design language, to a more professional, simpler one. It using less system resources and its better for lower end devices."}, {"post_id": 79371, "ts": "2026-10-13T18:05:26Z", "hours": 12.2481, "text": "I worked on making new Social features, like profiles a messaging system and friend system."}, {"post_id": 74822, "ts": "2026-09-28T11:41:53Z", "hours": 1.9969, "text": "This update is mostly about polishing the interface and giving you more control over how Cascade looks and feels. One of the bigger changes is that every dropdown in Cascade now uses the same custom menu instead of mixing Cascadeās UI with native operating system selects. This affected quite a few places: dan ladders and keymodes, skins, Discord presence, collaborator roles, pack creation, batch timing, audio output, shared map difficulties and even the admin sorting menus. The dropdown component itself also got more capable. Menus can now have grouped sections, which is used to separate built-in playtest skin presets from your saved skins, and options can be shown as unavailable without completely hiding them. For example, an unsupported exclusive audio mode can still be displayed so you know the option exists, just without being able to select it. Dropdowns also behave better inside panels now. Some menus, especially ones opened from the HUD editor, could previously end up rendering underneath the panel they belonged to and look like an empty menu. They now use the proper UI layer, so menus always appear above panels while still staying underneath things like the command palette. There are three new interface settings as well. You can now tell Cascade to prefer a mapās original title and artist instead of the romanised metadata. If an osu! map contains both versions, Cascade will use the original script in the editor header, project list, now playing card and Discord Rich Presence. Maps that only have one version of their metadata behave exactly as before, and this doesnāt change anything stored in or exported with the map. The hold-to-confirm duration is customizable now too. Destructive actions previously always required holding for 750ms; you can now choose anything from 200ms up to 3 seconds depending on how quickly or carefully you want those controls to react. Thereās also a new parallax strength setting for Cascadeās backgrounds. 100% gives you the movement Cascade had before, while 0% keeps the background completely still. You can also choose anything in between if you like the effect but want it to be more subtle. The HUD editor got another small usability upgrade with a proper timeline scrubber. You can drag through the song and quickly preview the HUD at any point in the map instead of having to wait for the autoplay to reach it. Seeking also keeps the full chart context intact, so things like the density graph and note count donāt suddenly change just because youāve jumped further into the song. The HUD preview itself is more predictable now as well. Its autoplay always runs perfectly regardless of your normal humanized autoplay settings, impossible autoplay situations are ignored instead of being counted as misses, and combo and accuracy stop changing while youāre actively moving HUD elements around. And finally, the desktop app now asks before closing. Both the Exit button on the start screen and the Exit action in the command palette show the same confirmation dialog Cascade already uses for other destructive actions. Confirming still uses the normal fade-out and menu music transition, but an accidental click canāt immediately close the app anymore. You can try it here: https://cascade.sheepex.net"}, {"post_id": 74124, "ts": "2026-09-26T18:33:33Z", "hours": 24.71, "text": "Hello! I worked on Cascade a lot, mostly on playtesting and on sharing maps. The biggest change is the playtest. I rebuilt it on osu!maniaās actual rules, so hold note tails, note lock and timing now behave like in the real game. I also added a HUD editor: the map plays on autoplay and you click and drag anything on screen to move or resize it. Scroll speed and offsets live there now too, which cleaned up the settings a lot. I also made āMap Cardsā. You get an image of your map with its MSD, skillsets, BPM and other stats that you can post anywhere. Thereās also a skillset graph under the timeline now, so you can see which skillset makes each part of the song hard. Smaller stuff: Malody charts can be opened and exported hitsounds can be copied onto every difficulty at once a colourblind-friendly lane colour option keybinds work like osu!stable, so you just type your keys in order the whole editor is translated into German, Russian, Portuguese and Chinese Try it here: https://cascade.sheepex.net"}]...
|
Title: Cascade by @sheepex_ | Stardance
Devlogs:
Title: Cascade by @sheepex_ | Stardance
Devlogs:
Hello! I worked on Cascade a lot, mostly on playtesting and on sharing maps. The biggest change is the playtest. I rebuilt it on osu!maniaās actual rules, so hold note tails, note lock and timing now behave like in the real game. I also added a HUD editor: the map plays on autoplay and you click and drag anything on screen to move or resize it. Scroll speed and offsets live there now too, which cleaned up the settings a lot. I also made āMap Cardsā. You get an image of your map with its MSD, skillsets, BPM and other stats that you can post anywhere. Thereās also a skillset graph under the timeline now, so you can see which skillset makes each part of the song hard. Smaller stuff: Malody charts can be opened and exported hitsounds can be copied onto every difficulty at once a colourblind-friendly lane colour option keybinds work like osu!stable, so you just type your keys in order the whole editor is translated into German, Russian, Portuguese and Chinese Try it here: https://cascade.sheepex.net
This update is mostly about polishing the interface and giving you more control over how Cascade looks and feels. One of the bigger changes is that every dropdown in Cascade now uses the same custom menu instead of mixing Cascadeās UI with native operating system selects. This affected quite a few places: dan ladders and keymodes, skins, Discord presence, collaborator roles, pack creation, batch timing, audio output, shared map difficulties and even the admin sorting menus. The dropdown component itself also got more capable. Menus can now have grouped sections, which is used to separate built-in playtest skin presets from your saved skins, and options can be shown as unavailable without completely hiding them. For example, an unsupported exclusive audio mode can still be displayed so you know the option exists, just without being able to select it. Dropdowns also behave better inside panels now. Some menus, especially ones opened from the HUD editor, could previously end up rendering underneath the panel they belonged to and look like an empty menu. They now use the proper UI layer, so menus always appear above panels while still staying underneath things like the command palette. There are three new interface settings as well. You can now tell Cascade to prefer a mapās original title and artist instead of the romanised metadata. If an osu! map contains both versions, Cascade will use the original script in the editor header, project list, now playing card and Discord Rich Presence. Maps that only have one version of their metadata behave exactly as before, and this doesnāt change anything stored in or exported with the map. The hold-to-confirm duration is customizable now too. Destructive actions previously always required holding for 750ms; you can now choose anything from 200ms up to 3 seconds depending on how quickly or carefully you want those controls to react. Thereās also a new parallax strength setting for Cascadeās backgrounds. 100% gives you the movement Cascade had before, while 0% keeps the background completely still. You can also choose anything in between if you like the effect but want it to be more subtle. The HUD editor got another small usability upgrade with a proper timeline scrubber. You can drag through the song and quickly preview the HUD at any point in the map instead of having to wait for the autoplay to reach it. Seeking also keeps the full chart context intact, so things like the density graph and note count donāt suddenly change just because youāve jumped further into the song. The HUD preview itself is more predictable now as well. Its autoplay always runs perfectly regardless of your normal humanized autoplay settings, impossible autoplay situations are ignored instead of being counted as misses, and combo and accuracy stop changing while youāre actively moving HUD elements around. And finally, the desktop app now asks before closing. Both the Exit button on the start screen and the Exit action in the command palette show the same confirmation dialog Cascade already uses for other destructive actions. Confirming still uses the normal fade-out and menu music transition, but an accidental click canāt immediately close the app anymore. You can try it here: https://cascade.sheepex.net
I worked on making new Social features, like profiles a messaging system and friend system.
I changed the design language, to a more professional, simpler one. It using less system resources and its better for lower end devices.
Ships:
This update is mostly about making playtesting feel like the real game and making it easier to share your maps. The biggest change is the playtest. I rebuilt it on osu!maniaās actual rules, so hold note tails, note lock, timing and offsets now behave the way they do in osu!. On top of that thereās a new HUD editor: your map plays on autoplay while you click and drag anything on screen to move or resize it. Scroll speed and audio offset moved in there too, so the playtest settings are a lot less cluttered now. I also added Map Cards. With one click you get a clean image of your map with its MSD, skillsets, BPM, length and note stats, ready to post on Discord or anywhere else. Thereās also a skillset graph under the timeline now that shows which skillset makes each part of the song hard, so you can see where a map spikes without playing it. There are a bunch of smaller changes too: Malody charts can be opened and exported, hitsounds can be copied onto every difficulty at once, thereās a colourblind-friendly lane colour option, keybinds work like osu!stable so you just type your keys in order, and the whole editor is now translated into German, Russian, Portuguese and Chinese. You can try it here: https://cascade.sheepex.net
This update is all about making Cascade feel more polished and consistent. I unified every dropdown across the app, added new settings for original map metadata, hold-to-confirm timing and background parallax, and improved the HUD editor with a timeline scrubber and more reliable previews. The desktop app also now asks before closing....
|
1792856943.4038491
|
1792943343.4038491
|
|
27065
|
monkeyos by @simonproyt | Stardance
|
simonproyt
|
2
|
25.0
|
177
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-20T20:58:19Z", "hours": 18.0, "multiplier": 9.98, "payout": 177, "blessing": "neutral", "text": "I finally turned the concept into a more usable tech demo that has some features and focused on making apps that demo the oses underlying apis in a simple way and polishing the whole os to not have that unfinished concept feeling also if you want to try it out you might need to enable webgpu in your browsers flags settings if its not enabled by default. Thank you for reading and I hope that you found my projects interesting!", "repo": "https://github.com/simonproyt/monkeyos", "demo": "https://simonproyt.github.io/monkeyos/"}, {"ship_num": 2, "ts": "2026-07-02T14:29:44Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So i think this is good as an initial version but i have a lot of work to do on the rendering engine and adding more apps because its kinda bare bones but i will be definitely flushing it out more and making the ui more pretty", "repo": "https://github.com/simonproyt/monkeyos", "demo": "https://simonproyt.github.io/monkeyos/"}]...
|
[{"post_id": 31998, "ts": "202 [{"post_id": 31998, "ts": "2026-07-20T20:46:58Z", "hours": 3.4631, "text": "Backgrounds finally so one of the things missing from the os i think was like some pretty backgrounds cause the os only had that bland dark blue/grey ish simple one color background support but i changed that now and added support for random image background support with NASA APOD or Picsum random as the selectable options in the new settings app"}, {"post_id": 31110, "ts": "2026-07-19T07:45:09Z", "hours": 3.0192, "text": "First game Added snake to the os as a cool way to demo all the rendering sound and storage apis in a fun way and added a few underlying kernel and window manager changes like increasing the oses fps target from 2 to 30 because it was so laggy for games"}, {"post_id": 28805, "ts": "2026-07-15T09:36:37Z", "hours": 2.2514, "text": "More audio stuff piano Itās a piano what more could i say about it midiplayer Itās a retro chiptune style midi player to demo the oses audio capabilities with a cool visualizer"}, {"post_id": 27598, "ts": "2026-07-13T10:16:20Z", "hours": 2.3033, "text": "Added some multimedia features and a basic networking api beep Just a simple pc speaker like beep to test if the sound api is working or not imgview An image viewer thats it nothing special fetch A curl like command that uses the new networking api to fetch stuff trough the browser or if that fails because of crocs trough a proxy api"}, {"post_id": 26606, "ts": "2026-07-11T15:14:12Z", "hours": 1.0986, "text": "Added 3 new commands to the cli mv and grep: its preatty self explanatory what it does if you ever used linux or any other unix like operating system for that matter man: this was kinda hard at first finding where you can find online versions of the manpages from linux that the os can easily get over an api but after a bit of searching i found the tldr pages project and uses that and the github api to download the pages and then strip out the markdown syntax from them and displays them in the terminal."}, {"post_id": 26087, "ts": "2026-07-10T17:50:55Z", "hours": 2.3481, "text": "Added two new apps to the os so after having the libui ui layer implemented i decided to add more apps to demo it like a notepad and a basic file manager"}, {"post_id": 24708, "ts": "2026-07-08T14:01:42Z", "hours": 3.8514, "text": "A pretty big update so after a lot of work i finally added a few features that the os have been missing for ages like a gui library so there could be gui apps not just terminal stuff and a demo calculator app text rendering support to the webgpu engine aero snap like window snapping a dock for window management with a clock and a menu to launch apps Thank you for reading my devlog"}, {"post_id": 20790, "ts": "2026-07-02T14:22:45Z", "hours": 0.9364, "text": "Worked on a ci pipeline to deploy the project automatically to github pages and added a few visual fixes to the project"}, {"post_id": 20013, "ts": "2026-07-01T14:41:16Z", "hours": 1.2564, "text": "Multi windowing is finally supported now but the gui still looks kinda basic the webgpu rendering engine behind everything still doesnāt support text or image rendering so i will be working on that and adding more apps because we only have the terminal"}, {"post_id": 19210, "ts": "2026-06-30T14:03:35Z", "hours": 2.1317, "text": "So we have finally working unix style pipes added to the system and a lot of underlying changes in the kernel for more performance improvements cause the older versions were kinda slow and im trying to fix that"}, {"post_id": 17568, "ts": "2026-06-28T12:24:53Z", "hours": 2.5189, "text": "So this is my first devlog for this project the idea is that to build a rust and wasm based web os that because i taught that using standard html 5 + js would be kinda boring because everyone does that i wanted to do something special so here is the current state of the project: Whats working basic filesystem basic process management a basic shell with rust uutils backed commands Thanks for reading my devlog"}]...
|
Title: monkeyos by @simonproyt | Stardance
Devlog Title: monkeyos by @simonproyt | Stardance
Devlogs:
So this is my first devlog for this project the idea is that to build a rust and wasm based web os that because i taught that using standard html 5 + js would be kinda boring because everyone does that i wanted to do something special so here is the current state of the project: Whats working basic filesystem basic process management a basic shell with rust uutils backed commands Thanks for reading my devlog
So we have finally working unix style pipes added to the system and a lot of underlying changes in the kernel for more performance improvements cause the older versions were kinda slow and im trying to fix that
Multi windowing is finally supported now but the gui still looks kinda basic the webgpu rendering engine behind everything still doesnāt support text or image rendering so i will be working on that and adding more apps because we only have the terminal
Worked on a ci pipeline to deploy the project automatically to github pages and added a few visual fixes to the project
A pretty big update so after a lot of work i finally added a few features that the os have been missing for ages like a gui library so there could be gui apps not just terminal stuff and a demo calculator app text rendering support to the webgpu engine aero snap like window snapping a dock for window management with a clock and a menu to launch apps Thank you for reading my devlog
Added two new apps to the os so after having the libui ui layer implemented i decided to add more apps to demo it like a notepad and a basic file manager
Added 3 new commands to the cli mv and grep: its preatty self explanatory what it does if you ever used linux or any other unix like operating system for that matter man: this was kinda hard at first finding where you can find online versions of the manpages from linux that the os can easily get over an api but after a bit of searching i found the tldr pages project and uses that and the github api to download the pages and then strip out the markdown syntax from them and displays them in the terminal.
Added some multimedia features and a basic networking api beep Just a simple pc speaker like beep to test if the sound api is working or not imgview An image viewer thats it nothing special fetch A curl like command that uses the new networking api to fetch stuff trough the browser or if that fails because of crocs trough a proxy api
More audio stuff piano Itās a piano what more could i say about it midiplayer Itās a retro chiptune style midi player to demo the oses audio capabilities with a cool visualizer
First game Added snake to the os as a cool way to demo all the rendering sound and storage apis in a fun way and added a few underlying kernel and window manager changes like increasing the oses fps target from 2 to 30 because it was so laggy for games
Backgrounds finally so one of the things missing from the os i think was like some pretty backgrounds cause the os only had that bland dark blue/grey ish simple one color background support but i changed that now and added support for random image background support with NASA APOD or Picsum random as the selectable options in the new settings app
Ships:
So i think this is good as an initial version but i have a lot of work to do on the rendering engine and adding more apps because its kinda bare bones but i will be definitely flushing it out more and making the ui more pretty
I finally turned the concept into a more usable tech demo that has some features and focused on making apps that demo the oses underlying apis in a simple way and polishing the whole os to not have that unfinished concept feeling also if you want to try it out you might need to enable webgpu in your browsers flags settings if its not enabled by default. Thank you for reading and I hope that you found my projects interesting!...
|
1792824961.1190372
|
1792911361.1190372
|
|
27117
|
Library Manager by @starkiller261 | Stardance
|
starkiller261
|
2
|
10.0
|
89
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-30T18:17:35Z", "hours": 0.0, "multiplier": 2.76, "payout": 1, "blessing": "neutral", "text": "I have completed the authentication system so now the sign in with google function should work smoothly.", "repo": "https://github.com/petevass/VirtualLibrary", "demo": "https://virtual-library.tail5b0cb9.ts.net/"}, {"ship_num": 2, "ts": "2026-07-01T01:58:02Z", "hours": 10.0, "multiplier": 9.31, "payout": 88, "blessing": "neutral", "text": "I use Spring MVC to make a virtual library complete with a full book catalogue, scheduled events, and more. You can sign in to act as the owner, librarian, admin, or just a user! look at the README to find the email and passwords to sign in to the roles. Enjoy!", "repo": "https://github.com/petevass/VirtualLibrary", "demo": "https://virtual-library.tail5b0cb9.ts.net/"}]...
|
[{"post_id": 20096, "ts": "202 [{"post_id": 20096, "ts": "2026-07-01T16:45:40Z", "hours": 0.2706, "text": "Ready For ship"}, {"post_id": 19676, "ts": "2026-07-01T01:56:02Z", "hours": 3.9964, "text": "Library Complete"}, {"post_id": 18869, "ts": "2026-06-30T02:07:05Z", "hours": 1.4311, "text": "Librarian Controls Finshed"}, {"post_id": 18790, "ts": "2026-06-30T00:12:58Z", "hours": 1.1219, "text": "Home Page is Complete"}, {"post_id": 17760, "ts": "2026-06-28T18:02:48Z", "hours": 2.9997, "text": "User Actions are almost done"}]...
|
Title: Library Manager by @starkiller261 | Stardan Title: Library Manager by @starkiller261 | Stardance
Devlogs:
User Actions are almost done
Home Page is Complete
Librarian Controls Finshed
Library Complete
Ready For ship
Ships:
I use Spring MVC to make a virtual library complete with a full book catalogue, scheduled events, and more. You can sign in to act as the owner, librarian, admin, or just a user! look at the README to find the email and passwords to sign in to the roles. Enjoy!
I have completed the authentication system so now the sign in with google function should work smoothly....
|
1792821339.4354963
|
1792907739.4354963
|
|
27260
|
AIMRoyale by @Uxyamo | Stardance
|
Uxyamo
|
2
|
3.41
|
30
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-19T06:56:10Z", "hours": 2.0, "multiplier": 5.21, "payout": 15, "blessing": "neutral", "text": "Iām proud about the modifications that I did. I wanted to say that I worker more than 10 hours in this project, but they say that I only worked for 2 hours. I worked in separated projects for securiy.", "repo": "https://github.com/mbbs-iam/AIMRoyale", "demo": "https://aimroyale-production.up.railway.app/"}, {"ship_num": 2, "ts": "2026-07-12T15:21:51Z", "hours": 0.0, "multiplier": 6.51, "payout": 15, "blessing": "neutral", "text": "What it does AIMRoyale is a free, gamified space-math arena that aligns directly with actual school curricula and science chapters (such as Universal Gravitation or Quadratic Functions). Powered by Alibaba Cloudās Qwen-Max model, it dynamically generates 100% custom problems tailored to the userās grade, class, and skill level. Instead of generic quizzes, students navigate through high-stakes space scenarios. The platform features an intelligent, privacy-first memory agent that tracks specific academic weaknesses cross-session. It turns studying into an interactive video game where players actively learn from their mistakes. Accomplishments that weāre proud of As a 16-year-old solo developer, I am incredibly proud of executing a full-stack, production-ready architecture in just a week of summer vacation. I managed to build an advanced, context-aware AI coach that adapts to user mistakes without needing a massive, expensive server-side database. Successfully packaging the engine as a functional PWA that runs perfectly on mobile is a massive milestone for my coding journey. Whatās next for AIMRoyale This is just the baseline infrastructure for a global educational platform: Rich Media: Automatically generating and attaching tailored meme images to every single problem created by the engine. Gamification: Implementing a ful", "repo": "https://github.com/mbbs-iam/AIMRoyale", "demo": "https://aimroyale-production.up.railway.app/"}]...
|
[{"post_id": 41801, "ts": "202 [{"post_id": 41801, "ts": "2026-08-06T07:15:51Z", "hours": 1.4142, "text": "Hi"}, {"post_id": 31080, "ts": "2026-07-19T05:57:52Z", "hours": 2.0483, "text": "Iām working a lot in this project, I really worker for +30 hours but I forget configurating Hackclub. ā : .ļ½”. o(ā§ā½ā¦)o .ļ½”.: ā They say that I only worked for +10 hours in this project"}, {"post_id": 18327, "ts": "2026-06-29T13:09:21Z", "hours": 0.0, "text": "I finally got a working version up and running! I worked more than 50 hours on it Itās not perfect yet . I still need to polish a few things and add a feature so everyone can use it with their own API key (right now itās running on mine). Iām sharing the link here, itās completely free and could really help you study for a math test or exam. All Iām asking is 1 minute of your time to try it out. It generates personalized math problems across different levels and difficulty settings, so thereās something for everyone. Give it a shot, I think youāll enjoy it! š https://serveurmaths-190k.onrender.com"}, {"post_id": 17181, "ts": "2026-06-27T21:45:46Z", "hours": 0.0, "text": "What is AIMRoyale? AIMRoyale is a free online game that makes math fun by mixing school topics with cool space themes. It uses a free AI to generate custom questions for different difficulty levels, and it even helps you learn from your mistakes as you play! š About Me & The Code Iām 16. This summer, I spent 5 hours a day coding this instead of just chilling. I used AI to help me out, but I gained a ton of real professional experience building a safe backend and a smart AI math coach! Why is it special? Private tutors are way too expensive, so I made this 100% free for everyone. The AI instantly creates custom problems based on your exact grade, making it feel like playing a video game instead of doing boring homework. Whatās Next? šø Funny memes for every single math problem. š Leaderboards and trophies to compete with friends. š Keeping it 100% open-source and free for kids everywhere. I would love to know what you guys think about this project! Check out my screenshots below!"}]...
|
Title: AIMRoyale by @Uxyamo | Stardance
Devlogs:
Title: AIMRoyale by @Uxyamo | Stardance
Devlogs:
What is AIMRoyale? AIMRoyale is a free online game that makes math fun by mixing school topics with cool space themes. It uses a free AI to generate custom questions for different difficulty levels, and it even helps you learn from your mistakes as you play! š About Me & The Code Iām 16. This summer, I spent 5 hours a day coding this instead of just chilling. I used AI to help me out, but I gained a ton of real professional experience building a safe backend and a smart AI math coach! Why is it special? Private tutors are way too expensive, so I made this 100% free for everyone. The AI instantly creates custom problems based on your exact grade, making it feel like playing a video game instead of doing boring homework. Whatās Next? šø Funny memes for every single math problem. š Leaderboards and trophies to compete with friends. š Keeping it 100% open-source and free for kids everywhere. I would love to know what you guys think about this project! Check out my screenshots below!
I finally got a working version up and running! I worked more than 50 hours on it Itās not perfect yet . I still need to polish a few things and add a feature so everyone can use it with their own API key (right now itās running on mine). Iām sharing the link here, itās completely free and could really help you study for a math test or exam. All Iām asking is 1 minute of your time to try it out. It generates personalized math problems across different levels and difficulty settings, so thereās something for everyone. Give it a shot, I think youāll enjoy it! š https://serveurmaths-190k.onrender.com
Iām working a lot in this project, I really worker for +30 hours but I forget configurating Hackclub. ā : .ļ½”. o(ā§ā½ā¦)o .ļ½”.: ā They say that I only worked for +10 hours in this project
Hi
Ships:
What it does AIMRoyale is a free, gamified space-math arena that aligns directly with actual school curricula and science chapters (such as Universal Gravitation or Quadratic Functions). Powered by Alibaba Cloudās Qwen-Max model, it dynamically generates 100% custom problems tailored to the userās grade, class, and skill level. Instead of generic quizzes, students navigate through high-stakes space scenarios. The platform features an intelligent, privacy-first memory agent that tracks specific academic weaknesses cross-session. It turns studying into an interactive video game where players actively learn from their mistakes. Accomplishments that weāre proud of As a 16-year-old solo developer, I am incredibly proud of executing a full-stack, production-ready architecture in just a week of summer vacation. I managed to build an advanced, context-aware AI coach that adapts to user mistakes without needing a massive, expensive server-side database. Successfully packaging the engine as a functional PWA that runs perfectly on mobile is a massive milestone for my coding journey. Whatās next for AIMRoyale This is just the baseline infrastructure for a global educational platform: Rich Media: Automatically generating and attaching tailored meme images to every single problem created by the engine. Gamification: Implementing a ful
Iām proud about the modifications that I did. I wanted to say that I worker more than 10 hours in this project, but they say that I only worked for 2 hours. I worked in separated projects for securiy....
|
1792835276.967839
|
1792921676.967839
|
|
27436
|
PortfoliOS by @0xf1 | Stardance
|
0xf1
|
2
|
12.0
|
22
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-08T14:55:06Z", "hours": 7.0, "multiplier": 3.05, "payout": 22, "blessing": "neutral", "text": "PortfoliOS hello! this is my personal webos, PortfoliOS ! it was made in svelte, it has many features (including cat photos!), some games and a working terminal! actually, the main focus with this project was ui design , and i think i did pretty well actually! (if you have ideas, write it as feedback! anything is appreciated). theres nothing great i need to write in here, so just open the website and test everything out! the features in the current version are: basic desktop environment (duh) portfolio and contact cat photos (their names are go and rust) my projects minesweeper conwayās game of life settings with 3 possible backgrounds terminal (press the power button in the taskbar to go to it) with various commands wait i just realized that the ship text probably doesnt support markdown so uhhh", "repo": "https://github.com/0xF1dev/portfolios", "demo": "https://portfolios.0xf1.dev"}, {"ship_num": 2, "ts": "2026-06-28T15:12:33Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built PortfoliOS , a WebOS with all the info about me and my experience as a dev! It has all the basics: a clock, a desktop, a taskbar, but my favourite feature by far is the Terminal! A custom environment that shows up when the system gets turned off. It isnāt really useful as of now, but Iāll definitely add more commands in the future!", "repo": "https://github.com/0xF1dev/portfolios", "demo": "https://portfolios.0xf1.dev"}]...
|
[{"post_id": 24728, "ts": "202 [{"post_id": 24728, "ts": "2026-07-08T14:32:10Z", "hours": 7.3481, "text": "ahhh⦠its been a while, eh? so, while portfolios was being approved for the webos 1 mission, i began to work on some stuff: first, 2 games: minesweeper and conwayās game of life ! these two took 6 of the 7 (no dont do it bro) hours im logging with this devlog. the hardest of these to make was game of life (god i hate typescript), and my favourite is minesweeper because i managed to make a pretty good ui. i added a settings window with a background setting too, where the other available backgrounds are the photos of my cats :3 and, for the terminal, i added a fetch command! it displays a cat ascii art and some info about the userās os. oh, i almost forgot, i bought a domain ! now this website (and my next ones) are gonna be in the 0xf1.dev domain. i know this is a pretty short devlog before the ship, but i really dont have much to say, i spent most of my time working on my other project, aglang"}, {"post_id": 17644, "ts": "2026-06-28T15:07:13Z", "hours": 1.5489, "text": "Ok! The project is ready: overall from the last update i fixed the design, made the maximize button work (finally) and made a terminal feature when the system shuts off! idk why but itās really satisfying just seeing it all fit together."}, {"post_id": 17586, "ts": "2026-06-28T13:21:25Z", "hours": 0.6494, "text": "I improved the design a little bit, but i think im going crazy trying to make the windows scale properly: this is why i both love and hate frontend development."}, {"post_id": 17506, "ts": "2026-06-28T09:57:58Z", "hours": 2.9211, "text": "The basics are done! Iāll add a couple features later just to make it differentā¦"}]...
|
Title: PortfoliOS by @0xf1 | Stardance
Devlogs:
T Title: PortfoliOS by @0xf1 | Stardance
Devlogs:
The basics are done! Iāll add a couple features later just to make it differentā¦
I improved the design a little bit, but i think im going crazy trying to make the windows scale properly: this is why i both love and hate frontend development.
Ok! The project is ready: overall from the last update i fixed the design, made the maximize button work (finally) and made a terminal feature when the system shuts off! idk why but itās really satisfying just seeing it all fit together.
ahhh⦠its been a while, eh? so, while portfolios was being approved for the webos 1 mission, i began to work on some stuff: first, 2 games: minesweeper and conwayās game of life ! these two took 6 of the 7 (no dont do it bro) hours im logging with this devlog. the hardest of these to make was game of life (god i hate typescript), and my favourite is minesweeper because i managed to make a pretty good ui. i added a settings window with a background setting too, where the other available backgrounds are the photos of my cats :3 and, for the terminal, i added a fetch command! it displays a cat ascii art and some info about the userās os. oh, i almost forgot, i bought a domain ! now this website (and my next ones) are gonna be in the 0xf1.dev domain. i know this is a pretty short devlog before the ship, but i really dont have much to say, i spent most of my time working on my other project, aglang
Ships:
I built PortfoliOS , a WebOS with all the info about me and my experience as a dev! It has all the basics: a clock, a desktop, a taskbar, but my favourite feature by far is the Terminal! A custom environment that shows up when the system gets turned off. It isnāt really useful as of now, but Iāll definitely add more commands in the future!
PortfoliOS hello! this is my personal webos, PortfoliOS ! it was made in svelte, it has many features (including cat photos!), some games and a working terminal! actually, the main focus with this project was ui design , and i think i did pretty well actually! (if you have ideas, write it as feedback! anything is appreciated). theres nothing great i need to write in here, so just open the website and test everything out! the features in the current version are: basic desktop environment (duh) portfolio and contact cat photos (their names are go and rust) my projects minesweeper conwayās game of life settings with 3 possible backgrounds terminal (press the power button in the taskbar to go to it) with various commands wait i just realized that the ship text probably doesnt support markdown so uhhh...
|
1792824578.9274552
|
1792910978.9274552
|
|
27460
|
ZenithOS by @joshith | Stardance
|
joshith
|
2
|
4.78
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-01T15:58:05Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Zenith Shell - Advanced Orbital OS Zenith Shell is a web-based operating system environment inspired by NASA mission control interfaces and modern desktop UX. It features a modular architecture, a custom virtual file system, and a suite of integrated utility and entertainment modules. š Key Features ⢠Modular Architecture: Built with a decoupled JavaScript structure ( specialized modules) for maintainability and performance. ⢠Virtual File System (VFS): A persistent, JSON-based file system stored in localStorage , supporting folders, files, and basic CRUD operations. ⢠Terminal Interface: A functional shell with support for VFS navigation, system diagnostics, and custom branding commands. ⢠Zenith Arcade: A collection of integrated games including Minefield (Minesweeper), Signal Match (Memory), and Comet Snake, all with local high-score tracking. ⢠Mission Control: Real-time system telemetry simulation, tracking uptime and active module resource usage. ⢠Customizable UI: Cyber-Violet theme with adjustable brightness, glass blur effects, and dynamic wallpapers. ļø Technical Stack ⢠Frontend: HTML , CSS (Custom Properties, Flexbox, Grid), Vanilla JavaScript (ES +). ⢠Persistence: Web Storage API (localStorage). ⢠Design: NASA-inspired āMission Controlā aesthetic with a focus on dark mode and high- contrast accessibility.", "repo": "https://github.com/joshith498-crypto/ZenithOS/", "demo": "https://zenithos1.netlify.app/"}, {"ship_num": 2, "ts": "2026-06-29T14:48:13Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Here is a perfectly formatted, genuinely human answer you can paste right into those portal questions. It doesnāt sound like a generic AI wrote itāit sounds like a real developer who just fought a long battle with code and won. š°ļø What did you make? I built NASA Quantum OS, a custom space-themed web desktop environment. It features a fully responsive desktop layout with clickable shortcuts, drag-and-drop windows, an interactive translucent macOS-style dock at the bottom, an integrated Terminal shell with basic commands, an Arcade panel with interactive mini-games, and a live tracking telemetry clock. š§± What was challenging? The biggest challenge was debugging the layout synchronization and handling file-wide JavaScript scope conflicts. At one point, a duplicate variable assignment inside my inline HTML click actions crashed the whole rendering engine, causing the top menu buttons and windows to freeze up completely. Tracking down silent syntax errorsālike an unclosed @keyframes bracket in my CSSārequired a lot of meticulous, line-by-line file auditing and a few complete workspace wipes to clear out āghost code.ā šŖ What are you proud of? Iām incredibly proud of the custom Sandbox Registration & Lock Screen Engine I built using localStorage. Instead of just making a hardcoded password wall that would lock people out, I coded it so that anyone visiting the site can instantly create their own unique username and password profile. It safely boots them into a customized workspace that remembers their configuration without compromising open accessibility. š® What should people know so they can test your project? When you first launch the page, youāll see a secure access terminal. Donāt panicāthere is no locked password! Just type in whatever username and password you want to create your own sandbox profile and hit āInitialize Registration.ā Once you are in, click around! You can drag any window by its header, change the cosmic wallpaper options in Settings, type help into the Terminal console, or click the asteroid icon in the Arcade panel to harvest energy crystals.", "repo": "https://github.com/joshith498-crypto/ZenithOS/", "demo": "https://zenithos1.netlify.app/"}]...
|
[{"post_id": 22196, "ts": "202 [{"post_id": 22196, "ts": "2026-07-04T15:28:48Z", "hours": 0.6986, "text": "Reworked on the css and added a new wallpaper system rather than the old static wallpapers also remove minefield game and I am trying to add a helper bot named zenith bot still in progress tho also the screenshot isfrom my mobile I was away from my laptop when I wrote this devlog I also changed the logos of the apps to match the wallpapers vibes also guys check the wallpaper switch button in the settings to change to another wallpapers currently hav 2 wallpapers will add more"}, {"post_id": 21537, "ts": "2026-07-03T15:42:13Z", "hours": 1.0808, "text": "focused on making changes to the project today also fixed the bug in the comet snake game and removed the missons app as its not working , tested all the apps and i feel like this is the last devlog beore i ship"}, {"post_id": 20061, "ts": "2026-07-01T15:55:52Z", "hours": 0.7589, "text": "Devlog: Zenith Shell - Getting the Orbital OS off the groundEntry 1: The āWhyā I finally started working on Zenith Shell, my web-based OS. Iāve always been obsessed with those old NASA mission control screens, so I decided to make my own version. The goal is to make it look like a real desktop environment, but with a space-tech vibe. Entry 2: The Architecture Struggle I spent way too long trying to figure out how to structure this so it wouldnāt become a mess. I decided to break it down into modules: core.js for the main stuff, vfs.js for the file system, and windowManager.js for the windows. It took a few tries, but having it decoupled like this makes it a lot easier to fix things when I break them. Entry 3: Building the Virtual File System (VFS)This was the hardest part so far. I wanted files to actually persist, so Iām using localStorage. Writing the CRUD operations (creating, reading, updating, deleting) was a huge pain, but now I can actually save folders and files and they stay there when I refresh.Entry 4: The Aesthetic (Mission Control) Iām really digging the āCyber-Violetā theme. I spent all night playing with CSS grid and flexbox to get the glass blur effects right. It finally looks like something youād see in a high-tech orbital command center. Entry 5: Current Status & Next StepsThe terminal is working well enough to navigate the VFS, and the arcade games (Minefield, Comet Snake) are running. Next, I need to finish up the telemetry dashboard to track the system uptime.I still have a lot of debugging to doāitās definitely not perfect yetābut itās coming along. Resetting the OS via the settings panel clears the data, which Iām glad I implemented so I can wipe it clean when I need to test a fresh start."}, {"post_id": 19213, "ts": "2026-06-30T14:08:42Z", "hours": 0.3611, "text": "š QuantumOS v2 Devlog When I first built this project, I mainly focused on making it look like an operating system. It had a Finder, Terminal, Settings, and a few games, but after getting feedback from the reviewer I realized it felt more like a UI demo than an actual OS. Instead of starting over, I decided to improve what I already had. The biggest change was rebuilding the Finder. Originally it just displayed a few hardcoded files, but now it actually behaves like a mini file manager. You can create files and folders, rename them, delete them, and everything is saved so it doesnāt disappear when you refresh the page. I also spent a lot of time improving the Terminal. At first it only had a handful of fake commands. Now it can actually interact with the virtual filesystem, so commands like creating folders or listing files have a real effect instead of just printing text. Another thing I wanted to improve was the overall experience. I added more applications, expanded the arcade section with extra games, improved the notification system, and made the windows feel smoother to use. I also kept refining the macOS-inspired interface because I really liked how it looked, but I tried to give it more of a NASA Mission Control personality instead of relying on a generic futuristic design. One challenge I ran into was keeping everything connected. The Finder, Terminal, and apps all needed to stay in sync, and getting changes to persist after refreshing the browser took more work than I expected. It ended up teaching me a lot about managing application state and organizing JavaScript in a larger project. This project also made me realize that building an operating system isnāt just about making things look nice. The fun part was making different pieces communicate with each other and making the desktop feel like a real environment instead of a collection of windows. Thereās still a lot Iād like to add in the future, like more built-in apps, better multitasking, and deeper NASA-inspired features, but Iām really happy with how much the project has grown from the first version."}, {"post_id": 18370, "ts": "2026-06-29T14:32:36Z", "hours": 1.9422, "text": "Developer Log: NASA Quantum OS - Entry #01 Date: 29/06/2026 Current Status: Core System Operational (Beta) š What I Built / Accomplished Rebuilt and synchronized the entire index.html structure with a responsive, translucent macOS-style dock. Cleaned up the entire style.css stylesheet, patching syntax layouts and layout errors. Implemented a fully functional simulated Lock Screen into script.js that enables user account creation and security clearance checks using localStorage . Linked the global top menu bar buttons to trigger app windows dynamically. š§± The Blockers (What Went Wrong) CSS Parsing Glitch: Caught a frustrating css-rcurlyexpected ( } expected ) error because an opening @keyframes sweep animation block was improperly closed, shifting the syntax rules for all elements below it. Ghost Code Redundancy: Encountered an error on line 737 of a file that should have only been 500 lines long, realizing old code snippets were accidentally trailing at the bottom of the workspace. JavaScript Scope Panic: Hit a Cannot redeclare block-scoped variable 'p' exception inside the inline HTML arcade controls because the same const variable was initialized twice in adjacent click functions. š” How I Fixed It Wiped the workspace files completely clean using Ctrl + A before pasting fresh builds to eliminate ghost snippets. Removed duplicate variable assignments inside the HTML onclick handlers, moving to direct, isolated element manipulations to let the script engine load without crashing. šÆ Next Steps Expand the Arcade Module by coding the real-time gameplay loop for the Asteroid Dodge game. Add a āShut Downā and āLog Outā sequence to the top-left menu button to route users back to the lock screen safely."}]...
|
Title: ZenithOS by @joshith | Stardance
Devlogs:
Title: ZenithOS by @joshith | Stardance
Devlogs:
Developer Log: NASA Quantum OS - Entry #01 Date: 29/06/2026 Current Status: Core System Operational (Beta) š What I Built / Accomplished Rebuilt and synchronized the entire index.html structure with a responsive, translucent macOS-style dock. Cleaned up the entire style.css stylesheet, patching syntax layouts and layout errors. Implemented a fully functional simulated Lock Screen into script.js that enables user account creation and security clearance checks using localStorage . Linked the global top menu bar buttons to trigger app windows dynamically. š§± The Blockers (What Went Wrong) CSS Parsing Glitch: Caught a frustrating css-rcurlyexpected ( } expected ) error because an opening @keyframes sweep animation block was improperly closed, shifting the syntax rules for all elements below it. Ghost Code Redundancy: Encountered an error on line 737 of a file that should have only been 500 lines long, realizing old code snippets were accidentally trailing at the bottom of the workspace. JavaScript Scope Panic: Hit a Cannot redeclare block-scoped variable 'p' exception inside the inline HTML arcade controls because the same const variable was initialized twice in adjacent click functions. š” How I Fixed It Wiped the workspace files completely clean using Ctrl + A before pasting fresh builds to eliminate ghost snippets. Removed duplicate variable assignments inside the HTML onclick handlers, moving to direct, isolated element manipulations to let the script engine load without crashing. šÆ Next Steps Expand the Arcade Module by coding the real-time gameplay loop for the Asteroid Dodge game. Add a āShut Downā and āLog Outā sequence to the top-left menu button to route users back to the lock screen safely.
š QuantumOS v2 Devlog When I first built this project, I mainly focused on making it look like an operating system. It had a Finder, Terminal, Settings, and a few games, but after getting feedback from the reviewer I realized it felt more like a UI demo than an actual OS. Instead of starting over, I decided to improve what I already had. The biggest change was rebuilding the Finder. Originally it just displayed a few hardcoded files, but now it actually behaves like a mini file manager. You can create files and folders, rename them, delete them, and everything is saved so it doesnāt disappear when you refresh the page. I also spent a lot of time improving the Terminal. At first it only had a handful of fake commands. Now it can actually interact with the virtual filesystem, so commands like creating folders or listing files have a real effect instead of just printing text. Another thing I wanted to improve was the overall experience. I added more applications, expanded the arcade section with extra games, improved the notification system, and made the windows feel smoother to use. I also kept refining the macOS-inspired interface because I really liked how it looked, but I tried to give it more of a NASA Mission Control personality instead of relying on a generic futuristic design. One challenge I ran into was keeping everything connected. The Finder, Terminal, and apps all needed to stay in sync, and getting changes to persist after refreshing the browser took more work than I expected. It ended up teaching me a lot about managing application state and organizing JavaScript in a larger project. This project also made me realize that building an operating system isnāt just about making things look nice. The fun part was making different pieces communicate with each other and making the desktop feel like a real environment instead of a collection of windows. Thereās still a lot Iād like to add in the future, like more built-in apps, better multitasking, and deeper NASA-inspired features, but Iām really happy with how much the project has grown from the first version.
Devlog: Zenith Shell - Getting the Orbital OS off the groundEntry 1: The āWhyā I finally started working on Zenith Shell, my web-based OS. Iāve always been obsessed with those old NASA mission control screens, so I decided to make my own version. The goal is to make it look like a real desktop environment, but with a space-tech vibe. Entry 2: The Architecture Struggle I spent way too long trying to figure out how to structure this so it wouldnāt become a mess. I decided to break it down into modules: core.js for the main stuff, vfs.js for the file system, and windowManager.js for the windows. It took a few tries, but having it decoupled like this makes it a lot easier to fix things when I break them. Entry 3: Building the Virtual File System (VFS)This was the hardest part so far. I wanted files to actually persist, so Iām using localStorage. Writing the CRUD operations (creating, reading, updating, deleting) was a huge pain, but now I can actually save folders and files and they stay there when I refresh.Entry 4: The Aesthetic (Mission Control) Iām really digging the āCyber-Violetā theme. I spent all night playing with CSS grid and flexbox to get the glass blur effects right. It finally looks like something youād see in a high-tech orbital command center. Entry 5: Current Status & Next StepsThe terminal is working well enough to navigate the VFS, and the arcade games (Minefield, Comet Snake) are running. Next, I need to finish up the telemetry dashboard to track the system uptime.I still have a lot of debugging to doāitās definitely not perfect yetābut itās coming along. Resetting the OS via the settings panel clears the data, which Iām glad I implemented so I can wipe it clean when I need to test a fresh start.
focused on making changes to the project today also fixed the bug in the comet snake game and removed the missons app as its not working , tested all the apps and i feel like this is the last devlog beore i ship
Reworked on the css and added a new wallpaper system rather than the old static wallpapers also remove minefield game and I am trying to add a helper bot named zenith bot still in progress tho also the screenshot isfrom my mobile I was away from my laptop when I wrote this devlog I also changed the logos of the apps to match the wallpapers vibes also guys check the wallpaper switch button in the settings to change to another wallpapers currently hav 2 wallpapers will add more
Ships:
Here is a perfectly formatted, genuinely human answer you can paste right into those portal questions. It doesnāt sound like a generic AI wrote itāit sounds like a real developer who just fought a long battle with code and won. š°ļø What did you make? I built NASA Quantum OS, a custom space-themed web desktop environment. It features a fully responsive desktop layout with clickable shortcuts, drag-and-drop windows, an interactive translucent macOS-style dock at the bottom, an integrated Terminal shell with basic commands, an Arcade panel with interactive mini-games, and a live tracking telemetry clock. š§± What was challenging? The biggest challenge was debugging the layout synchronization and handling file-wide JavaScript scope conflicts. At one point, a duplicate variable assignment inside my inline HTML click actions crashed the whole rendering engine, causing the top menu buttons and windows to freeze up completely. Tracking down silent syntax errorsālike an unclosed @keyframes bracket in my CSSārequired a lot of meticulous, line-by-line file auditing and a few complete workspace wipes to clear out āghost code.ā šŖ What are you proud of? Iām incredibly proud of the custom Sandbox Registration & Lock Screen Engine I built using localStorage. Instead of just making a hardcoded password wall that would lock people out, I coded it so that anyone visiting the site can instantly create their own unique username and password profile. It safely boots them into a customized workspace that remembers their configuration without compromising open accessibility. š® What should people know so they can test your project? When you first launch the page, youāll see a secure access terminal. Donāt panicāthere is no locked password! Just type in whatever username and password you want to create your own sandbox profile and hit āInitialize Registration.ā Once you are in, click around! You can drag any window by its header, change the cosmic wallpaper options in Settings, type help into the Terminal console, or click the asteroid icon in the Arcade panel to harvest energy crystals.
Zenith Shell - Advanced Orbital OS Zenith Shell is a web-based operating system environment inspired by NASA mission control interfaces and modern desktop UX. It features a modular architecture, a custom virtual file system, and a suite of integrated utility and entertainment modules. š Key Features ⢠Modular Architecture: Built with a decoupled JavaScript structure ( specialized modules) for maintainability and performance. ⢠Virtual File System (VFS): A persistent, JSON-based file system stored in localStorage , supporting folders, files, and basic CRUD operations. ⢠Terminal Interface: A functional shell with support for VFS navigation, system diagnostics, and custom branding commands. ⢠Zenith Arcade: A collection of integrated games including Minefield (Minesweeper), Signal Match (Memory), and Comet Snake, all with local high-score tracking. ⢠Mission Control: Real-time system telemetry simulation, tracking uptime and active module resource usage. ⢠Customizable UI: Cyber-Violet theme with adjustable brightness, glass blur effects, and dynamic wallpapers. ļø Technical Stack ⢠Frontend: HTML , CSS (Custom Properties, Flexbox, Grid), Vanilla JavaScript (ES +). ⢠Persistence: Web Storage API (localStorage). ⢠Design: NASA-inspired āMission Controlā aesthetic with a focus on dark mode and high- contrast accessibility....
|
1792849806.7574306
|
1792936206.7574306
|
|
27523
|
MyPersonalSite by @kow4566 | Stardance
|
kow4566
|
2
|
4.0
|
6
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-05T06:52:33Z", "hours": 2.0, "multiplier": 2.34, "payout": 6, "blessing": "neutral", "text": "This is my personal site. I have used quite fun features here to showcase what i could do till now. I have used w3schools website and the guide to make this. There were lots of problems especially when loading the js script to the browser and now everything is working well. My contact page had layout bugs but now fixed. I have used a beack as a background for the contact page and the top bar. I have used ice cream pic generator to get a random pic of ice creams, and the interactive background in the home page works well too (Used AI to make an explosion within the dots in home page only).", "repo": "https://github.com/koushikrajd2011-rgb/MyPersonalSite", "demo": "https://koushikrajd2011-rgb.github.io/MyPersonalSite/"}, {"ship_num": 2, "ts": "2026-07-01T10:41:35Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I had quite a lot of problem especially with layout and all the stuff. I used w3school website a lot on this one and im proud i learnt a lot from this project and im able to make stuff like this. I have concentrated most of css and js codes into html itself (the css and js files are still there) fyi. I added some fun features aswll and added my github page and u can try out other projects from there aswll.", "repo": "https://github.com/koushikrajd2011-rgb/MyPersonalSite", "demo": "https://koushikrajd2011-rgb.github.io/MyPersonalSite/"}]...
|
[{"post_id": 20515, "ts": "202 [{"post_id": 20515, "ts": "2026-07-02T04:02:08Z", "hours": 2.4958, "text": "I have worked really long for this one. I had to recode the CSS (took loads of time) and i will be adding a 3D model notepad later on this week. I have also changed some background especially for the navigation bar and the contact page. The pic below shows the nav bar. I have moved the home, about and contacts towards to right end next to the time. I spent 30 min fixing bugs on layout and javascript working issues."}, {"post_id": 19873, "ts": "2026-07-01T09:04:59Z", "hours": 0.7525, "text": "I have added some new things on this update and it is quite nice. I had to use AI to make two new things - the pixel art and the notepad 3d model (cuz i dont wanna download a 3d model for now). I added new things to the contact page where u can refer to my github page for some projects i have made for this challenge before. It took me loads of time to learn and figure out this 3d model using no websites and stuff. So i used some pictures from the browser for free ice cream pictures here (jst for fun) to show what i can code for now. I had problems resolving the home page layout and putting out some features across the screen. I will soon be adding extra stuff and the web will be released pretty much by today or tommorow if possible"}, {"post_id": 19728, "ts": "2026-07-01T03:44:52Z", "hours": 1.26, "text": "I have started MyPersonalSite by me. It is all about me and trust me its not boring. I have added some really satisfying features. The pic below is jst a part of the website (ofc i wont release the whole thing immediatly) . So i wanna work more on adding extra features and i had loads of problems with html until i figured out the bugs with ai and fixed it. I will be adding more to the dock above and so 3d objects if possible for entertainement!"}]...
|
Title: MyPersonalSite by @kow4566 | Stardance
Dev Title: MyPersonalSite by @kow4566 | Stardance
Devlogs:
I have started MyPersonalSite by me. It is all about me and trust me its not boring. I have added some really satisfying features. The pic below is jst a part of the website (ofc i wont release the whole thing immediatly) . So i wanna work more on adding extra features and i had loads of problems with html until i figured out the bugs with ai and fixed it. I will be adding more to the dock above and so 3d objects if possible for entertainement!
I have added some new things on this update and it is quite nice. I had to use AI to make two new things - the pixel art and the notepad 3d model (cuz i dont wanna download a 3d model for now). I added new things to the contact page where u can refer to my github page for some projects i have made for this challenge before. It took me loads of time to learn and figure out this 3d model using no websites and stuff. So i used some pictures from the browser for free ice cream pictures here (jst for fun) to show what i can code for now. I had problems resolving the home page layout and putting out some features across the screen. I will soon be adding extra stuff and the web will be released pretty much by today or tommorow if possible
I have worked really long for this one. I had to recode the CSS (took loads of time) and i will be adding a 3D model notepad later on this week. I have also changed some background especially for the navigation bar and the contact page. The pic below shows the nav bar. I have moved the home, about and contacts towards to right end next to the time. I spent 30 min fixing bugs on layout and javascript working issues.
Ships:
I had quite a lot of problem especially with layout and all the stuff. I used w3school website a lot on this one and im proud i learnt a lot from this project and im able to make stuff like this. I have concentrated most of css and js codes into html itself (the css and js files are still there) fyi. I added some fun features aswll and added my github page and u can try out other projects from there aswll.
This is my personal site. I have used quite fun features here to showcase what i could do till now. I have used w3schools website and the guide to make this. There were lots of problems especially when loading the js script to the browser and now everything is working well. My contact page had layout bugs but now fixed. I have used a beack as a background for the contact page and the top bar. I have used ice cream pic generator to get a random pic of ice creams, and the interactive background in the home page works well too (Used AI to make an explosion within the dots in home page only)....
|
1792846345.7475307
|
1792932745.7475307
|
|
27525
|
Website by @Zeti_1223 | Stardance
|
Zeti_1223
|
2
|
7.0
|
12
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-05T11:42:53Z", "hours": 6.0, "multiplier": 4.12, "payout": 12, "blessing": "neutral", "text": "Redesigned my whole website. The new design idea came from excalidraw.", "repo": "https://github.com/zeti1223/website", "demo": "https://zeteny.cigoria.eu/"}, {"ship_num": 2, "ts": "2026-06-29T20:38:34Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my own website! The only challenging thing was to write about myself.", "repo": "https://github.com/zeti1223/website", "demo": "https://zeteny.cigoria.eu/"}]...
|
[{"post_id": 41267, "ts": "202 [{"post_id": 41267, "ts": "2026-08-05T11:41:48Z", "hours": 0.7211, "text": "Same design everywhere"}, {"post_id": 41244, "ts": "2026-08-05T10:25:02Z", "hours": 1.7358, "text": "Added features: edit Bio from admin dashboard edit links from admin dashboard mobile UI for every sub site"}, {"post_id": 40962, "ts": "2026-08-04T20:38:30Z", "hours": 0.6711, "text": "Working on the weather app styling"}, {"post_id": 40930, "ts": "2026-08-04T19:29:24Z", "hours": 0.7378, "text": "Done with the new design"}, {"post_id": 40873, "ts": "2026-08-04T17:51:18Z", "hours": 0.9381, "text": "Sneak peak of new design"}, {"post_id": 31703, "ts": "2026-07-20T09:59:37Z", "hours": 0.9014, "text": "Note to Reviewers: Just to clarify, I did not use AI to generate this project. I started working on it before the stardance project began, which is clearly visible in the GitHub commit history. I have also checked the corresponding box in the project description."}, {"post_id": 18600, "ts": "2026-06-29T19:52:00Z", "hours": 0.5061, "text": "Iām writing a new Readme"}]...
|
Title: Website by @Zeti_1223 | Stardance
Devlogs: Title: Website by @Zeti_1223 | Stardance
Devlogs:
Iām writing a new Readme
Note to Reviewers: Just to clarify, I did not use AI to generate this project. I started working on it before the stardance project began, which is clearly visible in the GitHub commit history. I have also checked the corresponding box in the project description.
Sneak peak of new design
Done with the new design
Working on the weather app styling
Added features: edit Bio from admin dashboard edit links from admin dashboard mobile UI for every sub site
Same design everywhere
Ships:
I made my own website! The only challenging thing was to write about myself.
Redesigned my whole website. The new design idea came from excalidraw....
|
1792831878.151077
|
1792918278.151077
|
|
27605
|
Password-Generator by @k_nilesh | Stardance
|
k_nilesh
|
2
|
21.0
|
36
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T01:02:37Z", "hours": 11.0, "multiplier": 1.54, "payout": 15, "blessing": "neutral", "text": "I made a Password Generator that creates strong, random passwords using letters, numbers, and special characters. The challenging part was handling different password lengths and character options while keeping the generation random. Iām proud that I built a useful project from scratch and improved my JS and problem-solving skills. To test it, simply run the program, choose the desired password length and options, and it will generate a random password.", "repo": "https://github.com/k-nilesh04/password-generator", "demo": "https://password-generator-sandy-zeta.vercel.app/"}, {"ship_num": 2, "ts": "2026-06-28T13:34:24Z", "hours": 10.0, "multiplier": 2.15, "payout": 21, "blessing": "neutral", "text": "I built a Password Generator using React, Vite, and Tailwind CSS that creates secure, customizable passwords with options for length, uppercase, lowercase, numbers, and special characters. The most challenging part was implementing the password generation logic while ensuring all selected character types worked correctly and building a responsive, user-friendly interface. Iām proud of completing a polished React project that strengthened my understanding of state management, event handling, and UI development. To test it, simply choose your preferred options, generate a password, and use the Copy button to copy it instantly.", "repo": "https://github.com/k-nilesh04/password-generator", "demo": "https://password-generator-sandy-zeta.vercel.app/"}]...
|
[{"post_id": 32722, "ts": "202 [{"post_id": 32722, "ts": "2026-07-22T01:44:14Z", "hours": 10.5656, "text": "see my password generator use it and tell me where to modifyā¦"}, {"post_id": 17582, "ts": "2026-06-28T13:07:54Z", "hours": 9.8967, "text": "Password Generator ā> My Latest React Project I built a Password Generator using React, Vite, and Tailwind CSS that helps users create strong, secure, and customizable passwords in just a click. Key Features : it can generate secure random passwords, customize password length, uppercase & lowercase options, numbers & special characters options and it has one-click copy to clipboard feature. Fast and responsive user experience project made with react with understanding of React Hooks, state management, event handling, and Tailwind CSS. Iād love to hear your feedback! Feel free to try it out and let me know what features youād like to see in the next version. visit: https://password-generator-sandy-zeta.vercel.app/"}]...
|
Title: Password-Generator by @k_nilesh | Stardance Title: Password-Generator by @k_nilesh | Stardance
Devlogs:
Password Generator ā> My Latest React Project I built a Password Generator using React, Vite, and Tailwind CSS that helps users create strong, secure, and customizable passwords in just a click. Key Features : it can generate secure random passwords, customize password length, uppercase & lowercase options, numbers & special characters options and it has one-click copy to clipboard feature. Fast and responsive user experience project made with react with understanding of React Hooks, state management, event handling, and Tailwind CSS. Iād love to hear your feedback! Feel free to try it out and let me know what features youād like to see in the next version. visit: https://password-generator-sandy-zeta.vercel.app/
see my password generator use it and tell me where to modifyā¦
Ships:
I built a Password Generator using React, Vite, and Tailwind CSS that creates secure, customizable passwords with options for length, uppercase, lowercase, numbers, and special characters. The most challenging part was implementing the password generation logic while ensuring all selected character types worked correctly and building a responsive, user-friendly interface. Iām proud of completing a polished React project that strengthened my understanding of state management, event handling, and UI development. To test it, simply choose your preferred options, generate a password, and use the Copy button to copy it instantly.
I made a Password Generator that creates strong, random passwords using letters, numbers, and special characters. The challenging part was handling different password lengths and character options while keeping the generation random. Iām proud that I built a useful project from scratch and improved my JS and problem-solving skills. To test it, simply run the program, choose the desired password length and options, and it will generate a random password....
|
1792824500.8038557
|
1792910900.8038557
|
|
27619
|
skyOS by @skyFonix | Stardance
|
skyFonix
|
2
|
17.0
|
89
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T19:02:21Z", "hours": 9.0, "multiplier": 8.17, "payout": 89, "blessing": "neutral", "text": "Ship #2 Features added: Music player with metadata reading (cover art, title, artist, release year) Image viewer with zoom and grab to navigate, also supports setting images as wallpapers simpleShare integration, uploads, deletion, quota management and file opening with the appropriate media app, anything that is currently unsupported gets downloaded. simpleShare demo login info: username: demo password: demopass", "repo": "https://github.com/FonixPython/skyOS", "demo": "https://webos.cigoria.eu/"}, {"ship_num": 2, "ts": "2026-08-06T21:56:00Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my very first webos! Features: About App, Calculator App, Notes App, Customizable wallpaper. The whole thing is written in React and hosted on my own hardware.", "repo": "https://github.com/FonixPython/skyOS", "demo": "https://webos.cigoria.eu/"}]...
|
[{"post_id": 50543, "ts": "202 [{"post_id": 50543, "ts": "2026-08-19T18:51:29Z", "hours": 1.4989, "text": "Added finishing touches to simpleShare integration, with a quota display, uploads, deletion and support for setting an uploaded image as the wallpaper!"}, {"post_id": 50317, "ts": "2026-08-19T14:12:00Z", "hours": 3.0203, "text": "Basics of simpleShare integration are complete, files can be opened inside skyOs directly from the files stored on simpleShare. I need to add uploads, deletion and wallpaper support to it."}, {"post_id": 49873, "ts": "2026-08-18T20:28:47Z", "hours": 2.2914, "text": "Added music player too, tried customizing the slider, but I couldnāt get it to react to css so I gave up ĀÆ ( ć)/ĀÆ"}, {"post_id": 49433, "ts": "2026-08-18T08:34:30Z", "hours": 2.1956, "text": "Added Image viewer"}, {"post_id": 42208, "ts": "2026-08-06T20:24:47Z", "hours": 2.2136, "text": "Made a calculator too!"}, {"post_id": 41909, "ts": "2026-08-06T12:51:01Z", "hours": 1.7642, "text": "I made a notes app that saves to localStorage! I also added a wallpaper url to localStorage, but havenāt yet made the settings app"}, {"post_id": 41863, "ts": "2026-08-06T10:41:32Z", "hours": 1.1986, "text": "Added about app, and function to render different kinds of apps and close them!"}, {"post_id": 41837, "ts": "2026-08-06T09:26:18Z", "hours": 0.6336, "text": "Added draggable windows, and a button to open them!"}, {"post_id": 41823, "ts": "2026-08-06T08:45:16Z", "hours": 1.7706, "text": "Added top bar"}]...
|
Title: skyOS by @skyFonix | Stardance
Devlogs:
Ad Title: skyOS by @skyFonix | Stardance
Devlogs:
Added top bar
Added draggable windows, and a button to open them!
Added about app, and function to render different kinds of apps and close them!
I made a notes app that saves to localStorage! I also added a wallpaper url to localStorage, but havenāt yet made the settings app
Made a calculator too!
Added Image viewer
Added music player too, tried customizing the slider, but I couldnāt get it to react to css so I gave up ĀÆ ( ć)/ĀÆ
Basics of simpleShare integration are complete, files can be opened inside skyOs directly from the files stored on simpleShare. I need to add uploads, deletion and wallpaper support to it.
Added finishing touches to simpleShare integration, with a quota display, uploads, deletion and support for setting an uploaded image as the wallpaper!
Ships:
I made my very first webos! Features: About App, Calculator App, Notes App, Customizable wallpaper. The whole thing is written in React and hosted on my own hardware.
Ship #2 Features added: Music player with metadata reading (cover art, title, artist, release year) Image viewer with zoom and grab to navigate, also supports setting images as wallpapers simpleShare integration, uploads, deletion, quota management and file opening with the appropriate media app, anything that is currently unsupported gets downloaded. simpleShare demo login info: username: demo password: demopass...
|
1792832167.5254226
|
1792918567.5254226
|
|
27785
|
Future OS by @Slear69_githud | Stardance
|
Slear69_githud
|
2
|
46.0
|
113
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T11:32:24Z", "hours": 45.0, "multiplier": 3.84, "payout": 113, "blessing": "neutral", "text": "FutureOS ok this is my web os project . inspired by cyberpunk this is my first time using html or js so there are alots of thinks that i did the wrong way. fornow : there is about ,browser , notes , file manger, music player ,settings and a calculator THE CODE : fill thinks that look ai but they not in the project most of the time i just do the styel of thinks like text in the div in html but at the and i saw that you can do this .music img { margin-top: 30px; margin-left: 60px; align-items: center; top : 50% ; left: 40%; width: 320px; height: 320px; object-fit: cover; } for the example this are the images for the music palyer now stuff that is with ai becous i didnt know how to do it const toolbars = document.getElementById(ābarā); const musice = document.getElementById(āmusicā); function updateToolbar() { if (!toolbars) return; toolbars.innerHTML = āā; const windows = [ { id: āwindollswellā, icon: āimage/about.pngā }, { id: āwindollsnoteā, icon: āimage/note.pngā }, { id: āwindollfilesā, icon: āimage/folder.pngā }, { id: āwindollbrowā, icon: āimage/brow.pngā } ]; // Loop through all windows for (let i = 0; i < windows.length; i++) { const el = document.getElementById(windows[i].id); if (window.getComputedStyle(el).display != \"none\") { toolbars.innerHTML += `<div class=\"folder-wrapper\"><img src=\"${windows[i].icon}\" id=\"welcomeopen\" alt=\"icon\"></div>`; } } } so this is not all with ai i changed fill thinks but mthe tolbar logic i got from ai ok other thinks to prove almost no ai used is the open and close function this is streat from the tutorial the same for the draging i want to give credits to alots of people in stack overflow What is in the setting: clock settings : 1. color 2.position 3.size 4.visibility wallpapers: two videos and two images themes: 1. you can change the color of the app 2. font color 3.bar color calendar settings : 1. 3 color changes to the dates background and buttons 2.position 3.visabelity Calendar : the code for the calendar is not mine it from a tutorial here is the link: https://youtu.be/OcncrLyddAs?si=N9Ys0o3P3Y71J769 also the toll bar is working but you can not use the icons that appear to open the app it just to show you that youāve minimized it if you minimize it will keep the position the state of the app the buttons: red button - full close blue button - minimize", "repo": "https://github.com/slear69/WEB_OS", "demo": "https://cyberpunkos.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-07T22:16:46Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "for now this is evry asset is from google i wont explain much just so everyone know there is a sandevistan i love yall and yha see you later ^_^", "repo": "https://github.com/slear69/WEB_OS", "demo": "https://cyberpunkos.vercel.app/"}]...
|
[{"post_id": 45676, "ts": "202 [{"post_id": 45676, "ts": "2026-08-12T10:05:14Z", "hours": 9.4072, "text": "New stuff now we have a calendar a working toolbar the icons dosent do much the blue close but just minimize it and keep the stuff like position opened screen and so on the red button closes it fully .also now there is settings for the calendar"}, {"post_id": 39952, "ts": "2026-08-03T09:04:16Z", "hours": 11.4172, "text": "added settings now 1. now you can change the settings of the clock - color , position , size , and visibility 2. you can change the wallpaper to 2 different videos and images 3. Theme - you can change the color of the icons to red , change the font and the color of the toolbar ik that a lot of time for some settings but i had to fix some thinks before the settings and also now you can close the music player and open it"}, {"post_id": 33527, "ts": "2026-07-23T15:36:37Z", "hours": 23.9814, "text": "the code is difrent now"}, {"post_id": 24375, "ts": "2026-07-07T21:55:41Z", "hours": 0.0333, "text": "code"}, {"post_id": 22400, "ts": "2026-07-04T21:22:50Z", "hours": 0.1333, "text": "changed the music player and fixed the clock now it visible"}, {"post_id": 21384, "ts": "2026-07-03T09:14:02Z", "hours": 0.7617, "text": "devlog 1 - the basics so for now i have the bare minimum my OS is more windolls based . There are only 3 apps with a music player in the corner . Recently like a month ago i watched cyberpunk edgerunners so i thought why donāt i make it based on it . In the music player i added the two most recognizable songs also the browser works but you need to put in full link"}]...
|
Title: Future OS by @Slear69_githud | Stardance
D Title: Future OS by @Slear69_githud | Stardance
Devlogs:
devlog 1 - the basics so for now i have the bare minimum my OS is more windolls based . There are only 3 apps with a music player in the corner . Recently like a month ago i watched cyberpunk edgerunners so i thought why donāt i make it based on it . In the music player i added the two most recognizable songs also the browser works but you need to put in full link
changed the music player and fixed the clock now it visible
code
the code is difrent now
added settings now 1. now you can change the settings of the clock - color , position , size , and visibility 2. you can change the wallpaper to 2 different videos and images 3. Theme - you can change the color of the icons to red , change the font and the color of the toolbar ik that a lot of time for some settings but i had to fix some thinks before the settings and also now you can close the music player and open it
New stuff now we have a calendar a working toolbar the icons dosent do much the blue close but just minimize it and keep the stuff like position opened screen and so on the red button closes it fully .also now there is settings for the calendar
Ships:
for now this is evry asset is from google i wont explain much just so everyone know there is a sandevistan i love yall and yha see you later ^_^
FutureOS ok this is my web os project . inspired by cyberpunk this is my first time using html or js so there are alots of thinks that i did the wrong way. fornow : there is about ,browser , notes , file manger, music player ,settings and a calculator THE CODE : fill thinks that look ai but they not in the project most of the time i just do the styel of thinks like text in the div in html but at the and i saw that you can do this .music img { margin-top: 30px; margin-left: 60px; align-items: center; top : 50% ; left: 40%; width: 320px; height: 320px; object-fit: cover; } for the example this are the images for the music palyer now stuff that is with ai becous i didnt know how to do it const toolbars = document.getElementById(ābarā); const musice = document.getElementById(āmusicā); function updateToolbar() { if (!toolbars) return; toolbars.innerHTML = āā; const windows = [ { id: āwindollswellā, icon: āimage/about.pngā }, { id: āwindollsnoteā, icon: āimage/note.pngā }, { id: āwindollfilesā, icon: āimage/folder.pngā }, { id: āwindollbrowā, icon: āimage/brow.pngā } ]; // Loop through all windows for (let i = 0; i < windows.length; i++) { const el = document.getElementById(windows[i].id); if (window.getComputedStyle(el).display != "none") { toolbars.innerHTML += `<div class="folder-wrapper"><img src="${windows[i].icon}" id="welcomeopen" alt="icon"></div>`; } } } so this is not all with ai i changed fill thinks but mthe tolbar logic i got from ai ok other thinks to prove almost no ai used is the open and close function this is streat from the tutorial the same for the draging i want to give credits to alots of people in stack overflow What is in the setting: clock settings : 1. color 2.position 3.size 4.visibility wallpapers: two videos and two images themes: 1. you can change the color of the app 2. font color 3.bar color calendar settings : 1. 3 color changes to the dates background and buttons 2.position 3.visabelity Calendar : the code for the calendar is not mine it from a tutorial here is the link: https://youtu.be/OcncrLyddAs?si=N9Ys0o3P3Y71J769 also the toll bar is working but you can not use the icons that appear to open the app it just to show you that youāve minimized it if you minimize it will keep the position the state of the app the buttons: red button - full close blue button - minimize...
|
1792849978.5527291
|
1792936378.5527291
|
|
27816
|
My very own WebOS by @moayed_jouini | Stardance
|
moayed_jouini
|
2
|
3.52
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-30T15:50:32Z", "hours": 0.0, "multiplier": 2.08, "payout": 1, "blessing": "neutral", "text": "i make this project for fun and education i has many problem and slove them its the first tunisian web os people should try my project because he is very unique WITH : a calculator / a mini click game/ a notepad / and a cursor changerā¦.", "repo": "https://github.com/moayedjouini6-prog/final-project-of-web-os", "demo": "https://moayedjouini6-prog.github.io/final-project-of-web-os/"}, {"ship_num": 2, "ts": "2026-06-28T23:30:06Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i make this project for fun and education i has many problem and slove them its the first tunisian web os people should try my project because he is very unique WITH : a calculator / a mini click game/ a notepad / and a cursor changerā¦.", "repo": "https://github.com/moayedjouini6-prog/final-project-of-web-os", "demo": "https://moayedjouini6-prog.github.io/final-project-of-web-os/"}]...
|
[{"post_id": 19631, "ts": "202 [{"post_id": 19631, "ts": "2026-07-01T00:30:17Z", "hours": 0.5203, "text": "i also add a watch time screen and a terminal!"}, {"post_id": 19297, "ts": "2026-06-30T15:49:22Z", "hours": 0.3186, "text": "the welcome page"}, {"post_id": 17969, "ts": "2026-06-28T22:38:45Z", "hours": 0.4494, "text": "the clicker game is available! with the notepad"}, {"post_id": 17919, "ts": "2026-06-28T21:10:35Z", "hours": 0.3875, "text": "i just added a calculator"}, {"post_id": 17830, "ts": "2026-06-28T19:29:13Z", "hours": 2.4078, "text": "my first steps in the project ( arabic WEB OS / game / notebook / cursor changer/ timeā¦. )"}]...
|
Title: My very own WebOS by @moayed_jouini | Stard Title: My very own WebOS by @moayed_jouini | Stardance
Devlogs:
my first steps in the project ( arabic WEB OS / game / notebook / cursor changer/ timeā¦. )
i just added a calculator
the clicker game is available! with the notepad
the welcome page
i also add a watch time screen and a terminal!
Ships:
i make this project for fun and education i has many problem and slove them its the first tunisian web os people should try my project because he is very unique WITH : a calculator / a mini click game/ a notepad / and a cursor changerā¦.
i make this project for fun and education i has many problem and slove them its the first tunisian web os people should try my project because he is very unique WITH : a calculator / a mini click game/ a notepad / and a cursor changerā¦....
|
1792835544.7671733
|
1792921944.7671733
|
|
27889
|
My first slack bot! by @Baule | Stardance
|
Baule
|
2
|
9.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-27T01:08:02Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is my second Ship for this project Changes : ⢠I reworked the github command now it can post the github account info if you only @someone if he has linked its github to his slack ā¢Added a new command to link your github with your Slack account to use the github command", "repo": "https://github.com/345235/Slackbot", "demo": "https://hackclub.slack.com/archives/C0BM1E8ATQT"}, {"ship_num": 2, "ts": "2026-07-28T23:55:50Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So i made a slackbot that respons 24/7 you can say /hackbot-github then the slackbot posts your user name into the chat its only visible to you. Then we have the slackbot-todo command were you can create a todo in the future i will add more big commands i have smaller ones like the ping and help command the help command is called simple-help In the picture are all commands", "repo": "https://github.com/345235/Slackbot", "demo": "https://hackclub.slack.com/archives/C0BM1E8ATQT"}]...
|
[{"post_id": 65388, "ts": "202 [{"post_id": 65388, "ts": "2026-09-10T14:27:00Z", "hours": 2.7858, "text": "i have made a new command the /hackbot-linkgithub command it links your github to your slack account. And i also updated the github command , now you only need to @someone to see his github but it only works with when the person you @ has linked his github to his slack account"}, {"post_id": 36537, "ts": "2026-07-28T18:36:47Z", "hours": 0.4667, "text": "I fixed the todo command"}, {"post_id": 36097, "ts": "2026-07-27T23:38:16Z", "hours": 0.4633, "text": "Devlog 5 I am really desperate since my code deletet it self through a bad github pull from me nothing works.The todo command if you doesnt write anything it gives you an massage that you didnt write anything but then it creates the todo anyway and the github command doesnt work anymore and the repo command works but then the app posts that it doesnt work every command worked befor but now it nothing works so if someone wants to help me please contac me and sorry that i complain so much but i am really angry that nothing works"}, {"post_id": 35800, "ts": "2026-07-27T13:52:36Z", "hours": 1.6619, "text": "Devloge 4 I am so close to finish the project I have made it run 24/7 and any other command is working except the github command it worked before but then i messd up and all my code was reseted to the simple hackbot ping command i worked the whole day to remake the commands but now it gives me on slacke everytime an error that the app doesnt respond but the ping command workes so if someone nows where the problem is the notify me"}, {"post_id": 31246, "ts": "2026-07-19T14:33:20Z", "hours": 0.8025, "text": "Devloge 3 I have now added a command that shows your github account"}, {"post_id": 29782, "ts": "2026-07-16T21:45:14Z", "hours": 1.3136, "text": "Devlog 2 I now will implement github add-ons so you could send direkt to some one your github account or track a projects repo"}, {"post_id": 28187, "ts": "2026-07-14T09:56:54Z", "hours": 0.8661, "text": "The basics of my bot are now ready now i will add more commands"}]...
|
Title: My first slack bot! by @Baule | Stardance
Title: My first slack bot! by @Baule | Stardance
Devlogs:
The basics of my bot are now ready now i will add more commands
Devlog 2 I now will implement github add-ons so you could send direkt to some one your github account or track a projects repo
Devloge 3 I have now added a command that shows your github account
Devloge 4 I am so close to finish the project I have made it run 24/7 and any other command is working except the github command it worked before but then i messd up and all my code was reseted to the simple hackbot ping command i worked the whole day to remake the commands but now it gives me on slacke everytime an error that the app doesnt respond but the ping command workes so if someone nows where the problem is the notify me
Devlog 5 I am really desperate since my code deletet it self through a bad github pull from me nothing works.The todo command if you doesnt write anything it gives you an massage that you didnt write anything but then it creates the todo anyway and the github command doesnt work anymore and the repo command works but then the app posts that it doesnt work every command worked befor but now it nothing works so if someone wants to help me please contac me and sorry that i complain so much but i am really angry that nothing works
I fixed the todo command
i have made a new command the /hackbot-linkgithub command it links your github to your slack account. And i also updated the github command , now you only need to @someone to see his github but it only works with when the person you @ has linked his github to his slack account
Ships:
So i made a slackbot that respons 24/7 you can say /hackbot-github then the slackbot posts your user name into the chat its only visible to you. Then we have the slackbot-todo command were you can create a todo in the future i will add more big commands i have smaller ones like the ping and help command the help command is called simple-help In the picture are all commands
This is my second Ship for this project Changes : ⢠I reworked the github command now it can post the github account info if you only @someone if he has linked its github to his slack ā¢Added a new command to link your github with your Slack account to use the github command...
|
1792835398.5968313
|
1792921798.5968313
|
|
27924
|
AngelOS by @angelmh2012 | Stardance
|
angelmh2012
|
2
|
14.0
|
33
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-30T04:39:11Z", "hours": 4.0, "multiplier": 7.92, "payout": 33, "blessing": "neutral", "text": "As new features I add a terminal, a simple fade animation and a philosphy window although the code part is very difficult i think it is easier that design, actually i spend more than 5 hours defining the logo design and doing sketches in a notebook that is somethig that i ussually donāt do, but at the end i was proud. SO thatās it i hope you like it :)", "repo": "https://github.com/angelmh2012-cloud/AngelOS", "demo": "https://angelmh2012-cloud.github.io/AngelOS/"}, {"ship_num": 2, "ts": "2026-07-28T20:20:20Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I did a very own Web Operative System, based on the guide of Stardance, also i added things of my own, like a dock and a music reproducer, Iām proud of my new knowledge of three programing languages and i think the part I really get stuck is in the design of the website, and the problematic functions in JavaScript specifically in the music reproducer", "repo": "https://github.com/angelmh2012-cloud/AngelOS", "demo": "https://angelmh2012-cloud.github.io/AngelOS/"}]...
|
[{"post_id": 57844, "ts": "202 [{"post_id": 57844, "ts": "2026-08-30T04:35:26Z", "hours": 4.1436, "text": "Whatās new? Well i add some things as a terminal a philosphy window and a simple fade animation when the OS starts Terminal: it works with only three commands as fastfetch, gustos and clear fastfetch do a ascii art of the logo and invented information like neofetch in linux distros or termux. Philosophy : It is a window that explain two parts of my philosophy about god and colective opinions Fade animation: I did that with animate.css with frames and a very simple JS script. Logo: I think it was the hardest part , because iām not creative at all so i did some sketches in my notebook and finally design it in Adobe Illustrator: The details are the reverse āVā that represent my initial āAā a head with an aura as it is an Angel and an eye that represent the biblically acurate angel and my curiosty about everything"}, {"post_id": 36597, "ts": "2026-07-28T20:15:34Z", "hours": 1.6406, "text": "Now i add details to each application, in the welcome screen i put a introduction text and a meme, in the projects application i added a slider that i found in a css styles internet page and images about me in the challenges or projects i mentioned in that app in the about me (sobre mi) application I putted an image of a video game so people can now i like Fortnite š±, in the music app, i add a sophisticated app that is a reprodcuer of music, at start it doesnāt reproduce any audio so I downloaded music from Youtube and committed that in my Github repo, i did the same with all the image and finally in my contact app i added my contact info (E-mail and Whatsapp if someone can talk"}, {"post_id": 36511, "ts": "2026-07-28T17:48:07Z", "hours": 4.01, "text": "I finally finished all the User Interface , also I wanna let you know I am upgrading this eventually when something interesting arrive to my life, i hope you like it, i add a dock for the icons with the half of opacity, also for my organization I add a styles.css because the styles section, nowadays have more than 200 lines also I added a little easter egg as icon for welcome scree, the language is spanish because I am mexican"}, {"post_id": 26326, "ts": "2026-07-11T01:53:46Z", "hours": 2.0569, "text": "I donāt code so much, but add a script to my project that control both a draggable window and the clock, the interface is the same, but i download the image so it has a lot more of resolution instead of using a Google link"}, {"post_id": 21227, "ts": "2026-07-03T01:55:34Z", "hours": 0.8122, "text": "I think the interface look better than the first one"}, {"post_id": 19726, "ts": "2026-07-01T03:40:47Z", "hours": 1.0375, "text": "I start my own WebOS⦠more details tomorrow :)"}]...
|
Title: AngelOS by @angelmh2012 | Stardance
Devlog Title: AngelOS by @angelmh2012 | Stardance
Devlogs:
I start my own WebOS⦠more details tomorrow :)
I think the interface look better than the first one
I donāt code so much, but add a script to my project that control both a draggable window and the clock, the interface is the same, but i download the image so it has a lot more of resolution instead of using a Google link
I finally finished all the User Interface , also I wanna let you know I am upgrading this eventually when something interesting arrive to my life, i hope you like it, i add a dock for the icons with the half of opacity, also for my organization I add a styles.css because the styles section, nowadays have more than 200 lines also I added a little easter egg as icon for welcome scree, the language is spanish because I am mexican
Now i add details to each application, in the welcome screen i put a introduction text and a meme, in the projects application i added a slider that i found in a css styles internet page and images about me in the challenges or projects i mentioned in that app in the about me (sobre mi) application I putted an image of a video game so people can now i like Fortnite š±, in the music app, i add a sophisticated app that is a reprodcuer of music, at start it doesnāt reproduce any audio so I downloaded music from Youtube and committed that in my Github repo, i did the same with all the image and finally in my contact app i added my contact info (E-mail and Whatsapp if someone can talk
Whatās new? Well i add some things as a terminal a philosphy window and a simple fade animation when the OS starts Terminal: it works with only three commands as fastfetch, gustos and clear fastfetch do a ascii art of the logo and invented information like neofetch in linux distros or termux. Philosophy : It is a window that explain two parts of my philosophy about god and colective opinions Fade animation: I did that with animate.css with frames and a very simple JS script. Logo: I think it was the hardest part , because iām not creative at all so i did some sketches in my notebook and finally design it in Adobe Illustrator: The details are the reverse āVā that represent my initial āAā a head with an aura as it is an Angel and an eye that represent the biblically acurate angel and my curiosty about everything
Ships:
I did a very own Web Operative System, based on the guide of Stardance, also i added things of my own, like a dock and a music reproducer, Iām proud of my new knowledge of three programing languages and i think the part I really get stuck is in the design of the website, and the problematic functions in JavaScript specifically in the music reproducer
As new features I add a terminal, a simple fade animation and a philosphy window although the code part is very difficult i think it is easier that design, actually i spend more than 5 hours defining the logo design and doing sketches in a notebook that is somethig that i ussually donāt do, but at the end i was proud. SO thatās it i hope you like it :)...
|
1792842988.3553643
|
1792929388.3553643
|
|
27935
|
CLI Todolist by @javim-dev | Stardance
|
javim-dev
|
2
|
25.0
|
228
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-06T16:57:20Z", "hours": 18.0, "multiplier": 9.26, "payout": 200, "blessing": "neutral", "text": "I made a simple todolist app that runs on the terminal. It has a beautiful TUI, persistent storage, due dates and much more! Iāve learnt a lot while making this project and how it came out. The devlogs are pretty long so Iāll keep this ship message short, just know that Iāve uploaded a demo video that you can find in the projectās readme :) Check the releases page for binaries: https://github.com/javiermm8/cli-todolist/releases", "repo": "https://github.com/javiermm8/cli-todolist", "demo": "https://github.com/javiermm8/cli-todolist/releases"}, {"ship_num": 2, "ts": "2026-06-29T00:19:33Z", "hours": 7.0, "multiplier": 3.31, "payout": 28, "blessing": "neutral", "text": "A simple cli todolist made using gotui. It has persistent storage on disk too :) Thereās a demo video on my latest devlog and on github, binaries are on github too.", "repo": "https://github.com/javiermm8/cli-todolist", "demo": "https://github.com/javiermm8/cli-todolist/releases"}]...
|
[{"post_id": 23578, "ts": "202 [{"post_id": 23578, "ts": "2026-07-06T16:47:02Z", "hours": 3.0692, "text": "Ready to ship Iāve spent these 3h mostly on implementing the reminders feature, sadly I couldnāt find a good enough solution and had to drop the feature. Iāve tested multiple go libraries but just couldnāt find one that reliably sent notifications across all platforms. Also, all of them sent desktop notifications instead of something more terminal-related which is what I had in mind. And then, after fighting with creating a background process for hours I decided that it simply wasnāt worth the effort, so I decided to not implement reminders and delete all reminder-related features already implemented in the UI. The due date feature remains intact. Itās sad but I think itās the best decision to keep the app consistent and manageable. Chasing processes in activity monitor to stop notification loops was fun though! But not all the time in these 3 hours was wasted. I was able to add a button to reset the due date of a TODO and did a general cleanup of the code to prepare it for release."}, {"post_id": 22466, "ts": "2026-07-04T22:46:37Z", "hours": 3.0142, "text": "More progress I can almost see the next ship, Iāve made a lot of progress. Main improvements: Upgraded the design and functionality of the view that allows the user to change due date and reminder. All due date functionality now work. Some bug fixes + minor improvements: TODOs now keep the correct metadata after any other todo is deleted. Previously, description, due date and reminder used to be swapped between TODOs. Made description input box wrap text instead of letting it go out of the box. Updated help messages. Things left to do: Reminders Add a button to reset the due date and reminder. After spending quite the time working with the time package I now think that our understanding of time is broken. Years should have a set amount of days, months a set amount of days and weeks. It would make my live much easier."}, {"post_id": 21783, "ts": "2026-07-03T21:49:57Z", "hours": 5.8275, "text": "Last devlog of the day I implemented a lot of stuff in this 5 hours. Here you have a list: Help messages on most of the views. A brand new TODO view that allows the user to see more information about a given TODO and change more stuff like itās due date(not implemented yet), reminders(not implemented yet) and description. A brand new view for changing a given TODOās due date and reminder toggle. Added a dot at the end of the welcome message. Added a more celebratory way of completing a TODO rather than just deleting it. Added warning when terminal size is too small. bug fixed and small upgrades like remembering the selected item when going back to a list. I already wrote way too much on the last two devlogs and itās already late so Iāve kept this one brief :)"}, {"post_id": 21445, "ts": "2026-07-03T12:22:41Z", "hours": 0.9067, "text": "Persistent storage works again After almost an hour of coding I was able get persistent storage working again and fix a couple of bugs. In the last devlog I explained that because of the projectās rewrite I disabled persistent storage. The project now asked for the userās name and supported multiple todolists so the previous logic didnāt work. I thankfully was able to reuse a lot of code from the last version(mostly the file handling stuff). Now the project stores data on disk this way: One .cli-TODO-config.json file which contains the userās name. One .cli-TODO-data.json file which contains the slice of todolists in json. Both files get stored in the same directory in which the program runs. Bugs fixed: When the user left a todolist view by clicking the title of that todo would still be displayed on the border. Not anymore. Other minor bugs that mostly appeared during the development of persistent storage. Like closing a file too early(then, if I tried to write to it again it would crash the program and leave the terminal in a broken state)."}, {"post_id": 21423, "ts": "2026-07-03T11:15:37Z", "hours": 5.255, "text": "I used to be the number one hater of the stardance review process(you get pretty tired of it after having to review the same slack bot 15 times but with different names) but after reading the feedback other people have left on my shipped projects Iāve changed my mind. Initially I decided to ship this thing quickly so I could get the sticker, but after seeing that a lot of people liked this project(and the Happiness meter too, check it out on my page) Iāve decided to keep improving it with the suggestions reviewers left. Iāll start with fixing the number one complaint, the devlogs. I still stand by my belief of āship first, talk laterā but I recognize that people enjoy reading this devlogs and they also force me to think twice about what I implemented and the decisions I made. Enough talk, what did I do in this 5h of coding time? Well, I basically rewrote the whole thing. Now thereās a new starting flow. Much more personalized, it even asks for your name! I tried to keep the todo selection logic mostly intact because it was a pain to write. Sadly I wanted to implement overflow handling and ended up having to rethink and rewrite a lot of code. Other features I implemented: The app now scales dynamically, filling the whole terminal, like a real TUI. Instead of the fixed values on the previous version. This was a pain to change by itself and took a lot of time to get the correct relative values but Iām quite happy of how it came out. Multiple todolists! A lot of reviewers asked for this and Iām happy to deliver. Things I want to add that reviewers asked for: Due time for the TODOs Maybe a reminder system? Iāll have to look into it, people have asked for this but Iām unsure about leaving a gorutine or a cron job running in the background of a reviewers computer. A more celebratory way of completing a TODO than just deleting it. I wonāt change the AI declaration because it still applies to the first ship(even though the second is basically a rewrite) but in this one I tried to use even less and go back to good ol stack overflow. One reviewer asked me to make a mobile app for this, I tried to port it to ios using gomobile but it was a mess and simply not worth the effort so I sent the original go code to an agent and asked it to port it to swift. For a vibedcoded prototype it works pretty well so Iāll explore that option too. I still have to work on the persistent storage, itās going to have to be more complex. Lastly I would like to thank again to all the reviewers that took the time to write thoughtful reviews, it means a lot to me. Some people even went out of the way to test the builds for windows and linux that I couldnāt test, thanks a lot :)"}, {"post_id": 18028, "ts": "2026-06-29T00:15:29Z", "hours": 7.0603, "text": "Iām tired but itās finished Seven hours logged this weekend. I made a simple cli todolist made using gotui. It has persistent storage on disk :) Here you have a demo video, binaries are in github too."}]...
|
Title: CLI Todolist by @javim-dev | Stardance
Dev Title: CLI Todolist by @javim-dev | Stardance
Devlogs:
Iām tired but itās finished Seven hours logged this weekend. I made a simple cli todolist made using gotui. It has persistent storage on disk :) Here you have a demo video, binaries are in github too.
I used to be the number one hater of the stardance review process(you get pretty tired of it after having to review the same slack bot 15 times but with different names) but after reading the feedback other people have left on my shipped projects Iāve changed my mind. Initially I decided to ship this thing quickly so I could get the sticker, but after seeing that a lot of people liked this project(and the Happiness meter too, check it out on my page) Iāve decided to keep improving it with the suggestions reviewers left. Iāll start with fixing the number one complaint, the devlogs. I still stand by my belief of āship first, talk laterā but I recognize that people enjoy reading this devlogs and they also force me to think twice about what I implemented and the decisions I made. Enough talk, what did I do in this 5h of coding time? Well, I basically rewrote the whole thing. Now thereās a new starting flow. Much more personalized, it even asks for your name! I tried to keep the todo selection logic mostly intact because it was a pain to write. Sadly I wanted to implement overflow handling and ended up having to rethink and rewrite a lot of code. Other features I implemented: The app now scales dynamically, filling the whole terminal, like a real TUI. Instead of the fixed values on the previous version. This was a pain to change by itself and took a lot of time to get the correct relative values but Iām quite happy of how it came out. Multiple todolists! A lot of reviewers asked for this and Iām happy to deliver. Things I want to add that reviewers asked for: Due time for the TODOs Maybe a reminder system? Iāll have to look into it, people have asked for this but Iām unsure about leaving a gorutine or a cron job running in the background of a reviewers computer. A more celebratory way of completing a TODO than just deleting it. I wonāt change the AI declaration because it still applies to the first ship(even though the second is basically a rewrite) but in this one I tried to use even less and go back to good ol stack overflow. One reviewer asked me to make a mobile app for this, I tried to port it to ios using gomobile but it was a mess and simply not worth the effort so I sent the original go code to an agent and asked it to port it to swift. For a vibedcoded prototype it works pretty well so Iāll explore that option too. I still have to work on the persistent storage, itās going to have to be more complex. Lastly I would like to thank again to all the reviewers that took the time to write thoughtful reviews, it means a lot to me. Some people even went out of the way to test the builds for windows and linux that I couldnāt test, thanks a lot :)
Persistent storage works again After almost an hour of coding I was able get persistent storage working again and fix a couple of bugs. In the last devlog I explained that because of the projectās rewrite I disabled persistent storage. The project now asked for the userās name and supported multiple todolists so the previous logic didnāt work. I thankfully was able to reuse a lot of code from the last version(mostly the file handling stuff). Now the project stores data on disk this way: One .cli-TODO-config.json file which contains the userās name. One .cli-TODO-data.json file which contains the slice of todolists in json. Both files get stored in the same directory in which the program runs. Bugs fixed: When the user left a todolist view by clicking the title of that todo would still be displayed on the border. Not anymore. Other minor bugs that mostly appeared during the development of persistent storage. Like closing a file too early(then, if I tried to write to it again it would crash the program and leave the terminal in a broken state).
Last devlog of the day I implemented a lot of stuff in this 5 hours. Here you have a list: Help messages on most of the views. A brand new TODO view that allows the user to see more information about a given TODO and change more stuff like itās due date(not implemented yet), reminders(not implemented yet) and description. A brand new view for changing a given TODOās due date and reminder toggle. Added a dot at the end of the welcome message. Added a more celebratory way of completing a TODO rather than just deleting it. Added warning when terminal size is too small. bug fixed and small upgrades like remembering the selected item when going back to a list. I already wrote way too much on the last two devlogs and itās already late so Iāve kept this one brief :)
More progress I can almost see the next ship, Iāve made a lot of progress. Main improvements: Upgraded the design and functionality of the view that allows the user to change due date and reminder. All due date functionality now work. Some bug fixes + minor improvements: TODOs now keep the correct metadata after any other todo is deleted. Previously, description, due date and reminder used to be swapped between TODOs. Made description input box wrap text instead of letting it go out of the box. Updated help messages. Things left to do: Reminders Add a button to reset the due date and reminder. After spending quite the time working with the time package I now think that our understanding of time is broken. Years should have a set amount of days, months a set amount of days and weeks. It would make my live much easier.
Ready to ship Iāve spent these 3h mostly on implementing the reminders feature, sadly I couldnāt find a good enough solution and had to drop the feature. Iāve tested multiple go libraries but just couldnāt find one that reliably sent notifications across all platforms. Also, all of them sent desktop notifications instead of something more terminal-related which is what I had in mind. And then, after fighting with creating a background process for hours I decided that it simply wasnāt worth the effort, so I decided to not implement reminders and delete all reminder-related features already implemented in the UI. The due date feature remains intact. Itās sad but I think itās the best decision to keep the app consistent and manageable. Chasing processes in activity monitor to stop notification loops was fun though! But not all the time in these 3 hours was wasted. I was able to add a button to reset the due date of a TODO and did a general cleanup of the code to prepare it for release.
Ships:
A simple cli todolist made using gotui. It has persistent storage on disk too :) Thereās a demo video on my latest devlog and on github, binaries are on github too.
I made a simple todolist app that runs on the terminal. It has a beautiful TUI, persistent storage, due dates and much more! Iāve learnt a lot while making this project and how it came out. The devlogs are pretty long so Iāll keep this ship message short, just know that Iāve uploaded a demo video that you can find in the projectās readme :) Check the releases page for binaries: https://github.com/javiermm8/cli-todolist/releases...
|
1792849836.8029876
|
1792936236.8029876
|
|
28065
|
EPIKOS by @smollcoin | Stardance
|
smollcoin
|
2
|
45.0
|
261
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-22T13:04:30Z", "hours": 23.0, "multiplier": 11.36, "payout": 261, "blessing": "neutral", "text": "EPIKOS final final final ITās an epik high themed web OS! Epik High is a korean hiphop trio. now with more apps: calendar, music player, guide, terminal, a countdown. and i added some small animations. youch 45 hours thatās all! i had fun with this project. yes it took a lot of time because i had to learn new framework but i think im pretty proficient in vue now⦠vue > react i still struggle ALOT encapsulating the data into composables and i definitely still need more practice⦠thanks for reading! tmi but my favourite songs from them are: āHome is far awayā and āPeople Scare Meā from the Weāve done something wonderful album. Hehe you can go check it out!", "repo": "https://github.com/smollcoin/EpikOS", "demo": "https://epik-os.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-09T15:26:46Z", "hours": 22.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "E-P-I-K I am so Epik High pilled now so I made a Epik High themed OS. Itās my first time using Vue I love it so much, more than React (teehee) One small thing that I am proud of is implementing dark and light theme mode because I can never seem to get it right but this time I did it sheesh. There are still a few features that are not done yet and I will work on it #soon Hope you enjoyed it as much as I did !!!!", "repo": "https://github.com/smollcoin/EpikOS", "demo": "https://epik-os.vercel.app/"}]...
|
[{"post_id": 32939, "ts": "202 [{"post_id": 32939, "ts": "2026-07-22T12:48:37Z", "hours": 3.5181, "text": "probably the final devlog i did some small animations!! i saw a youtube video about framer motion and i decided to try it⦠i like its declarative approach and usage of animation props!! so yum i also made a context manager i think thats so cool too i made a guide app for people who may need more guidance in navigating the app i added skip and next buttons for my music web player yup!"}, {"post_id": 32215, "ts": "2026-07-21T07:43:10Z", "hours": 3.5453, "text": "ok made a calendar and a countdown to the next epikcase youtube drop⦠apps now can be resized in every direction!!!! that was challenging for me. i donāt know it was just hard to figure it out thank god theres no rotate function or else it would probbly be impossible to calculate im gonna put in animations and sound effects now⦠maybe a loading screen too"}, {"post_id": 31272, "ts": "2026-07-19T15:29:50Z", "hours": 4.4642, "text": "i would love to put a video but i keep getting bad gatway error due to my slow internet connection but i styled it and added a few more epik high albums! and theres even a cute gif when its in a loading state because i did not want to confuse users. i also did a bit of restructuring and divided them into smaller componentsā¦"}, {"post_id": 30000, "ts": "2026-07-17T07:23:08Z", "hours": 8.3589, "text": "what ive done logic for the music player when i first started this i thought it wouldnāt take long but it did⦠and i havenāt finished styling yet so it looks really bad⦠so why it took so long was at first i tried searching up to use spotify, but realised only premium members can select track so never mind⦠then i considered storing all the songs in a file storage server but i felt bad downloading the songs so i explored other options⦠so i went to search up how other WebOS does their music player and the ariana grande one used the youtube API so i looked into it⦠thanks it worked!! ok so after it worked, i tried to separate them into composable and smaller components because it got too messy on one file and thatās where i spent so much time on this⦠now im gonna style this betterā¦"}, {"post_id": 27175, "ts": "2026-07-12T14:31:06Z", "hours": 3.1792, "text": "yay updates: terminal app with 9 commands and good formatting!! you can upload custom wallpapers now!! i now know how to use the pre html tag⦠wow. also its my first time trying to setup a terminal like app that includes cycling pass through past commands and displaying output histrory correctly. thereās like a bug that doesnāt automatically scroll down towards the bottom and that makes me sad because i canāt fix it but other than that i think its good hehe"}, {"post_id": 25301, "ts": "2026-07-09T14:47:50Z", "hours": 3.1089, "text": "i am so happy what has changed: settings app with dark and light mode and can change background new start screen new cursor i feel so delighted when the dark/light mode thing worked because embarrassingly i have never successfully implemented one before"}, {"post_id": 24008, "ts": "2026-07-07T09:09:58Z", "hours": 3.1794, "text": "dang i lost my streak but yes i made notes app using tiptap package gallery app but its more of a scroll thing enjoy i will work on a start screen and then⦠maybe one more appā¦"}, {"post_id": 21235, "ts": "2026-07-03T02:12:55Z", "hours": 3.3536, "text": "i built a browser app with two tabs! and the links are their stuff on another page! i also showed icons on the desktop using grid css because I may want to make them organizable in the futureā¦"}, {"post_id": 20137, "ts": "2026-07-01T17:57:02Z", "hours": 4.4075, "text": "ok it really is coming together (very slowly) things i did: desktop now renders open/maximized windows on screen dynamic modal positioning for search and calendar fullscreen toggle adjust wallpaper images (lowkey the hardest part i canāt seem to find any good high quality landscape pics and i am too lazy to edit one) i was so happy when the windows appeared i canāt believe that i could do this !! now i need to list out the icons on the screen and make all the APPS!!!"}, {"post_id": 19321, "ts": "2026-06-30T16:31:09Z", "hours": 2.7989, "text": "things i did: rewrote useDrag logic to use the useAppsState file and limit dragging only in the viewport wrote useResize logic (only can resize one way because i suck at it and im not motivated to do this) define useAppState, wrote function to modify for useAppState i think i have it figured out⦠it should be in a global AppsState kinda thing. At first i tried separating them into app info and the state of it eg. open closed, size position etc but i got confused so even though its not good practice i just⦠smashed them all together i feel im getting impatient / losing motivation for this project but i donāt know⦠this is so random but v-bind is so insane as a beginner vue developer omgomgomgomgo-"}, {"post_id": 19070, "ts": "2026-06-30T08:19:51Z", "hours": 5.0222, "text": "gang i wrote so much but thereās an error so it didnt get sent im gonna cry. not very epik yet but give it like 10 more hours i did: styling finding images making windows draggable designing bottom dock but it still canāt work yet challenges: sigh im a little rusty in programming in general not sure where to put the app state and what information so i struggled hard with that unfamilarity with vue"}]...
|
Title: EPIKOS by @smollcoin | Stardance
Devlogs:
Title: EPIKOS by @smollcoin | Stardance
Devlogs:
gang i wrote so much but thereās an error so it didnt get sent im gonna cry. not very epik yet but give it like 10 more hours i did: styling finding images making windows draggable designing bottom dock but it still canāt work yet challenges: sigh im a little rusty in programming in general not sure where to put the app state and what information so i struggled hard with that unfamilarity with vue
things i did: rewrote useDrag logic to use the useAppsState file and limit dragging only in the viewport wrote useResize logic (only can resize one way because i suck at it and im not motivated to do this) define useAppState, wrote function to modify for useAppState i think i have it figured out⦠it should be in a global AppsState kinda thing. At first i tried separating them into app info and the state of it eg. open closed, size position etc but i got confused so even though its not good practice i just⦠smashed them all together i feel im getting impatient / losing motivation for this project but i donāt know⦠this is so random but v-bind is so insane as a beginner vue developer omgomgomgomgo-
ok it really is coming together (very slowly) things i did: desktop now renders open/maximized windows on screen dynamic modal positioning for search and calendar fullscreen toggle adjust wallpaper images (lowkey the hardest part i canāt seem to find any good high quality landscape pics and i am too lazy to edit one) i was so happy when the windows appeared i canāt believe that i could do this !! now i need to list out the icons on the screen and make all the APPS!!!
i built a browser app with two tabs! and the links are their stuff on another page! i also showed icons on the desktop using grid css because I may want to make them organizable in the futureā¦
dang i lost my streak but yes i made notes app using tiptap package gallery app but its more of a scroll thing enjoy i will work on a start screen and then⦠maybe one more appā¦
i am so happy what has changed: settings app with dark and light mode and can change background new start screen new cursor i feel so delighted when the dark/light mode thing worked because embarrassingly i have never successfully implemented one before
yay updates: terminal app with 9 commands and good formatting!! you can upload custom wallpapers now!! i now know how to use the pre html tag⦠wow. also its my first time trying to setup a terminal like app that includes cycling pass through past commands and displaying output histrory correctly. thereās like a bug that doesnāt automatically scroll down towards the bottom and that makes me sad because i canāt fix it but other than that i think its good hehe
what ive done logic for the music player when i first started this i thought it wouldnāt take long but it did⦠and i havenāt finished styling yet so it looks really bad⦠so why it took so long was at first i tried searching up to use spotify, but realised only premium members can select track so never mind⦠then i considered storing all the songs in a file storage server but i felt bad downloading the songs so i explored other options⦠so i went to search up how other WebOS does their music player and the ariana grande one used the youtube API so i looked into it⦠thanks it worked!! ok so after it worked, i tried to separate them into composable and smaller components because it got too messy on one file and thatās where i spent so much time on this⦠now im gonna style this betterā¦
i would love to put a video but i keep getting bad gatway error due to my slow internet connection but i styled it and added a few more epik high albums! and theres even a cute gif when its in a loading state because i did not want to confuse users. i also did a bit of restructuring and divided them into smaller componentsā¦
ok made a calendar and a countdown to the next epikcase youtube drop⦠apps now can be resized in every direction!!!! that was challenging for me. i donāt know it was just hard to figure it out thank god theres no rotate function or else it would probbly be impossible to calculate im gonna put in animations and sound effects now⦠maybe a loading screen too
probably the final devlog i did some small animations!! i saw a youtube video about framer motion and i decided to try it⦠i like its declarative approach and usage of animation props!! so yum i also made a context manager i think thats so cool too i made a guide app for people who may need more guidance in navigating the app i added skip and next buttons for my music web player yup!
Ships:
E-P-I-K I am so Epik High pilled now so I made a Epik High themed OS. Itās my first time using Vue I love it so much, more than React (teehee) One small thing that I am proud of is implementing dark and light theme mode because I can never seem to get it right but this time I did it sheesh. There are still a few features that are not done yet and I will work on it #soon Hope you enjoyed it as much as I did !!!!
EPIKOS final final final ITās an epik high themed web OS! Epik High is a korean hiphop trio. now with more apps: calendar, music player, guide, terminal, a countdown. and i added some small animations. youch 45 hours thatās all! i had fun with this project. yes it took a lot of time because i had to learn new framework but i think im pretty proficient in vue now⦠vue > react i still struggle ALOT encapsulating the data into composables and i definitely still need more practice⦠thanks for reading! tmi but my favourite songs from them are: āHome is far awayā and āPeople Scare Meā from the Weāve done something wonderful album. Hehe you can go check it out!...
|
1792839148.578874
|
1792925548.578874
|
|
28096
|
My very own WebOS by @sreerangshijoy3 | Stardance
|
sreerangshijoy3
|
2
|
4.0
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T10:55:47Z", "hours": 1.0, "multiplier": 2.69, "payout": 2, "blessing": "neutral", "text": "I updated my web OS by adding features, apps and I tried to improve the web OS. I faced many challenges when designing UI, iam proud to build and upgrade my own web os", "repo": "https://github.com/sreerangshijoy3-cloud/GOAT-OS", "demo": "https://goat-os-gamma.vercel.app/"}, {"ship_num": 2, "ts": "2026-08-04T10:24:19Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a web-based personal operating system GOAT OS using HTML, CSS, and JavaScript. It simulates a real desktop environment inside the browser, where users can open apps, move windows, and interact with different tools. I am proud that I was able to create a complete system that feels like a real operating system inside a browser.", "repo": "https://github.com/sreerangshijoy3-cloud/GOAT-OS", "demo": "https://goat-os-gamma.vercel.app/"}]...
|
[{"post_id": 43216, "ts": "202 [{"post_id": 43216, "ts": "2026-08-08T10:52:50Z", "hours": 0.9069, "text": "I updated my web OS and add new features and apps I tried to improve the UI"}, {"post_id": 40649, "ts": "2026-08-04T10:21:52Z", "hours": 0.2567, "text": "I made the app in the os openable and dragable"}, {"post_id": 40641, "ts": "2026-08-04T10:02:16Z", "hours": 0.3275, "text": "In my web os I added application to it"}, {"post_id": 40631, "ts": "2026-08-04T09:37:42Z", "hours": 1.9558, "text": "This is my first step on my web os"}]...
|
Title: My very own WebOS by @sreerangshijoy3 | Sta Title: My very own WebOS by @sreerangshijoy3 | Stardance
Devlogs:
This is my first step on my web os
In my web os I added application to it
I made the app in the os openable and dragable
I updated my web OS and add new features and apps I tried to improve the UI
Ships:
I built a web-based personal operating system GOAT OS using HTML, CSS, and JavaScript. It simulates a real desktop environment inside the browser, where users can open apps, move windows, and interact with different tools. I am proud that I was able to create a complete system that feels like a real operating system inside a browser.
I updated my web OS by adding features, apps and I tried to improve the web OS. I faced many challenges when designing UI, iam proud to build and upgrade my own web os...
|
1792810522.107147
|
1792896922.107147
|